标签 感悟 下的文章

编程语言进入“拼爹”时代

近期看到一则新闻,说是Microsoft推出了一门开源的编程语言叫TypeScript,该Project的主要负责人是大名鼎鼎的Anders Hejlsberg,就是那个Turbo Pascal Delphi以及C#之父。结合近几年来出现的颇受关注的其他几门编程语言,如GoRustDart等,让我感觉到编程语言似乎进入了"拼爹"时代。

我们来列举一下这几门新兴语言的“老爹”(设计者):

* Go语言 – Robert Griesemer、Rob PikeKen Thompson
这里最著名也最NB的当属Ken Thompson,Unix之父,并与Dennis Ritchie一起创造了最伟大的工业编程语言C图灵奖得主。Rob Pike也是Bell Labs元老,Unix和Plan 9计划的参与者,Limbo语言的设计者之一。至于Robert Griesemer名气似乎小一些,我也不甚熟悉。不过有了前两位,想必Golang就会有足够的号召力了。

* Rust语言 – 来自著名的Mozilla Lab,其主要设计者包括Brendan Eich,Dave Herman以及Graydon Hoare。其中Brendan Eich是JavaScript语言之父。

* Dart语言 – 这门语言的最初两个设计者Lars Bak和Kasper Lund似乎并不著名,但这门语言背后有一个更大的后台,那就是在互联网搜索时代叱诧风云的Google公司。凭借着Google的号召力,围绕在这门语 言周围的Fans也应该为数不少。再考虑这门语言旨在替代JavaScript成为新Html5标准下主力Web开发语言的目标,Dart受到的关注一定 不少。

这里再顺便回顾一下编程语言发展的几个历史时期(个人的一点拙见)。

* 结构化时代
20世纪六七十年代,以C、Fortran、Pascal、Basic为代表的结构化程序设计语言的诞生,标志着编程语言进入了结构化时代。人们逐渐脱离 生产效率低下的汇编,而转移到中级/高级语言行列。最终C以其Unix平台语言的身份胜出,并以其简洁高效的生成代码在二十世纪末期在嵌入式领域独占鳌 头。

* OO时代
随着人们的关注点逐渐向问题域转移,人们迫切需要一门能对现实问题进行更好抽象的语言。面向对象语言逐渐进入人们的视野。代表语言包括C++、Ada、 Delphi、Java以及C#等。C++和Delphi因其卓越的性能以及不熟的IDE支持,在桌面程序设计领域(包括PC游戏领域)成为主角。 Java则在企业应用兴起后逐渐发展壮大,最终成为OO时代的No.1。

* Web时代
随着全球互联网时代的到来,诸多Web语言走到了前台,代表语言包括PHP、JavaScript、ASP等,另外一些轻巧且生产高效的脚本语言也开始被 大家所青睐,它们既能轻松完成系统管理的任务又支持Web开发,这其中的代表语言包括:Perl、Python、Ruby、Lua等。

* 新时代
这里暂且叫作新时代,这个时代有几个特点:
1) 传统语言不断翻新,融入新特性
C和C++于今年发布了C11标准;Java也给出了JDK8规范的发布时间表。在新标准中,这些传统语言也加入了一些适宜这个时代开发的新特性,比如函数范式以及对多核并行程序的支持。

2) 终端开发语言迅速崛起
随着iPhone和Android的迅速发展,终端开发语言逐渐壮大,最典型的代表则是Objective-C,依靠苹果公司这棵大树,与C++同时期的Objective-C仿佛坐着火箭一般迅速串升到编程语言排行榜前3甲的位置。

3) 函数式语言的回归
以Common Lisp、Haskell、Erlang等为代表的函数式程序设计语言重装归来,誓与传统命令式语言一绝高下。函数式范型语言的回归意义似乎不在于占领更 大的市场,而是在于其对后续新兴编程语言的设计决策的影响,甚至像C++这样的老牌OO语言在新规范中也加入了函数式范型的支持。

4) "拼爹"的新兴语言
就如上面所讲的,一些传统语言的设计大师汲取之前语言的设计经验和教训后,二次出手,设计出了以Go、Rust、TypeScript等为代表的新兴语 言,并且他们的号召力对这些新兴语言有着很大的影响。这些语言站在巨人的肩膀上,获得了重新的设计,使得语言能满足未来市场对应用程序以及硬件设备的要 求。这些语言将会是未来10年乃至20年间编程领域的主力。

目前的确是编程语言的一个新时代,更是一个百花齐放,百家争鸣的时代。作为这个时代的程序员是幸运的,因为有这么多优秀语言可供学习和选择;同时也是"不幸的",有这么多语言要去学习(当然也可以不学^_^)。

项目跳票成常态,组织基因难逃干系

