五千年(敝帚自珍)

主题:【原创】也来说说Linux和Windows下的开发感受 -- 昔杨今雨

共:💬203 🌺502
全看树展主题 · 分页首页 上页
/ 14
下页 末页
家园 看来是我文字表达能力不够

本来说差1%的意思是说在许多人眼里看来只差那么一点点的事,事实上背后有着巨大的差距。 没想到,到了读者的眼里就直接从字面取意了,竟以为我是说差距很小的意思,让我这份别拗劲就别提了。

家园 我感觉IDE在开发小规模程序的时候还是很好用的

开发大规模程序的时候,管理的作用比工具重要得多,ide的优势体现得不明显。

至于“Windows下的IDE让很多人成为一个庸庸碌碌的程序员”,我不敢苟同,不论用什么工具,在哪个平台,一个庸庸碌碌的程序员始终是一个庸庸碌碌的程序员。这样的程序员对技术没有追求,你让他用别的工具或平台只不过是加重对他的折磨,更有可能降低他们的效率。其实这也不错,毕竟工作只是生活的一部分,没必要自我折磨吗。

家园 工具而已。

最初是做硬件驱动开发的,觉得写上层软件和界面程序的很没技术,因为他们和硬件、操作系统打交道很少。

几年后,开始写应用层软件和界面软件了,和硬件驱动开发人员聊天的时候,对那些对底层一知半解的应用层软件开发人员很不屑;和应用软件开发人员聊天的时候,也不时表示一下对驱动开发人员对庞大的上层软件结构一直半解的蔑视。

几年后,又写驱动的时候,突然觉得,不那么熟悉了,原来间隔的时间太久,好多忘记了,不由得很感叹,曾经对这个工种是多么的熟练啊!

原来自己仅仅是个建筑工人而已,语言就是砖瓦,各种软件就是工具。

自己呢,就是老板的工具。

程序员就是一名建筑工人,混好了,落个包工头当当而已。

家园 说得好,花
家园 好的创意,需要有坚实的技术基础来实现

没有技术基础的创意,不过是幻想而已。

无法实现的幻想,说的不好听,就是白日梦。

这也是为什么PhD Student要花至少一年的时间去做related work survey.

一个真正的程序员,需要有至少10年以上的磨练。系统软件里面的复杂程度,各个概念之间的纠葛,只会用VB或者是其他script语言的程序员,是没办法用优雅的结构来解耦需求的。

开发团队里面的很多角色,可能title并不是程序员,可确确实实是要做coding的。设计人员,架构师之类的职位不仅仅需要大量的编程经验支撑,也完全不能脱离编程工作。

家园 被当做螺钉螺母培养的人的确不需要幻想

否则对专心工作不利。这是常识,每个做父母的,当老师的,当老板的都明白这个道理。因而被抚养的,教育的,灌输的也都是围绕着这个道理。

很不幸,做计算机这行与其它行业不同,如果不愿意做白日梦,不敢幻想,那么还是转行吧。拿做工匠的心态做软件自然发展下去就是蓝领,其工作性质大量routine化,整个商业应用领域就那么几种选择,pattern来pattern去,有什么可架构的,还不是整天被人忽悠或者忽悠别人。

Unix Philosophy 里说的好,随着硬体价格的下降与速度的提高,程序员的工作效率比软件的工作效率越来越变得更重要,当然游戏业,底层,手机等仍然需要程序员去压榨软件效率,但应用软件的这个发展趋势是很明显的了。也因此,script,VB这些高层工具才会变得流行,当然更高层的工具还会不断出现,其中心思想就是让机器去做尽可能多的以往必须由“蓝领”们做的活,虽然今天更流行叫那些写VB的是蓝领,但其实含意都差不多,只要你始终只关心How,而不懂得Why,那么这个蓝领是肯定的了,并不在于你是玩Ruby的,还是写Java的,或者忽悠架构的,本质上是在做一些不远的将来主要由电脑来承担的工作。

为什么PC这么多年始终就是那么一个方盒子,连尺寸都只有几个规格?为什么手机产业这么大种类无穷,光Samsung就有几百种设计,有些甚至在艺术设计上挖空心思,但却大同小异离不开多年来手机那三板斧,直到天地间出了一个iPhone?这里面告诉我们的道理不是什么多少年的“经验”,不是熟能生巧,也不是埋头苦干,更不是二十年的寒窗换来的title学位,这些素质虽然都重要,但在现代发达社会中这些素质已经可以被大规模成批生产,不是稀缺品质了,相对的,其重要性反而远远的排到了白日梦,幻想的后面去了。

家园 随便说说

每个公司都想把自己的东西弄成行业的标准。

一个领域不会有很多不同标准一起存在的,优胜劣汰。

家园 大龄程序员报个到

为了回这个贴,注册了个账号。在新兵营发个贴骗积分,还无端被咬。弄得回贴的心情都没有了。

废话少说,言归正传。说说一个玩了多年unix,至今不会visual studio大龄程序员的感受。不想介入windows和unix的争论,单从程序员的角度来说。

