技术开发 频道

是谁“绑架”了程序员?

  【IT168 分析评论】本文的意图不是拍某种编程语言的砖,也并非比较开发工具和平台,而是在说一种商业策略,以及技术的依赖性和平台的伪开放性对我们(开发者)的影响。

  公司策略:做什么能把程序员当枪使,还要说我的好话...

  个人策略:程序员做什么枪能卖个好价钱...

  最糟糕的事情是,我们被当廉价的枪使,是不是有一种冥冥中的东西在制造这种趋势? 我们作为程序员被绑架的那一天就是我们开始掉价的那一天。

  绑架我们的东西可以有很多种,具体怎么绑架不是我们说了算,很多时候是大公司的平台和产品说了算,尽管如此,我们不得不对商业的发布平台产生严重依赖,离开这些平台我们的程序就几乎毫无价值了。

  个人感觉,Sun当年推广Java的策略仍然是为了它的服务器工作。Java这样一个庞大臃肿而且缓慢的架构,要运行N多的关键业务,稳定性还有要求,不就是逼着大家买高端机器么? 归根到底Sun是在卖硬件,MySQL的收购不过是为了和IBM的DB2+S/Z+IMS系列正面竞争一下罢了,Sun对卖软件和服务没有兴趣。Sun当然还有很多吸引人的地方,无论是跨平台性,网络功能和UI的继承,OO的方便性等-----我感觉基本是为了吸引程序员的考虑出发的。开发网站吗? 世界上有N种XSP语言,Java只是选择之一。只不过它的如意算盘打错了,蛋糕被IBM拿了过去,这是Sun想不到的。

  搜索引擎用Java? FPS游戏用Java? 计算机的能力翻100倍可以考虑一下。而JavaEE一出生就是某些大厂商创造垄断利润的怪胎。真的要搞大型的Java开发,基于某个厂家的Web服务器和应用服务器几乎不可避免。但是选择其他的语言就没有什么这方面的限制。所以说Java是一种牟利的工具: 虽然对于小的应用我们可以选择一些免费的应用平台,这些长尾的利润大公司们暂时顾不上,或者干脆采取支持的态度来打压竞争对手。

  关注于业务,Java的开发平台使得程序员和开发商能够专著于问题的解决而不用花太多时间在底层的资源管理上面,同时很多种灵活的架构能够帮助我们更快的实现交付和配置。看起来是大公司和开发商的双赢,实质是这些商用平台的被依赖程度和售价越来越高。开发商的产品和程序脱离了某个架构平台就会成为废品。Java是开源了,但是Java并不自由。同理,我们可以使用Google appEngine来创建自己的程序----但是离开了google这个程序就是废品。米饭是免费的,只是菜贵的惊人。

  在利润分配的环节,java和微软.net并没有本质的区别。相信Oracle会继续大力支持java,确实程序员可以用Java的JDBC写出"跨"数据库的程序,包括调用存储过程----别忘了后台的存储过程和数据库的厂家甚至版本是密切相关的,开放和开源并不能摆脱依赖。Java的开放,是非常有限的。

  Java确实是一个平台,确实"跨平台",所谓的"跨平台",实际上是指跨越同一家公司实现的JVM。除此以外别无"跨"的地方。但是却依赖于某些开发和部署的平台产品,这是一个悖论,直接导致了Java平台仍然是个相对封闭的系统,和传统的UNIX主机系统相比,利润产生的分配的方式,没有变化。以前是卖硬件+操作系统平台,现在是卖web服务器+应用程序服务器平台;以前我们用C调用系统函数,现在用Java来填充框架。剥削方式没变,只是填空题的具体字眼变了,好像是对开发者更友好了。

  只是以前被OS绑住手脚,现在被这些服务器绑住手脚;以前的困难是在不同OS之间迁移,现在的困难是在不同Server之间迁移。

  有区别吗?真的要跨平台,就必须只有一种"JVM",只有一种"Web服务器标准",只有一种"应用程序服务器标准",等等。

  Java的亮点在于开发和部署的速度,框架的存在也是为了牺牲设计的自由得到开发的速度,和开发人员设计架构的统一性,这是它具有的且仅仅具有的意义。

  一个语言/平台的优点首先应当是为了创造价值。但这个价值的掌握并没有因为Java的开源而对开发者更有利。价值的流向仍然是大公司的垄断和封闭造成的。

  内容来源:http://bbs2.chinaunix.net/viewthread.php?tid=1440931&extra=&page=1

  欢迎大家一起讨论!

0
相关文章