半夜,電話鈴響,一個朋友從美國打開電話,問編程用什么語言最好。這位朋友在一家世界500強(qiáng)的中國公司任高級副總裁,我完全被他這個問題給問懵了。 “php是世界上最好的語言”,我猶豫了下,答道。他非常興奮,“是嗎,是嗎,那你說說好在那里”?!拔矣X得這話是錯的,世界上最好的語言可能是c++吧”?!芭丁彼行├Щ蟆N覀兙瓦@樣沒頭沒腦的聊開了,他說那他就招一個C++程序員,問我一個月開多少工資才適合,我說一個月80k吧。他說太高了,我說低于79k你招不來一個真正的C++程序員。最后,我問他要做會什么,他說他要做世界上最好的個人主頁。我說這活世界上最好的語言和最好的程序員外加開最高的工資可做不了這活。 這下輪到他瞢了,他說他不怕花錢,就想做一個世界上最好的個人主頁。我說你花8k找一個女朋友是美工的php/javascripe程序員完完全全能滿足你的要求。 看來,即便是世界500強(qiáng)企業(yè)的高級副總裁對編程語言這回事也完全是蒙圈的。 于是,本文整理了下,專為末來的高級副總裁們寫了這篇短文章來討論編程語言的問題,。果你點來此文,恭喜你,你對了,你就是末來的高級副總裁。收藏下,到那一天,你會用得著這些知識點的。 C:最接近匯編的高級語言,最接近機(jī)器本質(zhì)的語言,一般用來設(shè)計操作系統(tǒng),驅(qū)動程序等要求性能極致的產(chǎn)品。理論上說,掌握C語言,是一個合格程序員的開始??上В蟛糠莩绦騿T都不理解。 C++:C是C++的一個子集,C++保留了C的運(yùn)行性能,又易于構(gòu)建大型的工程,C++是為面向?qū)ο蚨O(shè)計出來的,用C++,你可以設(shè)計出來更好的軟件結(jié)構(gòu),或者說架構(gòu)。C++適合做專業(yè)性極強(qiáng),對性能要求極高,規(guī)模極大的軟件項目,如瀏覽器,Linux 各類庫。大型公司做的比較需要極致性能的項目 (如游戲等),或是并發(fā)要求比較高的 API 服務(wù)等。 即便是在anroid中,如果你要做一款視頻播放器,一款大型游戲,你為了秒殺競爭對手,c/c++會是你不得己的選擇。 掌握了C++,你可以設(shè)計出宇宙中的一切程序,而且設(shè)計得最好,當(dāng)然,你可能要付出巨大的努力。如下,有了下面這些語言的生路。 Java: JVM 夢著提供了很好的跨平臺支持,但一直沒有成功。所以在增加代碼重用率上有不錯的貢獻(xiàn),但是性能遠(yuǎn)不如 C++ 所以在一些沒那么需要性能的項目中較為常見。如業(yè)務(wù)邏輯不甚復(fù)雜的 Web 后端可以用 Tomcat 之類。但java有著宏大的類庫,簡潔的語法,如果你想快速的成為一個程序員,java是很好的選擇,可以裝逼也足夠牛B. 最重要的是,這是android平臺,最重要的語言。 JavaScript Client-side:對與互聯(lián)網(wǎng)來說,JS是最重要的編程語言之一,前幾天,阿里暴炒的中秋月餅事件,主解就是 JS,現(xiàn)在,這五位當(dāng)事人己被捧上了天,沒錯,他們只是會一點JS而己。 前端 JS 是 ECMAScript,版本之間的標(biāo)準(zhǔn)相當(dāng)混亂。前端的瀏覽器支持也十分鬼畜,不同的瀏覽器跑同一個 js 代碼出截然不同的結(jié)果是很正常的事情。前段的 js 遍布各大網(wǎng)站。近年來知名的前端 MVC 框架 Angular, React, Vue 等都是前端 js 框架。 JavaScript Server-side: Joyent 團(tuán)隊利用了 Google 開源的 V8 前端 js 引擎寫出了一套能跑在服務(wù)器的和 py 差不多的解釋性語言。因其底層封裝 fiber 和 EventEmitter 對異步的支持做得相當(dāng)好所以多見于現(xiàn)代 Web 服務(wù)器后端。著名框架有 Koa, Express, Sails, Strongloop, Meteor。 Python: 近年來上升最快的一門語言,似乎什么它都能做。當(dāng)高端版計算器用,或是調(diào)教一些不太復(fù)雜的 GUI 程序。 PHP: 我不知道這個傳說是出自那里,PHP 是世界上最好的語言!但php也只能做一些服務(wù)器腳本,facebook就是靠它起家的。php更像是一個簡化了的c。所以,用php的程序員,應(yīng)該暗自應(yīng)幸,他們不是在用c++. Ruby: Python興起后,它似乎就沒以前那么火了。利用 Ruby on Rails 架設(shè)一個 Web App 的效率肯定是頂尖的,自帶的 Assets Pipeline 和 CSRF CORS 支持和 cli 生成 MVC 要素的 feature 讓人玩起來非常爽。不過生產(chǎn)環(huán)境的 Web App 似乎并不多見。不過 Ruby 本身也可以起到類似 Python 的作用然而并沒有多少人用。 C#:最初被設(shè)計出來是為了對抗JAVA, 之前微軟有個不被同門認(rèn)可的VS,就是visual java ,一氣之下,微軟亮出親兒子C#,微軟是聰明的,和c扯上關(guān)系錯不了,C#是一部很好的語言,他重新設(shè)計,避免了其它語言在成長過程中沾惹的不好的習(xí)慣。當(dāng)前,C#用于開發(fā)基于微軟.NET平臺的應(yīng)用程序,有些可惜了。 下面還有幾門可能己經(jīng)消亡的語言 COBOL(COmmon Business Oriented Language,通用商業(yè)程序設(shè)計語言)筆者沒有用過,主要用于商業(yè)數(shù)據(jù)處理 FORTRAN(FORmula Translation,公式翻譯)主要用于數(shù)值計算。 BASIC(Beginner All-purpose Symbolic Instructional Code,初學(xué)者通用符號指令碼)易于學(xué)習(xí)和使用 Pascal(以Blaise Pascal命名) 另一種數(shù)據(jù)庫設(shè)計語言。 Ada(以Ada lovelace 命名)最神密的語言,美國國防部專用,筆者從末見過。 Visual Basic:很多老程序員的入門語言,很多人用它編取了人生的第一份工資(微軟開發(fā)的一種類Basic的可視化編程語言)圖形用戶界面的開發(fā)以及應(yīng)用程序快速開發(fā),學(xué)習(xí)它的負(fù)作用是,再也學(xué)不了其它的語言了。 Delphi (Borland公司開發(fā)的一種類Pascal 的可視化編程語言)圖形用戶界面的開發(fā)以及應(yīng)用程序的快速開發(fā),曾經(jīng)非常火的數(shù)據(jù)庫類軟件開發(fā)語言。 ============================ 微信公眾號:coding-art (編碼之妙) 微信公眾號:debug51(我愛debug) 我們只聊技術(shù),不聊人生,不只是一個網(wǎng)站:我愛狄八哥(52debug。net ) |
|