如何選擇正確的Web編程語言?

王平


首先什麼叫選擇正確呢?而不是正確選擇呢?

正確這個是很難說的,因人因地因時皆不同。

題主意思可能是現階段選擇一種最適合的web編程語言吧。

首先說下選擇的流程:

1. 先羅列下主流編程語言

2. 再做一個對比

3. 然後結合下自己的業務場景

4. 最後選擇合適的語言

主流web編程語言,前端當然是js,或者類js(type coffee dart等)語言,這個沒有什麼爭議。

至於web後端,語言眾多,按時間順序大致可以分為三類:

1. 早期的有:c c++ vb perl delphi等,這些早已經在web端不流行了。主要原因就是開發效率低,框架少,沒有為web特色量身定製。

2. 傳統的有:c# java php asp 等,這些目前還是中堅力量,但正不斷受到挑戰,asp早就被被拿下,php與asp前途類似。c#與java在企業級應用還有點優勢,但未來也會逐漸被取代。這些都有無數的框架和相應api支持,但是畢竟是上個世紀的產物了,無論如何與時俱進都會難以跟上時代的步伐。

3. 新貴有:nodejs go python ruby kotlin groove scala rust等。這些語言各有特色,特點就是新或者說從web角度來看比較新。nodejs是其中最值得關注的,主要得益於js語言在web前端的一統江湖和google v8引擎。go源自google,性能又好所以普及的很快。python早就有了,但就web來講最近幾年頗為流行,其語法是非常簡潔的。kotlin可以前後端開發,且語言設計確實非常好,又跟java無縫結合,所以大有前途。以上4種應該是未來幾年最有前途的web後端語言了。這幾個可能會並駕齊驅,在細分領域各有所長。

以上評估僅針對web端而來言,很多語言是可以開發系統、客戶端、中間件等。這裡不評估語言好壞,只說就web來講的趨勢。

選擇語言肯定要結合業務場景,不同需求就採用不同方案,還可以是不同語言結合的方式,且在不同階段語言是要變換的。所以,沒有正確的選擇,只有你自己的當時覺得還不錯的選擇。


三把飛刀


目前流行的Web編程語言有Java、PHP、Python、C#等,當然做Web開發也離不開Html、CSS和JavaScript,選擇編程語言主要取決於開發場景、開發週期、團隊技術組成、流行趨勢等因素。

曾經有人做過一個形象的比喻,PHP就像小區附近的便利店,Java就像沃爾瑪,C#就像百貨商場,而Python則是網上購物,下面對這幾種Web編程語言做一個描述。

PHP是目前在Web開發領域應用最為廣泛的編程語言之一,從目前佔據的開發市場份額來看,PHP要領先於Java和Python。PHP的特點是語法簡單靈活、天然熱部署、Web開發生態健全、有大量的成熟方案,採用PHP開發Web應用在開發週期上也有一定的優勢。目前PHP比較適合於中小型網站的開發,方便快捷。

Java Web開發是Java語言主要的應用場景之一,Java語言最大的優勢在於穩定的性能、豐富的組件和清晰的邏輯。Java語言在處理併發訪問上的優勢,使得大型商業互聯網平臺往往更傾向於採用Java語言開發。另外,在大數據領域的應用也使得Java在未來的應用前景還是不錯的。雖然Java具有性能上的優勢,但是Java語言自身也偏重,在開發週期上與PHP和Python對比來說還是偏長。

Python語言也是傳統的Web開發語言之一,Python的特點就是簡單,Python語言可以使用很多現成的庫,採用Python開發Web應用往往有較短的開發週期。但是Python開發Web應用的性能還是存在一定的問題,這也是Python語言固有的問題,但是對於中小型應用來說,Python是一個不錯的選擇。

C#也是Web開發的重要方案之一,C#語言在開發Web方面最大的特點就是有成熟的方案可以套用,C#是廣大外包公司比較喜歡的語言,因為採用C#開發會降低開發風險。

我從事Web開發工作多年,目前也在帶開發團隊,我在頭條上寫了關於Java和Python的系列文章,感興趣的朋友可以關注我,相信一定會有所收穫。

如果有Web開發方面的問題,也可以諮詢我,謝謝!


IT人劉俊明


正在用nodejs做我的第一個webapp,我來談一下學習中的體驗。

其實在網上有很多教程,我就在b站上面看了許多的教程,看多了這些老師講的課以後,就會慢慢發現,明明是同樣一個知識點,有的老師可以在一句話之內給你講清楚,講明白,講完就能上手寫,而有的老師講了好幾節課,舉了好多例子,你用起來還是模模糊糊,直到踩了很多坑以後才撥雲見日。

所以基於這樣的事實,如何選擇一個講得好的老師,或者說一本好的入門書籍顯得額外重要,很多人樂意去相信大部分人都在走的路,比如所謂的要想學好編程,必須有數據結構和C語言還有操作系統基礎,其實我用nodejs和react做應用,一直到現在,也沒有用到多少那些知識,倒是對數據庫這一塊有點感興趣,專門去學習了數據庫原理和練習一些複雜的SQL實現,網上有很多耍算法題的,我覺得這個也顯得奇怪,對於一個複雜的系統,最大的問題顯然不是查詢數據的性能和怎麼搞多線程(事實上nodejs只有一個線程,但是它的高併發處理能力是業內有目共睹的),而是在整體的從業務邏輯上去改善一個系統的可行性,特別是互聯網企業,不同於傳統的企業,互聯網企業競爭激烈,創業者層出不窮,也許今天才買了幾個服務器,明天就倒閉了,那麼快速的迭代,增加功能獲取用戶要比一昧地死守安全和穩定要明智地多,我用過好多的軟件,裡面循環著嵌套了無窮無盡的混亂無章的邏輯,這樣的問題並不是開發人員想看到的,也不是用戶希望的,那這是為什麼呢?因為每一次功能的添加和迭代,都是對原有系統的強拆,自然而然混亂不堪,以至於最後根本無法再做任何更改,那如何合理地將代碼的耦合度和系統的可擴展性結合起來,才是軟件工程最值得研究的問題,所以我專門去學習如何設計數據庫,而對於數據結構和算法這種拼腦容量的東西沒有太大的興趣。

解決一個問題雖然是複雜的,有挑戰性的,但是可怕的是為了解決一個複雜的問題,引入更多的繁瑣的問題,這就不是能否解決的問題,因為其帶來的複雜度是難以用數量級來描述的,做完一道算法題,十天以後,一百天以後,還可以看得懂,但是,做完一個項目,一個月以上基本上就是天書了,架構能力顯然比算法要重要,這需要全局觀。


可樂杯杯hhhh


自互聯網誕生以來,網絡編程仍然是一種流行的和需求的技能。在網絡驅動的社會中,網絡編程繼續呈上升趨勢。

然而,學習網絡編程語言比學習正確的網絡編程語言更重要。有幾個因素決定哪種語言最好。


愛碼農


php比較成熟一般我們公司用這個 java和net對於一般網站來說有點龐大佔用內資源多。


分享到:


相關文章: