一、python虛擬機沒有java強,java虛擬機是java的核心,python的核心是可以很方便地使用c語言函數或c++庫。
二、python是全動態性的,可以在運行時自己修改自己的代碼,java只能通過變通方法實現。python的變數是動態的,而java的變數是靜態的,需要事先聲明,所以java ide的代碼提示功能優於python ide。
三,python的產生幾十年了,幾十年前面向過程是主流,所以用python有好多程序用的是面向過程設計方法,很多概念從c語言過來的,class在python中是後加入的,而java是為了實現沒有指針的c++(當年com組件用的引用記數,java用的虛擬機),主要採用面向對象的設計方法,很多概念是oop的概念。面向過程,相對簡潔直觀,但容易設計出面條程序,面向對象,相對抽象優雅,但容易過度抽象。
四,在實際使用的python入門簡單,但要學會用python幹活,需要再學習python各種庫,pyhton的強大在於庫,為什麼python的庫強大,原因是python的庫可以用python,c語言,c++等設計,再提供給python使用,所以無論gpu運行,神經網路,智能演算法,數據分析,圖像處理,科學計算,各式各樣的庫在等著你用。而java沒有python那麼多的開源庫,很多庫是商業公司內部使用,或發布出來只是一個jar包,看不到原始代碼。python虛擬機因為編譯性沒有java的支持的好(或者說故意這么設計的),一般直接使用源碼(linux),或源碼簡單打個包(如pyexe)。
五、python有很多虛擬機實現,如cython,Pyston,pypy,jython, IronPython等等,適合用於業務語言,或插件語言,或面向領域語言,而java因為虛擬機巨大,很少用於插件語言,發布也不方便。
六、java主要用於商業邏輯強的領域,如商城系統,erp,oa,金融,保險等傳統資料庫事務領域,通過類似ssh框架事務代碼,對商業資料庫,如oralce,db2,sql server等支持較好,軟體工程理念較強,適合軟體工程式的多人開發模式。python主要用於web數據分析,科學計算,金融分析,信號分析,圖像演算法,數學計算,統計分析,演算法建模,伺服器運維,自動化操作,快速開發理念強,適合快速開發團隊或個人敏捷模式。
七、java的商業化公司支持多,如sap,oracle,ibm等,有商業化的容器,中間件,企業框架ejb。python的開源組織支持多,如qt,linux,google,很多開源程序都支持python, 如pyqt,redis,spark等。
八、python用途最多的是腳本,java用途最多的是web,pyhotn是膠水,可以把各類不相關的東西粘在一起用,java是基佬,可以通過軟體工程組成幾百個人的團隊和你pk,商業化氣息重。不過我認為還是python強大,因為可以方便調用c或c++的庫,但軟體工程和商業化運作沒有java好,適合快捷開發。
Ⅱ c語言php語言java語言它們跟python語言之間有相同之處嗎
這方面的文章很多。大多是比較它們之間的優劣的。
簡單的說,它們都是編程語義。是在第三代和第四代編程語言。 都和C有關系。 低層解釋器都是C寫的。都存在進程管理和數據交換。都支持網路編程,資料庫編程。 相互之間可以通訊。
具體來講,對於個掌握多門語言的程序員來講,它們之間差別巨大,以至於沒有人可以同時精通幾門語言。網上簡歷所謂的熟練與精通,幾乎全是假的。
php相對最容易。是函數式編程, java雖然是面向對象的,使用特定的模式後,也可以支持類函數式編程。 C語言是函數式的。 python也是。 但是原則上,它們都同時支持面向對象的編程思維。只是表達方式比較特別。
c語言是比php略難,也是相當容易的語言。
java的工具強大,是一個工程語言。容易學,學精難,工具豐富 ,大多數人在用。是目前最主流的網路服務編程語言。
python仍然是腳本語言之王。 易學,易用,難精通。介面非常豐富。無所不能。
用好任何一門語言,都可以成為你工作的助力。 不過近幾年php使用的越來越少了。
Ⅲ 腳本有哪幾類和編程語言什麼區別不同類的腳本怎麼區別
這個應該怎麼回答你呢,編程語言確實被分為腳本語言,標記語言,編譯語言,解釋語言,低級語言,高級語言等等。這些分類對於新手來說,往往會把它們搞亂。就好像一個未上過學的農民伯伯問你,什麼是網際網路,什麼是互聯網,什麼是萬維網,什麼是區域網,什麼是城域網一樣,你很難一下子說明清,讓他明白。
這種情況的原因,就在於,這些分類之間並不是嚴格互斥的,相互之間存在重疊和包容。就你的問題而言,腳本語言根本就沒有分類,你的意思可能是想問:腳本語言有哪些。說實話,太多了,其它那些很生僻的就不說了,就一個程序員時常要用到的就不少。平時用得較多的,大致有這些:Ruby,Python,Shell,Javascript,Perl,Awk,Sed,Expect,ActionScript,Lua,PHP等。硬要給這些腳本語言分類的話,只能按它們的用途來分,比如:系統腳本(如Shell,windows批處理),應用腳本,和一般性腳本。
腳本語言中腳本一詞,有配置,動態微調的意味。它最初的目的是為一些大型或超大型程序提供可實時編輯、可動態調整的特性。所以腳本語言的正統用途是把它們的解釋器嵌入到由編譯性語言如C,C++等寫的大型程序中(如瀏覽器,操作系統,大型游戲等),以解釋隨時可變的用戶腳本,提供更改這些大型程序特性,以達到用戶期望程序行為的目的。
一句話,腳本語言的正統使命,是一個中介者,提供用戶與其它大型程序之間的溝通橋梁。舉例來說,瀏覽器是一個完整的大型程序,它內嵌JavaScript解釋器,在運行期間動態解釋用戶的JavaScript腳本程序,以改變WEB頁面的行為,獲得各種頁面效果。同樣,操作系統(以linux為例),就自帶了shell解釋器,用戶通過發shell命令或使用shell腳本程序來獲得主機系統的各種信息(如cpu,內存,磁碟,進程等)。再如一些大型游戲(比如魔獸世界)也內嵌一些腳本語言的解釋器(通常是lua),實現一些與游戲的交互。大家熟悉的3DMax,Photoshop和autoCAD軟體都內嵌有一些腳本語言的解釋器,目的都一樣。
編譯性語言與腳本語言的主要區別在於,腳本是由解釋器逐行解釋執行的,而編譯性語言,則需要將源程序經編譯器編譯在可執行的計算機二進制代碼。然後再執行。其它效率相當高,速度也特別快。但缺點是需要先編譯,然後再執行。腳本語言的優勢在於它的動態性,可以即改即用。
但是有些腳本語言的功能很強大,遠超出了腳本最初的使命。首先,這些腳本語言的解釋器經過優化,速度也非常快;其次,這些語言本身的許多特性也很強大,完全可以開發一些獨立的大型程序。比如ruby,python,perl,php等。
最後,再回應你的最後一個問題:不同的語言對應不同的腳本這個問題,我不太明白你的本意。不同腳本語言,它們的語法肯定是不同的,不可能在語法上完全兼容,那樣的話,你的直觀感受就是,它們是同一個語言。
Ⅳ 腳本語言分幾種
腳本語言 有很多種,
一、瀏覽器中的腳本語言主要就是JavaScript了,之前還有過別的比如vbscript 以及 flash動畫中用到的 ActionScript等。
二、非瀏覽器中的腳本語言,或者說是服務端的腳本語言,有的用在web伺服器端,比如php,asp,JavaScript(也可以用在伺服器)還有可以內嵌到應用程序中的,因為程序編譯後是不容易改變的,如果想在程序編譯好後需經常調整程序的行為,比如游戲伺服器,經常會調整任務獎勵,邏輯演算法等的會在游戲服務端內嵌入腳本語言 lua等。
三、腳本語言還有很多很多,你提到的 cgi不是語言,這是一種擴展web伺服器的方法吧,通過cgi提供程序可以讓web伺服器提供更多的功能,php就是通過cgi的方式提供給web伺服器的,你也可以用c寫一個cgi模塊讓web伺服器去調用。
四、系統中也會有腳本語言,比如windows的 bat文件就是腳本語言編寫,你用記事本寫入命令,然後另存為bat文件 滑鼠雙擊就可以執行,還有 vbs,linux也有自己腳本語言。
腳本語言就是 不用編譯的語言,他是由解釋器讀一行執行一行的,性能很差但靈活性很高這就是他的特點,一般用在web,瀏覽器,或者用嵌入到c c++ c#等編譯程序中來執行一些簡單的需要經常變動邏輯配置。
與腳本語言不同的就是編譯語言了,C C++ C# java 等這些 不編譯是不能運行的,必須要將其編譯為二進制或者是特定平台的中間碼才能運行,java是語言也是平台可以說java運行在Java平台上(Java虛擬機),C#是語言運行在net或netcore平台。c c++直接編譯為二進制運行。
Ⅳ PHP,Java,Python,C,C++ 這幾種編程語言都各有什麼特點或優點
來自:http://blog.csdn.net/singit/article/details/54919132
以下是其中提及的各種語言的優點,文章中還列舉了缺點分析。
(1)PHP的優點:
1. 跨平台,性能優越,跟Linux/Unix結合別跟Windows結合性能強45%,開發成本低,
PHP最經典的組合就是:Linux + Apache + MySQL + PHP。非常適合開發中小型的web應用,因為上手容易,所以開發的速度比較快。而且所有的軟體都是開源免費的,可以減少投入。
比如LAMP(Linux /Apache/Mysql/PHP)或者FAMP(FreeBSD/Apache/Mysql/PHP)結合,或者數據應用夠大可以考慮換 PostgreSQL或者Oracle,支持N種資料庫。(N >= 10)
2. 語法簡單,入門快,如果有其它語言基礎的程序員二周左右的時間基本可以入門,並且跟ASP有部分類似。有成熟的開發工具,比如NuPHPed,或者Zend Studio等等,再Linux平台下可以使用Eclipse等等。
3. 目前主流技術都支持,比如WebService、Ajax、XML等等,足夠應用。
4. 有比較完整的支持,比如使用ADODB或者PEAR::DB做資料庫抽象層,用Smarty或者smart template做模板層,如果是PHP 5.1的話,還能夠使用PDO(PHP Data Object)來訪問資料庫。
5. 有很多成熟的框架,比如支持MVC的框架:phpMVC,支持類似ASP.NET的事件驅動的框架:Prado,支持類似Ruby On Rails的快速開發的框架:Cake等等,足夠滿足你的應用需求。
6. PHP 5已經有成熟的面向對象體系,能夠適應基本的面向對象要求。適合開發大型項目。
7. 有成熟的社區來支持PHP的開發。
8. 目前已經很多大型應用都是使用PHP,比如淘寶網、Yahoo、163、Sina等等大型門戶,很多選用PHP來作為他們的開發語言,所以大型門戶都能夠選用它,我想足夠能夠你的使用了。(據了解現在內部都在逐漸轉向JAVA)
9. 有很多開源的框架或開源的系統可以使用,比如比較知名的開源框架有Zend Framework、CakePHP、CodeIgniter、symfony等,開源論壇有Discuz!、Phpwind等,開源博客 WordPress,開源網店系統如Ecshop、ShopEx等,開源的SNS系統如UCHome、ThinkSNS等。
PHP是解釋性的腳本語言,寫完代碼以後即可以執行,不像c,java,c++等語言還需要去編譯執行,相對來說比較節省時間。
10.相對來說,PHP程序員的薪水的平均工資要比c,c++,java程序員的平均工資要低一些,特別是對於中小型企業來說可以節約一些成本。
11.配置及部署相對簡單一些,對比JAVA開發來說,JAVA開發的配置就復雜多了,什麼Structs、Spring、Hibernate、Tomcat等等很多地方都需要配置,甚至你在程序中每寫一個SQL語句都需要先在Hibernate中配置一下,有時重新部署一個class文件或jar文件還可能需要重啟Web伺服器(Tomcat或Resin或其它的Web伺服器)使新部署的庫文件生效。PHP開發中主要是PHP自身的配置文件及Web伺服器的配置(如Apache或Nginx或Lighttpd等),相對於JAVA來說還是簡單一些,而且新修改了文件以後不需要重新啟動Web即可以立即生效。
12.有很多開源的框架或開源的系統可以使用,比如比較知名的開源框架有Zend Framework、CakePHP、CodeIgniter、symfony等,開源論壇有Discuz!、Phpwind等,開源博客WordPress,開源網店系統如Ecshop、ShopEx等,開源的SNS系統如UCHome、ThinkSNS等。
(2)JAVA的優點:
1.簡單性
2.面向對象性(面向對象的程度可以達到95%)
3.健壯性
4.跨平台性
5.高性能(自動垃圾回收機制)
6.多線程
7.動態性
8.安全性
(3)Python的優點:
1.簡單————Python是一種代表簡單主義思想的語言。閱讀一個良好的Python程序就感覺像是在讀英語一樣,盡管這個英語的要求非常嚴格!Python的這種偽代碼本質是它最大的優點之一。它使你能夠專注於解決問題而不是去搞明白語言本身。
2.易學————就如同你即將看到的一樣,Python極其容易上手。前面已經提到了,Python有極其簡單的語法。
3.免費、開源————Python是FLOSS(自由/開放源碼軟體)之一。簡單地說,你可以自由地發布這個軟體的拷貝、閱讀它的源代碼、對它做改動、把它的一部分用於新的自由軟體中。FLOSS是基於一個團體分享知識的概念。這是為什麼Python如此優秀的原因之一——它是由一群希望看到一個更加優秀的Python的人創造並經常改進著的。
4.高層語言————當你用Python語言編寫程序的時候,你無需考慮諸如如何管理你的程序使用的內存一類的底層細節。
5.可移植性————由於它的開源本質,Python已經被移植在許多平台上(經過改動使它能夠工作在不同平台上)。如果你小心地避免使用依賴於系統的特性,那麼你的所有Python程序無需修改就可以在下述任何平台上面運行。這些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE甚至還有PocketPC、Symbian以及Google基於linux開發的Android平台!
6.解釋性————這一點需要一些解釋。一個用編譯性語言比如C或C++寫的程序可以從源文件(即C或C++語言)轉換到一個你的計算機使用的語言(二進制代碼,即0和1)。這個過程通過編譯器和不同的標記、選項完成。當你運行你的程序的時候,連接/轉載器軟體把你的程序從硬碟復制到內存中並且運行。而Python語言寫的程序不需要編譯成二進制代碼。你可以直接從源代碼 運行 程序。在計算機內部,Python解釋器把源代碼轉換成稱為位元組碼的中間形式,然後再把它翻譯成計算機使用的機器語言並運行。事實上,由於你不再需要擔心如何編譯程序,如何確保連接轉載正確的庫等等,所有這一切使得使用Python更加簡單。由於你只需要把你的Python程序拷貝到另外一台計算機上,它就可以工作了,這也使得你的Python程序更加易於移植。
7.面向對象————Python既支持面向過程的編程也支持面向對象的編程。在「面向過程」的語言中,程序是由過程或僅僅是可重用代碼的函數構建起來的。在「面向對象」的語言中,程序是由數據和功能組合而成的對象構建起來的。與其他主要的語言如C++和Java相比,Python以一種非常強大又簡單的方式實現面向對象編程。
8.可擴展性————如果你需要你的一段關鍵代碼運行得更快或者希望某些演算法不公開,你可以把你的部分程序用C或C++編寫,然後在你的Python程序中使用它們。
9.可嵌入性————你可以把Python嵌入你的C/C++程序,從而向你的程序用戶提供腳本功能。
10.豐富的庫————Python標准庫確實很龐大。它可以幫助你處理各種工作,包括正則表達式、文檔生成、單元測試、線程、資料庫、網頁瀏覽器、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV文件、密碼系統、GUI(圖形用戶界面)、Tk和其他與系統有關的操作。記住,只要安裝了Python,所有這些功能都是可用的。這被稱作Python的「功能齊全」理念。除了標准庫以外,還有許多其他高質量的庫,如wxPython、Twisted和Python圖像庫等等。
概括————Python確實是一種十分精彩又強大的語言。它合理地結合了高性能與使得編寫程序簡單有趣的特色。
規范的代碼————Python採用強制縮進的方式使得代碼具有極佳的可讀性。
(4)C語言的優點:
1.簡潔緊湊、靈活方便
2.運算符豐富
3.數據結構豐富
4. C是結構式語言
5. C語法限制不太嚴格,程序設計自由度大
6. C語言允許直接訪問物理地址,可以直接對硬體進行操作
7. C語言程序生成代碼質量高,程序執行效率高
8. C語言適用范圍大,可移植性好
9. C語言有一個突出的優點就是適合於多種操作系統,如DOS、UNIX,也適用於多種機型
10.有效地將一個較復雜的程序系統設計任務分解成許多易於控制和處理的子任務,便於開發和維護
(5)C++的優點:
1.可擴展性強
2.高效 簡潔 快速
3.可移植性
4.面向對象的特性
5.強大而靈活的表達能力和不輸於C的效率
6.支持硬體開發
7.程序模塊間的關系更為簡單,程序模塊的獨立性、數據的安全性就有了良好的保障
8.通過繼承與多態性,可以大大提高程序的可重用性,使得軟體的開發和維護都更為方便