什么刀切什么菜,那如何选择语言来做编程这道菜?C/java

半夜,电话铃响,一个朋友从美国打开电话,问编程用什么语言最好。这位朋友在一家世界500强的中国公司任高级副总裁,我完全被他这个问题给问懵了。

什么刀切什么菜,那如何选择语言来做编程这道菜?C/java

“php是世界上最好的语言”,我犹豫了下,答道。他非常兴奋,“是吗,是吗,那你说说好在那里”。“我觉得这话是错的,世界上最好的语言可能是c++吧”。“哦”他有些困惑。我们就这样没头没脑的聊开了,他说那他就招一个C++程序员,问我一个月开多少工资才适合,我说一个月80k吧。他说太高了,我说低于79k你招不来一个真正的C++程序员。最后,我问他要做会什么,他说他要做世界上最好的个人主页。我说这活世界上最好的语言和最好的程序员外加开最高的工资可做不了这活。

什么刀切什么菜,那如何选择语言来做编程这道菜?C/java

这下轮到他瞢了,他说他不怕花钱,就想做一个世界上最好的个人主页。我说你花8k找一个女朋友是美工的php/javascripe程序员完完全全能满足你的要求。什么刀切什么菜,那如何选择语言来做编程这道菜?C/java

看来,即便是世界500强企业的高级副总裁对编程语言这回事也完全是蒙圈的。

C:最接近汇编的高级语言,最接近机器本质的语言,一般用来设计操作系统,驱动程序等要求性能极致的产品。理论上说,掌握C语言,是一个合格程序员的开始。可惜,大部份程序员都不理解。

C++:C是C++的一个子集,C++保留了C的运行性能,又易于构建大型的工程,C++是为面向对向而设计出来的,用C++,你可以设计出来更好的软件结构,或者说架构。C++适合做专业性极强,对性能要求极高,规模极大的软件项目,如浏览器,Linux 各类库。大型公司做的比较需要极致性能的项目 (如游戏等),或是并发要求比较高的 API 服务等。

即便是在anroid中,如果你要做一款视频播放器,一款大型游戏,你为了秒杀竞争对手,c/c++会是你不得己的选择。什么刀切什么菜,那如何选择语言来做编程这道菜?C/java

掌握了C++,你可以设计出宇宙中的一切程序,而且设计得最好,当然,你可能要付出巨大的努力。如下,有了下面这些语言的生路。

Java: JVM 梦着提供了很好的跨平台支持,但一直没有成功。所以在增加代码重用率上有不错的贡献,但是性能远不如 C++ 所以在一些没那么需要性能的项目中较为常见。如业务逻辑不甚复杂的 Web 后端可以用 Tomcat 之类。但java有着宏大的类库,简洁的语法,如果你想快速的成为一个程序员,java是很好的选择,可以装逼也足够牛B. 最重要的是,这是android平台,最重要的语言。
什么刀切什么菜,那如何选择语言来做编程这道菜?C/java

JavaScript Client-side :对与互联网来说,JS是最重要的编程语言之一,前几天,阿里暴炒的中秋月饼事件,主解就是 JS,现在,这五位当事人己被捧上了天,没错,他们只是会一点JS而己。 前端 JS 是 ECMAScript,版本之间的标准相当混乱。前端的浏览器支持也十分鬼畜,不同的浏览器跑同一个 js 代码出截然不同的结果是很正常的事情。前段的 js 遍布各大网站。近年来知名的前端 MVC 框架 Angular, React, Vue 等都是前端 js 框架。

JavaScript Server-side: Joyent 团队利用了 Google 开源的 V8 前端 js 引擎写出了一套能跑在服务器的和 py 差不多的解释性语言。因其底层封装 fiber 和 EventEmitter 对异步的支持做得相当好所以多见于现代 Web 服务器后端。著名框架有 Koa, Express, Sails, Strongloop, Meteor。

Python: 近年来上升最快的一门语言,似乎什么它都能做。当高端版计算器用,或是调教一些不太复杂的 GUI 程序。

PHP: 我不知道这个传说是出自那里,PHP 是世界上最好的语言!但php也只能做一些服务器脚本,facebook就是靠它起家的。php更像是一个简化了的c。所以,用php的程序员,应该暗自应幸,他们不是在用c++.

Ruby: Python兴起后,它似乎就没以前那么火了。利用 Ruby on Rails 架设一个 Web App 的效率肯定是顶尖的,自带的 Assets Pipeline 和 CSRF CORS 支持和 cli 生成 MVC 要素的 feature 让人玩起来非常爽。不过生产环境的 Web App 似乎并不多见。不过 Ruby 本身也可以起到类似 Python 的作用然而并没有多少人用。

C#:最初被设计出来是为了对抗JAVA, 之前微软有个不被同门认可的VS,就是visual java ,一气之下,微软亮出亲儿子C#,微软是聪明的,和c扯上关系错不了,C#是一部很好的语言,他重新设计,避免了其它语言在成长过程中沾惹的不好的习惯。当前,C#用于开发基于微软.NET平台的应用程序,有些可惜了。

下面还有几门可能己经消亡的语言

什么刀切什么菜,那如何选择语言来做编程这道菜?C/java

COBOL(COmmon Business Oriented Language,通用商业程序设计语言)笔者没有用过,主要用于商业数据处理

FORTRAN(FORmula Translation,公式翻译)主要用于数值计算。

BASIC(Beginner All-purpose Symbolic Instructional Code,初学者通用符号指令码)易于学习和使用

Pascal(以Blaise Pascal命名) 另一种数据库设计语言。

Ada(以Ada lovelace 命名)最神密的语言,美国国防部专用,笔者从末见过。

Visual Basic:很多老程序员的入门语言,很多人用它编取了人生的第一份工资(微软开发的一种类Basic的可视化编程语言)图形用户界面的开发以及应用程序快速开发,学习它的负作用是,再也学不了其它的语言了。

Delphi (Borland公司开发的一种类Pascal 的可视化编程语言)图形用户界面的开发以及应用程序的快速开发,曾经非常火的数据库类软件开发语言。
什么刀切什么菜,那如何选择语言来做编程这道菜?C/java

============================

微信公众号:coding-art (编码之妙)

微信公众号:debug51(我爱debug)

我们只聊技术,不聊人生,不只是一个网站:我爱狄八哥(52debug。net )


相关内容推荐