最近学习语言的感想

2017-01-07 03:14:06 +08:00
 sensui7
最近学习了 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 ,除了开开眼界好像也真的不会去做什么。所以我很纠结。
这篇本来应该发到博客,可是懒得整理成文。
4307 次点击
所在节点    编程
24 条回复
onlyhot
2017-01-07 03:16:40 +08:00
为什么可以学的这么快?
Lonely
2017-01-07 03:22:28 +08:00
有本书叫七周七语言
sensui7
2017-01-07 03:25:20 +08:00
顺便说一下,以前对递归一直感觉似懂非懂。学了 scheme 一下就开窍了。 es6 里的迭代器以前也不理解怎么用。学了 python 理解一点,学了 ruby 之后立马就明白了。

语言真的影响思维。我想这就是语言设计者想要体现的思想。顺便再黑 python ,它只能体现编程导论的思想。
sensui7
2017-01-07 03:30:44 +08:00
@onlyhot 这些持续了几个月。而且只学习语法,也没多少内容。不过我看书还是挺快的,学 ruby 一个月看了 4 本书。当然有些章节我跳过了。
onlyhot
2017-01-07 03:31:40 +08:00
@sensui7 做东西了吗
aijam
2017-01-07 03:36:34 +08:00
黑我们大 python 我就不干了。 ruby 原生语法都没有 generator ,不知道你怎么就开窍了。
sensui7
2017-01-07 03:37:38 +08:00
@onlyhot 没有,做东西要了解类库,这个可就花时间,像 ruby 我只看过一些标准库写过几个小脚本。 python 和 scheme 就完全没写过什么。
aijam
2017-01-07 03:40:59 +08:00
> ruby 里最为常用的特性,而 python 迭代器竟然在标准库里
ruby 才在标准库里把,你是不是说反了?
aijam
2017-01-07 03:48:40 +08:00
再说 ruby 一个类似的东西搞出 block, proc, lambda 三个概念,你说说是闹哪般?
sensui7
2017-01-07 04:09:14 +08:00
@aijam ruby 支持生成器,是内置的,在 Enumerator 类,我记得 python 是在标准库里。难道记错了?
至于 proc , block , lambda ,灵活嘛,你懂的。绝大多数情况使用 block 就可以了, proc 按需使用。 proc 和 lambda 是闭包, block 只是语言特性,我是这么理解的。
nagato
2017-01-07 04:19:08 +08:00
学这么多语言干嘛
aijam
2017-01-07 04:47:49 +08:00
@sensui7 说明你对 python 还是不了解啊, python 从在语法上就支持 generator ,比 ruby 不知道搞哪儿去了。而且可以玩出很多花样,最近几个版本的 async 都是围绕 generator 和 coroutine 做的强化。
Felldeadbird
2017-01-07 08:55:23 +08:00
@onlyhot 会一门语言换语言就简单多了
Cbdy
2017-01-07 09:04:14 +08:00
可以找一本编译前端的书看看,了解一下比较流行的语言特性一般是怎么实现的。
sorra
2017-01-07 10:09:59 +08:00
我是 Java 老司机,不久前学了 Ruby ,同意你的看法。不知道你有没有逛 Ruby China ?他家 Wiki 做得很好。 The Rails Doctrine 写得很好。
并发编程通常要在 Java 和 Go 之间择一,而 web 开发用动态语言挺好的,静态的 Kotlin 也不错。
soli
2017-01-07 10:24:06 +08:00
C++ 的特点就是学院气息浓重。一点都不工程友好。
kkzxak47
2017-01-07 10:51:39 +08:00
继续学,过阵子你有了新认识会回头来更正自己错误。
另外没必要吐槽中文译名,英文里合适的名字翻译之后就驴头不对马嘴很常见吧。
sensui7
2017-01-07 12:44:49 +08:00
@Cbdy 不知道有没有什么书推荐,对编译原理恐惧,担心自己看不懂
@sorra 当然去过,不过很多人吐槽 go 的 gc.
java 到底怎么样呢?很多人吐槽 java 繁琐,吐槽它的各种模式,但也有人称赞他的安全严谨。王垠就喜欢 java
sorra
2017-01-07 17:19:49 +08:00
@sensui7 Java 是有些繁琐,但综合战力高,大公司不怕繁琐。我自己用 Kotlin
myid
2017-03-10 10:16:11 +08:00
@soli 在说反话吗? C++ 学院气息浓重?! C++诞生在贝尔实验室,从出生那一天起就一直致力于工程实践。。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/332812

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX