javascript
未来物联网全栈开发 --JavaScript or Python?
版權聲明:本文為博主杜錦陽原創文章,未經博主允許不得轉載,如有侵權將依法追究其法律責任。
目錄(?)[+]
未來物聯網全棧開發 —— JavaScript OR Python?
物聯網開發涉及面龐雜,開發周期長,所以我們必須尋找一種覆蓋面廣的編程語言和方法。
JavaScript 支持 HTTP 和 JSON 、支持函數式編程、可提供交互式環境等特點堪稱適用于物聯網全棧開發;
Python 作為一種膠水語言,可在物聯網及嵌入式系統中承擔大量任務,并部分替代以上語言。
??物聯網是新一代信息技術的重要組成部分,也是“信息化”時代的重要發展階段,不太清楚的可以看上篇文章《IoT領域的故事、經歷、技術實戰》,正所謂語言無國度,無論是 Js 還是 Python , 都有各自優點,最主要還是要看個人選擇自身比較合適的語言。但是在未來物聯網全棧開發的基礎上,個人覺得 Python 作為主流且更具有優勢,不信?請看文章最后的一句話。
先來說說 Javascript
??可能很少人知道 js 的前身,Javascript 的前身叫LiveScript,是Sun公司推出Java后 Netscape 公司引進的,當時因為某些原因,它將原有的 LiveScript 重新進行設計,參考了面向對象的概念,并更名為 JavaScript,據說是因為一位小職員在無聊時開發出來的自身版本 。
??之所以取名JavaScript,是因為JavaScript是作為一種嵌入HTML文檔的、基于對象的腳本設計語言。其中很大一部分的語法同Java語言很相似,而且JavaScript的設計可以使它很容易地同Java語言一同工作,它可以充分支持Java的applet小應用程序,Java的 applet小應用程序也可以很方便地訪問已有的JavaScript代碼。所以,也可以JavaScript看成是Java語言的某種簡化版本。
??前端開發人員都比較清楚 JavaScript 的優點,來排列下:
??可是它也有局限性,如各瀏覽器廠商對JavaScript支持程度不同,“Web安全性”對JavaScript一些功能犧牲,如 .NET 大多數攻擊都是通過 Js 運行腳本注入。
目前在互聯網上有很多瀏覽器,如Firefox、Internet
Explorer、Opera等,但每種瀏覽器支持JavaScript的程度是不一樣的,不同的瀏覽器在瀏覽一個帶有JavaScript腳本的主頁時,由于對JavaScript的支持稍有不同,其效果會有一定的差距,有時甚至會顯示不出來。
再來說說 Python
??膠水語言,同樣的也是面向對象,但我更喜歡稱它為“蛇”語言,一種 C 和 shell 之間的語言,功能全面,易學易用,可拓展的語言,為什么這么說,在你會 Java 的基礎上,如果你同時學 Js 和 Python 的話,我想,Python 會更快勝任。
??開發游戲里有一種常見的應用情形,需要快速生成模型。如何操作?
??使用 Python 快速生成程序的原型(有時甚至是程序的最終界面),然后對其中有特別要求的部分,用更合適的語言改寫。
??比如3D游戲中的圖形渲染模塊,性能要求特別高,就可以用C/C++重寫,而后封裝為Python可以調用的擴展類庫。需要注意的是在您使用擴展類庫時可能需要考慮平臺問題,某些可能不提供跨平臺的實現。
Python 在吉多手中誕生了。實際上,第一個實現是在 Mac 機上。可以說,Python 是從 ABC 發展起來,主要受到了Modula-3(另一種相當優美且強大的語言,為小型團體所設計的)的影響。并且結合了 Unix shell 和C 的習慣。
??如果你使用過,應該對它所支持的擴展庫印象會很深刻吧,它可擴展性和可嵌入性,包括實用性非常強。如著名的計算機視覺庫OpenCV、三維可視化庫VTK、醫學圖像處理庫ITK,還有最近在幫公司開發的高級反編譯讀取庫(暫定命名YHK)。
未來誰是王者
??那對比優缺點和使用規則之后我們發現,兩者各有千秋,未來物聯網發展離不開一樣東西,那就是智能化與科學計算,國外這幾年比較主流的是 MATLAB,記得上家公司帶領的團隊里有個英國留學回來的哥們,和他聊過幾次,了解到,其實在國外,MATLAB 一直都是比較主流的,但它是商用,和Oracle一樣,需要付費,且價格不菲。由此可見,國外走的不是“程序、產品、項目”,而是“機器人、智能、科學計算、圖形、算法”這些,當然國內也有,卻是非主流的趨勢,今年才感覺到市場的趨勢改變,也許未來會著重發展,所以單從這一點來看,科學算法占用了很大的比例。
用 Python 做科學計算有如下優點:
- 首先,MATLAB 是商用的,且價格不菲。而 Python 完全免費,眾多開源的科學計算庫都提供了Python的調用接口。用戶可以在任何計算機上免費安裝Python及其絕大多數擴展庫。
- 其次,與MATLAB相比,Python是一門更易學、更嚴謹的程序設計語言。它能讓用戶編寫出更易讀、易維護的代碼。
- 最后,MATLAB主要專注于工程和科學計算。然而即使在計算領域,也經常會遇到文件管理、界面設計、網絡通信等各種需求。而Python有著豐富的擴展庫,可以輕易完成各種高級任務,開發者可以用Python實現完整應用程序所需的各種功能。
??由于Python語言的簡潔性、易讀性以及可擴展性,在國外用Python做科學計算的研究機構日益增多,一些知名大學已經采用Python來教授程序設計課程。例如卡耐基梅隆大學的編程基礎、麻省理工學院的計算機科學及編程導論就使用Python語言講授。
??眾多開源的科學計算軟件包都提供了Python的調用接口,例如著名的計算機視覺庫OpenCV、三維可視化庫VTK、醫學圖像處理庫ITK。
??Python專用的科學計算擴展庫就更多了,例如如下3個十分經典的科學計算擴展庫:NumPy、SciPy和matplotlib,它們分別為Python提供了快速數組處理、數值運算以及繪圖功能。因此Python語言及其眾多的擴展庫所構成的開發環境十分適合工程技術、科研人員處理實驗數據、制作圖表,甚至開發科學計算應用程序。
??電商、游戲、爬蟲、數據分析等商業應用,再到 分布式系統、網絡系統、大規模數據存儲、web基礎架構等進行性能分析,再過來就是 圖形渲染、科學計算、智能化、再到運行速度、快速處理、支持的擴展庫,如果是你,你會選什么呢?
|| 版權聲明:本文為博主杜錦陽原創文章,轉載請注明出處。http://blog.csdn.net/djy1992/article/details/71712628
總結
以上是生活随笔為你收集整理的未来物联网全栈开发 --JavaScript or Python?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 技术人的未来在哪里?
- 下一篇: JS遍历数组的12种方法