海纳百川,有容乃大

     学习总结之类的东西。就是把想到的事情记下来而已。
    之前学java,后来学c。原因就是那个时候觉得c要比java好。现在觉得这些都是浮云。我根本到不了评论一个语言的级别。能够说出一部分优缺点已经很不错了。
    我不会汇编,所以我从c开始写。我一直觉得c处理字符串就是一个很麻烦的事情。因为他没有字符串类型,只有char类型,而char类型又是某种意义上的int类型。我在做一个字符串的时候,实际上是做了一个数组,数组这种东西,长度是不可变的。假如说我要做两个字符串拼接,实际上是做了三个字符串。可以通过指针去访问一个字符串里面的每一个字符,原因很简单。指针可以访问任何你能够描述清楚地地方。所以我觉得与其说c语言灵活不入说指针灵活。 或者说没有指针的c语言就是渣渣。对于函数指针和指针函数,我觉得就是对抽象的逻辑的一种定义。普通指针定义的是一个变量一个物体,指针函数就是定义的一种逻辑。这个逻辑具体怎么样是逻辑的事情,不是这个定义的事情。然后就是很高深的c,我想称之为数学家的c。那种c语言的代码就是一堆定义,用数字和偏移量去做事情。我觉得那样的c就是数学家和计算机交互的一种语言。
    然后就是java。因为开始的时候我就是学这个的。这个东西让我又爱又恨。因为我开始的时候很喜欢,有一段时间我是疯狂的鄙视这个东西的,原因就是我觉得这个东西的代码量太大了。后来我发现,代码量大很正常的时候,我就觉得他很好了,因为他有很多库。我的java老师是教vb的。之后java ee的老师很强大,那个时候在学着写html的标签。不过给了我一种上专科学技术的错觉。之后我误入歧途,开始学所谓的ssh三大框架。之后我就放弃了。三个框架能做什么?网站?企业级开发?我开始专注于业务逻辑。然后我觉得erp ,sap才是 软件从业人员的最终目标。然后我就去学c了。因为java不过是一个做网页前端的东西。其实那个时候的我是个sb。java不仅仅是那样的。从编码的角度来讲,java的垃圾回收机制,确实很强大。要比c++好很多。c++的长处不在这里。从软件的角度讲,java已经成为必不可少的东西了。因为我看了很多软件,插件,框架无一例外是java的。太多以至于无从说起。从java上面我学到的是软件项目和软件工程。不是编码。说到这里想起一个c语言大牛写的java异常处理的代码。他把异常处理的具体过程用java写了一个函数。我看完的时候,只想说,你写java真是屈才了。
    然后是c++,因为前期能写的语言就是这几个。我觉得c++太难了。c++难于上青天。c++最开始的时候仅仅是c with class。因为面向对象很强大,所以有了c++。但是c语言的强大导致这个东西越来越成熟,然后独立占据了软件的三分之一的天下。现在的c++是一个多重范型的编程语言(multiaradigm programming language)。这是一个同支持过程形式,面向对象形式,函数形式,泛型形式,元编程形式的语言。说到底c++仍是以c为基础的。他的blocks,statements,preprocessor,built-in data tyoes,数组,指针。这些最基础的东西都是辣子鱼c。但是c没有模板,没有异常,没有重载。然后他又添加了很多东西,关于classes,构造函数和析构函数,封装,继承,多台,虚函数(动态绑定)这一部分可以说是在c之上对于面向对象的拓展。然后就是泛型编程。然后就是元编程。没有在公司待过,没有看过c++大牛的东西,仅仅是个人认为这个是很小众的东西。然后就是STL库。就是容器,迭代,算法以及函数对象进行十分紧密地配合协调。这些算是我对于c++的评价,其实也算是我学c++不同阶段的体会吧。
    然后是python。我学python的时间很短。但是我觉得这个东西除了运行速度比较慢之外,其余的简直就是爽。给人一种很顺手的感觉。不说她在处理字符串上面的便捷,因为她很多地方用的都是正则表达式。很多语言都可以支持正则。还有就是她对于面向对象的理解已经到达一个很疯狂的境界了。她更加符合一种哲学,一生二,二生三,三生万物。还有她的元编程。这些东西都不说。因为没有办法评论,我不够资格。我想说的就是他的网络框架,Django,
tonardo,以及老牌框架 Zope2。至于twisted框架,这个东西 是一个Python 应用程序和库文件的集成套件。其中包括全套页面服务器应用程序和基于文本模式的游戏引擎 。总之就是我之前的那个说说,python就是吊。
    然后是PHP。了解不深,写过服务器端的网络爬虫。不错。用起来很顺手。我在学她的时候还么有接触到Django。所以我觉得html的网页模板是从他这里来的。对于这一点我觉得很强。至于CSS这种东西,在Django和PHP面前就是小儿科。
    然后是jsp。与其说jsp是一种语言不如说jsp是整个软件的前端。现在的人已经懒到连客户端都不愿意去下载的地步了。所以说浏览器是软件的未来。或者说网络是人类的未来。大量的前段插件给我的感觉就是烦,真的不能想象没有ant和maven这两个东西怎么去写代码。
    然后就是最近在看的lisp。总结一下就是反人类。学多了容易出家。学她先学数学,然后深刻理解逻辑。(想不到一个合适的词)
    然后就是ruby。这个语言仅仅限于一本书--《 松本行弘的程序世界》。 连代码都没有写过。最近比较忙所以环境都没有搭建。说来惭愧不多说。
    为什么写这么多?
    我想要让自己记住一件事情。海纳百川,有容乃大。
    之前我常说,编程语言是一种工具。现在我想说,对于解决一个问题,编程语言是一种工具;对于设计一个软件,编程语言是材料。建筑设计师不会过多的考虑施工的具体细节,但是他会考虑材料对于建筑的影响,在他眼里,材料是会影响建筑的。建筑施工者不会过多的考虑建筑想要表达的理念,光影都是浮云,工期才是他们头上的利剑。 同样,架构师会考虑语言,但他们不会考虑实现;工程师需要考虑架构,但他们不会去写细节;程序猿是不配考虑架构的,他们要做的就是编码。
    所谓海纳百川,就是说做了软件就不要想用什么材料的问题,而是说用哪一种材料合适;所谓有容乃大,就是说没有经历过的事情,你是驾驭不了的。    
    至此,语言与我再无隔阂。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值