「C語言在它誕生的那個年代,是很是不錯的語言,惋惜沒有OOP。當項目臃腫到必定程度,人類就不可控了。
爲了彌補這個缺陷,C++誕生了。而爲了應對各類狀況,C++設計的大而全,太多複雜的特性,當你去閱讀一些開源項目,或者不少人寫一個很龐大的項目的時候你就能體會到C++的複雜,超過人類心智駕馭的範圍了。爲了彌補這個缺陷,JAVA誕生了。Java很不錯,對C++進行簡化。可是也不是完美的,爲了跨平臺,引入了運行時環境,諷刺的是也是由於這個運行時環境,也只是有限的跨平臺,也有一些坑。爲了彌補JAVA的一些小缺陷,C#誕生了。惋惜跟JAVA學壞了,也是運行在運行時環境上。早期C#只能在微軟平臺上運行,限制了它的發展。隨着這幾年C#完全開源,正慢慢讓C#變得更加普遍。Objective-C對比現代編程語言,太過古老了,有不少稀奇古怪的語法,限制了它的開發效率。爲了彌補Objective-C的缺陷,Swift誕生了。Swift初級設計改了好幾個版本,顯然是精心設計過,語法雖然設計的優雅漂亮,可是應用還不是很普遍。Swift剛出來的時候,用它寫了幾個小程序。可是Swift後面幾個版本變更的太厲害了,給人一種不穩定的感受。並且雖然Swift開源了,可是給人的感受仍是侷限在Apple的平臺上,各類庫都沒有很好的跨平臺。javascript
c 面向過程,系統級別開發,底層開發,本身管理內存
c/c++ 面向過程,面向對象。
python,腳本語言
c#,java面向對象
開發安卓用java
開發ios軟件用object-cphp
若是是系統級的APP那固然是C++,若是是應用軟件那首選JAVA。由於安卓是基於Linux,二者均可以。但C面向底層。JAVA面向用戶。C要求高一點,JAVA可使用手機商提供的開發套件。css
Android操做系統是基於Linux開發的一個移動操做系統,而你們更知道,Linux是C與C++的天下,因此Android的底層是支持C/C++的。綜上描述,Android上所採用的編程語言主要有如下的方式:html
一、基於ADK的Java編程java
二、基於NDK的C編程node
Android應用層的開發,基本上所有是採用Java開發,而個別性能需求的部分,可能會採用NDK的方式。python
原本從語言特性來講,Objective-C和Java比不合適,由於設計理念不一樣,Objective-C和C++能夠比,Java和C#比。Java和C#編譯出的代碼都須要一個運行環境才能跑,相似虛擬機的方式執行代碼,Objective-C和C++編譯出的代碼則能夠直接給交給CPU運行。有運行環境的語言,執行效率低不少,優勢是開發簡單。
不過既然如今這兩個是最流行的移動開發語言,硬把二者放一塊兒比就至關於拿Google和Apple平臺比,仍是有意義的:
(1)執行效率:如上面所說,Objective-C效率高得多,因此Android手機的電池表現和性能表現很難均衡。Obj-C勝。
(2)開發效率:也如上面所說,Java開發更簡便。不過在蘋果的努力下,Objective-C開發MacOSX應用已經可使用GC(自動垃圾回收),開發iOS應用有ARC(自動引用計數),反正都再也不須要手動管理內存了,之前管理內存是Obj-C程序員的噩夢。Java勝。
(3)跨平臺:除了蘋果的系統,已經沒什麼系統應用能用 Objective-C 開發了,但Objective-C能夠和C++混合編譯,C++的跨平臺威力可秒殺Java,因此不少軟件都是用C++開發核心、在蘋果的平臺上用Obj-C作個殼。固然,Java也能調用C++開發的代碼,但兩種語言格格不入(效率差距、類型差別),開發出的代碼一點都不優雅,沒法與Obj-C / C++的融合媲美。平手。
(4)開源庫:Objective-C的開源庫豐富程度雖然比不上Java,但Objective-C能夠和C++混合編譯,C++開源庫就能夠和Java比了。不過考慮到跨語言開發仍是比單語言開發麻煩一些,Java勝。
以上幾點權重不同的,例如移動開發時(1)最重要,因此我的認爲Google選Java不是個好選擇,C++好得多,可能他們考慮的是C++幾乎是流行編程語言中最難學的。
若是Objective-C和C++比,我的認爲Objective-C真是全方位都弱於C++。
」linux
【面向過程】;大部分都是硬件或者是系統組件,當項目臃腫到必定程度,人類就不可控了。android
【面向對象】;期初是C語言的改進與擴展,如今已經很是獨立且強大。ios
結合了C語言的底層編程能力同時提供了豐富抽象能力,同時無可避免的增長了語言的複雜度。
換句話說,作事情的方法不止一種,而用C++就能夠給你幾乎全部的選擇,因而C++能利用各類抽象作全部事情。
、、、、
【面向對象】;底層(運行時庫)是用c語言開發,但並不依賴於c語言。
一個簡化了的C++編程語言的子集,及一套龐大的平臺無關的標準庫。沒法脫離運行時環境(JVM)而存在
java的翻版;微軟開發,但受限於應用平臺。
Java填了Java的坑,而後又引入了很多新的設(da)計(keng),但C#只能用於微軟的平臺,因此成爲了一個限制。
android程序是Java編寫的,但程序使用的android開發的API,就是andriod的庫。
andriod就是提供了這個功能,它不須要讓你知道java底層的編寫,因位不少經常使用的庫早就有人編寫了,你的任務就是熟悉這寫庫,直接調用他們,這樣就會大大的加快軟件的開發效率
蘋果手機APP開發語言,進行iOS開發的一門編程語言,也是官方推薦的iOS開發語言,objective-c只能用於開發蘋果系統上的程序
蘋果手機開發Objective-C沒發展前途了,因而他換了湯藥出現了,順便把這些年比較潮的語言特性和實踐整合了進去。
屬於網絡的腳本語言,經常使用來爲網頁添加各式各樣的動態功能,爲用戶提供更流暢美觀的瀏覽效果。
PHP(外文名:php: Hypertext Preprocessor,中文名:「超文本預處理器」)是一種通用開源腳本語言。語法吸取了C語言、Java和Perl的特色,利於學習,使用普遍,主要適用於Web開發領域。PHP 獨特的語法混合了C、Java、Perl以及PHP自創的語法。它能夠比CGI或者Perl更快速地執行動態網頁。用PHP作出的動態頁面與其餘的編程語言相比,PHP是將程序嵌入到HTML(標準通用標記語言下的一個應用)文檔中去執行,執行效率比徹底生成HTML標記的CGI要高許多;PHP還能夠執行編譯後代碼,編譯能夠達到加密和優化代碼運行,使代碼運行更快。
javascript就是瀏覽器執行的腳本語言,控制頁面內容。
php就是服務器端執行的語言,讀取數據庫把內容顯示到頁面。
若是你想增長頁面交互性,必須學javascript,不然能夠不學。
[ PHP、JavaScript、HTML三者的比較] :http://blog.csdn.net/s___lei/article/details/51307616
側重於測試、運維方向,課程涵蓋網絡編程、數據庫操做、網絡爬蟲、網絡監控、 自動化測試、自動化運維等Python最主流的技術
就是一種結合語言,它有強大的類庫,能把不少語言結合在一塊兒使用,好比unix/linux shell、C,環境中很實用,執行的思想是與java、.NET差很少的。
對於圖形、圖像渲染能力比較出衆;
完成同一個任務,C語言要寫1000行代碼,Java只須要寫100行,而Python可能只要20行。
因此Python是一種至關高級的語言。
JAVA 要編譯後才能運行,Python 直接解釋運行。
JAVA 引入包後,調用包的方式比 Python 要簡潔些,而 Python 直接 import
包則是顯式的,不會出現同名模塊/類衝突的問題,若是使用「from module import function」的話,在使用的時候也很簡潔卻要求必須有針對性地引用函數。
JAVA 裏的塊用大括號對包括,Python 以冒號 + 四個空格縮進表示。
JAVA 的類型要聲明,Python 的類型不須要。
JAVA 基本上是類/結構操做,也就是面向對象處理,Python 能夠以獨立的函數模塊來處理邏輯而不須要放到類中。
JAVA 每行語句以分號結束,Python 能夠不寫分號。
JAVA 中的字符串以雙引號括起來,Python 中單引號或雙引號均可以(與 JavaScript 同樣)。
實現同一功能時,JAVA 要敲的鍵盤次數通常要比 Python 多。
系統編程:提供API(Application Programming Interface應用程序編程接口),能方便進行系統維護和管理,Linux下標誌性語言之一,是不少系統管理員理想的編程工具。
圖形處理:有PIL、Tkinter等圖形庫支持,能方便進行圖形處理。
數學處理:NumPy擴展提供大量與許多標準數學庫的接口。
文本處理:python提供的re模塊能支持正則表達式,還提供SGML,XML分析模塊,許多程序員利用python進行XML程序的開發。
數據庫編程:程序員可經過遵循Python
DB-API(數據庫應用程序編程接口)規範的模塊與Microsoft SQL Server,Oracle,Sybase,DB2,MySQL、SQLite等數據庫通訊。python自帶有一個Gadfly模塊,提供了一個完整的SQL環境。
網絡編程:提供豐富的模塊支持sockets編程,能方便快速地開發分佈式應用程序。不少大規模軟件開發計劃例如Zope,Mnet 及BitTorrent. Google都在普遍地使用它。
Web編程:應用的開發語言,支持最新的XML技術。
多媒體應用:Python的PyOpenGL模塊封裝了「OpenGL應用程序編程接口」,能進行二維和三維圖像處理。PyGame模塊可用於編寫遊戲軟件。
pymo引擎:PYMO全稱爲python memories off,是一款運行於Symbian
S60V3,Symbian3,S60V5, Symbian3, Android系統上的AVG遊戲引擎。因其基於python2.0平臺開發,而且適用於建立秋之回憶(memories off)風格的AVG遊戲,故命名爲PYMO。
黑客編程:python有一個hack的庫,內置了你熟悉的或不熟悉的函數,可是缺乏成就感。將Python列爲黑客應當學習的四種編程語言之一
Python到底能幹什麼?:http://www.cnblogs.com/cbryge/p/6189291.html
Node.js是一個Javascript運行環境
是微軟的新一代技術平臺,.NET是 Microsoft XML Web services 平臺;
微軟下一代的操做平臺,它容許人們在其上構建各類應用方式,令人們儘量經過簡單的方式,多樣化地、最大限度地從網站獲取信息,解決網站之間的協同工做,並打破目前計算機、設備、網站、各大機構和工業界間的障礙--即所謂的「數字孤島」,從而實現因特網的所有潛能,搭建起第三代互聯網平臺。
.net 是微軟的一個操做平臺,在這個平臺上能夠運行VS(visual studio)工具,這個工具支持不少種語言(好比C# ,F#), 通常編程就是用 「語言」 經過 「工具」 在平臺上編程的。
舉個例子:
.net=地皮,
地皮=》房子(.net=》vs)
人=》房子(c#=》vs)
咱們人使用建在地皮上的房子。
.net就是那個地皮了,最根基的東東。
「語言標記語言,是一種將文本(Text)以及文本相關的其餘信息結合起來,展示出關於文檔結構和數據處理細節的電腦文字編碼。與文本相關的其餘信息(包括例如文本的結構和表示信息等)與原來的文本結合在一塊兒,可是使用標記(markup)進行標識。如:HTML、XML
腳本語言腳本語言是爲了縮短傳統的編寫-編譯-連接-運行(edit-compile-link-run)過程而建立的計算機編程語言。它的命名起源於一個腳本「screenplay」,每次運行都會使對話框逐字重複。早期的腳本語言常常被稱爲批量處理語言或工做控制語言。 一個腳本一般是解釋運行而非編譯。腳本語言一般都有簡單、易學、易用的特性,目的就是但願能讓程序員快速完成程序的編寫工做。如:JavaScript、VBScript、PHP
編譯型語言編譯型語言:程序在執行以前須要一個專門的編譯過程,把程序編譯成 爲機器語言的文件,運行時不須要從新翻譯,直接使用編譯的結果就好了。程序執行效率高,依賴編譯器,跨平臺性差些如 C、C++
區別:
一、標記語言不用於向計算機發出指令,經常使用於格式化和連接。二、腳本語言介於標記語言和編程語言之間,腳本語言腳本語言不須要編譯,能夠直接用,由解釋器來負責解釋。
三、編譯型語言寫的程序執行以前,須要一個專門的編譯過程,把程序編譯成爲機器語言的文件,好比exe文件,之後要運行的話就不用從新翻譯了,直接使用編譯的結果就好了(exe文件),由於翻譯只作了一次,運行時不須要翻譯,因此編譯型語言的程序執行效率高。
管理和控制計算機硬件與軟件資源的計算機程序,是直接運行在「裸機」上的最基本的系統軟件, 任何其餘軟件都必須在操做系統的支持下才能運行。常見的操做系統Android, iOS, Linux, Windows;
[C++, Objective C, Java, C # 詳細比較和區別1]: http://www.cnblogs.com/iiiDragon/archive/2013/08/16/3262657.html
[C++, Objective C, Java, C # 詳細比較和區別2]:http://blog.csdn.net/educast/article/details/7220982
[六種流行的語言---C、C++、python、Java、php、C#比較[轉]]:http://www.cnblogs.com/bluedy1229/p/3750168.html
[Java C# .net 和 C C++ 跨平臺的區別]:http://blog.csdn.net/rosekisser/article/details/4075872
[PHP, Python, Node.js 哪一個比較適合寫爬蟲?]:https://www.zhihu.com/question/23643061
[ 淺談PHP與Node.js的區別]:http://blog.csdn.net/jizhundaa/article/details/47722917
[Node.js 爲何要用JavaScript 去實現?]:https://www.zhihu.com/question/20383725
Java、C++、Python、Ruby、PHP、C#和JavaScript的理解:http://blog.csdn.net/u010664947/article/details/50441429
[ 編譯語言、解釋語言與腳本語言之間的區別]:http://blog.csdn.net/wm_1991/article/details/51853900
[腳本語言和編程語言的區別]:http://blog.csdn.net/endeavour_zhao/article/details/50883779
[ .NET、C#和ASP.NET三才之間的區別]:http://blog.csdn.net/279503482/article/details/6007190
---
純屬我的觀點,僅供參考!