所有的编程语言我都讨厌。曾经我想自创一门语言,但我没搞明白到底需要一门什么语言,所以也从未开始过。 许多时候,你没法选择使用哪种语言。不管我在用哪种语言,我都尝试去接受它的优点和缺点。
Java
喜欢Java的人肯定喜欢打字。我指的就是敲打键盘上的键。你得不断地重复又重复。
设计Java系统的人是个疯子,他解决问题的方式就是,设计模式。如果你把设计模式看作是这个语言中解决问题的一种方式,那么你会发现Java里有许多这样的设计模式。
另一方面,Sun的这些家伙的确是费了点心思在Java规范上的,这使得它能运行在嵌入式系统上,所以这块我们还是坚持在使用它。我很难相信Python或者C在我的手机桌面系统上运行。
还有,那些个目录又是怎么回事?我必须得使用Eclipse,因为只有它知道怎么跳过那1000个字长的路径名。如果我在应用的同一个目录下放10个类,会不会 伤害到某些人?
C
C是精确的。当我用C写程序的时候,如果搞定了,我知道它是靠谱的。它就像是用一把小刷子在画一幅巨作。在这么详细的层面上写代码需要一种不同的心态。当你坐下来写C的时候,在动手之前你就得规划好到底怎么写。否则后面肯定得费很多工夫去改。
如果你的经验足够丰富,内存泄露这种事就不太会找上门。它的第二特性——malloc/free总是形影不离。你不能忘了任何一个。否则就像是忘了冲水或者关灯。你就这么做就是了。
有句话说得好,如果你打算给房子上漆,一把好刷子可远远不够。我猜你肯定想要个大滚轴。如果让我写一整个应用或者系统,能不用C的话我肯定不用。
C程序想要进行改动可得费老劲了。当我写算法的时候,我知道第一遍肯定是不会对的,所以我通常都先用Python写,搞定了之后再翻译成C的。
C++
它就是个有string类的C。同时还有数组,列表,队列等东西,你可以用它们来实现你想要的。一言以蔽之:别想着自创新模板。这太困难了。除了这个,C++还改良了一下C,用C++你可以写出非常不错的软件。它这个额外的特性使得它可以用于一些大型系统上,只要大家都还遵循同样的约束的话,难度还不算太大。
 JavaScript
这是个没人喜欢的语言。不过它喜欢你。当你刚开始学习它的时候,你可能会写出一些非常糟糕的代码,把对象用作字典,别的对象作KEY,不过这样也是OK的,因为这些代码运行起来也没有什么问题,只要浏览器还支持JavaScript就好。
JavaScript没有连接器,因此所有的代码都共享一个命名空间,不过还好大家都知道这一点,所以还能一起和谐相处。
CoffeeScirpt
CoffeeScirpt是一个解释器,它将那些长得像Ruby的奇怪的语言逐行地翻译成JavaScript。它是一个拥有所有外来语法的JavaScript——括号,方括号,额外关键字移除。只有代码的基本含义还保留着。
CoffeeScirpt挺不错的。如果你要写很多代码的时候,它能让你提高至少25%的效率。你可以一次在屏幕上看到更多行的代码。
当你用CoffeeScript写代码的时候,你得时刻记住这是要生成JavaScript的。问题就在这。你得先去学习JavaScript。项目来的新人都得先学JavaScript,然后才能学CoffeeScript,最后才能去学习项目代码。
node.js
我也希望能爱上它。我觉得我给过它机会了。它的回调让我无法忍受。我知道会有这么一天,因为某个原因,其中一个回调并没有出现,然后我的应用就会堵在那一直等待。真是要了命了。
还有一点就是,它几乎没有内建任何东西。如果你要做某件事情,总是会有一大堆模块来实现这个功能的。该选哪个呢?如果出现问题了,哪个模块会有人来支持?
  Scala
Scala是一门函数式,强类型的语言,它会编译成JVM代码。
我是在工作中学的Scala。有一家初创公司的生产系统用的是它,我是在后期才加入他们的。
这让我看到了Scala丑陋的一面:类型推导。类型推荐被它用到了极致。每个对象都有类型,不过想确定它是什么类型的,你得检查不同分层上的好几个文件才行。Scala也继承了Java的文件夹的坏毛病,因此你要查找某个类型的话得进入好几层目录才能找到对应的那个文件。
  简而言之,Scala是极好的——对于那些最初的开发人员而言。新加入的成员为了熟悉现有的代码,得有一个很长的学习曲线。

Erlang
Erlang也是我曾经想爱上的一位。我真的努力了。它是一门美丽的函数式语言,它可以写出很精致的小模块,它们以一种精确的方式进行通信,你的系统可以运行10年以上,因为它能处理未知问题,如果必要的话还会重启,然后继续运行。
不过它的结构太复杂了。开发似乎要停留在伯克利发明socket的那个年代。当前时代所需的东西几乎一样都没有。为什么开发一个简单的WEB服务需要费这么大的工夫?
Go
Go很容易学习,对于新人而言也是如此。它使用40年前的语言概念来构建一个健壮的异步系统,但它让你能像写同步代码一样编程。你可以不费吹灰之力写出1000个可以安全工作的线程。
在库支持方面它仍需要改进。当我想做某事的时候,该用哪个库——github上2011年的那个,还是2013年开始的那个半成品?一个是官方主页链接的,不过它的官方主页看起来并不是最新的。好吧,我觉得我还是自己写一个吧。。。
还有,为什么追加元素到数组里也这么费劲?
 Python
