编程语言对我的思维的影响

今天看到一句话,深有感触:
A language that doesn't affect the way you think about programming, is not worth knowing." -Alan Perlis
大概的意思就是说,不能够影响你的思维的编程语言,是不值得学习的。 以前,我对这个,理解得并不是很深刻:语言就是一个工具而已,还是要靠我的思维去指导。起决定性作用的,还是我的脑袋而不是某一门语言。不过,最近这个渐渐发生变化了。 记得刚上大学的时候,学习c语言,基本语法还好,谈到编程、解决语言问题,简直是不知所云。对我这种,大学之前,就没有接触过电脑的学生来说,实在是太难了。所以我坑坑巴巴的把c语言学完了,可是还基本不会写什么东西。后来第二学期学习c++和数据结构,数据结构这门课,我真的很喜欢,因为可以有成就感,同时教材中的算法都是用c++实现的,又在学习c++所以可做到相辅相成,这样,c++和数据结构都进步了,而且,我几乎把数据结构那本书中的每一个算法,我都自己实现了一遍,自己亲自调试通过。我到目前位置,这方便吃得都是那个时候的老本儿,没啥进步。后来和学长们交流,说下学期要学习java,我就在过年的时候,提前学了一遍,当时在图书馆借了一本儿《Java完美宝典》,可能很多同学,都没有听过这本儿书,但是,我入门就靠这本儿。通过这本儿书,我好想理解了什么是编程,而且,越来越认为编程就应该是这个样子。后来,那个春节,我把java学完了,那本书里例子我基本自己在ultredit中敲了一遍,然后javac,java的编译运行调试。我对java的理解相对比较什么了,继承下的静态变量,静态函数的处理啊,内部类、匿名内部类啊,我自己觉得理解的都不错。而且,对java的api也比较熟悉。以致后来上课的时候,我能够指出老师授课中的错误。我非常的喜欢java,这么多年来,我一直用的java,而且,我对java很熟悉,绝大多数java相关的,我都或多或少知道一些,其实也算半个精通吧。当时就觉得,java真是一个很方便的工具,什么都能干,而且都能干得不错。 这期间,我也看过不少其他的语言,什么ruby、puthon、groovy、scala。我都有所涉猎,但是都觉得不如java方便,一方面java太熟悉了,解决起来问题,还是java快,而且java的类库太丰富了;另一方面,没有什么强制性的要求,没有那么强的动力去学习这些语言,或者说去换换思维。直到我了解scala,进一步了解clojure之后,我的思维逐渐发生了转变。 scala像是一种集大成的语言,很庞大,号称支持面向对象和面向函数,又支持强大的Actor模式。scala确实很强大,支持面向对象,java程序员可以很快的转过来;支持面向函数,java程序员转过来之后,可以慢慢的面向函数,可以使写出的代码更加精简。scala在国外的一些公司,如Twitter和linkedin都有广泛的应用。但是我个人不喜欢scala,原因如下:
  1. 太庞大了。
  2. 混乱,如果团队中,不同的人有的采用面向对象,有的采用面型函数,不统一
  3. 性能。目前scala的实现,还是有问题的,OOM比较严重。
不多,我通过scala了解到面向函数的厉害,为什么厉害,因为代码很短,我看不懂。所以,scala的进一步学习也搁置了。 后来,我遇到了clojure,它真的很轻盈,属于微内核的语言,是Lisp在JVM上的实现。为什么会遇到clojure?因为我看保罗·格雷汉姆的《黑客与画家》,里面讲Lisp是黑客最钟爱的语言,而且,国外的创业公司好多都是用Lisp的。我想,这么牛的东西,不学习学习,实在是对不起自己,而且,我长期在JVM上面混,所以,顺理成章就选择了clojure。开始了clojure的学习之旅, 开始了,我就能体会到这里面的思维,确实不一样。以至于习惯了面向对象的我,真的觉得很痛苦,太难了,不理解啊。都不变,还怎么编程啊。但是,这个时候,我已经相信,编程语言一个思维是具有很大的影响的,如果,我想变得更加smarter,我就必须学习clojure,而且要学好。所以,我硬着头皮学习,甚至可以抄抄优秀的代码,也未尝不可。 java我非常熟悉,而且我也会保持。c++等我不熟,而且,我也不打算熟悉了。clojure呢,尽管无法达到java的境界,但屈尊一下第二,我想对我的思维的全面化,还是会很有帮助的。 其实已经开始了,但是,我还是要大喊一声:开始吧,clojure之旅。

转载于:https://www.cnblogs.com/sing1ee/archive/2012/01/27/2764996.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值