banq,
关于open是否适合企业。我想其实这里面各方面的因素非常复杂。open source的优点很明显,缺点也很明显。
而一个企业选择技术方案,可能会受到的影响因素很多。
比如cto的个人喜好,技术水平,公司和公司之间的关系,预算,人手等等等等,总的来说,政治意味远远大于技术考虑。
open source虽然没有vendor lock-in,但是support始终是个问题。我们公司前段时间曾经使用ojb,结果出了问题,developer们不知道怎么解决,只好重写persistence。
反之,如果用proprietary的方案,比如ibm, ms的东西,可能会有依赖性,可是,不见得每个公司,每个project manager都在乎这一点。如果你跟你的客户说:我要用open source的,因为blah blah blah。我想客户会睡着的。而如果你最后说:因此预算会多加1个million,或者说:缺点是没有support,客户会跳起来的。
个人感觉,要用open source,一定要谨慎,要用很多人都用过,证明很成熟的东西,或者你自己完全有把握控制的,(比如自己写的)。第一个吃螃蟹的事是作不得的。
另外,现阶段,用.net做小型的web app,开发效率明显比java快,投资小,这就是.net一个致命的好处。
我客户不在乎你的技术是否open,是否用了o-r mapping,是否mvc,设计是否OO,我只要少花钱。不要跟我说依赖ms有什么长远的危害,我只关心这个项目我到底要花多少钱,随后的维护要花多少钱!
对了,关于c++,好像曾经有一篇搞笑的文章,说c++的发明就是为了保住程序员的饭碗和高薪水。虽然被Bjarne否定了,但是看来好像和一些c++的扇子的观点很象嘛。
大家学c++就是为了它不好学,复杂?其实,据说perl是最能保住饭碗的语言,大家还是改学perl吧。
呵呵,对一个语言的程序员来说,这门语言复杂可能确实是一个自豪的资本,但是对这门语言本身来说,却是个shame,至少是个缺点。
国内我不清楚。美国的c++还是java程序员并没有明显的报酬差异。c++的问题是工作机会较少,java的问题是号称会java的程序员满大街都是。至于哪个混得更爽,不好说。可能还是要看你的具体水平。
不过我承认,Java的简单确实让程序员贬值了,因为门槛低了嘛。不过,过不了几年,.net程序员也是一样的下场,甚至更惨。因为ms把开发工具做得更可视化,更傻瓜,更容易宣称“我会.net”。:->