在Python里,不管你想做什么都会有一个对应的库,如果你用的是Linux,它绝对是不二选择,因为它可以一键安装。
如果你想做些数字处理或者科学运算,选择Python吧,你值得拥有。
Python中的字符串即可能是文本的也可能是二进制的,因此你得上来就学习下文本编码的东东。
 Python 3
Python 3和Python有许多共同的特性,不过它却是门不同的语言。由于它比较新,因此支持的并不是很好。我也想使用它,不过总会有那么一个库,它是只支持Python 2的。
最新内容请见作者的GitHub页:http://qaseven.github.io/

我眼中的各种编程语言相关推荐

  1. 编程语言的发展趋势及未来方向(3):函数式编程

    关于声明式编程的还有一部分重要的内容,那便是函数式编程.函数式编程已经有很长时间的历史了,当年LISP便是个函数式编程语言.除了LISP以外我们还有其他许多函数式编程语言,如APL.Haskell.S ...

  2. 从技术博主到知乎大V:资深Python工程师的12年进阶路

    http://www.jiemian.com/article/1378119.html 在中国,接触过 Java 和 Python 两种语言的人往往有一种先入为主的判断:前者适合大企业,后者适合早期企 ...

  3. 程序员眼中的编程语言

    下图是一个搞笑的图片--程序员眼中的编程语言. 图片的横轴是编程语言. 纵轴是各语言的程序员.粉丝.信徒. 中间的各个小图片则是,粉丝眼中的编程语言的形象. 比如说, 第一行第一列,是Java程序员看 ...

  4. 程序员眼中的编程语言和操作系统

    以下文章来自:酷壳 http://CoolShell.cn <程序员眼中的编程语言> 下图是一个搞笑的图片--程序员眼中的编程语言. 图片的横轴是编程语言. 纵轴是各语言的程序员.粉丝.信 ...

  5. 谈谈开发者眼中的编程语言是怎样的?

    http://news.eoe.cn/18328.html 对 于想加入开发队伍的初学者来说,入门的编程语言究竟要先选哪一个呢?是永恒经典的C语言,还是方兴未艾的Object-C抑或其它神器?若想直接 ...

  6. 编程语言大比拼:我眼中最佳编程语言

    目录 一.Python优势的评估标准 (一)易用性. (二)执行效率. (三)语言功能特性. (四)工具生态环境. (五)开发者社区. 二.Python的优点 (一)易用性 (二)高效的开发工具和丰富 ...

  7. 上小学的读者居然造了个“编程语言”!

    作者 | 轩辕之风O 来源 | 编程技术宇宙(ID:xuanyuancoding) ‍‍长江后浪推前浪,前浪死在沙滩上. 这是我们常常用来自嘲的一句话,没想到有一天会让我体会的如此真切. 不知道是不是 ...

  8. 年终总结,程序员票选最喜欢的编程语言花落谁家?

    岁末年初,又到了一年一度程序员年终总结的时候啦! HackerRank平台上共汇集了超过500万开发人员(占全球开发人员总数的20%以上)和1200多个客户.2018年11月5日至11月27日,Hac ...

  9. 开发漫谈:RedMonk编程语言流行榜出炉

    世界上的语言千万种,但在程序猿的眼中,优秀的语言永远只有1种.一百个读者眼中有一百个哈姆雷特,一百个程序员眼中,也有一百种不同的最好编程语言. 尽管如此,不同的关注开发的平台还是会不是的关注编程语言的 ...

最新文章

  1. rviz学习笔记(一)——Markers: Sending Basic Shapes (C++) 发送基础形状
  2. RMB符号的几种显示方式。
  3. mybatis 创建session, 缓存, 执行SQL
  4. 【SDL的编程】VC环境搭建
  5. 数据结构——二叉树的双序遍历
  6. 全民学后端快餐教程(1) - 只不过是写个Java程序
  7. eclipse 的project explorer问题,这个怎样把localFileSystem去掉,
  8. 苹果六电池_【行业分析】特斯拉“电池日”前夕供应链个股备受关注 溶剂龙头石大胜华DMC等需求量有望大增...
  9. 大数据时代必须关注的几个问题
  10. vulfocus——maccms远程命令执行(CVE-2017-17733)
  11. Filename too long,Clone succeeded,but checkout failed.
  12. 一维条形码 code128 的全面介绍
  13. sql语句查询一天24小时每个小时数据,查询时间段内每天数据
  14. 实体店也可以代办?外卖市场还需严加监管
  15. 【SpringBoot深入浅出系列】SpringBoot之集成MyBatis-Plus
  16. 有经验JAVA程序员如何提升自己?
  17. 腾讯云域名备案完整过程记录
  18. Java类和对象小结
  19. html display
  20. winRaR 命令行实现自解压可执行程序

热门文章

  1. Spring高级应用之注入各类集合
  2. 通过索引优化含ORDER BY的MySQL语句
  3. 计算机视觉研究群体及专家主页汇总
  4. Stanford UFLDL教程 白化
  5. Ubuntu下的重要配置文件修改前要先备份
  6. 【OpenCV3】OpenCV3.2.0在VS2013环境下Cmake编译与快速配置
  7. ES-PHP向ES批量添加文档报No alive nodes found in your cluster
  8. 优化SQL Server数据库查询方法
  9. 限制域用户多点登录--脚本
  10. Codeforces Round #351 (VK Cup 2016 Round 3, Div. 2 Edition) A. Bear and Game 水题