㈠ Ruby,Perl,python,Lua等語言相互之間都有哪些異同點
都算是腳本語言。 Ruby和Perl都是Lisp系的, Python和Lua偏C風格。具體看維基網路吧
㈡ Python,Lua 哪個適合做繪圖軟體的插件腳本語言
Lua,因為:
Lua 比Python 更容易編程,這里更容易編程的意思是指更容易做擴展和嵌入編程,也就是對解釋器做事情,Lua 的跨語言編程模型非常簡單好用,數據交互都是通過棧,而 Python 要復雜得多,作為 Python 和 C/C++混合編程的專家,我在最熟練的時候要把引用計數處理對也要核對文檔,睜大眼睛仔細看好幾次。
Lua 的解釋器就是一個數據結構,你可以在一個進程裡面造出 很多來,而且彼此是完全隔離的,這在並發、錯誤處理上都極大得簡化了問題,而 Python 的解釋器是全局的,用了 Python,涉及這部分的東西就告別並行了,因為 進入Python解釋器那裡串列化了,如果出現了錯誤,也比較難以可靠地恢復(Lua 只要保護好涉及的資源,把解釋器銷毀重建一個就好了)
Lua 的效率比 Python 好,如果用 API 兼容的 LuaJIT 那就更好了(最快沒有之一的腳本語言實現),做繪圖軟體的插件,這可能還是一個重要的考慮
事實上 Adobe Photoshop 就是用 Lua 做的腳本
㈢ Python和Lua結合能做出什麼有意思的事情
般底層用c/c++搭建
腳本語言
用於配置業務邏輯
python
lua等直接用作底層
運行速度
編譯語言差距比較(即使速度見lua搭配jit執行速度般仍c++1/51/10)
㈣ Ruby,Perl,Python,Lua等語言相互之間都有哪些異同點
本文從RoR對Ruby的影響、Ruby的優勢等多個角度分析了Ruby比Python成功的原因。伴隨著RoR的風行,Ruby語言受到越來越多的開發者的關注,同為腳本語言,Python的地位卻略顯尷尬,什麼樣的原因,造成了這樣的局面?筆者認為有以下幾個方面:一、RoR的推波助瀾筆者認為,Ruby的成功,很大一部分是由於RoR的帶動。幾年前,如果你沒聽過RoR倒是情有可原,但如果今天,RoR對你來說,還是一個陌生詞彙的話,那你就有點危險了。:)什麼是RoR呢?全稱,RubyonRails,簡稱,RoR或者Rails。它是個全棧的(full-stack)web應用框架,它為開發者提供了構建一個web應用所需的完整基礎結構,並且嚴格按照MVC(模型-視圖-控制器)架構進行開發。RoR致力於提高開發者的開發效率,希望通過盡量少的代碼,完成盡可能多的功能。基於這樣的考慮,RoR有兩大設計原則,一是,不要重復自己(Don''tRepeatYourself);二是,慣例優於配置(ConventionOverConfiguration)。使用RoR,你甚至可以通過簡單的幾條命令行、幾行代碼,就完成一個功能強大的web應用程序,這極大地提高了開發者的開發效率。2004年7月,RoR一經發布,在短期內,便受到很多開發者的追捧。時至今日,RoR已經被全世界的開發者們所關注,它帶給開發者的效率提升,是前所未有的;它帶給業界關於軟體開發的思考,也是意義深遠的。在RoR如此風行的大背景下,RubyonRails,這個需要使用Ruby進行開發的web框架,也自然地帶動了Ruby語言的發展。在下面的「Ruby語言受關注程度趨勢圖」上,可以清晰地看出,Ruby語言在RoR發布也就是2004年7月後,進入了高速發展期。Ruby因為有了RoR這樣的「殺手級」應用,變得春風得意,那麼Python呢?在《淺談Python語言》一文中,我們提到了Python具有豐富的API庫,在web開發方面,也有Django、Turbogears這樣的一些框架,就運行速度而言,Python比Ruby快;就社區而言,Python也比Ruby成熟,可是為什麼Python沒有產生一個像RoR這樣的「殺手級」應用呢?Python語言的創始人Guido在接受InfoQ采訪時,是這樣解釋的:「我不喜歡KillerApplication,因為那會讓多數人或者社區將精力集中於一個地方。Python是一個應用廣泛的語言,基於Python已經產生了很多好用的Web框架,比如Django等。但是Python不KillerApplication,至少目前是這樣,而且我相信隨著Python社區的發展,會有很多KillerApplications自然出現。我喜歡多樣化的應用。」通過這個觀點,我們可以看出Python在其發展道路上,追求的是一種均衡,一種「大而全」。「會有很多KillerApplications自然出現」,這點,我想我們需要拭目以待。單就「均衡」而言,筆者認為這很危險,作為一門腳本語言,試圖做Java之類傳統語言做的事情,不太可取。以Java為例,在web應用上,有太多的框架可供選擇,不錯,「在不同的場景用不同的框架」,這想法很好。可是,在實際應用中,有多少開發者可以根據項目特點,正確、合理地選擇框架?與其到最後,用戶還不知道該如何選擇,還不如一開始就替用戶做出一個選擇。作為Python的使用者,我更願看到有個Python的「殺手級」應用出現,進而帶動Python更快速地發展。你可以說RoR成就了Ruby,可是Rails為什麼偏偏選擇了Ruby?!Ruby優勢何在?二、Ruby的優勢1.比Perl更強大,比Python更面向對象「比Perl更強大,比Python更面向對象」,這是Ruby創始人Matz設計Ruby的初衷。Python既支持面向過程的編程也支持面向對象的編程,而Ruby則是完全面向對象。在Ruby中,任何東西都是對象,包括Python中的基本數據類型;每個過程或函數都是方法。例如,取-3的絕對值,在Python中,是這樣的:abs(-3)。而在Ruby中,則是這樣的:-3.abs。這種OO的方式,顯得更加直觀。2.強大的語法功能單就語法的簡單性而言,Ruby不及Python。但解決一些較復雜的問題,Ruby強大的語法功能,有助於降低問題的復雜度。例如:Ruby以「塊」的方式來實現列表內的條件、循環語句,比Python的更靈活、更具通用性。Ruby具有類似Lisp的徹底的函數方式的條件、循環語句等。Ruby的迭代器功能可以將流程式控制制結構抽象化。3.強大的字元串處理、正則表達式功能Matz認為:Ruby>(Smalltalk+Perl)/2。Ruby類庫是對Perl語言功能的面向對象方式的重組,因為借鑒了很多Perl的東西,使得字元串處理、正則表達式這塊,Ruby同樣強大。4.不會僵住的「膠水語言」同樣是「膠水語言」,Ruby比Python更靈活。使用過一段時間的Python,你會發現,Python比較依賴第三方的東西。相比較,Ruby則更依賴自身。例如,Ruby可以使用(UNIX的)絕大部分的系統調用,單獨使用Ruby也可以進行系統編程等。有優勢,Ruby就一定可以成功了?Python同樣也有很多優勢!對,還得看當時所處的環境。三、時勢造英雄這點還得回到RoR的崛起。Ruby,1995年12月正式發布,2000年進入美國;2004年7月,RoR正式發布。RoR的出現時間,值得玩味。在下面的「Java語言受關注程度趨勢圖」上,可以看到,2004年7月前後,Java處於一個相對「衰退期」。提到Java,大家應該都會想到J2EE。J2EE應用程序的廣泛實現是從1999、2000年開始的,它的出現帶來了諸如事務管理之類的核心中間層概念的標准化,但是因其開發效率、學習難度和實際性能的問題,在實踐中沒有獲得完全的成功。作為J2EE核心技術的EJB(2.x),更是因其高昂的學習代價、極低的開發效率和極高的資源消耗,備受指責。在這樣一個大背景下,2003年,Spring框架誕生了。Spring的設計思想在於「使J2EE開發更加簡單」。這個設計思想,在包括Java領域在內的眾多軟體開發領域引起了廣泛關注。軟體開發者們開始思考,如何讓開發向著一個更簡單的方向發展。RoR在這一時期出現,無疑是順應了這樣一個潮流。可以這么說,是歷史選擇了RoR,當然也選擇了Ruby。遇到合適的機遇,還不夠,俗話說得好:「眾人拾柴火焰高」。四、眾星捧月Ruby的出現,受到了兩大主流平台Java和.NET的極力追捧。2006年9月,SUN僱傭了JRuby的主要開發者CharlesNutter和ThomasEnebo;一年不到,2007年6月14號,JRuby1.0正式發布。SUN在其JavaIDENetBeans6.0M10中,更是集成了對Ruby/JRuby的支持。反觀Python的Java實現——Jython,則沒有這么幸運,發展至今,它並沒有得到SUN的支持。而Microsoft,也在2007年7月,推出了Ruby的.NET實現——IronRuby的預覽版。相信SUN和Microsoft對Ruby的競相推崇,必然推動Ruby的進一步發展。基於以上幾點,筆者認為Ruby的成功不是偶然,並且相信這樣的成功還會持續下去。對於Python的未來,我們也將拭目以待。
㈤ lua和python誰更適用於嵌入MMORPG
預計新項目會選擇lua或python之一作為游戲的腳本語言。以前草草地接觸過這兩門語言,對於語法,以及嵌入進C/C++程序都有點感性上的認識。可能是受《UNIX編程藝術》中KISS原則的影響,現在總喜歡簡潔的東西。所以我個人比較偏向於使用lua。
這兩天翻了下網路上的資料,在lua的wiki上看到一篇比較lua和python的文章,草草地翻譯出要點:
Python:
1. 擴展庫很多,資料很多
2. 數值計算比較強大,支持多維數組,而lua沒有數組類型
3. 本身帶的c類型(?)支持處理動態鏈接庫,不需要進行C封裝(C擴展)
4. 遠程調試器,似乎lua擴展工具支持
5. 自然語言似的語法
6. 對於string和list的支持,lua可以通過擴展庫實現
7. 對unicode的支持
8. 空格敏感(代碼不忽略空格),這其實可以使python的代碼風格看起來更好一點
9. 內建位操作,lua可以通過擴展庫支持
10.語言本身對錯誤的處理要好些,可以有效減少程序錯誤
11.初級文檔比lua多
12.對面向對象支持更好
Lua:
1. 比python小巧很多(包括編譯出來的運行時庫)
2. 佔用更小的內存
3. 解釋器速度更快
4. 比python更容易集成到C語言中
5. 對於對象不使用引用計數(引用計數會導致更多的問題?)
6. lua早期定位於一種配置語言(作為配置文件),因此比起python來更容易配置數據
7. 語言更漂亮(nice)、簡單(simple)、強大(powerful)。
8. lua支持多線程,每個線程可以配置獨立的解釋器,因此lua更適合於集成進多線程程序
9. 對空格不敏感,不用擔心編輯器會將tab替換成空格
Useful Comments:
1. Everything is an object allocated on the heap in Python, including numbers. (So 123+456 creates a new heap object).
2. lua對於coroutine的支持更適用於嵌入進游戲,雖然python也有,但是並沒有包含進核心模塊
3.Python was a language better suited to Game AI
本來想去找點對於python的正面資料(嵌入進游戲這方面),但是居然沒找到。客觀地說如果單獨用python做應用,python還是很有優勢。現在心意已決,應該向leader推薦lua。
ps,希望能補充以上兩種語言的特點。
㈥ 游戲腳本語言,是不是lua超越python了
哪個語言好 哪個語言不好 都是不客觀的,片面的
但是在實際應用上lua確實比python更加普遍,只是因為更適合
lua本身的定位 就是嵌入其他程序,完成一部分的邏輯的功能 而本身不提供強大的機制,因此lua本身就只有200K左右
而python的定位則完全相反,python需要能獨立完成所有工作,因此它的定位是大而全,不同於小而精的lua,它的大小 有好幾十M,這樣的大小,對於大部分的游戲而言,不能被接受,所以lua使用的更多
㈦ Python Lua 適合用於伺服器或者應用底層嗎
般底層用c/c++搭建腳本語言用於配置業務邏輯
python
lua等直接用作底層運行速度編譯語言差距比較(即使速度見lua搭配jit執行速度般仍c++1/51/10)
㈧ 學習D、Python、Lua對機器人編程有何好處
機器人變成有自己的編譯器、下載工具之類的,編程語言需要的是邏輯思維,學好你所使用的機器人的編程語言後,學學數據結構和演算法會更好。
㈨ C/C++、Python或Lua好學不
語言不同,優缺點不同,難易度也是不同的,C、C++、python以及Lua對比,python更加簡單易學、容易入門,而且python就業前景好、薪資待遇高、崗位多、需求量大,建議學習python。
㈩ Python和Lua是什麼
Python
Python(英語發音:/ˈpaɪθən/), 是一種面向對象、解釋型計算機程序設計語言,由Guido van Rossum於1989年底發明,第一個公開發行版發行於1991年,Python 源代碼同樣遵循 GPL(GNU General Public License)協議。Python語法簡潔而清晰,具有豐富和強大的類庫。它常被昵稱為膠水語言,能夠把用其他語言製作的各種模塊(尤其是C/C++)很輕松地聯結在一起。常見的一種應用情形是,使用Python快速生成程序的原型(有時甚至是程序的最終界面),然後對其中有特別要求的部分,用更合適的語言改寫,比如3D游戲中的圖形渲染模塊,性能要求特別高,就可以用C/C++重寫,而後封裝為Python可以調用的擴展類庫。需要注意的是在您使用擴展類庫時可能需要考慮平台問題,某些可能不提供跨平台的實現。
Lua
Lua 是一個小巧的腳本語言。是巴西里約熱內盧天主教大學(Pontifical Catholic University of Rio de Janeiro)里的一個研究小組,由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo所組成並於1993年開發。 其設計目的是為了嵌入應用程序中,從而為應用程序提供靈活的擴展和定製功能。Lua由標准C編寫而成,幾乎在所有操作系統和平台上都可以編譯,運行。Lua並沒有提供強大的庫,這是由它的定位決定的。所以Lua不適合作為開發獨立應用程序的語言。Lua 有一個同時進行的JIT項目,提供在特定平台上的即時編譯功能。