未來物聯網全棧開發 —— JavaScript OR Python?

來源:互聯網
上載者:User

標籤:參考   mod   str   ==   通訊   廠商   hid   open   繪圖   

未來物聯網全棧開發 —— 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 的優點,來排列下:

  1. JavaScript 可以減少網路傳輸。
  2. JavaScript 擁有跨平台性。
  3. JavaScript 簡單、方便操縱HTML對象。
  4. JavaScript 支援分布式運算。
  5. 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?

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.