如果你一辈子只能用一种编程语言,你会选哪种?

  • Lisp 方言
  • C
  • 其他类 C 系,包括 Java,Go Lang,S Lang
  • Haskell
  • JS
  • 其他 JVM 语言
  • Py
  • Ruby
  • Perl
  • lua
  • FORTRAN? Pascal?祖传语言
  • INTERCAL,BrainFuck 等搞笑语言

0 投票者

我好像忘记把汇编放上去了…… 还有 Rust。别的语言我都不了解了……

这么些年了,一直用autolisp做开发,现在开始转向Racket。

5 个赞

我需要另一个选项“以我目前的资历还不能做出这个艰难的决定”…

4 个赞

在 Land of Lisp 看见一段描述

如果你想要一门强大的语言,但是不介意这门语言丑一点,那么你适合学 CL。如果你想要写出优美的代码,可以学 Scheme。如果你既不介意语言丑,也想写出精妙的实现,不好意思,目前没有适合你的 Lisp,但是你可以出门右拐学 Haskell。

主要是配图风格相当崩坏。第一种的配图是条狼,第二种是羊,第三种和第一种差不多,只是多了绑一条羊皮袄。

我真的不是在黑 Haskell。

我真是用C系和面向过程用习惯了…… 现在我都不理解OOP到底是啥……

OOP的核心是对象,对象就是一个数据结构,其中包含了相关的数据和函数操作。然后,再多一点儿继承。好像主要的就这些了。其实OOP编程也是离不开面向过程的很多思维的。

兼顾语言的表达能力,适用场景,还有性能。C和汇编表达能力太差,py,ruby,lua什么的性能太低,jvm语言依赖虚拟机,好像只有lisp能选吧。能编译能解释,表达能力不逊色于各种动态语言,只是语法糖少点儿而已,代码读起来有点晦涩,还是可以接受的。

木有C++不幸福……

这个算在 “其他 C 系”里面。虽然我的分法不太科学

我会选C++,虽然很BT,但是扩展性强,兼顾性能,对象与过程可双用……但是真的很BT啊。

1 个赞

我突然想到个,假设我只选择C语言,但是自己用C实现了一种更高级语言的解释器然后用这种语言编程,那这样符不符合题目说的“一辈子只能用一种编程语言”?。。。。哈哈

就是想要各位以不考虑这种钻空子的方式为前提来好好答题啊……

同喜好这种没什么限制的语言。就是 Cpp 坑比较多。

要从命令式过渡到面向对象,Clojure 是很好的学习例子。它在定义函数的时候通过一个列表来对不同种类的参数做不同处理。

你可以把面向对象当作是写一个通用函数,这个函数能通过判断给出的数据类型来用不同的方式处理数据。

比如计算面积的函数,对于一个长方形,要知道长和宽,对于一个圆,只需要知道半径就可以了。 把这些函数包装起来,能自动识别参数以调用合适的函数/方法,就是一个面向对象方法/广义函数,没什么稀奇的。

可能这个和 Cpp 的面向对象概念有点不一样,然而其实最早的面向对象语言 Smalltalk 的发明者说 C++ 不是他所理解的面向对象。用 Java 或 Ruby 这样所谓纯面向对象的语言学习可能不是很好的方法,因为很多书都没法解释清楚面向对象是什么。

1 个赞

我的直观的感觉是,面向对象就是一种条件分支的处理方式,没什么特别的

C吧,毕竟是初恋。

javascript其实挺不错的,可以比较任性,而且有个浏览器就能验证想法了。

为啥我投不了票呢?

我选C,毕竟和硬件连接紧密些,而且硬件结构是实现的基础。在此基础上开发lisp编译器,享受lisp开发。

1 个赞

有 Lisp Machine 用。