编程语言的跨界真的那么容易吗?


Author: Kimmy

编程语言的跨界真的那么容易吗?

知乎链接


又看到有人吹函数式编程和有人黑C++

编程语言跨界很难

的“学完”背后包含了多少不为人知的艰辛,你去看看他做了哪些事情和实现过什么东西大概就会明白了。
而且,当你们真得看过C++的STL和《21天学通C++模版编程语言》[1]的时候,就不会觉得什么Functional Programming好神奇了,也不会觉得什么闭包、高阶函数会让人激动万分了(连Pascal和Ada都有type-safe的高阶函数我会乱说?)

编程语言跨界很简单
你去翻一翻Yesod的教程[2]就能开心地用Haskell写Web应用了,不需要理解什么是Monad。

私以为,能够跑这里来回答这个问题的,“学完”一门编程语言的人没有多少。题主所说的那几个老鸟,也是希望题主能够按照通过Yesod学习Haskell的路子来学习的吧。

说白了目前的应用架构再复杂也还是那么多东西,只是切换技术栈(语言?)的话,就像题主你之前做的那样,一一对应过去就可以了。(哦什么?你说在C++里面找不到Interceptor和Proxy?你确定你对比的是Java而不是Java EE?或者你应该服务端框架[3]中去找概念?
但是如果你真的希望多学习一些东西,或者是对自己现在的技术多有所理解的话,去深入研究一遍,是非常有必要的。而这时候编程语言相对来说只是基础,也许你要面对的可能是更多更复杂的 内容。

关键还是看你怎么想。

就像某仁兄说的,
和语言本身无关,是自己的眼界阻碍了自己的能力。

哦,我13年整理过一个豆列[4],跟本问题的内容应该有关系。

[1] 21天学通C++模版编程语言。-Kim Leo
[2] YBlog - Haskell web programming
[3] facebook/proxygen · GitHub
[4] 跨越编程语言界限
[5] C++: From novice to Professional

以上。

=========================
指出本答案中的各项纰漏,目前已修订,并做出以下解释:
  1. 答案是随手写的,没有过心,如果你觉得过度主观,可以举报。我尊重大家的意见。
  2. 空列语言和概念是没用的,只会对不了解这些的人造成更大的困惑。比如Functional Programming,比如Monad,比如Lisp和Haskell,比如闭包和高阶函数。
  3. "通过Yesod学习Haskell的路子"是指先简单入门一门语言,然后选取一个基于该语言的框架直接去做应用;至少看起来你可以用该语言做出东西来,也算是一种“学会”。就像大部分Java程序员虽然功底不如RFX,依然可以开心地用Java EE一样。(Yesod是一个基于Haskell的Web框架,详见 yesodweb.com/
  4. 关于夹杂私货,抱歉可能因为我见识太少,没办法列举更多能够解释和扩展该话题的另外[4]和[5]我认为不算是私货,只是我希望推荐给各位的书。除了搜集工作之外,所有的功劳都要归于豆瓣网和各位作者。
  5. 本文不是鸡汤,也不是干货,只是针对答案提出自己的观点。有任何疑问或者建议,请直接回复或者私信。
  6. 再次谢谢客观的知乎。

创建时间:2015-05-07 最近更新时间:2023-11-03