您的位置:首页 > 编程语言 > C语言/C++

C语言开发基础软件理解

2011-11-03 22:18 183 查看
转孟岩老师的话:

基础软件开发崇尚的是自由、直接、透明、简单、高效,要像匕首一样锋利,像战士一样勇猛,像农夫一样朴实,反对繁琐华丽的设计,反对架床迭屋的层层抽象,反对复杂的结构和不必要的灵活性。而Java社群多年来形成的设计风格与此格格不入,甚至可以说是对立的。Java在意识形态上是要面向企业应用软件的开发,所以特别强调架构,强调设计模式,强调标准,强调规规矩矩,强调高姿态,强调一种华贵的宫廷气质。在C中,你吃饭就是吃饭,捧起碗来喝酒,放下筷子骂娘,甩开膀子抓肉,撸起袖子抹油。而在Java中,你经常为了要干某件事,先new一个对象,然后以这个对象为参数new另一个对象,如此这般重复n遍,得到真正需要的对象,最后就是为了调用那个对象的一个方法,就好比吃饭时焚香洗面,漱口净手,战战兢兢,毕恭毕敬。在C中,遇到问题要像亡命徒,像流氓版程咬金,管你三七二十一,冲上去就是三板斧,还怕劈不死你丫的。在Java里,遇到问题要像宋襄公,要张榜檄文,要名正言顺,要礼仪之邦,要把架子拉开了,把谱儿摆足了。Java的口号是,不管劈不劈的死,先把你小子感动了再说。
这套繁琐的东西,对于基础软件开发来说,既不必要,也很难习惯。需要说明的是,这不是Java语言的问题,其实Java本身不必如此复杂、如此巴洛克。从语言本身来看,Java也可以是轻快直接的,也可是酣畅淋漓的。只不过十多年来几乎没有人这样用过,所以大家已经不知道:如果不来个一步三叩首,那么该怎么用Java写程序?

做系统软件开发的时候,重要的是理解系统的运作方式,那些漂亮的抽象手法和高级特性是次要的。

孟岩老师的话貌似很正确啊,毕竟系统软件开发大部分采用C语言,而C和C++主要用于支持其他语言的开发的,这种开发模式跟企业级开发是不一样的。企业级开发是追求变化的,跟随客户不断变化的需求,而基础软件开发,是做成API,供上层应用软件(如JAVA调用)调用的,所以自己的PCC和PETA软件是以灵活多变为主开发还是以追求性能,简单直接为主开发为主的呢?想想就知道了,基础软件开发模式和上层企业级用户有点不同吧。

所以了,C语言是易开发不易变化的,基础的,供上层调用的软件。而JAVA是适合开发上层的,跟得上企业级用户灵活多变的需求的。

所以我觉得拿C语言开发时,还是拿利用它的简单直接特性开发,不要让C语言做面向对象开发,那是没用武之地的,C语言应该发挥它的与硬件紧密结合的长处。

感觉C语言是工业级语言,适合结合着具体的硬件平台,搞工业级底层开发。而那些ruby,lisp之类的动态语言反而适合数学演算,适合教学,是门学术性语言。

所以大学教授在教学生学C语言时,永远没外面的企业工程师教授C语言专业。工程师比科学家更能带给学生C语言的最深切直观的体验。

各种语言都能找到自己合适的应用之地。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: