五千年(敝帚自珍)

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

共:💬203 🌺502
分页树展主题 · 全看首页 上页
/ 14
下页 末页
        • 家园 “那时的java...”这句要花!

          曾经看过一个比喻怎么说来着,现在的java是个航母,威力强大,但是出港就得耽误你一天,还得找拖船顶推。有本书,beyond java,看的我忍不住叫好阿,很久没有看专业书看到叫好了

          恭喜:你意外获得【通宝】一枚

          谢谢:作者意外获得【通宝】一枚

          鲜花已经成功送出。

          此次送花为【有效送花赞扬,涨乐善、声望】

        • 家园 这个俺同意。

          俺就是只会C/C++ plus some x86 ASM

          • 家园 没人关注 Haskell 之类的么?

            Haskell,以及 .Net 平台上的 F#(Ocaml的表亲)

            这一类的FP类语言

          • 家园 这些就足够了

            您学的这些,都是基本功阿,再往更高级一些的语言也能触类旁通了,要是像python和ruby那样的,估计您学习起来也是飞快。

        • 家园 java领域的各种中间件的竞争十分残酷,甚至可说惨烈

          很多由“官方”支持的标准,哪怕已经成为标准,都要准备随时被来自草根的力量拉下马来。

          03年的时候,Sun官方支持的持久层解决方案是JDO,都已经写入J2EE的spec中了,最终因为内部分裂而不能壮大,成就了来自草根的hibernate。

          现在还有谁记得JDO?

          01年,IBM将eclipse项目捐给开源社区,推行SWT,与java标准的一部分——Swing——公开竞争。IBM毫不掩饰对Swing的轻蔑与嘲弄,这从eclipse这个名字本身就能看出来。由此引发的争议至今没有平复的迹象。

          EJB,J2EE的核心标准之一,在3.0于2006年推出之前,长期受到业界的广泛抵制,以致于业界的“最佳实践”之一竟然是“绝不要使用EJB”——这直接导致别无选择的程序员转向Struts或Spring,“轻量级”解决方案大行其道。即便在EJB3.0面世后,依然存在着非议,其中有些响亮的声音竟然来自hibernate创始人这样的重量级人物。gavin king在seam的文档中毫不掩饰地使用非常负面的话语谴责某些“不是来自Sun,不是来自IBM,也不是来自Jboss”的标准组成员在EJB3标准上的短视。

          ......

          也许,这也可以算作“活力”?

          • 家园 EJB是典型的over engineering

            Sun找了一帮没有实际经验的人,就弄出这东西,毫不实用。简单的功能非得搞得复杂到了极点,还得靠开源社区搞出来一个XDoclet来给这EJB做code generation,这从一个方面说明了EJB的设计有问题,居然有大量的代码完全可以自动产生。靠EJB,Java想战胜.Net?

            Struts没有解决后端的绝大部分问题,只是个半拉子。真正的牛人是Rod Johnson,一下子用简单的方法实现了transaction control等等。当然我估计这哥们看了不少EJB的源码才写的Spring。Rod Johnson是干过很多项目的人,经验丰富,指出2PC没必要实现,因为实际上极少需要进行两个以上remote transaction。

            现在Spring的distribution里面啥模块都有,有点当年Apache的感觉。今天还收到Springsource的一个email,推广用Tomcat+Spring实现大规模部署。

            至少现在monster上招人,没有哪个公司特别强调EJB。

            • 家园 你也想的太简单了

              sun推ejb的目的是为了硬件销售,你仔细想想当时哪几个厂商对这事最积极?

              RJ也没做什么革命性的工作,只是丫会写书,把概念系统化了,另外rj的商业意识非常强, 做ioc的,他不是第一个,但是他能把spring做的很胶水,吸引了主流的开发人员支持,然后借着名气把概念产业化。

              说点不谦虚的,spring出来之前,我自己做的东西就是类似的,那年头,琢磨着简化j2ee开发的不是一个两个。

              我现在都挺反感spring的fans,会用spring做东西不算本事,你也不用spring也能把东西做好,这才算本事。

              • 家园 我倒是没有看出来EJB和硬件挂钩了

                EJB养活了不少软件厂商,比如做Application Server的BEA和IBM之类,还有JBoss。

                Rod Johnson的生意头脑我没有看出来,Spring2002年就出来了,他和Jurgen Hoeller两个也就靠写书卖了点钱。SpringSource也是最近几年才有的东西。Java和Servlet的这点东西,挑明了也没啥。Spring本身并没有技术上的突破,他的AOP一开始还做错了(考考你,知道错在哪里吗?)大家最欣赏Spring的有两点1. 真正地简化了开发,2.干倒了无聊透顶的EJB2,因此 3.拯救了JavaEE。

                至于Spring为什么受到追捧而你做出来的东西没有人看,想过差距在哪里吗?把你的源代码贴出来大家观摩一下吧?要知道天外有天人外有人,有人1998年还是99年就做出了Hibernate之类的ORM(在北京,就在这个帖子里好像),只是不像Rod Johnson那样能言善辩会吹嘘而已。

                • 家园 当年一票ejb时代

                  当年一票ejb时代,rj的思想就显得高人一筹了。

                  另外,俺也不喜欢风北客的说法,如果说spring本身有xx性能问题,一票人在那边傻用,那么完全可以鄙视。既然确实实用好用,那么用的好spring做好项目,这就ok,而不是非要不用spring自己搞一套做的好才叫所谓的本事。

                  这年头程序员流动性大,用个流行的东西,起码保证你收到的人即插即用呢。

                • 家园 呵呵

                  做应用服务器的除了bea是独立的软件厂商,还有谁挣到大钱的?而且bea后面的硬件商是hp, 这也是后来bea市场大幅度下滑的核心原因。因为ibm的was直接就免费或者1折,bea玩不起。这个阴谋论不是我发现的,貌似已经讨论过很多回了。

                  jboss从来都不是ejb的主流供应商,准确的说,bea和ibm事实上放弃ejb以后,jboss才变成ejb的积极推动者。

                  EJB背后的背景就是顾教授说的,用硬件解决问题。这也是早期j2ee体系被设计的极其复杂庞大的原因,如果没有微软和php,python之类的竞争,这游戏可能还会继续下去。 本质上,我觉得这和spring没什么关系。

                  我当然承认,我个人的水平和rj还是有一定差距的,当以spring刚推出的时候来说,没感觉差距大到不可逾越,因为至少早期的spring里面,其实没多少革命性的东西,实现难度要低于当年的hibernate。

                  早期的spring核心是ioc,而当年诸多有特点的ioc都没有发展起来,这里面扣除技术的因素,市场意识还是要算上一份的,sping通过胶水的方式,联合简化了众多的开源产品,用你的话说,降低了开发门槛,这是他的一个主要优势。大致和spring推出相同的时间,我曾经和国外的一个开源作者聊过同样的话题,希望他的作品能也有类似的考虑,但是Y完全拒绝,挺好的一个东西,没2年就消失了。

                  rj有什么样的生意头脑我不好说,但是能把springsource买到这么高的天价,没几个人吧。

                  没兴趣炫耀啥,如果有人98年就在北京作出了hibernate等级的东西我只能无语,要知道java什么时候进入企业市场? 那时候jdbc的实现程度才到多少一点, 就这样吧。

                  • 呵呵
                    家园 Spring和EJB不同之处在于实现的技术上

                    我没有看过EJB的源代码,但是EJB3居然要用Annotation来实现DI,这就看出来底层的实现相差十万八千里。 EJB3可以模仿DI,但是任何一个写过IOC container的人都知道这不是那么回事。 实现一个IOC container的功能,用J2SE只需要大概一个小时左右(包括debugging)。

                    另外的一个差别是AOP。最重要的区别,是Spring的transaction全部是用AOP实现的,非常简洁。EJB完全依赖application server来实现。

                    差很远吧?

          • 家园 比我总结的好多了,呵呵,花一个。
        • 家园 偶米作过java,但是framework的毛病所有语言上都存在吧

          学语言变成了学框架、熟悉某组库,诸如此类,而且还越来越大,越来越复杂,差不多每个框架新出来的时候都说希望自己是易用的以替代某个复杂的家伙,而若干时候之后又变成那个人们想换掉的大怪物

        • 家园 先花一个,再提不同意见。

          我的背景和楼上有点类似,以前在一家电信企业做开发,C/C++/java都做过,现在在一家互联网公司做架构师,也是负责一个小产品线的技术架构,主要是java。区别恐怕是,我有时候还编码,没办法,就是喜欢。

          很多开源的java framework的确都得到大企业的支持,但是他们都是出于草根,是在开源社区逐渐壮大,pk掉很多大公司的相应主推技术成为业界的事实标准。象现在业界很常见的struts/webwork+spring+hibernae等开源项目,原来都是草根,不被大厂家重视。至于weblogic/websphere等大厂家的应用服务器,在开源的jboss面前根本不占优势。concurrent原来也是一个开源项目,因为做的好,所以被sun收编,成为jdk1.5的一部分。

          所以我觉得多数情况下,一个新的java 开源项目,他最大的竞争对手是其他的开源项目,而不是大厂家的产品。在java领域,厂家的力量没有.net领域那样大,更不具有决定性的作用。

          我也经常面试别人,我也会问别人用过一些什么框架,甚至会问几个细节问题,看他是不是真的熟悉这个框架。但是我更关注的是,他是不是真正的理解这个框架的本质:为什么要有这个框架,他背后的设计思想是什么,要解决什么问题,与其他类似框架比较,这个框架的优缺点是什么。我要的是一个掌握framework背后设计思想的人,不是只会使用framework的人。

          至于说JDK1.0.2时候的java更有活力,恐怕更多是出于感情因素吧,呵呵。

          • 家园 也花一个, 不揣浅陋, 再多说几句, 只求抛砖引玉

            脱离java很久了, 因此只能聊聊感受, 还请季兄不吝赐教.

            至于说JDK1.0.2时候的java更有活力,恐怕更多是出于感情因素吧,呵呵。

            哈哈, 细细一想, 还真有点那个意思. 不过也不完全如此.

            我的意思是, 这几年java给我的惊喜越来越少了, 而感受到的java的暮气越来越重. 我也举个例子, 几年前, RoR横空出世, 结果在java社区里面仿佛投下了一个重磅炸弹, 看很多来自java阵营的文章和帖子, 好像都有些如梦初醒的样子. 让我说什么好呢? 对一个有PHP, Perl, (Python不熟, 不知道算不算)之类弱类型语言背景的人来说, RoR不错, 有一些很好的trick, 但是绝对谈不上什么革命性的震撼. 因为这些花样已经玩了很久了, 只是RoR是一个集大成者, 碰巧又落到了java社区的眼里, 要知道, java社区的眼睛从来都是往天上看的.

            这个事件在我看来暴露了java社区最大的一个问题, 就是封闭和近亲繁殖. 连"Convention over Configuration"都被看作振聋发聩的格言, 我只能推测说这是java社区总是在少数几个framewok后面亦步亦趋的必然后果.

            现在谈到WEB界面表现, 提起来就是Struts2, 谈到ORM, 提起来就是Hibernate, 其它选择呢? 再看这些framework, 光是apache就占了多少? 其中的设计思想, 实现方式再到使用方式, 又有多大区别? 把话再说的绝一点, 除了spring, 其它这些号称主流的java framework什么时候有过自己开创性的设计思想?

            更加令人遗憾的是, RoR的热潮过去了, java做了什么改变吗? 没有! 于是大家又回到struts2+spring+hibernate的老路上去, 继续延续公式化的编程, 等待下一次SoS的降临.

            我并非是个java黑, 事实上, 我LP唯一知道的计算机语言名字就是java, 都是在谈恋爱的时候被我给耳濡目染的. 我只是对Java的发展有很多不满意而已.

分页树展主题 · 全看首页 上页
/ 14
下页 末页


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

Copyright © cchere 西西河