Java、Python、PHP、Ruby…哪个是最好的开发语言?

商业技术

商业技术主要有以下几个特点:稳定性、可扩展、兼容性和可运营性等,这里我们重点说可运营性这个特点。

又拍云的 CDN 服务在纯粹技术上理解,是内容分发的缓存系统,一款 CDN 产品。但是需要完成大量的工作,才有实现商业化的可能。

比如需要加入多个子系统,计费系统用于查询客户流量、带宽使用情况;运维系统负责节点、服务器等管理;日志系统负责在使用过程中排查系统问题。

过去围绕又拍云 CDN 系统,就有十多个子系统。去年又拍云增加了直播云功能,意味着又增加了五六个子系统。现在子系统已经有二三十个了。

另外两点是商业价值和市场价值。商业价值主要体现在如何为客户创造价值。

纯技

纯技的特点则主要集中在技术创新方面。

比如近期十分流行的 OpenResty 开源产品,技术创新性强、性能优异。与现在的 Node.JS、PHP 等相比,是占优势的。

纯技另一个特点是有趣,炫酷。纯技产品,本身技术性强,它诞生的原因也正是因为开发者觉得它的 idea 有趣。

我在 2010 年时,开发了一个 aLiLua 的开发框架,与 OpenResty 相同,只是我没有基于Nginx 编写。独立编写了 server,将其嵌入进去,形成 aLiLua 。

这是两种不同的方法。我认为我的方法更加酷炫、简单。因为我不需要依赖于 Nginx 和配置文件。后来我编写了一个更加简单的,性能更强劲的。

这个东西具备了炫酷、有意思的特点,但是由于它纯粹是按我的个人兴趣制作的,没有考虑商业技术方面的内容,不具备稳定性、扩展性、兼容性等。

我的初衷是希望为自身、业界创造价值,但到现在还只是我自己在用来写写网页、和做些数据统计分析的事,不过这取得了非常好的效果,省去了很多麻烦。在又拍云团队中有不少杂活要做的,大家一般都会使用 Go、Python,而我则使用 aLiLua 。

△ 商业技术与纯技区别

商业技术与纯技的代表类型

简单介绍几类商业技术与纯技的代表性产品。

第一类产品——操作系统

商业技术中有 Microsoft Windows 和 iOS ,纯技的有 Linux。

Windows 无论是操作还是硬件兼容性都十分优秀。但是 Linux 有时候甚至连驱动都很难找到。Linux 的优势在于标准的硬件,将服务器构建于 Linux 系统上则十分便捷安全,性能非常好。

第二类产品——数据库

商业的 Oracle 或 MS DB 的市场前景十分优秀。过去二三十年中,几乎所有国内金融机构都是用这两种产品。

为什么国内金融机构不使用纯技领域的 MySQL 或 Redis 的产品呢?

商业场景,数据安全性最为重要,其次是稳定性保障,MySQL 或 Redis 虽然也能做到,但是用户显然对专业的 Oracle 和 MS DB 更为信任。

第三类——语言类

商业语言包括:C#、Swift、Java 等,纯技领域有 PHP、Python,Perl 等。

国内技术人追求比较高,使用 PHP、Python 者较多,但是国外仍然有较多人使用 C# 和 Swift 。因为后两者的版本历史兼容性比 PHP、Python 强大很多,有利于版本迭代。

我从 2001 年开始使用 PHP,一直使用到现在的PHP7。每次 PHP 的大版本更新中均不会以兼容性为前提。如果原来的这套场景是基于 PHP4.3 开发的,那么很可能无法直接使用 PHP5、PHP6 升级。版本升级时,需要使用 PHP5、PHP6 重新编写不兼容的地方。

第四类——Web server

Java 有比较多的 Web server 使用场景,这里以微软的 IIS 为例。在 IIS 上可以运行 ASP、C#,尽管 IIS 运行量不多,但是它是一个商业服务的例子。在商业服务中, Web server最重要的是性能,但是近几年,它已经落后于纯技领域的 Nginx 和 Apache了。

第五类——硬件

技术领域不仅有软件,硬件也相当重要。比如商业领域常会使用 F5 负责负载均衡,但是在纯技领域则多用到 LVS 。尽管 LVS 在使用过程中会存在产生不稳定性,消耗 CPU和内存资源等问题,但是很多公司还是会选择 LVS,主要原因是因为 F5 成本过于高昂。