楼主的观点,很是认同。用windows环境,容易被人牵着鼻子走,最后成为庸庸碌碌的程序员,被时间淘汰(有大牛例外)。举个例子,若干年前的VB程序员,现在恐怕已经失业了,或者只能捏着鼻子学C#(天知道几年后微软还会搞什么新的花样)。这种状况对于一个程序员来时,其实是很可怕的。UNIX环境,更为开放。你想干什么,想学什么,都可以。而且更容易接触到底层的东西。这个在windows里,恐怕机会不多。从另外一个角度来说,更多机会接触深层次的东西,意味着更有机会成为专家,更容易保住饭碗。

程序员,和其他职业也一样,贵在精深。只会用VB,肯定没有开发VB的程序员容易混下去。道理就这么简单

就一些回帖也说一下自己看法:

1。楼主在一个回帖里面所说的持续集成(?)windows下面也有。大家常linux下的。主要原因是都是free sources,免费的,而且功能也足够强大。

2。有人下结论说计算机科学是应用科学。从我的观点看,计算机科学,归到数学更确切一些。举个例子,大家熟知不熟知程序语言,大多数都是从lambda calculus衍生出来的。建立,完善lambda calculus这套理论体系,然后在不同领域衍生出不同语言,这个是计算机科学做的。用这些不同语言,实现不同应用,已经不能说是真正的计算机科学了。

3。有人说程序员工具而已,也不用太悲观。不都是混口饭吃嘛。能力强的人,完成经验积累后,自己开公司想多挣点。不想折腾得,就呆在公司,想怎么不被lay off。无论是老板,包工头,还是工人,走自己的路就好了。不满意,就求变呗。

发贴的目的,是和这个版里的大牛交个朋友。不同意见者,请不要火气那么大。

家园 有请楼上单独开帖谈谈lambda calculus

一直对scheme这样的语言感兴趣, 但是一直也没有机会仔细琢磨, 有请goon给仔细讲讲.

家园 才疏学浅,不敢丢人现眼

WIKI上有很多资料,虽然不尽正确,但是末尾都有很多reference。就开个头吧

The hierarchy:

Formal semantics of programing language

- denotational semantics <--> domain theory

- operational semantics <--> Lambda calculus

- axiomatic semantics <--> Hoare logic

家园 实际上不能实现的白日梦实在是远远多于你所说的成功案例

我不是说不需要想象力。可是光有想像力是不够的,还要有实力。

If all you've done is come up with a great idea -- for example: "a new computer operating system that's fast, elegant, and bug free" -- but you can't implement it, then you have nothing.

作为一个在业界还算有点名声的实验室的工作人员,我每天的工作就是“戴着镣铐跳舞”,舞当然要跳的好看,但是你也必须时时刻刻注意到你的镣铐,否则容易闪了腰。

倒是我的孩子,懵懵懂懂,跟他根树枝,他就能产生无穷的幻象。可惜那只是童真,当不得真的。

还有你所说的iphone的例子,其实恰恰说明了积累和能力对于创新是多么的重要。为什么是apple,而不是motorola,或者其他充满想象力的山寨工厂做出了iphone?

家园 标准的竞争也是很有意思的事情

也是有很多企业政治因素在里面。当然也有官方向草根低头的例子,SpringFramework和J2ee之争就是一个典型的案例。

家园 说的是。
家园 举个浅显的例子来说明一下技术是如何影响创意的。

我们假设有一家极富创意的公司,开发了一个极富创意的网站。网站可能是outsource给位于印度的软件公司开发的,架构和pattern都是被忽悠来忽悠去的蓝领程序员设计的。

由于这个网站极佳的创意,上线人数猛增,在线用户数从几千人突增到百万量级。为了维持好的用户体验,他的蓝领工具程序员可以如何帮助你?他的成天忽悠的架构师要怎么去做?

一个基本的事实,经典的网络连接计算模型,每台服务器同时最多只能连接2千个左右的连接请求。按这个数字,二百万用户,就需要1000台前端服务器。

解决方案:腾讯最高同时在线人数3000多万,为了达到相应的处理能力,他们重写了Linux的内核。而这个改进,现在已经成为Linux Kernel的一个标准实现:epoll

一个基本的事实,数据库系统,哪怕是最昂贵的Oracle RAC,在单表条目超过百万之后,单集群的事务处理能力也不过是每秒数百次。

解决方案一:Google的GFS和著名的Reduce Map计算模型

解决方案二:多层次cache+分布式数据库。

以上只是两个最明显的问题。如果创意真的有幸能吸引到那么多用户,相信所要考虑的技术问题将远远多于这两个。而且这些问题,并不是没有脑子的工具程序员可以帮你解决的。当然,IBM的忽悠售前可能会告诉公司只要有钱,什么都不是问题。如果相信他们的话..... 我只能说,无论是google还是腾讯,都从未采用过他们的解决方案;) 希望真的有那么一天的话,最关键的就是能赶在用户开始对缓慢效率不满对创意厌倦之前解决这些问题。不幸的是大部分情况之下,这个时间并不长。

家园 今天没精力长篇大论了,稍微说一下

你说的网站流量问题,腾讯等都是超级流量的case,特殊情况特殊方案是很自然的,但也不一定都是要弄到去改linux内核的程度,我想yahoo,msn等的流量也不会比腾讯差多少吧,还不是都用得linux与windows就顶上了。而且这年头1000台的机器也不算什么,昨天一个在myspace的朋友说,他们那3000多台server,可你去看alexa上myspace的流量还赶不上yahoo呢。这里的意思是说,问题终究还是要靠硬件来解决,2000年那会儿是靠Sun server,先在CPU快了,linux,windows多弄些就行了。再早呢,那时CPU太慢,你想为什么二十年前没有web这种东西,也不一定是人们想不到,毕竟硬件水平摆在那儿,做软件的自然就围着现有条件转了。

说到改内核,你说的那个epoll,我不了解细节,但试想能够改进linux 内核而后来成为标准,这里面对创意的要求也不低啊。不要一提创意就以为说的是web 2.0,就是facebook,那些只是一方面,是应用范畴上的,在底程开发上,在怎样把graphic上做的更好上,同样每一个进步都离不开创意。而从硅谷这些年看,创意最多的人恰恰是计算机业从事技术开发的人群。国内有没有,当然有,但是太少,这是楼上贴子里的意思。

google等的特殊需求更是大部分建立在创意的基础上,这里面既有AdWord的商业模式,也有大规模廉价机器的并行搜索,甚至那个所谓的pagerank,但google的例子并不能说明绝大多数其他商业形式下的软件应用也可以采用类似方案。创意不是普世原理,google的创意是针对搜索的需求,但这些创意对你为2008奥运会开发个系统帮不上太大的忙,各行各业里有各自的创意,中国软件业创意少并不代表中国乡镇企业在成长中解决各方面困难中的创意就少,中国政府在解决十几亿温饱的问题上创意就不少么。

今天翻找一个以前的老贴子,看了几个风北客以前的回帖,很有思想但以前没看到,也就没把讨论继续下去。我发现一个现象,大概你们几位都是国内成长起来的软件专家,思维方式比较让我不习惯。风北客能从PM管理的困难上引发想到了很远,其想象力其深度都留给我很深印象,但对问题症结的本质却离题万里,其实问题很简单,只是人们的习惯思维在不断更新的计算机业没有完全适应而已。解决问题,不要想一劳用逸,不要贪图一概而论,但不能说了解需求要大家跟着感觉走,靠个人修行来保证产品的结果,这种天方夜谭现在很难再卖的出去了。 经典SDLC下有很多问题,但绝大部分不是人的问题,更不能用人的能力做托辞,因为制度的本质就是脱离人的能力而存在的。 制度的问题只能从制度着眼,改进就是了,细分,条条框框越多,漏洞,理解上的不相容就越少,这是制度化的真髓。现在的问题是典型的那句话“法制不完善”。 另一个原因是随着制度的细化,overhead越高,在规模达到一定程度以前,对效率往往是负面影响,这也是许多“一线”人员对制度恐惧的根源。但这个问题也是有解得,即然是软件工业,这方面的工具化,自动化也会慢慢发展起来的,效率最终不应该成为开发的阻碍而得以把制度惯撤下去。 最后的困难是计算机业技术的更新快,这就要求制度不合理的地方要随着更新,工具也要随之改进,而制度本身不同层次也有不同的更新速率。

这些要求在目前的情况小基本上还是大部分在手工状态下,这与管理层本身对计算机业的了解成度有关,许多大公司主管一级多少还是从其他行业转过来的,等得Gen X, Gen Y进入高层的时候,他们多些问题的看法与关注度就会与这一代管理层不同了。 软件管理本身是很复杂的一个行业,直到这一行业出现微软,intel那样的大厂商之前,目前的困难不会出现大的转机。一个有趣的例子是,微软做IDE多少年了,但一直到最近才开始推出个象样的team system,按惯例,这也准是微软看到了这个市场的规模达到一定水平才会有的举动。这种例子只是冰山一角,但软件业的加强管理,提高管理的自动化是不可逆转的趋势。这方面,应该承认老印的嗅觉还是比较灵的,离岸外包许多就在这方面下功夫。

说是少说几句,结果还是码了一大篇,想到哪就写到哪,这个话题说起来没个完,还是求同存异吧。 但是对用户需求的管理不谈,只说了解得话,这还是个很有意思的课题,风北客等如果有兴趣,可以多多交流。 我自己最近比较感兴趣的是观察facebook如何因应用户而改进他的网站,当然不是为了照猫画虎,而是希望了解web这个用户群体的需求在没有正式的需求文档等程序(facebook内部当然是有),沟通的条件下是如何满足用户要求的,必竟这才是最终目的。而如果web这个人数级别的群体可以满足,一般商业应用内部用户的需求就不在话下了。

通宝推:铁手,
全看树展主题 · 分页首页 上页
/ 14
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河