【IT168 評論】我們生活在一個APP經濟時代,除了原生APP之外,近幾年大火的Web App深受小型團隊的追捧。Web App是指基於Web的系統和應用,其作用是向廣大的最終用戶發布一組複雜的內容和功能。WAP更側重使用網頁技術在移動端做展示,包括文字、媒體文件等。而Web App更側重「功能」,是使用網頁技術實現的App。總的來說,Web App就是運行於網絡和標準瀏覽器上,基於網頁技術開發實現特定功能的應用。為什麼很多開發者關心與Web App開發相關的程式語言呢?
首先,對於是否要轉向Web App開發沒有明確的定義。贊成者認為相比於原生App,將網頁定義為用戶界面更方便。其次,如果決定轉向應用程式開發,這種轉變可能也需要一段時間,而需要多長時間可能就是程式設計師需要思考的問題了。
即便面對著來自原生App的攻擊,網站的地位也沒有任何變動。無論是考慮面向企業,還是面向客戶的用戶體驗,未來幾年,網站一定會成為企業IT基礎架構的一部分。每天產生的APP有上千個,而手機用戶平均每天會打開的app只有20個,又如何保證你的App不被淹沒呢?
Web App的標誌之一是它不斷變化和發展,不斷被改變和操縱,以找到最好的用戶體驗。變化意味著不斷發展,不斷發展需要編程工具的支持。我很好奇現在的程式設計師平均大概會多少種程式語言呢?不是說通過查看代碼可以識別出是哪種語言,而是起碼會用這些語言實現一些基本功能。不過接下來這十種程式語言,值得一看。這是通過對IEEE,TIOBE和New Relic在內的熱門語言排行榜相關文章進行分析得出的。如果你要寫一個有前端(客戶端系統)的頁面,你可能要用到JavaScript。但在伺服器端,開發語言有很大變化。唯一的常數是要有資料庫,所以,本文就不涉及資料庫了。
HTML5
網頁基於HTML的基礎之上。2016年,開發HTML沒理由不選擇HTML5。當然,從標準的角度來看,它仍然不是完全成熟(雖然它很完整,但需要從實用的角度完善),瀏覽器支持仍然有些不足。但HTML5為Web開發帶來的是,推動瀏覽器發布商儘快使其產品儘可能兼容。
從多媒體的角度來看,HTML5將使整個過程更容易,據猜測容易度達到了473%。無論精確的百分比是多少,HTML5都能讓開發者更輕鬆地在網站中構建豐富的內容,並在多種屏幕尺寸和設備類型之間以合理的方式部署網站。
CSS
CSS就好像使用HTML5的併發症一樣,是一種用來表現HTML(標準通用標記語言的一個應用)或XML(標準通用標記語言的一個子集)等文件樣式的計算機語言。CSS不僅可以靜態地修飾網頁,還可以配合各種腳本語言動態地對網頁各元素進行格式化。CSS是一種允許網頁將內容與外觀分離的機制。
這是在多種設備類型上呈現相同內容,而無需為每個設備完全重新編程的關鍵。CSS的學習和實現可能十分複雜,但當涉及到創建視覺豐富的網站,沒有其他更容易的機制可提供與CSS同級別的效果了。
JavaScript
如果你認為自己永遠不會被要求寫一個基於網絡的應用程式,你可能對JavaScript並不感冒。另一方面,如果一個web前端應用程式(或者說行動應用程式)是你的未來,那麼JavaScript就會是你想熟悉的工具。
JavaScript不是用於系統編程或在超級計算機上寫流體動力學分析的應用程式語言。但它在給HTML網頁增加動態功能上,是難以置信的流行和有用。JavaScript幾乎用於每個流行網站的前端編程,它是一種至今顯示不出任何衰落跡象的語言。
Java
使用Java,我們從Web應用程式客戶端移動到伺服器端。Java已經存在20多年了,在過去幾年裡,它是大學和企業中最受歡迎的程式語言之一。近幾年的Java似乎一直不被人看好,但卻一直高居TIOBE排行榜榜首。「寫一次,就可以運行在任何地方」的跨平臺承諾是強大的,並且大多數Web應用程式不會受到Java弱點的影響。如果要創建涉及伺服器的業務流程和訪問資料庫的Web應用程式,Java是值得出現在開發工具包中的語言。
PHP
PHP是將瀏覽器前端綁定到資料庫後端最常用的腳本語言。PHP成長多年,儘管事實上它的發展過程有些混亂,但使用PHP依然可以編寫出有效的代碼。眾所周知,PHP目前已被大量程式設計師使用,用於大量網站開發中。如果希望應用程式快速,經濟地響應客戶需求,PHP已經成為不二選擇。
Ruby
Ruby是一種面向對象的腳本語言,已經存在了20多年。起初由日本的松本行弘開發,現在已經成為一種流行的語言,用於編寫使用瀏覽器的用戶界面的應用程式。程式設計師的思維往往是「怎樣可以讓機器運行的更快或者效率更高」,更多的時候是從機器的角度思考問題,Ruby很靈活,可以減少編程時不必要的瑣碎時間,它的語法和靈活性可以被比作「Go」遊戲。語法和遊戲看起來都很簡單,但卻可以達到很大的複雜度和深度。近幾年,Ruby也常常出現在各大受歡迎的程式語言排行榜中。
ASP.net/ASP.net Core
雖然本文中的大多數語言可用於各種平臺和系統,但ASP.net在2014年以前是由Microsoft獨立開發運營的,之後才走上開源的路。ASP.net可幫助開發人員構建動態網站和應用程式。ASP.net是Microsoft的Active Server Pages的繼任者。它現在是一個使用.NET編譯器平臺(開源)的Web框架,可用於多個平臺。ASP.net Core比其他框架有一些優勢,特別是它首次執行編譯時,允許更快的後續代碼執行,伺服器上的代碼也可以更少。
ColdFusion
ColdFusion出現在一篇關於語言的文章中似乎很奇怪,因為它是一個快速應用程式開發框架,而不是一種語言。但ColdFusion的一部分,其CFML(ColdFusion Markup Language)是一種程序設計語言,類似現在的JavaServer Page裡的JSTL(JSP Standard Tag Lib)。它在許多方面類似於PHP,JSP和ASP.net Core的腳本部分,並且它與HTML有很多相同的語法和結構。
ColdFusion是Macromedia的一款產品,它將內容創建和應用程式分析集成到一個套件中。如果你想將設計,開發和操作集成到一個工作流程中,這是一個值得學習的方法。
Perl
如果你正在尋找一個優雅,精美的語言,那請儘快將注視集中到Perl,這個程式語言已經30歲了,Perl語言愛好者將它稱之為「一種擁有各種語言功能的夢幻腳本語言」。Perl借取了C、sed、awk、shell 腳本語言以及很多其他程序語言的特性,其中最重要的特性是它內部集成了正則表達式的功能,以及巨大的第三方代碼庫CPAN。它的整個成長過程就像滾雪球一樣,在眾多開發者的努力下,功能越來越強大,用戶數也急劇增加。
在這一點上,你會發現Perl在大多數Web應用程式中被使用,但很少有人會自豪地宣傳這個事實。事實是,如果你能找到一個真正擅長Perl的人,或者是一個真正的Perl專家,那麼當沒有其他解決方案時,起碼可以有一個人快速修補漏洞,這項技能永遠都是有價值的。
Python
Python是許多開發者喜歡的語言之一,剩下的那一部分人可能是恨並愛著。它是一個非常類似腳本的語言,非常緊湊,通常還具有快速寫入的巨大優勢,並且有非常強大的框架來處理許多問題。作為一個解釋性語言,缺點是具有所有的安全和潛在的性能問題。
Python是完全面向對象的語言。函數、模塊、數字、字符串都是對象。雖然Python可能被粗略地分類為「腳本語言」(script language),但實際上一些大規模軟體開發計劃例如Zope、Mnet及BitTorrent,Google也廣泛地使用它。Python本身被設計為可擴充的,並非所有的特性和功能都集成到語言核心。Python提供了豐富的API和工具,以便程式設計師能夠輕鬆地使用C語言、C++、Cython來編寫擴充模塊。Python不像一些高級程式語言那麼複雜,因此它可以在需要時快速學習,或者可以用作網關語言。它幾乎永遠不會是一個人或一個部門工具包中的唯一語言。
作為Web App的開發者,你可能已經掌握了不止10種語言或方法。沒有單一的哪種語言就是最好的,最優秀的,每種語言都可以用在整體應用程式開發環境中,都可以有一席之地。如果是你,你會選擇哪一種或哪幾種呢?