V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sensui7
V2EX  ›  编程

最近学习语言的感想

  •  
  •   sensui7 · 2017-01-07 03:14:06 +08:00 via iPhone · 4284 次点击
    这是一个创建于 2882 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近学习了 scheme , python , ruby ,正在学习 c 中。
    scheme 只学了一点,为了 sicp 学的但后面几章吃力暂时放下了。

    之前只会 javascript ,了解了这些语言真的给我很大启发,让我对程序有了更多的认识。
    比如 scheme ,对命令和数据的统一对待。
    比如 ruby ,更高程度的抽象(向自然语言靠近)
    而正在学习的 c 语言,让我对程序在机器上的实现有了更多了解。
    至于 python ,让我明白了什么样的语言会流行,简单易学,类库丰富,除此以外,这门语言个人觉得没有任何亮点, python 的哲学应该是实用。

    之前还发帖问 lambda 和迭代器的问题,直到我学了 ruby ,才发现这些是 ruby 里最为常用的特性,而 python 迭代器竟然在标准库里。
    还有 with ,叫什么情景管理器,好 fancy 的名字。然而在 ruby 里,这种需求根本不需要单独做支持, ruby 的 block 功能完美的实现了这种操作。可见, python 的原则就是你们需要什么,就额外增加语言支持,这种打补丁的方式真的让人呵呵了。

    未来计划, c 学完学数据结构和算法,然后 haskell , c#. c++和 java 暂时不想碰,感觉坑太大。不知道什么时候能搞定。
    但是 c++和 java 又是这些语言中最广泛使用的,像 haskell , c ,除了开开眼界好像也真的不会去做什么。所以我很纠结。
    这篇本来应该发到博客,可是懒得整理成文。
    24 条回复    2017-11-21 15:56:46 +08:00
    onlyhot
        1
    onlyhot  
       2017-01-07 03:16:40 +08:00
    为什么可以学的这么快?
    Lonely
        2
    Lonely  
       2017-01-07 03:22:28 +08:00 via iPhone
    有本书叫七周七语言
    sensui7
        3
    sensui7  
    OP
       2017-01-07 03:25:20 +08:00 via iPhone
    顺便说一下,以前对递归一直感觉似懂非懂。学了 scheme 一下就开窍了。 es6 里的迭代器以前也不理解怎么用。学了 python 理解一点,学了 ruby 之后立马就明白了。

    语言真的影响思维。我想这就是语言设计者想要体现的思想。顺便再黑 python ,它只能体现编程导论的思想。
    sensui7
        4
    sensui7  
    OP
       2017-01-07 03:30:44 +08:00 via iPhone
    @onlyhot 这些持续了几个月。而且只学习语法,也没多少内容。不过我看书还是挺快的,学 ruby 一个月看了 4 本书。当然有些章节我跳过了。
    onlyhot
        5
    onlyhot  
       2017-01-07 03:31:40 +08:00
    @sensui7 做东西了吗
    aijam
        6
    aijam  
       2017-01-07 03:36:34 +08:00
    黑我们大 python 我就不干了。 ruby 原生语法都没有 generator ,不知道你怎么就开窍了。
    sensui7
        7
    sensui7  
    OP
       2017-01-07 03:37:38 +08:00 via iPhone
    @onlyhot 没有,做东西要了解类库,这个可就花时间,像 ruby 我只看过一些标准库写过几个小脚本。 python 和 scheme 就完全没写过什么。
    aijam
        8
    aijam  
       2017-01-07 03:40:59 +08:00
    > ruby 里最为常用的特性,而 python 迭代器竟然在标准库里
    ruby 才在标准库里把,你是不是说反了?
    aijam
        9
    aijam  
       2017-01-07 03:48:40 +08:00
    再说 ruby 一个类似的东西搞出 block, proc, lambda 三个概念,你说说是闹哪般?
    sensui7
        10
    sensui7  
    OP
       2017-01-07 04:09:14 +08:00 via iPhone
    @aijam ruby 支持生成器,是内置的,在 Enumerator 类,我记得 python 是在标准库里。难道记错了?
    至于 proc , block , lambda ,灵活嘛,你懂的。绝大多数情况使用 block 就可以了, proc 按需使用。 proc 和 lambda 是闭包, block 只是语言特性,我是这么理解的。
    nagato
        11
    nagato  
       2017-01-07 04:19:08 +08:00
    学这么多语言干嘛
    aijam
        12
    aijam  
       2017-01-07 04:47:49 +08:00
    @sensui7 说明你对 python 还是不了解啊, python 从在语法上就支持 generator ,比 ruby 不知道搞哪儿去了。而且可以玩出很多花样,最近几个版本的 async 都是围绕 generator 和 coroutine 做的强化。
    Felldeadbird
        13
    Felldeadbird  
       2017-01-07 08:55:23 +08:00 via iPhone
    @onlyhot 会一门语言换语言就简单多了
    Cbdy
        14
    Cbdy  
       2017-01-07 09:04:14 +08:00 via Android
    可以找一本编译前端的书看看,了解一下比较流行的语言特性一般是怎么实现的。
    sorra
        15
    sorra  
       2017-01-07 10:09:59 +08:00
    我是 Java 老司机,不久前学了 Ruby ,同意你的看法。不知道你有没有逛 Ruby China ?他家 Wiki 做得很好。 The Rails Doctrine 写得很好。
    并发编程通常要在 Java 和 Go 之间择一,而 web 开发用动态语言挺好的,静态的 Kotlin 也不错。
    soli
        16
    soli  
       2017-01-07 10:24:06 +08:00
    C++ 的特点就是学院气息浓重。一点都不工程友好。
    kkzxak47
        17
    kkzxak47  
       2017-01-07 10:51:39 +08:00 via Android
    继续学,过阵子你有了新认识会回头来更正自己错误。
    另外没必要吐槽中文译名,英文里合适的名字翻译之后就驴头不对马嘴很常见吧。
    sensui7
        18
    sensui7  
    OP
       2017-01-07 12:44:49 +08:00 via iPhone
    @Cbdy 不知道有没有什么书推荐,对编译原理恐惧,担心自己看不懂
    @sorra 当然去过,不过很多人吐槽 go 的 gc.
    java 到底怎么样呢?很多人吐槽 java 繁琐,吐槽它的各种模式,但也有人称赞他的安全严谨。王垠就喜欢 java
    sorra
        19
    sorra  
       2017-01-07 17:19:49 +08:00
    @sensui7 Java 是有些繁琐,但综合战力高,大公司不怕繁琐。我自己用 Kotlin
    myid
        20
    myid  
       2017-03-10 10:16:11 +08:00
    @soli 在说反话吗? C++ 学院气息浓重?! C++诞生在贝尔实验室,从出生那一天起就一直致力于工程实践。。。。
    myid
        21
    myid  
       2017-03-10 10:18:08 +08:00
    楼主,推荐你学习 ML 语言。 OCaml, SML 或者 F# 随你挑一个。你泡在 Windows 里,可以用后两者,不然, OCaml 可以试试。
    soli
        22
    soli  
       2017-03-10 10:57:31 +08:00
    @myid 那就是搞 C++ 的那帮水平太烂或者太懒。一直致力还这么落后。
    myid
        23
    myid  
       2017-03-10 17:07:53 +08:00 via iPhone
    @soli C++构建了以下众多软件--
    所有的主流互联网浏览器, chrome, IE, Safari 等
    Visual Studio
    Microsoft Office
    WPS
    Adobe Photoshop
    Windows
    C++复杂是真 判定为落后了不太公平 :-)
    yoyohaha
        24
    yoyohaha  
       2017-11-21 15:56:46 +08:00
    还在纠结语法,说明还没入门
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1027 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 20:43 · PVG 04:43 · LAX 12:43 · JFK 15:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.