Hello World
Spiga

老赵书托(4):浪潮之巅(内含牢骚,不喜勿入)

2011-11-06 06:35 by 老赵, 7614 visits

我是一个码农,一个很彻底,很标准的码农,自认为比我遇到过的绝大部分技术人员要码农得多。我喜欢搞技术,玩技术,不喜欢搞管理,搞人,或是搞产品等等。我是死脑筋,凡事都要想很多遍,想个明白,想不明白就不表态。我不喜欢猜测,不喜欢无法验证的事物,因此我成不了那种常见的,著名的,经常指点江山的分析师。每次有人问我对某某事物未来的看法,十有八九我只会婉言谢绝。其实照我的个人口味,我是不太会对《浪潮之巅》这种类型的书感兴趣的,但之前在网上看过谷歌黑板报上的连载,感觉不错,因此也去“搞”来一本品读一番。

这是一本历史书

浪潮之巅

在我看来,《浪潮之巅》其实是本讲产业历史的书,记录了IT产业里那些曾经(或是现在)叱诧风云过的明星,从大家耳熟能详的微软谷歌,到许多人看来并不怎么引入注意的惠普和雅虎。这些明星从起步到鼎盛,再到平淡甚至是衰落,似乎只有苹果现在正好刚到达波峰——毕竟这些都是悠久历史的公司而不是互联网新贵。这样的书其实很难写,因为要去了解的东西太多,更难得是把这些信息有条不紊地整理起来,这点我就自忖做不到。

而且在我看来,写历史一定要保持中立客观,应该以记录和描述为主,而不是阐述自己的观点,简单如“太史公云”便已足够。但是,既然已经了解到那么多的情况,显然远远胜过绝大部分人,有多少人又能够克制住自己内心叱咤风云的冲动,不要那么急于做出“预言”或“展望”?殊不知,同类书籍中的大部分都像是些预言家的作品,而互联网上也充斥着看过几篇二三手新闻报道,便能够自信满满指点江山的产业分析师。反而是码农同学们,你们都到哪里去了?

这也是我为什么之前会说“按照个人口味”会对此类书籍不感兴趣,因为我只是一介码农。我希望类似书籍可以更多一些,如今能让我立刻回忆起来的,似乎也只有许多年前的《Borland传奇》,以及前两年出版过中译本的《观止》。实在应该多出一点,让人相互参考也好。即便我愿意相信《浪潮之巅》的品质,也想看一下其他人眼中的历史来对照一番——是吧,我就是那么死脑筋。

当然,这本书也不只是记述了巨人们的历史,它也讲述了一些有影响力的事物,从摩尔定律的影响到风险投资,从硅谷到斯坦福大学,等等。说起来实在丢脸,从理论上说,我也是参与过创业的人了,但也只有看了这本书以后,才明白对于一个创业公司来讲,股权分配之类究竟是什么样的操作方式。

值得一提的是,由于我决定远离纸书,因此这本书看的是电子版。感谢电子工业出版社Just Pub团队的电子书试点服务,要领先则必须做别人不敢做的,管那些小白们说什么。《浪潮之巅》的版式也符合我的口味:行间距较大,段间距明显,首行无缩进。

技术人员的踏实

这本书我觉得适合行业里绝大部份的人拿来看看吧,就当是开阔眼界。我也更希望读过这本书的人能够学会这本书里面点踏实做法。这虽然不是一本谈论技术的书籍,但却能对我这码农的胃口,我认为很关键的一点就是它符合我的思考的“规范”:有一分事实,说一分道理;有七分依据,不做八分肯定;即便无可避免,也尽量从各个角度给出各种推测,而不是只推测出自己喜欢的结果。我本以为这是个很朴实,也很普适的准则,但现在看来似乎还真不容易被人接受。

就拿最近发生的一件事情来说吧,京东上个星期搞了次半价促销,结果服务器撑不住了,于是又引起了微薄上一些有头有脸的大牛对.NET技术的批判,说.NET和Windows性能差撑不住云云。我自然还是一贯以码农视角来应对这些问题:说.NET和Windows性能差,就一起来跑个测试,无论多简单的Benchmark来试试看嘛。我现在只是没有条件而已,以前有条件的时候做过好几次,性能绝对不差,远远胜过当时最火热的Apache——当时nginx还没有像现在这么流行,而且就算看现在nginx的数据,也并不比我当年测IIS领先多少嘛。更重要的是,这些数据早就没有什么意义了,因为对于绝大部分情况来说,性能瓶颈还是在你写的程序上,而不会是这些技术本身的能力上。

可惜大牛们依然只是再不断地举出“事实”:为什么搞个促销活动,淘宝就好好的,但京东就出问题呢?显然,他们的答案是“Java的性能比.NET好”。这里我就不提什么“架构最重要”这种老生常谈的东西,我只想说,在把原因归结到技术本身的能力之前,先关注下双方对技术的态度如何吧。淘宝在各大会议分享他们的技术探索的时候,京东在做什么?当淘宝的技术人员在社区里与人交流的时候,京东方面似乎只能看到刘总本人在搞笑搬的叫着“加三倍服务器”。淘宝的技术团队(据说)独立架构,京东的技术团队隶属信息部。一个是正规军,一个是保安处,为什么说他们战斗力的差距来自手中武器?淘宝和京东在对待技术的态度上天差地远,在此之前比较技术又能有多大意义呢?

我想大家都明白,技术是要看人怎么用的。比如StackExchange用.NET做的很不错,可能的确是因为他们的技术人员水平很高,平常人根本达不到(哎,原微博被删了)。但同样从这方面来讲,淘宝的技术人员在Java乃至各方面的水平都是国内,甚至在世界上首屈一指的。就拿薪资待遇来说吧,阿里巴巴技术人员的待遇在国内属于第一梯队,而今年早些时候我从京东内部打听下来的情况,似乎我能获得的待遇也就跟我工作一年的时候差不多。其实我也并非不知道身边“.NET转Java失败”的案例,要知道当时他们也是投入重金聘请了许多业内高手,但最后还是失败了,但我绝对不会以此事说Java平台如何——我只会骂Java语言,因为我只对这方面有十足把握,因此论证也绝对仔细。

我相信大牛们的水平一定比我高很多,眼界也一定比我开阔,思维也一定比我严谨,逻辑也一定比我清晰。我说的这些你们肯定都了解,但为什么就回避了呢?技术人员有倾向性是好事,这让人们产生热情有动力去探索,但是在讨论技术时,无论如何也该用技术人员的方式啊。

我始终坚持技术人员应该有技术人员的风骨。技术上的事情其实最容易讨论,因为人的观点是活的,人有喜好有感情,但技术不会,完全能够做到有一说一有二说二。但是,我总觉得国内许多技术人员在这方面有所欠缺,双重标准耍起来端的熟练。一会儿可以说:“很多事情不是技术决定的,XX更重要”,一会儿又表示“MySpace的失败一定是因为.NET技术问题”。这实在苦了我这个码农,无论是向人打听,还是从各个演讲里,都希望能找到到底是什么“技术问题”,但都基本得不到结果。点评转Java也一样,他们到底因为.NET出了什么问题了呢?如果您了解这两家的情况,也请告诉我,无论是公开还是私下都行。

我其实本已经对国内这种缺少“技术风骨”的技术风气有点习惯了,但这次被人点了名,一时没忍住又掺和了进去。之前还有某位反对微软的同学,据说是为了“兼听则明”会主动前来“挑战”。但有了即便拥有十年经验之后依然还是“三分事实,七分推测”。最近一次,则是根据Build大会上的一些演讲来批评微软的技术走向。我自诩看过的Build大会视频绝对多过这位同学,但我还是认为自己绝对还没有到可以对此表态或是做什么展望的程度,更谈不上能如此“自信满满”。这位同学,我相信您一定也会看到这篇文章,这次您一定能明白我的标准了吧?您要再来的话也请换种方式。还有,之前您一直看不上国内社区,那么这段时间里有没有在我推荐给您的StackExchange,Reddit或是Y Combinator上“兼听则明”呢?

《浪潮之巅》有资格骄傲,但它给我的感觉却是无比的踏实,这值得我们学习——但我依然会怀疑,有些人看了浪潮之巅以后,是否会更加自信满满地叱咤风云,指点江山呢?

扩展阅读

Borland传奇

