CAFEBABE江湖史

一、我所知道的Java

转眼间,我们的CAFEBABE都诞生20年了。

最开始接触Java,当时应该是1.5版本,不过最开始并没有用到1.5的泛型、scanner等新特性;后来,用过一阵子1.6;再到后来,就工作了,用1.7;然后,陆续有的小组要采用1.8了;然后最近刚刚发布JDK9的新特性(javac将不兼容1.5版本),预计16年发布。

比较重大的版本,应该是1.4加入的nio,1.5的泛型,1.7的nio2,G1,script engine,1.8的闭包(lamda表达式)

Java发展,从设计上来讲,最大的精明之处就是将java语言的规范和jvm的规范分开,jvm是一个平台,一个大森林,森林里头,活跃着诸多漂亮的小精灵,JRuby,Groovy,Scala,Clojure...

从Java7->Java8,在java上新增函数式编程(可以视为java老大哥自身拥抱函数式编程的改变),以及JVM上的函数式语言Scala,Clojure(函数式家族与CAFEBABE联姻),或许你大概知道这里要说的新世界就是函数式编程。

二、面向对象语言的产生

如果我说是电脑操作的图形化直接导致或催生了面向对象语言的诞生,或许你可能不信。当apple正在紧锣密鼓开发图形化的Macintosh,微软也推出图形化的Windows,操作系统从终端过渡到了图形界面,电脑逐渐普及,用户消费能力逐步提高,在图形化操作系统上开发图形化的软件的需求也就越来越强烈,而这个时候,面向过程语言,就显得有点力不从心。聪明的程序员说,我想要抽象出一个按钮,可以点击,可以响应事件,可以有很多风格,这样以后我每次开发的时候,直接复用就可以了。于是就有了诞生面向对象语言的需求了。

说起C/S开发,说起RAD开发,不得不提起曾经如日中天的Borland公司,以及红极一时的Delphi语言。Dephi当年一登场,便获得VB杀手的江湖名号,凭借“真正的程序员用c,聪明的程序员用Delphi”这句话也名满江湖,搞得微软的VB老大哥压力山大,后来也为两家公司之争埋下了伏笔,即使到现在各种编程语言满地开发的世界里头,Dephi及其老祖Pascal还是双双雄踞在TIOBE排行榜的前20,依旧宝刀未老。

说起Borland公司曾经的辉煌,世界第三大软件公司,高品质软件开发工具的霸主,到后来与微软竞争不利,失去霸主地位,后来被Micro Focus收购......想起来真有种“滚滚长江东逝水,浪花淘尽英雄,是非成败转头空”的感伤(具体可以看李维的Borland传奇,我相信很多程序员都读过)。曾经的SUN不也是如此吗,不过相比而言,Java比Delphi还好一些,Oracle至少还延续了Java“霸主”的地位。

不过,虽然Borland落寞了,Borland的宝贵资产并没有消失,Bill Gates虽然打赢了与Borland的开发工具之战,但同时求贤若渴的Gates,早就盯上了Turbo Pascal以及Delphi的设计者开发者,天才程序员Anders Hejlsberg,当时BillGates亲自开车去找Anders Hejlsberg。当时BillGates想起了1983年乔布斯对百事可乐的 CEO John Sculley说的流传千古的一句话:Do you want to sell sugar water for the rest of your life, or do you want to change the world?也想慷慨激扬一番,但是换成这里,场景还是不合适啊,BillGates顿时词穷,还是落了个俗套,毕竟有钱能使鬼推磨啊,开天价500万美金的年薪,请Anders Hejlsberg过去,Anders Hejlsberg心里略微有所动,但是面不露色,BillGates见状,忙问Anders Hejlsberg还有什么要求,Anders Hejlsberg便开口,我要一个完全由我支配的团队。BillGates顿时顿足捶胸,这好说啊,早不说呢。就这样,Anders Hejlsberg正式入驻微软,后来开启了C#从2000年至今的辉煌时代,时至如今,如果不是由于微软平台的缘故,估计C#将更加大放光彩,即使是现在,C#也比大它5岁的Java老兄要高级很多,比如真正的泛型,比如async......

