我眼中的各种编程语言

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的。

时间: 2024-08-03 13:32:52

我眼中的各种编程语言的相关文章

编程语言的发展趋势by Anders Hejlsberg

这是Anders Hejlsberg在比利时TechDays 2010所做的开场演讲. 编程语言的发展非常缓慢,期间也当然出现了一些东西,例如面向对象等等,你可能会想,那么我么这么多年的努力都到哪里去了呢?事实上这些努力没有体现在编程语言上,而是出现在框架及工具等方面了.如果你关注如今我们使用的框架,它们的体积的确有很大的增长.例如当年Turbo Pascal所带的框架大约有,比如说100个功能,而现在的.NET Framework里则有一万个类,十万个方法,的确有1000倍的增长.与此类似,如

程序员眼中的英语单词

英语中一个单词可能有很多不同的意思.很多中国开发者外语本来就不好,概念是往往先入为主.甚至在不清楚一般意义的情况下,先记住了特定环境中的意思.? 单词 普通人眼中 开发者眼中 socket 插座 套接字 performance 演出 性能 ATM 自动取款机 异步传输模式 memory 记忆 内存 eclipse 日蚀 一种 IDE oracle 神谕 甲骨文公司 cookie 小甜点 一种 web session 机制 stack 堆 堆栈 port 港口 端口 cardboard 纸盒 Go

大家眼中的python

大家眼中的python1.人才需求量大据统计,Python人才需求量每日高达5000+,但目前市场上会 Python 的程序员少之又少, 竞争小,很容易快速高薪就业2.轻松入门Python本身是一门简明.易学的语言,比起 C语言. C++.JAVA等编程语言的学习难度要相对容易很多.3.发展空间大从事Python开发,所从事的工作机会和工作岗位及工作内容可选择的余地很多,未来发展的空间也很大.4.行业前景好从Python开发者薪资的变化趋势来看,随着工作年限的增长工资成直线增长.

OSChina 娱乐弹弹弹——程序猿眼中的女人

程序猿,整天跟操作系统,编程语言,各种打交道,那么程序猿眼中的女人是什么样子的呢? 有程序猿曾经用操作系统形容过各种类型的女人,有程序猿用编程语言描述各种星座的女人. 小编找到了几个版本,请看: 编程语言 NO1: 计算机语言的实质其实是为了让人类能够更好与计算机打交道,最终结果都是通过编译成二进制代码或通过解释器转译成二进制代码的形式,由计算机来 执行.而二进制就是 0 和1,假设 1 代表男人,0 代表女人,那么瞬间就可以发现世界就变成了一台大"计算机".而爱情和情爱也可以看成是

2017.2.17学习C#的第一天,我眼中的C#是什么样的?

今天是学习C#的第一天,感谢凯哥带我走上了学习C#的正路(昨天资料发下来自己看了下,云里雾里,没咋看懂). 一 什么是C#(第一天学习) 首先感谢凯哥让我了解了C#的起源,发展.从最初的C到C++再到现在的C++++(也就是C#),它与JAVA的恩恩怨怨,微软和JAVA的恩恩怨怨(具体是啥我也没怎么记住,还是凯哥说的对,度娘上有详细的解释,我就不复制粘贴了).但是有一点我记得很清楚,C#中的#就是sharp的意思,sharp是锋利,敏捷的意思,因此在我眼中,C#就是锋利,敏捷的编程语言!让我更效

老曹眼中的研发管理二三事

这是在gitchat上的第一次分享,中生代联手gitchat在做研发管理的专题活动,作为先锋,抛砖引玉. 关于管理,必然会谈到业界先贤德鲁克先生对管理的定义. 管理就是界定企业的使命,并激励和组织人力资源去实现这个使命.界定使命是企业家的任务,而激励与组织人力资源是领导力的范畴,二者的结合就是管理. 这是对企业管理的阐述,管理是一种实践,其本质不在于'知'而在于'行':其验证不在于逻辑,而在于成果:其唯一权威就是成就. 而我们多数人不是企业家,更多是基层的管理者,面对的一个或几个小型的组织.尤其

机器学习编程语言之争,Python夺魁

机器学习编程语言之争,Python夺魁 随着科技的发展,拥有高容量.高速度和多样性的大数据已经成为当今时代的主题词.数据科学领域中所采用的机器学习编程语言大相径庭.究竟哪种语言最适合机器学习成为争论不休的话题.近日,密西根州立大学的博士生Sebastian Raschka再次发起了机器学习编程语言之争,分析了自己选择Python的原因. 目前,机器学习牵涉的编程语言十分多样,包括了MATLAB.Julia.R.Perl.Python.Ruby等等.首先,Raschka定义了语言好坏的原则:一门好

一个开发眼中的运维

在云计算时代,开发和运维的结合变得越来越重要.在 DIFF论坛第一期,前新浪SAE运维主管, 郑志勇,分享了<一个开发眼中的运维>根据自己从开发人员转型运维之后的心得,谈如何把在开发上的运用抽象思维方式运用到运维领域. 1. 运维不是什么? 运维不是打杂的,运维不是客服,运维也不是服务开发的,但要做好合作. 2. 运维是什么? 运维服务于整个产品,保证架构合理,系统稳定.运维只对业务稳定负责,所有的工作都是奔着这个去的. 3. 你如何写程序,写程序的目的是什么? 程序是为了完成特定的功能.为了

转: 如何成为一个通晓多种编程语言的程序员

如何成为一个通晓多种编程语言的程序员 2015-07-16 程序猿 学习一门新的语言是一种冒险.我总是热衷于尝试新的东西——学习新的语法,了解不同的模式,乃至彻底改变思维方式.不幸的是,许多开发人员对此不以为然,甚至可能是深恶痛绝的——学习新语言,就得走出舒适区,花时间花精力来学习新的理念和方法. 这段日子,我每天都要用大约5种不同的语言来写不同的项目! 我应该先学哪种语言? 有关这方面的讨论真可谓数不胜数.很多刚进入编程社区的初学者,都会问这个问题,简直就是前赴后继.有些人建议先学不费力的,如