以上,便是我列举的在商业技术和纯技领域大家较多接触到的部分产品。商业技术与纯技有稳定性、性能等极端性的差异。我们需要根据自己的需求,以满足业务需求为最终目标,在技术选型、产品选型中做好决策。

如何进行技术选型?

创新

前段时间热议的支付宝生活圈与微信理财。这两个就是明显的错误创新。首先很多人不希望朋友知道他的存款数额和购买了哪些物品,所以支付宝和淘宝天然不适合做社交。在微信方面,由于通讯录中绝大部分是朋友,人们只习惯于把零钱存在微信,用于发红包等之类的。

创新需要考虑到客户真实需求,并且满足客户的需求。

性能

千万不要杀鸡用牛刀,比如有人用 C++ 写 Web 应用,虽然性能非常好,但是研发难度大,实现周期长。再比如有人用最好的语言做大数据分析,但是其实性能并不好。每个语言都有自己的特点,C 语言性能强适用于大数据场景,但是对开发者技术要求高,开发周期长。又拍云的日志分析集群使用的就是 C 语言,虽然只有四台机器,但是可以完全处理全网 50 个 TB 左右的日志,并且计算出 Top 1000 的访问 URL、流量、访问次数等。

同样使用 Java 编写的 ES 实时日志收集系统,系统性却能要差很多,50 台机器的集群,只能抽样处理 10% 到 20% 。ES 实时日志收集系统的优势在于比起C语言的系统要灵活,可以针对业务需求,选择不同的技术方案。

稳定性

OpenStack 中的 Ceph 存储集群的稳定性非常差,把它搭建起来,对外出售公有云服务是完全不可能的。企业级公有云的使命是创造商业价值,在做技术选型的时候,首先要考虑系统稳定性,做到安全可靠。

总的来说,公司的 CTO 、技术总监、架构师等在进行技术选型的时候,要做到正确创新,以及权衡好性能与稳定性。

总结:“做适合的事”

第一阶段:初创

这个阶段团队往往只有四五个人,产品还只是一个 idea ,这时我们不需要考虑产品的拓展性、开发难易度,只需要以最快方法将它以 demo 的形式实现,通过这个 demo 验证产品是否存在商业价值。

第二阶段:爆发

这个阶段我们需要顶住产品发展带来的技术压力,考虑分布式、热备容灾等问题。

第三阶段:稳定

在稳定阶段,需要完善前两个阶段的技术问题,以及开始技术迭代,从长远角度考虑公司、产品未来的发展。

又拍云初创的时候,团队管理后台、云存储 API 等大量底层都是使用PHP 编写的,底层存储系统是使用 Erlang 编写的,CDN 系统使用 Nginx+C 编写的。

当时选择 PHP 语言的是因为开发周期短,产品可以实现快速上线。仅仅半年的时间,产品 demo 就编写完成了。

到了 2014、2015 年爆发阶段,我们开始考虑分布式、热备容灾等问题。并且使用 Java 和 Erlang 语言重新编写了 API 系统。在测试权衡后,又选择使用 Nginx+Lua 编写的 API 系统。

现在又拍云的技术发展已经处于一个稳定阶段,我们更多考虑的是怎么偿还技术债务,开始思考如何节省资源、提高性能。以及从长远的角度思考未来的市场需要,应对新的变化。

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

推荐阅读更多精彩内容

  • 粮食行业在无人值守称重软件下的应用 衡安无人值守称重软件粮食收购流程如下: 1.功能初始化:为使粮食化验、检斤、业...
    衡安小哥阅读 369评论 0 0
  • 这篇文章是写在深夜里,距离我踏上小镇的日子已经隔了数天。说是小镇其实未免牵强,因为从现在的光景看起来已经离“小镇”...
    不怪的小孩阅读 384评论 4 4
  • 攸之坐在公园的一长椅上,等着好友湘雅的到来。她们约定今天一起去游乐场玩。从这个公园的一小路走出去,可以避免有大量人...
    空白11111阅读 234评论 0 0
  • 财务:稳定有序 工作: 双十二回馈客户酒会 退休规划十二个家庭 意外与小医疗所有老客户全面检视覆盖 健康: 每天运...
    心动由我阅读 137评论 0 0
  • 不要对打鼾的人极尽言语攻击之能事 ​ 原创文 | 林子 (清风浪港手写铺原创文,未经授权请勿转载) 真是细思极恐啊...
    清风浪港手写铺阅读 784评论 0 0