数据亲和架构--领域语言

       在IT届,一谈起编程语言之间的优劣,可以掀起一场世界大战。即使已经封神的Torvalds也不能免俗,对C++数度开火,更别人说其他语言,压根就不在火力范围内。就我个人而言,启蒙是C语言,用的多是C++,工作范围主要网络、应用系统底层框架、高性能低延迟的应用,所以即使是写C++代码,感觉也类似C语言,很少用高级特性。java、python、lua、php等都用过,因为要做的工作不多,所以多数都是浅尝辄止。

        这些争议的根源,我认为,在于这些争议者忽略了编程语言和领域场景的适配程度。多数人在争议编程语言的优劣的时候,少有人提及在某些场景。谈及写网页,几乎没有人会想到用C/C++语言,除非在于一些资源紧张的嵌入式系统。说到写操作系统,不会有人说要用Java,甚至C++都用得少,因为C是被证明过的解决方案。

        而会被争论的场景是处于操作系统和网页之间的中间地带,主要是场景多样的应用系统,也包括一些历史原因遗留的。这些系统包括GUI界面,应用容器、商业逻辑的实现、中间件的实现。在一些公认的成熟领域,比如网关、数据库普遍选择C作为开发语言,诸如apache、nginx、mysql、postgrep等。而近年来兴起的消息中间件kafka、rocketmq和rabbitmq;以及hadoop族的诸多系统,再加上python族的openstack和人工智能和刚流行的交易策略编程;还要再加上谷歌的go族系统,如k8s和docker。

        深入研究这些现象,一个理性选型的根本目在于确保系统成功,一般都要包含这个过程:

1、系统场景的需要哪些特性,安全、性能、用户体验还是其他,这是系统成功的要素;

2、现有的开发资源和允许开发时间,一般这些都是紧俏因素,能少尽量少,这和实验室是不同的。

3、开发人员的技能熟悉程度,如果让开发人员去熟悉一个全新的语言和功能,这个成本也要考虑;

4、编程语言是否符合场景,以及他本身的框架对新系统的支持程度,成熟的框架肯定优先考虑。

5、编程语言的周边系统,是否已经足够成熟的组件或者社区或者技术支持,来支撑该选型。

        对于一家实业公司来说,撇开本身的资源和系统场景,去讨论编程语言的选型是一个不负责的做法。最核心的依然是成本和时间的考虑,能否用最少时间并且最低成本实现一个系统,往往能够决定一个系统能否在市场上成功。一个有趣的案例是hadoop,最早是用java实现的,在市场引起强烈反响,获得巨大成功,而之后因为本身的问题,不断加入辅助系统为不断发展的业务需求提供支撑。但最终却是c语言编写的ceph成为了linux下的分布式文件系统选型而不是流行的hadoop的底层存储hdfs。

        ceph的案例是一个反例,他选用c语言作为编程语言,显然违背了成本和时间的原则。我们深入考虑ceph开发时的市场背景,不然发现,hadoop在此时已经有众多的应用场景和周边支撑,还有大公司的支持,唯一的突破点,就是他本身固有的缺点,比如可扩展性、性能等。ceph作为后入者,专注于底层存储,与HDFS竞争,比如在用户体验上更胜一筹,那么选型c显然要优于java,其他反而不重要。于此相似的是阿里的rocketmq,他没有用scala语言改进kafka,而是用java重写了类似的系统。

        对于一家实业公司来说,即使是要和成熟产品竞争,会在成本和时间上做出妥协,但最终也会回归到这两点,不可能无限投入和延时。我们考察下最流行的java,可以发现java的库范围覆盖之广,令人发指,只要你能想到基本都有,这当然和java语言设计有关系,容易开发,方便管理,才促进了java库的繁荣,又反过来推进java的发展。C/C++发展了几十年了,项目同样不少,但问题在于每个项目都各有自己的风格,你要在自己项目中引入其他项目,简直要痛不欲生,除了几个经典项目。

        python在早期多数被限制在运维管理项目,直到最近人工智能的流行,大神吴恩达亲自出面推介,再倒最近的交易策略编程也流行用python,之前多用VBS。想想也不奇怪,人工智能和交易策略从业人员要么数学或者金融专业出身,让他们学习计算机知识显然浪费时间;其次原来面向运维人员的Python,学习曲线就平滑得多;再次,数学库的丰富,谷歌神器tensorflow都支持python了;最后,解释性语言可以边写边看结果,特别适合要算法研究工作,毕竟每改一次都要编译半天的编译语言太浪费时间了。

        之上所说的一切都在于表明,每一个领域场景都会有对应的,符合理性选型的,一个或者多个编程语言。在符合领域场景特性下,成本和时间会成为关键的选型要素。领域语言比通用性语言的优势在于他更符合领域场景特性,摈弃不需要的特性。有适合场景的系统库支撑,如python的数学库;也有适合开发人员的语法和使用习惯。领域语言的优势在于用户体验,缩短系统成型时间,也同样降低了研发成本。

        领域语言劣势在于,需要对应的编程环境,因为领域多样,语言也多样,特性也多样,所以要支撑这种多样性,显然是困难的。而一个有竞争性解决方案,就是一个同样编程语言上,比如python上提供领域库,可以是系统库对应于运维系统,可以是数学库对应于人工智能和交易策略。

        数据亲和架构将系统研发限定在数据处理,以及对应的业务处理逻辑,开发者在使用这种架构时,需要考虑的因素有限,因此,更容易实现领域语言,更有助于提高开发效率,缩短开发时间,降低开发成本。

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

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,522评论 25 707
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 12,693评论 2 59
  • (原帖写于2011年,发表于豆瓣的摄影技术组) 常年不断的有人询问购机的事情,各种路过的给出各种臆想的意见,我都看...
    手拿蒲扇的熊猫阅读 643评论 0 3
  • 朋友来咖啡屋小坐,神秘兮兮故作低调却的拿串佛珠手串让我看看。我一看,真漂亮,颗颗油光发亮,纹路清晰,有扑鼻的木香味...
    悟哲斯阅读 367评论 0 3
  • 电影“少数派报告”描绘了一些有关户外广告未来的场景,看起来很炫酷的东西,现在很多已经成为了现实,甚至比当时更超前,...
    与父同行阅读 304评论 1 1