Anders Hejlsberg早在设计Dephi语言的时候,就有想过要引入垃圾收集器,不过当时Borland老板不同意,觉得当时市场竞争激烈,还不是时候搞这种底层研究的时候,Anders Hejlsberg无奈放弃了,后来BillGates抛出橄榄枝,Anders Hejlsberg提出了要有一支完全由他支配的团队的要求,正是源于此,有了老板的放权,Anders Hejlsberg就可以放手大干一番。

讲了这么多,还是要顺带讲下Pascal老祖,及其子孙的。


从图中来看,C#是有Pascal的基因的,同时也借鉴了Java老大哥的一些设计。

当然这里不是要讲C#,而是老祖Pascal,它由瑞士Niklaus Wirth教授在60年代设计的,我相信,学过谭自强的C语言的人,大多都会记得“程序=算法+数据结构”(Algorithm+Data Structures=Programs)这句江湖名言,没错,这句话正出自老祖Pascal语言的设计者——Niklaus Wirth。正是凭借这句话及其他杰出贡献,Niklaus Wirth从此奠定了江湖地位,同时获得了计算机界的诺贝尔奖——图灵奖。

如果你细看Niklaus Wirth的简历,会发现,他的母校正是苏黎世联邦理工学院,再想想当今预借屠龙宝刀Spark去夺取天下的Scala的发明者Martin Odersky,当年正是苏黎世联邦理工学院师从Niklaus Wirth。在攻读他的博士学位,吸收了Niklaus Wirth的雄厚的内功心法之后,Martin Odersky设计出了Scala,后来创建了TypeSafe公司,如今Scala可谓是江湖武林逐渐崛起的黑白两道通吃的大器晚成者,凭借着倚天剑AKKA和屠龙刀Spark,正掀起一场血雨腥风,搞得Hadoop、Storm等诸多老前辈坐立不安。

三、函数式编程语言的兴起

前面说了,图形化的市场需求,成了面向对象语言兴起的导火线;风水轮流转,函数式语言,正是由于OOP这种命令式编程无法充分发挥多核时代的计算能力而兴起。函数式语言的不变性,天生就适合并发编程,适合多核计算,当年时机未成熟,没能一统江湖,成为一代侠客的利器,现在时过境迁,环境利好,正好是显山露水的时候。

这个时候还是稍微回顾下编程语言的江湖吧:





你会发现,进化到Ruby,已经是OOP语言的一个顶峰了。


未来呢,在多核时代的世界里,未来在函数式编程语言的手头里:


纵观当今.NET的动态,你会发现DDD在.NET如火如荼地讨论着,而且由于缺乏倚天剑AKKA这样的江湖利器,微软早已坐立不安,微软的research部门正忙着研发.NET版的Actor模型,2014年刚刚发布Orleans的预览版,预试图在多核的云计算里头占据一席之地。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容

  • TITLE: 编程语言乱炖 码农最大的烦恼——编程语言太多。不是我不学习,这世界变化快! 有时候还是蛮怀念十几、二...
    码园老农阅读 5,295评论 2 35
  • 计算机编程语言可用于将指令传达给计算机。它们基于某些句法和语义规则,定义了编程语言中每种结构的含义。 现在我得到了...
    幻凌风阅读 8,134评论 1 26
  • 读过的第一本时间管理类书,值得留下一些东西来纪念。 忘记了是受到来自哪里的启发,突然发觉自己需要去学着管理时间,去...
    九九鸥阅读 1,907评论 0 1
  • 1 混日子和不混日子 前几天一个朋友离职了。 我问他为什么,他说公司正在走下坡路,可能马上面临倒闭,覆巢之下焉有完...
    廖诚阅读 296评论 0 0
  • 弟弟今年6岁,对于一切他都充满好奇。 他很依赖妈妈,虽然白天他都会和我妹妹(他的姐姐12岁)待在一起玩,但...
    _千阳_阅读 422评论 0 0