上周得知今年一个重点项目跳票了!项目计划正在重新修订中,原计划今年10月末完成的项目很可能因此推迟到明年上旬了。

工作这么多年,印象中除了一些短期小项目外,50人月以上的项目就少有未跳票的,无论是我带的项目还是其他负责人带的项目,莫不如此。无论是产品负责人,还是项目负责人,高质量按期交付都是第一目标。但残酷的现实真切地摆在我们面前。问题到底出在哪里呢?

项目成功的原因都是相似的,但项目跳票的原因却各有各的不同。我们不妨拍脑袋罗列一下可能的原因:

* 项目计划不合理或太乐观
* 员工们能力欠缺
* 员工们不努力
* 投入的人员不足
* 需求变更频繁
* 项目依赖的硬件资源不足
* 人员并行进行多个项目,时间投入上无法保证
* 迫于上级领导下达的Deadline,计划时压缩工期
* 各种估计不准确,偏差大
* 严重技术风险发生,推倒重来
* 新任务夹塞,后来者优先级高
* 产品质量不达标,修正bug耗时远超计划
… …

也许你能列举出更多的理由,但那不是这里真正要关注的事情。如果你是项目或产品负责人,你也许能对号入座,给自己项目跳票找一个或多个理由。但不知道你是否想过:究竟是什么使让理由发生了呢?

一个组织内如果仅仅是某一个项目偶然跳票,那问题还不大,关键是当组织内项目跳票成为常态时、当跳票几乎成为组织骨子里的东西时,那真应该好好反思一下其中的原因了。

为何员工能力会不足?为何硬件资源跟不上?为何后来任务优先级居上?为何要迫于领导下达的Deadline等等都需要我们给出答案。但这些问题若真的让一 个小小的项目负责人来回答的确有些勉为其难了,这是一个组织层面上的问题。如果我们将组织比作一个机体,项目负责人只是这个机体中的一个细胞,他们也生存 在这个机体中,他们无时无刻不受到这个机体环境对其的影响,他们的行为也同样受到了组织的束缚。因此从跳票这个表象中,我们可隐约看到了组织的文化,可以 看到组织在面对决策时所倾向的与所妥协的。在无米下锅的情形下,一个小小的项目负责人又能做什么呢,虽然有美好期望和目标,但似乎只能接受现实,并从上面 找个适当的理由。于是我们似乎可以得到这样的结论:项目常态跳票,组织基因难逃干系。

千万不要觉得基因决定论(这里我们先不论该论断是否是正确的)只适合公司这一级别(之前我们只是在谈论苹果、谷歌、微软、诺基亚这样的大公司时使用基因这 个词汇。)一个小组织也有自己的基因,这种基因可能90%与其所在公司的基因相同,剩下的那10%决定了公司内各个组织表现的差异性。

也许最初组织从公司继承的基因中并未带有跳票文化,而是组织后续自身发展而来的,但随着时间推移,这种行为和思路渐渐融入组织基因中。一两个公司内部组织 的基因变种尚不会影响到整个公司的基因(谁知道到底是否已经影响到了呢?),但毕竟这是危险的,需要治疗。而且及时尽早的治疗是可以治愈的。

吐槽,点到为止。

如发现本站页面被黑,比如:挂载广告、挖矿等恶意代码,请朋友们及时联系我。十分感谢! Go语言第一课 Go语言精进之路1 Go语言精进之路2 Go语言编程指南
商务合作请联系bigwhite.cn AT aliyun.com

欢迎使用邮件订阅我的博客

输入邮箱订阅本站,只要有新文章发布,就会第一时间发送邮件通知你哦!

这里是 Tony Bai的个人Blog,欢迎访问、订阅和留言! 订阅Feed请点击上面图片

如果您觉得这里的文章对您有帮助,请扫描上方二维码进行捐赠 ,加油后的Tony Bai将会为您呈现更多精彩的文章,谢谢!

如果您希望通过微信捐赠,请用微信客户端扫描下方赞赏码:

如果您希望通过比特币或以太币捐赠,可以扫描下方二维码:

比特币:

以太币:

如果您喜欢通过微信浏览本站内容,可以扫描下方二维码,订阅本站官方微信订阅号“iamtonybai”;点击二维码,可直达本人官方微博主页^_^:
本站Powered by Digital Ocean VPS。
选择Digital Ocean VPS主机,即可获得10美元现金充值,可 免费使用两个月哟! 著名主机提供商Linode 10$优惠码:linode10,在 这里注册即可免费获 得。阿里云推荐码: 1WFZ0V立享9折!


View Tony Bai's profile on LinkedIn
DigitalOcean Referral Badge

文章

评论

  • 正在加载...

分类

标签

归档



View My Stats