正如之前提到的那样,与《浪潮之巅》同类又靠谱的书实在不多。《Borland传奇》算是一本,如果您没有看过的话也不放搞来一看。我当时看这本书,是因为听说过Anders Hejlsberg的传奇(他其实也是我接触C#的主要原因之一),也对Borland当年的辉煌心生向往。这本书的作者李维与《浪潮之巅》的作者吴军一样,都是技术和文笔都十分了得的人,而李维Borland的资深员工,可谓亲身经历了公司的起伏,以他的角度记录公司的历史,相信可以胜过一些旁敲侧击所得。

一个创始人Phillippe打工赚钱,一个创始人Anders开发产品,并最后靠Turbo Pascal一飞冲天,Borland就是这样诞生的。Borland在当年完全可以称为是一个软件帝国,相比微软绝对有过之而无不及。在当时程序员的眼中,Borland的产品可谓是各个精品,在与微软的竞争过程中多次获胜。可惜在巅峰时刻,Phillippe被迫辞职,郁郁不得志的Anders被Bill Gates揽至麾下,在微软继续实现他在开发平台上的构想。从我之前翻译过的一篇文章来看,Anders一直扮演着指引语言发展方向的作用,这也是为什么C#比Java发展更为健康的缘故。

之前我也一直以为Borland的失败是由于微软挖人的结果,也会想为什么一个创始人会放弃自己的公司,而投入竞争对手的怀抱。看了《Borland传奇》之后,至少在这本书里,并没有将Anders的离开作为Borland失败的主要原因,毕竟他也只是一个人。Borland迅速衰退的主要原因还是决策上的失误,市场判断错误,产品线过多,从技术导向变成销售导向,以及Java开发工具和数据库产品上的失败等等。一群天才技术人员的成果败在一群高管的折腾里,说起来也算是技术浪潮使然,造化弄人。

最后,如果您感兴趣的话,也不妨看看《观止》,记述了微软构建NT的风风雨雨。内容不错,可惜翻译质量实在有些不敢恭维。

相关文章

Creative Commons License

本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名赵劼(包含链接),具体操作方式可参考此处。如您有任何疑问或者授权方面的协商,请给我留言

Add your comment

78 条回复

  1. 老赵
    admin
    链接

    老赵 2011-11-06 06:35:43

    终于写完了。烧菜,吃饭,爬山去也!

  2. 神奇
    124.236.165.*
    链接

    神奇 2011-11-06 07:05:11

    技术没有高低,只是人有高低

  3. 链接

    ProjectBian 2011-11-06 07:26:01

    话说,N久没有见到老赵写博客了,还是希望多多分享心得嘛,哈哈……

    再有,对于文中的观点,深表赞同。一切以事实、证据说话,那种猜测、虚妄的言论,实在让人好笑。微博上的那次争论,我也从头看到尾了,也是一笑置之。

    坚持“技术人员的风骨”,这才是最重要的。

  4. ng
    114.91.121.*
    链接

    ng 2011-11-06 09:26:58

    任何语言,任何平台,任何公司,能长期存活的都有其智慧所在。我和老赵比较像,我也喜欢你的类型,我是杂粮动物,能有市场的技术我都会深入去研究,我现在自己创业,不应该说创业了,我的公司已经活了五年了,每次看别人骂某些技术烂时,我只会默默数着自己账户的收入偷笑,我已经五年没去公司工作了,我也从未打算再写任何简历,因为我的产品收入的确不错,每个不同的平台我都心存感激,因为通过学习平台语言和框架,我学到着这个平台人的思想精华,通过平台打造出的产品让我一次性付款很体面的住在顶级的公寓。

    另外对于老赵批判之人我也了解,我厌烦此类人,你可以不去学某个你看不起的技术,但你没资格公开毫无凭据完全主观方式的批判,既然你厌恨你没深入学过何来评判之基础?不过我也不愿意和着等人吵,让他不屑去吧,我很感谢微软平台每年给我带来的30%收入。

  5. 躺着读书
    112.95.6.*
    链接

    躺着读书 2011-11-06 10:13:00

    其实平台和社区是更为重要的东西。java选择在升级语言上慎重和拖延,从某种意义上来说也是:照顾社区,Sun穷,两个原因造成的。java产品,包括很多新东家oracle的,都跑在1.3的版本上,因为商业承诺等等原因必须保证向前兼容。

    我早说过java进入oracle的手肯定是巨大的利好。因为oracle很有钱,而且oracle也最擅长给他的员工开高工资……非常非常非常高。对于oracle来说同时维持好几个不同的版本并行fix bug是很容易的事情。而当年的sun不仅没有钱,也根本没有这么多的工程师来做这个事情。

  6. lparam
    183.13.198.*
    链接

    lparam 2011-11-06 10:29:25

    爬南山还是莲花山呀?

  7. 老赵
    admin
    链接

    老赵 2011-11-06 10:32:47

    @lparam

    南山啊,莲花山就是个小土坡,嘿嘿。

  8. 老赵
    admin
    链接

    老赵 2011-11-06 10:34:35

    @躺着读书

    其实我一直没搞明白为什么1.7没法兼容1.3,当然我的确见过只能跑在1.6而不能用1.7的例子(比如Maven),但我始终认为这是技术上的缺陷(不管是Java本身还是特定某个项目),Java 1.7应该完全兼容1.3的。

    而且,就语言层面来说,兼容性真不是理由。语言不同于运行时,这东西要兼容实在是太容易不过了。

  9. 躺着读书
    112.95.6.*
    链接

    躺着读书 2011-11-06 13:30:12

    你说的这个是向后兼容啊,我说的是向前兼容。 word2007能读word2003的文档叫做向后兼容,word2003通过安装插件也能读word2007的格式叫做向前兼容。 向后兼容是容易办到的,1.7也是能够跑1.6的class文件的,除了极少数情况(项目里面采用了一些非JDK API的包,比如说com.sun.*下的某些,比如说本来就被声明成“废弃的未来将被移除的”)。

    但是,很多有钱的大佬都是很懒的,他们就是喜欢用1.3 或者1.4的 虚拟机。理由是这些虚拟机他们调优得很好啦,功能够用了不愿意升级啦…… 等等借口。 这个时候即使java语言升级到了更高版本,但是只要语法不改变,拿到源代码设置编译级别为1.3或者1.4 就能编译成在1.3或者1.4虚拟机上能运行的版本。某些技术也能够直接修改二进制class文件

  10. Astar
    61.163.84.*
    链接

    Astar 2011-11-06 14:06:53

    这本书看了一半了。

  11. 老赵
    admin
    链接

    老赵 2011-11-06 15:27:35

    @躺着读书

    现在用中文说向前还是向后兼容都混乱了。首先不谈这个要求是合理还是蛋疼,但谁说Java语言就做到这种兼容了啊?我说Java不思进取,没说它一点没变啊,1.4~1.7都是有变化的,只不过变的无关痛痒甚至蛋疼……

    现在甚至Java在二进制级别都没法兼容,因为Java 1.7增加了invokedynamic指令。反倒是.NET,除了1.0到2.0的时候为泛型增加了一些指令以外,之后都是风平浪静的。C#是再此之后才开始发力的,都丝毫无损二进制兼容,因此二进制兼容完全不能作为不增强语法的理由。

    Java完全可以自己升级,谁想用旧版本就继续用呗,没人说不允许你用。还有,真有人会针对Java 1.7写代码,但是想运行在1.4上?那么类库怎么办?

    这些真的都是无谓的借口,早就听过无数次了,一次次拿出来解释不如及早接受现状。其实广大人民群众和厂商也早就无法忍受Java的不思进取了,不说社区里如Scala越来越引人关注,连Eclipse都忍不住推出改良版Java了(不过个人觉得这语言设计得没什么出彩的……)。

  12. jjx
    125.114.177.*
    链接

    jjx 2011-11-07 00:26:08

    现在没人这么傻了,光去比较纯语言的性能,其实是在比较整个生态圈而已,大部分好的东西本身windows原生支持都没有了,.net 的纯语言优势也没有大的作用.

  13. 老赵
    admin
    链接

    老赵 2011-11-07 00:40:44

    @jjx

    那就举点这方面的例子给大家讨论看看到底是有还是没有(虽然个人没觉得差在哪里),至少比直接说什么性能问题要靠谱一些。

  14. rexzhou
    61.153.18.*
    链接

    rexzhou 2011-11-07 00:42:48

    《Borland传奇》大学时代一直在床头放着好几年,看了好几遍

  15. 忍不住说几句
    115.204.231.*
    链接

    忍不住说几句 2011-11-07 01:17:08

    jjx说到点子上了,windows作为操作系统不会比linux差,C#语言本身优于java(毕竟在语言设计上有时间点的优势),.net runtime可能不比java runtime差,iis可能不比apache,nginx差,但很多时候是整个生态圈,大部分的大型互联网公司都选择了 linux, java, php, apache,这实际上就已经形成了生态圈,在高性能,高并发,海量数据方面,微软平台虽然也能做到,但没有形成生态圈。 另外一方面,使用linux的话,你往往不得不去了解操作系统的一些核心的东西(我的个人经历是如此),一个linux程序员的成长速度要远快于windows程序员(还是个人经历,需要数据佐证,至少我见过的linux程序员在比例上是由于windows程序员的,如果有业内资深面试官提供数据就好了,还可以顺便剖析一下原因) 有点语无伦次了,下次想好了,或者有数据佐证了,再多说点。

  16. 忍不住说几句
    115.204.231.*
    链接

    忍不住说几句 2011-11-07 01:18:53

    貌似commet time 的时区不对。

  17. 老赵
    admin
    链接

    老赵 2011-11-07 01:30:24

    @忍不住说几句: 另外一方面,使用linux的话,你往往不得不去了解操作系统的一些核心的东西(我的个人经历是如此)

    你的意思是Linux不经过内核方面的调优就没法接受还是怎么的啊……Windows内核方面的书或资料从来不缺,了解核心的东西是程序员的选择不是操作系统强迫你的。当然,Linux的优势是能够看代码,不过这又涉及到几个问题:

    1. 多少Linux程序员会看或是看过代码?Linux程序员那么多,如果有10%的人看过(甚至只是看过《深入理解LINUX内核》),我估计国内技术水平早就天翻地覆了。
    2. 看Linux代码就不能用Windows了吗?我大学里学的也是Linux,也看过一部分代码。我是认为学什么和用什么是完全可以分开的,我一直这么实践。
    3. 看代码真是最好/必须得学习方式吗?我个人就觉得看《深入理解LINUX内核》(就是AV女优看的那本)比看代码要长进的多,因为这种资料里的Why更重要,代码主要就是What。代码对我了解一个事物来说的确是无奈之举了……

    至于生态环境,可能是吧,这些也是可以讨论的东西。

  18. 忍不住说几句
    115.204.231.*
    链接

    忍不住说几句 2011-11-07 01:46:53

    实际上Windows内核的东西一直都缺,只是最近几年,有了Windows泄露的windows 2000, nt4源代码, windows research kernel, 还有reactos(现在稍微像个样子了)这一套,还有潘爱民,毛德操出了书而已。如果你玩windows kernel的话,你会发现 IoCallDriver step不进去,看不到源代码,因为还是有很多代码是没公布的。

    我说“不得不”的意思是,1) linux上的工作往往要求比较高,2) 想在linux圈子里面玩得开,拿高薪,就必须这样。(还是个人经历,个人观点,我不能证明,这样也比较客观)。

    你也可以问问陈硕他从windows转到linux有什么感想,参考下他的意见。

  19. 忍不住说几句
    115.204.231.*
    链接

    忍不住说几句 2011-11-07 01:53:21

    再举个例子,一些比较新的语言比如ruby, python的第一平台往往不是Windows(我觉得这也是一个趋势), 比如我想使用python,gevent,msgpack做开发,先在windows上实验下,楞是整了两天都没整好,都是一些编译器版本, runtime dll的问题,反过来,linux其实就是几条指令。

  20. 老赵
    admin
    链接

    老赵 2011-11-07 02:14:44

    @忍不住说几句

    你说的是缺源代码(或是symbol文件?)所以调试不进去,我倒不关注这些,如果你要玩内核一般也不会搞Windows(除非搞的就是逆向黑盒之类的)。对于内核实现的分析内容,潘爱民毛德操是近两年的,不过Windows Internals都好多年了,而且随着内核发展是不断更新的,这些是我说的平时开发时“需要了解的内核的内容”。

    至于你说例如gevent,因为这些玩家本来就是针对Linux开发的,一开始在Windows上玩不了也很正常。等发展起来了,自然会支持Windows,例如Node.JS。所以我也基本不担心Windows上用不了什么好东西,因为好东西必然要会考虑受众广泛,Windows上受众之大也是不可忽视的,除非它天生就“没必要跑在Windows”,比如一些服务器组件,它们只需要Windows上的客户端就行了。而这些么,自己都能写一个出来,都不成问题。

  21. 四有青年
    114.80.125.*
    链接

    四有青年 2011-11-07 03:49:07

    见怪不怪,国足输球三怪,怪裁判,怪场地,怪天气。。。

  22. 链接

    scott.wong.e 2011-11-07 04:09:10

    我最近遇到一个问题,向赵老师请教:我在项目中使用了(URLRewriter)*.do 映射到*.ashx,在ashx中我实现了IRequiresSessionState和IReadOnlySessionState,可是悲剧的事情是session始终为null,不知道除了没有实现IRequiresSessionState接口情况下session为null之外,还有什么情况会导致ashx的session为null(环境为iis7.5,管道为.net 4.0 集成模式)?请赵老师不吝赐教,谢谢。

  23. mcpssx
    59.175.192.*
    链接

    mcpssx 2011-11-07 04:59:30

    @老赵: 现在用中文说向前还是向后兼容都混乱了。首先不谈这个要求是合理还是蛋疼,但谁说Java语言就做到这种兼容了啊?我说Java不思进取,没说它一点没变啊,1.4~1.7都是有变化的,只不过变的无关痛痒甚至蛋疼…… 现在甚至Java在二进制级别都没法兼容,因为Java 1.7增加了invokedynamic指令。反倒是.NET,除了1.0到2.0的时候为泛型增加了一些指令以外,之后都是风平浪静的。C#是再此之后才开始发力的,都丝毫无损二进制兼容,因此二进制兼容完全不能作为不增强语法的理由。

    恰恰相反,.net的二进制兼容性大大低于java,举个例子,你安装了java 1.6的jvm,你就一定可以跑java 1.4下编译的java程序。

    但是,微软基本上.net2.0, .net 1.1, .net4.0的runtime互不兼容,需要你重新配置。

    如果老赵不信的话,你可以先去装一个.net 4.0 distribute,然后你再去下一个著名的密码管理软件keepass 2.x系列中2.12之前的版本,你会发现程序提示你需要安装.net 2.0.

  24. mcpssx
    59.175.192.*
    链接

    mcpssx 2011-11-07 05:13:41

    我自然还是一贯以码农视角来应对这些问题:说.NET和Windows性能差,就一起来跑个测试,无论多简单的Benchmark来试试看嘛。我现在只是没有条件而已,以前有条件的时候做过好几次,性能绝对不差,远远胜过当时最火热的Apache——当时nginx还没有像现在这么流行,而且就算看现在nginx的数据,也并不比我当年测IIS领先多少嘛。更重要的是,这些数据早就没有什么意义了,因为对于绝大部分情况来说,性能瓶颈还是在你写的程序上,而不会是这些技术本身的能力上。

    我早就说过,你这种测试是完全错误的,因为写hello,world,当然.net速度不会比别人慢了,甚至可以说还要比php快的多。甚至hello,world有时候比c++还快,可是evernote,飞信,doit.im这些客户端都从.net转回了c++。

    微软的问题是总体架构和封闭的问题,总体慢,而且出了问题你根本没办法处理。myspace据说有微软的人常驻,你建个网站也有微软常驻?

    你认为iis没有问题,问题是京东问题已经出了嘛,你真么解决呢?答案是,你没办法解决,因为iis是个黑盒子,而lamp构架高性能服务器,有多篇文章,每一层都可以优化。

    你说都是技术能力,那么cnblogs站长总不至于也微软技术能力不足吧?可是cnblogs自己也发现不能用微软的Windows Server AppFabric,而要用memcached。

    从你开始说的大众点评网的.net架构,其实除了页面层,其他的缓存等等没有一样是微软技术,而微软与开源技术的结合是最不受重视的,mongodb之类总是先支持java,php吧?所以现在大众点评网转向java,是明智的选择。

  25. 老赵
    admin
    链接

    老赵 2011-11-07 05:18:45

    @mcpssx: 举个例子,你安装了java 1.6的jvm,你就一定可以跑java 1.4下编译的java程序。

    果然你一来就开始扯。你真搞过没?好像我没搞过Java一样,前几天配Maven就只能用Java 1.6。我之前还会说“可能是由于某个特定的项目的问题,JVM 1.7本来就应该能跑1.6的”,而你找个.NET程序说跑不了,就直接怪.NET本身了?

    亏你还号称十年经验,说你狭隘你还真不要不承认。

  26. mcpssx
    59.175.192.*
    链接

    mcpssx 2011-11-07 05:24:41

    最近一次,则是根据Build大会上的一些演讲来批评微软的技术走向。我自诩看过的Build大会视频绝对多过这位同学,但我还是认为自己绝对还没有到可以对此表态或是做什么展望的程度,更谈不上能如此“自信满满”。这位同学,我相信您一定也会看到这篇文章,这次您一定能明白我的标准了吧?

    不需要看视频啊,事实就是windows runtime是建立在native c++/cx上的,不依赖.net framework. 写metro程序不需要掌握.net

  27. 老赵
    admin
    链接

    老赵 2011-11-07 05:25:14

    @mcpssx

    就知道你会出来。你说的每一点我以前都应对过,请不要一次次反复说,搞技术要有长进,更不要继续扯蛋──比如说微软技术没法优化,MySpace常驻微软的人请给出证据,博客园不用AppFabic请搞清楚原因。至于Win 8如何,你倒更好了,连视频都不需要看,就能直接来指点江山。

    我文章里已经写清楚要有技术人员风骨了,你还在这里用你那十年经验来判断?在获得我尊重之前,我已经懒的应付你了,请好自为之。在此之前,请去别处“兼听则明”。你知道该怎么做,不要发现我这里不删贴就以为我会客客气气陪你浪费时间。

  28. mcpssx
    59.175.192.*
    链接

    mcpssx 2011-11-07 05:32:42

    老赵以前有一篇文章写得很有意思,就是用mono用ikvm .net再来借用jvm的rhino javascript引擎,这其实就是.net困境的一斑。

    这玩意写写hello,world无所谓,如果你作为一个架构师,你能用这种出了问题都不知道是哪里的组合吗?jvm自己就带了javascript引擎,而现在.net连一个工业可用的js引擎都没有。

    现在server side javascript火吧,维基上列了一大堆java的,c++的,就是没有.net的。现在很多开源技术的.net驱动是他们支持的语言中最不成熟的。

  29. mcpssx
    59.175.192.*
    链接

    mcpssx 2011-11-07 05:50:11

    @老赵: 就知道你会出来。你说的每一点我以前都应对过,请不要一次次反复说,搞技术要有长进,更不要继续扯蛋──比如说微软技术没法优化,MySpace常驻微软的人请给出证据,博客园不用AppFabic请搞清楚原因。

    现在问题的就是,搞微软技术的人长进不大,比如从底层来说apache之后还有ngnix, lighthttpd等等,搞微软的只有iis,从高层来说,memchached,mongodb,node.js,rails等等,没有一个是在微软平台先搞出来的

    至于Win 8如何,你倒更好了,连视频都不需要看,就能直接来指点江山。

    软件又不是看视频看出来的,重要的是C++啊,从以前的ATL开始,到现在的C++/cx。

  30. 链接

    nevtest 2011-11-07 05:51:51

    顶老赵"技术人员的风骨"。我是靠Java混饭的,但这些年也就做些应用,还没真正去理解过她,感受最深的是JavaEE原来的EJB2.0以及后来诸多"轻量级"框架,不堪回首。目前终于有机会安心学习和实践计算机基础了,从你微薄追到这里,获益颇多。但看你多次提到Java语言的弱点,没找到你详细说明的文章,想来应该有链接,能否分享?多谢多谢!

  31. 老赵
    admin
    链接

    老赵 2011-11-07 05:54:38

    @mcpssx

    滚一边去吧。

    你可以继续评论,我保证不会删,但不要指望我再好好回应你。

  32. 老赵
    admin
    链接

    老赵 2011-11-07 05:55:58

    @nevtest

    最近我会写一篇关于单元测试的,以前的文章可以搜一下“Why Java Sucks and C# Rocks”,虽然太监了,但还是有很多信息的,主要都在那个幻灯片上。

  33. 链接

    HumWang 2011-11-07 05:59:21

    在微博里看到了很多对《浪潮之巅》这本书的评价包括老赵的,一直以为国内的IT方面的书籍很不什么样,看了大半本书后发现这本书绝对值得一读。虽然还是在校生,但是相信对以后的职业发展有很大的帮助。同时又发现了俩本好书《Borland传奇》《观止》。

  34. 链接

    nevtest 2011-11-07 06:02:35

    好的,多谢多谢!有问题再请教。另作为前IBMer,顺祝老赵工作顺利!

  35. 老赵
    admin
    链接

    老赵 2011-11-07 06:22:28

    @HumWang

    可惜吴军主要还是国外背景啊,真希望有更多土生土长优秀技术作家。

  36. mcpssx
    59.175.192.*
    链接

    mcpssx 2011-11-07 06:23:42

    总之,京东目前在招聘java架构师,不能排除继大众点评网之后,京东商城也要抛弃.net架构了。

    有个总结说的很好:

    用.Net,意外着你被捆绑在Windows平台上。不是.Net效率本身比Java,PHP差,语言其实差别很小,差距在于:

    1. Windows Server授权费太贵,Linux免费,如果你有上千台服务器需要买上千台Windows授权......
    2. Windows不但贵,性能还远远不如Linux,注意这里说的是服务器端性能,跟桌面一点关系都没有
    3. 许许多多无数的开源、高端服务器组件只有Linux/Unix版本,移植到Windows上的基本是半残品
    4. 许许多多优化技术、高性能分布式缓存、数据库、NoSQL解决方案等等,仅针对Linux
    5. 你需要的一切组件和技术几乎都可以在Linux平台上找到免费、稳定而且高性能的东东,如果是Windows平台,你需要祈祷微软赶快开发出来
    6. 在虚拟化的今天,一台高性能服务器可以跑十几台虚拟机,用Linux,你得到的是免费、稳定的虚拟机,用Windows,你一台服务器的授权费将 x N。

    总之,立志做大型互联网应用的企业,绝对绝对绝对不可以用Windows Server做平台。

  37. mcpssx
    59.175.192.*
    链接

    mcpssx 2011-11-07 06:34:13

    《borland传奇》这本书,好就好在它讲述了一群天才,紧跟微软技术,最后垮台的故事。

    如果它跟Qt之类公司的学习,就不会落得那样的结局。

  38. mcpssx
    59.175.192.*
    链接

    mcpssx 2011-11-07 06:49:42

    果然你一来就开始扯。你真搞过没?好像我没搞过Java一样,前几天配Maven就只能用Java 1.6。我之前还会说“可能是由于某个特定的项目的问题,JVM 1.7本来就应该能跑1.6的”,而你找个.NET程序说跑不了,就直接怪.NET本身了?

    一看,你就不知道了。.NET 4.0的dll名字都改了,当然链接不进去了。这不是keepass的问题,我再举个例子,你用一下著名的思维导图软件mindmanager上一个版本,一样会提示要你安装.net 2.0

  39. 老赵
    admin
    链接

    老赵 2011-11-07 07:18:42

    @mcpssx: 《borland传奇》这本书,好就好在它讲述了一群天才,紧跟微软技术,最后垮台的故事。如果它跟Qt之类公司的学习,就不会落得那样的结局。

    没看过书不要胡扯,当然,可能你真看过,不过直接忽略你不想接受的东西了,只看到一切都是微软的错。包括你转的这些理由,我都知道出处,但你不还是忽略了跟你观点不同的结论?

    对了,如果你不想去英文社区,知乎其实也是个不错的地方,适合你“兼听则明”。希望你有观点可以到那里去寻求讨论,不要看我这里不删贴,就只知道在这里胡说八道。我可以帮你想个话题,你不是还反对Rails和Python吗?就不指望你去手段强硬点的人那里试试看了。

    .NET 4.0的dll名字都改了,当然链接不进去了。

    你就扯吧,知道你不扯会难受的,继续吧,再多扯点。

  40. 崩溃了
    207.46.55.*
    链接

    崩溃了 2011-11-07 07:41:39

    @mcpssx: 《borland传奇》这本书,好就好在它讲述了一群天才紧跟微软技术,最后垮台的故事。

    看到这句,我终于崩溃了。哥们你是在搞笑吗?

    “一天一家小影院放映一片子。 广告写道<<七个男人和一个女人的故事>>并有说明:一美女莫名晕倒,七男人强行拖入森林···

    等待美女的是······

    众人都觉很有吸引力逐买票入场,等到电影放映时,大屏幕出现:

    《白雪公主》”

    你让我想到了这个故事啊。。。。。您是技术人员还是娱乐新闻记者啊??

  41. mcpssx
    59.175.192.*
    链接

    mcpssx 2011-11-07 07:46:38

    @老赵: 没看过书不要胡扯,当然,可能你真看过,不过直接忽略你不想接受的东西了,只看到一切都是微软的错。包括你转的这些理由,我都知道出处,但你不还是忽略了跟你观点不同的结论?

    不但N年前就看过,而且基本上里面的软件都用过,从sidekick到jbuilder,有两点影响深,

    1. borland开发工具中有一个intrabuilder,估计你没听说过,那时候就是一个支持server side的javascript的可视化开发产品,可惜只出了个1.0。
    2. borland开发了sidekick,然后微软修改了tsr标准,该产品就此下坡。

    还有一点,Intra builder这么NB的产品使用dbase团队用dbase开发的。这再次说明,其实开发语言其实并不那么重要。

    对了,如果你不想去英文社区,知乎其实也是个不错的地方,适合你“兼听则明”。希望你有观点可以到那里去寻求讨论,不要看我这里不删贴,就只知道在这里胡说八道。跟你持不同意见的人多了去了,你不是还反对Rails和Python吗?有本事去和手段强硬点人那里试试看。

    你说这个我又想起来,其实php有这些语言中99%的特性,还有它们没有的,比如说php支持traits,还有php还支持参数类型声明,其他语言在这方面基本还处于初级阶段。

    我反对不是ruby或者py语言,我说的这两个在web开发中都不如php成熟。但是如果你是做系统管理,那自然py更好。

  42. 老赵
    admin
    链接

    老赵 2011-11-07 08:21:54

    @mcpssx: 其实php有这些语言中99%的特性,还有它们没有的,比如说php支持traits,还有php还支持参数类型声明,其他语言在这方面基本还处于初级阶段。

    “有特性”就够了么?还99%呢,这么看起来PHP几乎就是Ruby和Python的超集了,继续扯吧。

    我反对不是ruby或者py语言,我说的这两个在web开发中都不如php成熟。

    还有我说的当然就是Web开发,快去发一个吧,别光说,要做,也好让我认识一下你。崇拜你好久了,你一点个人痕迹都不给的,真不好。

    还有一点,Intra builder这么NB的产品使用dbase团队用dbase开发的。这再次说明,其实开发语言其实并不那么重要。

    是的,只要用的不是微软技术,则用什么开发都并不那么重要的。还有我知道你看过《Borland传奇》,只不过你只看到你想看的东西而已——用过这些软件又如何?看你又扯出什么乱七八糟的东西了。其实以你的风格其实无需“使用”就可以发表意见的,不必秀老,我一直承认你很老的。

  43. mcpssx
    59.175.192.*
    链接

    mcpssx 2011-11-07 08:27:24

    “有特性”就够了么?还99%呢,这么看起来PHP几乎就是Ruby和Python的超集了,继续扯吧。

    那你不妨说说看,py和ruby有哪项语言特性,是你必须的而php没有的。

    我先说两个,php有traits,相信你用scala的肯定知道,py和ruby有吗?php有参数类型标示,有助于契约式开发和ide的智能提示,ruby有吗?

  44. rhapsodyn
    113.108.76.*
    链接

    rhapsodyn 2011-11-07 08:52:40

    老赵,你跟mcpssx之间的“基情”到底是有多深啊。。。

    ps:多久在深圳搞个.net技术沙龙神马的啊

  45. 老赵
    admin
    链接

    老赵 2011-11-07 09:13:05

    @mcpssx: 那你不妨说说看,py和ruby有哪项语言特性,是你必须的而php没有的。

    不知道啊,其实也没有哪些特性是我必须而Java没有的,我用Java照样可以写程序。还有,如果你不理解我说的“有特性就够了么”,那么我们就缺乏讨论基础了。

  46. 链接

    马磊 2011-11-07 09:16:08

    hello,收藏了

  47. 老赵
    admin
    链接

    老赵 2011-11-07 09:16:30

    @rhapsodyn

    我太年轻,看到有人在我这里扯蛋忍不住啊,也做不到一些大拿们拉黑或删除评论。

    技术沙龙么,我也不知道啊,最近玩心很重……

  48. xung
    61.135.165.*
    链接

    xung 2011-11-07 13:03:20

    请问赵大哥,电子工业出版社Just Pub团队的电子书试点服务搜索好好久,找不到. 我也很喜欢电子书,并愿意付费,可是没有好的资源,真希望国内有好的电子书渠道.

  49. 老赵
    admin
    链接

    老赵 2011-11-07 13:49:01

    @xung

    我和他们私下交流的,还没公开……

  50. Gang Chen
    113.240.180.*
    链接

    Gang Chen 2011-11-07 16:09:27

    评论比文章有意思,书评太散了,看着不爽。个人喜好,勿怪:)

  51. dongk
    59.46.135.*
    链接

    dongk 2011-11-08 01:00:23

    我也有意购买电子版,可是没处买去呀。。

  52. 程序诗人
    192.193.132.*
    链接

    程序诗人 2011-11-08 02:48:14

    过来围观,谢谢推荐的几本好书,准备看一看,呵呵  发现下面的评论还是挺有意思的

  53. 链接

    马磊 2011-11-08 02:57:26

    刚看了《Borland 传奇》90多页,感觉很神奇,很不可思议,商战和技术战很激烈,感觉很有激情。自我感想:自己太浮躁,需要带着激情沉淀下来。

  54. valiant
    121.34.235.*
    链接

    valiant 2011-11-08 03:11:07

    顶,南山也不高,要去爬梧桐山才行.

  55. campo
    59.37.252.*
    链接

    campo 2011-11-08 04:04:19

    爬了次梧桐山,累的腿疼,太久没锻炼了。

  56. gsralex
    218.206.226.*
    链接

    gsralex 2011-11-08 04:05:27

    问个asp.net的实际问题

    假如使用微软本身的自定义控件机制来做一些listview之类的,相对麻烦,且需要了解他本身的一些背景知识,你起码要继承listview, 而input 或者 select(dropdownlist) 比较好弄,无非就是输出出来这种格式,然后选择性支持viewstate ,继承control就可以,不需要考虑ITempleate

    可是如果要避开微软的方式的话,自己来解析html,比如写一个httpmoudle,或者用pageadapter之类的,也不行,那样designer.cs里面的生成就发挥不了作用,.cs里面也就无法找到分部类的控件

    可如果写tag标签显示系统的话,应用场景又显得有些独特,所以想问下,如何对designer.cs编程,或者如何摆脱现在的种种限制,自己做设计器的话,相对麻烦,也太独特

    恩,也可以不用微软控件,用内联的写法

  57. 老赵
    admin
    链接

    老赵 2011-11-08 05:31:45

    @gsralex

    控件是帮你简化开发的,如果你知道怎么用,也无所谓控制其细节,那么自然会用的开心。HttpModule关你说的这个什么事情?我不知道什么是针对Designer.cs编程,我记得控件里有的IsDesignMode或是其他差不多名字的属性,用来输出设计期需要的HTML。至于你说的tag标签显示系统,我又不知道你在说什么了……

    如果你不用控件的话,就是直接输出HTML了,有些人喜欢,有些人也开始嚷嚷闲麻烦要控件……

  58. gsralex
    218.206.226.*
    链接

    gsralex 2011-11-08 05:33:46

    我一直以为我可能解决了表现层的这些犹豫不决的问题,不过当别人使用微软本身的控件自带的viewstate做到无刷新的时候,我又不淡定了,我觉得还是写自定义控件,然后选择应用viewstate,最后只在页面加入viewstate的guid,而viewstate放到缓存里面 System.Web.Caching,可是还是控制不了listview,因为如果自己解析自己写的listview是很简单的,可是继承微软的控件,难度就加大了,矛盾很难解开。

    System.Web.UI.Design是否可以解决呢?

  59. gsralex
    218.206.226.*
    链接

    gsralex 2011-11-08 05:43:53

    @老赵

    httpmoudle对最后response输出的html,做一个解析,比如自己的控件用 其他的标识 比如 runat="customserver" 之类

    恩,其实只要能获取到这个控件本身的html就可以了 比如

    可能fcl提供的就有,这就不需要做设计器了,可能是想更加细粒度的控制在作祟吧

    tag标签系统,可能说法不专业,也是用来解析的,一般提供可变换页面风格的产品化网站来使用,类似(xslt+xml)

    恩,谢谢(因为之前做winform,wpf的项目,回过来看webform,稍微有点想法)

  60. gsralex
    218.206.226.*
    链接

    gsralex 2011-11-08 05:59:55

    ViewState不是无刷新,打错了,就是客户端缓存,你用mvc也还是要写一个mvc的ViewState,否则就要针对所有页面来用业务数据再填充,那就不好了。

  61. 老赵
    admin
    链接

    老赵 2011-11-08 07:44:20

    @gsralex

    其实用MVC的人都不喜欢ViewState说是增加页面体积,事实上用MVC一般都是老老实实承受麻烦。其实你要的就是普通的ASP.NET控件,如果你觉得ListView功能太多,那么可以自己继承Control类实现一些方法就行了。

    但其实我觉得ListView是很好用的,所有HTML都能控制的吧?如果我没记错,它其实就是个高级Repeater,不会增加多余HTML的。

  62. 两会
    125.77.226.*
    链接

    两会 2011-11-08 13:41:23

    哈,老赵你有强迫症啊,说了不回应,结果别人胡说八道两句,你又踊跃跳出来应战了。

  63. 老赵
    admin
    链接

    老赵 2011-11-08 15:03:16

    @两会

    这话没错,我绝对有强迫症的……

  64. gsralex
    123.6.86.*
    链接

    gsralex 2011-11-09 00:15:32

    普通的asp.net控件过于通用了,而且种种clientid 都不舒服,即使可以用clientidmode来修改,但也不舒服,所以针对每个普通的html控件做服务器控件还是比较好的选择(选择加上viewstate)

    webform可以简化viewstate,弄个guid或者其他的标识放在页面上,viewstate放在缓存里就好(重写 Page的SavePageStateToPersistenceMedium 或者写个PageStatePersister [Quote:Ultra-Fast ASP.NET]),viewstate最初是为了满足微软b/s当c/s用的附属品,现在看来用到viewstate这种机制的机会还是很多的,另外有时候所谓的_doPostBack的形式,有时候觉得也挺优雅的

    listview不用viewstate,所以外面不带form runat="server" ,所以基本上整个页面就不需要form runat="server" 也就放弃使用ScriptManager的东西,也需要自己来写

    mvc很优雅,基本上其他平台也是这么做的,可知道了viewstate,所以即使用mvc,还是实现了viewstate的机制

  65. 躺着读书
    112.95.210.*
    链接

    躺着读书 2011-11-09 12:59:35

    @老赵: 其实我一直没搞明白为什么1.7没法兼容1.3,当然我的确见过只能跑在1.6而不能用1.7的例子(比如Maven),但我始终认为这是技术上的缺陷(不管是Java本身还是特定某个项目),Java 1.7应该完全兼容1.3的。

    老赵你这是在卖萌啊……绝对是在卖萌!

    你想啊jdk1.7都能跑eclipse3.5 eclipse3.3 eclipse3.2能,这些eclipse应该不可能是最新的java1.7的字节码吧。

    为啥maven不能跑在jvm1.7之下?我没有试过不好说。但是太多的幼稚的程序设计了……之前oracle改了jvm里面的公司名称,都有非常多的程序跑不起来,因为他们依赖公司名称这个常量来做效验,不是sun就不跑。更离谱的是有些软件甚至在代码里面写死了必须要是jvm1.6的才能跑,其他版本一律抛异常。这样的程序在代码里面写死了必须要.net2.0跑,你用.net3.5怎么跑?你应该知道怎么做的嘛……何必这样嘛。

    别觉得这些挺傻的,太常见了。WWER不就是这样么?

  66. 躺着读书
    112.95.210.*
    链接

    躺着读书 2011-11-09 14:23:25

    如果我没有记错,“之前oracle改了jvm里面的公司名称,都有非常多的程序跑不起来”这个长长的列表中也包括Eclipse。而且说实话,到现在为止我觉得生成效率最高的还是Powerbuilder和VB6.0, 每当看到这样的情况,不禁悲观起来,可能真像《人月神话》里面说的那样再过30年,软件工程也不会有太大的进步。所以我觉得Java这样也够了,语言保持稳定,第三方库持续增加也不错。毕竟函数化增加的生产力并不是特别多。大多数程序员还是得好好练习下面向对象吧。

    而apache基金会的产品,除了少数几个金牌项目,大多数项目的质量都不怎么样,一般最好备好源代码,随时查错比较好。而Spring和JBOSS的则质量坚如磐石,值得信任。

    当然作为一个追求卓越程序员,榨取函数化的生产率还是非常重要的。Java 8预计在2012年就要发布,而这次java的lamda表达式,不是仅仅一个特征,而是作为方案包中的一个小组件来改进原有的API。 这篇文章值得一看:http://www.ibm.com/developerworks/java/library/j-ldn3/index.html?ca=drs-

    如果JAVA 8在2012年就会发布,那么学习Scala又有什么意义?我觉得,如果觉得java语言乏善可学,可以进一步学习JVM或者其他第三方库(我已经很久没用过JDK里面的东西了,XML、IO、JDBC、Thread、Log都没用过了)。现在的Java程序员的所谓的JDK API应约等于Spring Source上的所有产品的API。如果真的想学一门语言,我建议是全新的,完全脱离Java平台的。C#/Python/Perl都是不错的选择,现在异构的程序太普遍了。学这些迟早有用上的时候。

    此外,我觉得除了函数化以外,Java真正面临的一个更大的问题应该是模块化。Java1.6能跑,java1.7能跑,还有可能是模块化的问题。http://alexsotob.blogspot.com/2011/11/en-ti-puedo-ver-la-libertad-tu-me-haces.html (需要翻墙) 这里提到的Service Provider API只是问题的冰山一角。通过这样好似智能和人性化的方法寻找接口的实现类,看上去很好;实际上很坑爹。因为类似的解决方案太多了,对于不熟悉的人来说,很容易混乱。JDK里面很多东西只有接口,而实现类是放在扩展包里面而不是JRE里面。好心容许你用其他的实现实现自由拔插,但是这也意味着,即使是一个小版本升级,你也可能会找不到实现而报错!更不用说是java6升级到java7了!因为实现就被莫名奇妙地被删掉和抛弃了!

  67. Gavin
    125.119.0.*
    链接

    Gavin 2011-11-09 15:03:48

    @老赵

    mcpssx和乔布斯一样有“现实扭曲力场”。

    不过一个是固执的天才,另一个确实固执的白痴。

  68. kraft
    218.82.78.*
    链接

    kraft 2011-11-09 15:57:26

    linux下面做事有点像 石头汤,呵呵。国内懂技术的太少了,有的人懂得一点并加上能吹就在现实混得开,网上也吹得不亦乐乎,有的还写书,忽悠年轻人。如果能多些真正的技术人员,气候也会变好。

  69. 老赵
    admin
    链接

    老赵 2011-11-10 02:39:10

    @躺着读书

    的确常见,比如写死1.6或是2.0才能跑,所以我说是那些工具的问题,再常见也是愚蠢的。

    Java 8的确引入了Lambda但还只是前进了一小步,虽然很关键,但连C# 3都还差的比较远。学Scala是用来写程序的,用来提高生产力的,我从来没说Java平台会缺少东西可学,每一块都是木桶的一块板,都该加长。

  70. junxy
    113.247.4.*
    链接

    junxy 2011-11-11 06:33:50

    编程之余读一些非纯技术的书,开阔视野,兴趣乃动力之源啊~

  71. twodozen
    218.28.242.*
    链接

    twodozen 2011-11-14 09:13:07

    我也希望能够像老赵一样“远离纸质书”,不过对于中文书而言这似乎还有些困难。一是普通人恐怕没有老赵这样高的信誉——能够从出版者或者作者那里搞到电子版,二是貌似靠谱的中文电子书阅读器也不多(甚至是没有?!)。所以也想顺便问一下老赵:盛大的Bambook这个产品怎么样?用它阅读中文电子书方便吗——我主要指的是内容获取这方面——是不是能够在上面获得足够多的正版中文资料(不一定仅限IT领域)。

  72. 老赵
    admin
    链接

    老赵 2011-11-14 13:40:52

    @twodozen

    Bambook能搞到的资料其实也就是起点中文网的资料,别的真没什么特别的……

  73. 大力
    222.94.21.*
    链接

    大力 2011-11-15 08:16:50

    浪潮之巅 很好,正好是想了解的东西。狂顶

  74. eraser0
    121.33.190.*
    链接

    eraser0 2011-11-16 09:43:25

    Borland传奇堪称IDE、framework领域的三国演义,可惜此书已经买不到了,当年是在舍友书架上拿来看的,后悔毕业当时没有A走。。。

  75. twodozen
    218.28.242.*
    链接

    twodozen 2011-11-16 10:42:21

    看来想要告别纸质书,还要先从习惯读英文做起——不过还好,有些优秀的中文作品在网上也有免费下载(非盗版),《浪潮之巅》之前就在googlechinablog.com上连载来着,吴军先生真是个好人啊~

  76. mecaocao
    110.252.3.*
    链接

    mecaocao 2012-01-16 06:52:07

    @mcpssx

    你是不是变态啊?!一露面就扯!

  77. 黄土高坡
    122.85.57.*
    链接

    黄土高坡 2012-02-21 14:44:16

    请问如何购买Just Pub团队制作的电子书?在网上找了好多,后面几章都没有,google也没有找到购买途径!如能指条路,灰常感谢!!

  78. 老赵
    admin
    链接

    老赵 2012-02-21 15:59:57

    @黄土高坡

    尚未正式发布,今年会有吧。

发表回复

登录 / 登录并记住我 ,登陆后便可删除或修改已发表的评论 (请注意保留评论内容)

昵称:(必填)

邮箱:(必填,仅用于Gavatar

主页:(可选)

评论内容(大于5个字符):

  1. Your Name yyyy-MM-dd HH:mm:ss

使用Live Messenger联系我