今天读了一篇"Linux之父炮轰C++是最糟糕的语言"的文章,心有所感,把它写下来和大家分享一下。
这里我不想做语言之间过多的评论,任何语言都有他的亮点,也有很多狂热的拥护者,我只是在他们争论中感觉有些话很是有道理。引用Linus的一句说。“字符串/内存管理根本无关紧要。这不是重要的部分,而且也不复杂。唯一真正重要的部分是设计。”
对于软件开发来说,重要的不是你使用什么做的,而是你怎么做的?这也就是“ 设计!才是重中之重”的道理。那也就是为什么软件开发中要有架构师,分析师,项目经理,大多都是为了能设计出更好的,更优的软件流程来。而至于你采用什么做就变的次之。
从事软件行业也有8年时间了,回想一下,这8年学会了什么?从最初的学校里学Basic,pascal,C,到工作时用PHP,Delphi到C++ builder再到Java,最后Java之前的全忘了,不知怎么用了。最终我学会了设计模式,我能够编写出更好更高效率的代码了,能更好的把握住设计的尺度。而对编程语言的掌握,对操作系统的熟悉,工作相关知识的了解等等。那些只是自然而然发生的事,那些并非能力的提高,而是知识的积累。“抽象”,“面向对象”,“设计模式”,这些重要吗?重要。对软件开发相当重要。但重要不是必要,执迷于“抽象”会使你离目标越来越远。当我们一次又一次的提取出事物的共性,建立起抽象层的时候,我们可能丢弃了真实。OO并非"One size fits all".
这里我不想做语言之间过多的评论,任何语言都有他的亮点,也有很多狂热的拥护者,我只是在他们争论中感觉有些话很是有道理。引用Linus的一句说。“字符串/内存管理根本无关紧要。这不是重要的部分,而且也不复杂。唯一真正重要的部分是设计。”
对于软件开发来说,重要的不是你使用什么做的,而是你怎么做的?这也就是“ 设计!才是重中之重”的道理。那也就是为什么软件开发中要有架构师,分析师,项目经理,大多都是为了能设计出更好的,更优的软件流程来。而至于你采用什么做就变的次之。
从事软件行业也有8年时间了,回想一下,这8年学会了什么?从最初的学校里学Basic,pascal,C,到工作时用PHP,Delphi到C++ builder再到Java,最后Java之前的全忘了,不知怎么用了。最终我学会了设计模式,我能够编写出更好更高效率的代码了,能更好的把握住设计的尺度。而对编程语言的掌握,对操作系统的熟悉,工作相关知识的了解等等。那些只是自然而然发生的事,那些并非能力的提高,而是知识的积累。“抽象”,“面向对象”,“设计模式”,这些重要吗?重要。对软件开发相当重要。但重要不是必要,执迷于“抽象”会使你离目标越来越远。当我们一次又一次的提取出事物的共性,建立起抽象层的时候,我们可能丢弃了真实。OO并非"One size fits all".