-
當(dāng)前位置:首頁(yè) > 創(chuàng)意學(xué)院 > 技術(shù) > 專(zhuān)題列表 > 正文
- lua還有人維護(hù)嗎
- python能干什么
- Python和Lua是什么?
- Lua一般都用來(lái)干什么,有什么優(yōu)點(diǎn)
- 在嵌入式Linux上開(kāi)發(fā)流媒體播放器,用Python好還是Lua好
lua為什么干不過(guò)py(lua為什么不火)
大家好!今天讓創(chuàng)意嶺的小編來(lái)大家介紹下關(guān)于lua為什么干不過(guò)py的問(wèn)題,以下是小編對(duì)此問(wèn)題的歸納整理,讓我們一起來(lái)看看吧。
開(kāi)始之前先推薦一個(gè)非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對(duì)話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,有小程序、在線網(wǎng)頁(yè)版、PC客戶端和批量生成器
官網(wǎng):https://ai.de1919.com。
本文目錄:
lua還有人維護(hù)嗎
我覺(jué)得不會(huì),作為c的粘合劑,除了游戲,還有很多地方在用,比如nginx的lua嵌入插件,用的人很多。而且c擴(kuò)展lua超級(jí)簡(jiǎn)單,我自己好幾個(gè)c項(xiàng)目都有擴(kuò)展lua來(lái)增加項(xiàng)目的靈活性,減少工作量,效果很好。
作為一個(gè)c的嵌入式語(yǔ)言,lua的地位很難撼動(dòng)。
調(diào)試的問(wèn)題不大,因?yàn)楹苌儆腥嗽趌ua里面長(zhǎng)篇大論的寫(xiě)功能。。。吧,反正我很少這么干(以前也干過(guò)2333),就是有也是會(huì)嚴(yán)格測(cè)試封裝的,經(jīng)常改動(dòng)的都是簡(jiǎn)單邏輯和數(shù)值。
個(gè)人認(rèn)為c+lua是一個(gè)非常牛逼的組合,兼具底層,效率和靈活性,起碼是我的重要核心技術(shù)棧之一。
python能干什么
python語(yǔ)言的特點(diǎn)1、簡(jiǎn)單易學(xué)
2、速度快:Python 的底層是用 C 語(yǔ)言寫(xiě)的,很多標(biāo)準(zhǔn)庫(kù)和第三方庫(kù)也都是用 C 寫(xiě)的,運(yùn)行速度非???。
3、可移植性
4、可嵌入
5、易于維護(hù)
6、互動(dòng)模式:互動(dòng)模式的支持,您可以從終端輸入執(zhí)行代碼并獲得結(jié)果的語(yǔ)言,互動(dòng)的測(cè)試和調(diào)試代碼片斷。
python可以干什么?
1、Web開(kāi)發(fā):結(jié)合python、html、css、javascript、數(shù)據(jù)庫(kù)等開(kāi)發(fā)一個(gè)網(wǎng)站。
2、數(shù)據(jù)科學(xué)
數(shù)據(jù)科學(xué),包括了機(jī)器學(xué)習(xí),數(shù)據(jù)分析和數(shù)據(jù)可視化。
將Python用于機(jī)器學(xué)習(xí):可以研究人工智能、機(jī)器人、語(yǔ)言識(shí)別、圖像識(shí)別、自然語(yǔ)言處理和專(zhuān)家系統(tǒng)等
將Python用于數(shù)據(jù)分析/可視化:大數(shù)據(jù)分析等等
3、網(wǎng)絡(luò)爬蟲(chóng)
網(wǎng)絡(luò)爬蟲(chóng)又稱(chēng)網(wǎng)絡(luò)蜘蛛,是指按照某種規(guī)則在網(wǎng)絡(luò)上爬取所需內(nèi)容的腳本程序。眾所周知,每個(gè)網(wǎng)頁(yè)通常包含其他網(wǎng)頁(yè)的入口,網(wǎng)絡(luò)爬蟲(chóng)則通過(guò)一個(gè)網(wǎng)址依次進(jìn)入其他網(wǎng)址獲取所需內(nèi)容。
在爬蟲(chóng)領(lǐng)域,Python是必不可少的一部分。將網(wǎng)絡(luò)一切數(shù)據(jù)作為資源,通過(guò)自動(dòng)化程序進(jìn)行有針對(duì)性的數(shù)據(jù)采集以及處理。
4、自動(dòng)化運(yùn)維
隨著技術(shù)的進(jìn)步、業(yè)務(wù)需求的快速增長(zhǎng),一個(gè)運(yùn)維人員通常要管理上百、上千臺(tái)服務(wù)器,運(yùn)維工作也變的重復(fù)、繁雜。把運(yùn)維工作自動(dòng)化,能夠把運(yùn)維人員從服務(wù)器的管理中解放出來(lái),讓運(yùn)維工作變得簡(jiǎn)單、快速、準(zhǔn)確。
5、嵌入式應(yīng)用開(kāi)發(fā)
6、游戲開(kāi)發(fā)
7、桌面應(yīng)用開(kāi)發(fā)
Python和Lua是什么?
PythonPython(發(fā)音:[ 'paiθ(ə)n; (US) 'paiθɔn ]),是一種面向?qū)ο蟮慕忉屝缘挠?jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,也是一種功能強(qiáng)大而完善的通用型語(yǔ)言,已經(jīng)具有十多年的發(fā)展歷史,成熟且穩(wěn)定。Python 具有腳本語(yǔ)言中最豐富和強(qiáng)大的類(lèi)庫(kù),足以支持絕大多數(shù)日常應(yīng)用。
這種語(yǔ)言具有非常簡(jiǎn)捷而清晰的語(yǔ)法特點(diǎn),適合完成各種高層任務(wù),幾乎可以在所有的操作系統(tǒng)中運(yùn)行。
目前,基于這種語(yǔ)言的相關(guān)技術(shù)正在飛速的發(fā)展,用戶數(shù)量急劇擴(kuò)大,相關(guān)的資源非常多。
Python的Hello World程序
下面是一個(gè)在標(biāo)準(zhǔn)輸出設(shè)備上輸出Hello World的簡(jiǎn)單程序,這種程序通常作為開(kāi)始學(xué)習(xí)編程語(yǔ)言時(shí)的第一個(gè)程序:
#!/usr/bin/env python
print "Hello, world!"
或者:
import sys
sys.stdout.write("Hello, world\n")
Python的歷史
Python的創(chuàng)始人為Guido van Rossum。1989年圣誕節(jié)期間,在阿姆斯特丹,Guido為了打發(fā)圣誕節(jié)的無(wú)趣,決心開(kāi)發(fā)一個(gè)新的腳本解釋程序,做為 ABC 語(yǔ)言的一種繼承。之所以選中 Python(大蟒蛇的意思)作為程序的名字,是因?yàn)樗且粋€(gè)Monty Python的飛行馬戲團(tuán)的愛(ài)好者。
ABC是由Guido參加設(shè)計(jì)的一種教學(xué)語(yǔ)言。就Guido本人看來(lái),ABC 這種語(yǔ)言非常優(yōu)美和強(qiáng)大,是專(zhuān)門(mén)為非專(zhuān)業(yè)程序員設(shè)計(jì)的。但是ABC語(yǔ)言并沒(méi)有成功,究其原因,Guido 認(rèn)為是非開(kāi)放造成的。Guido 決心在 Python 中避免這一錯(cuò)誤(的確如此,Python 與其它的語(yǔ)言如C、C++和Java結(jié)合的非常好)。同時(shí),他還想實(shí)現(xiàn)在 ABC 中閃現(xiàn)過(guò)但未曾實(shí)現(xiàn)的東西。
就這樣,Python在Guido手中誕生了。實(shí)際上,第一個(gè)實(shí)現(xiàn)是在Mac機(jī)上??梢哉f(shuō),Python是從ABC發(fā)展起來(lái),主要受到了Modula-3(另一種相當(dāng)優(yōu)美且強(qiáng)大的語(yǔ)言,為小型團(tuán)體所設(shè)計(jì)的)的影響。并且結(jié)合了Unix shell和C的習(xí)慣。
Python在編程語(yǔ)言中的定位
很多大規(guī)模軟件開(kāi)發(fā)計(jì)劃例如 Zope, Mnet 及 BitTorrent. Google都在廣泛地使用它。
通常認(rèn)為,Python是一種解釋性的語(yǔ)言,但是這種說(shuō)法是不正確的,實(shí)際上,Python在執(zhí)行時(shí),首先會(huì)將.py文件中的源代碼編譯成Python的byte code(字節(jié)碼),然后再由Python Virtual Machine來(lái)執(zhí)行這些編譯好的byte code。這種機(jī)制的基本思想跟Java,.NET是一致的。然而,Python Virtual Machine與Java或.NET的Virtual Machine不同的是,Python的Virtual Machine是一種更高級(jí)的Virtual Machine。這里的高級(jí)并不是通常意義上的高級(jí),不是說(shuō)Python的Virtual Machine比Java或.NET的功能更強(qiáng)大,而是說(shuō)和Java 或.NET相比,Python的Virtual Machine距離真實(shí)機(jī)器的距離更遠(yuǎn)?;蛘呖梢赃@么說(shuō),Python的Virtual Machine是一種抽象層次更高的Virtual Machine。
基于C的Python編譯出的字節(jié)碼文件,通常是.pyc格式。
Python的特*<*r />
可擴(kuò)充性可說(shuō)是Python作為一種編程語(yǔ)言的特色。新的內(nèi)置模塊(module)可以用C 或 C++寫(xiě)成。而我們也可為現(xiàn)成的模塊加上Python的接口。Python可以使用戶避免過(guò)分的語(yǔ)法的羈絆而將精力主要集中到所要實(shí)現(xiàn)的程序任務(wù)上。
Python也被稱(chēng)為是一門(mén)清晰的語(yǔ)言。因?yàn)樗淖髡咴谠O(shè)計(jì)它的時(shí)候,總的指導(dǎo)思想是,對(duì)于一個(gè)特定的問(wèn)題,只要有一種最好的方法來(lái)解決就好了。這在由Tim Peters寫(xiě)的python格言(稱(chēng)為T(mén)he Zen of Python)里面表述為:
There should be one-- and preferably only one --obvious way to do it.
有意思的是,這正好和Perl語(yǔ)言(另一種功能類(lèi)似的高級(jí)動(dòng)態(tài)語(yǔ)言)的中心思想TMTOWTDI(There's More Than One Way To Do It)完全相反。這似乎是人們常把Perl和Python互相比較的重要原因。
Python語(yǔ)言是一種清晰的語(yǔ)言的另一個(gè)意思是,它的作者有意的設(shè)計(jì)限制性很強(qiáng)的語(yǔ)法,使得不好的編程習(xí)慣(例如if語(yǔ)句的下一行不向右縮進(jìn))都不能通過(guò)編譯。這樣有意的強(qiáng)制程序員養(yǎng)成良好的編程習(xí)慣。其中很重要的一項(xiàng)就是Python的縮進(jìn)規(guī)則。
例如if語(yǔ)句:
if age<21:
print "You cannot buy wine!\n"
print "But you can buy chewing gum.\n"
print "this is outside if\n"
一個(gè)和其他大多數(shù)語(yǔ)言(如C)的區(qū)別就是,一個(gè)模塊的界限,完全是由每行的首字符在這一行的位置來(lái)決定的(而C語(yǔ)言是用一對(duì)花括號(hào){}來(lái)明確的定出模塊的邊界的,與字符的位置毫無(wú)關(guān)系)。這一點(diǎn)曾經(jīng)引起過(guò)爭(zhēng)議。因?yàn)樽詮腃這類(lèi)的語(yǔ)言誕生后,語(yǔ)言的語(yǔ)法含義與字符的排列方式分離開(kāi)來(lái),曾經(jīng)被認(rèn)為是一種程序語(yǔ)言的進(jìn)步。不過(guò)不可否認(rèn)的是,通過(guò)強(qiáng)制程序員們縮進(jìn)(包括if,for和函數(shù)定義等所有需要使用模塊的地方),Python確實(shí)使得程序更加清晰和美觀。
另外Python在其他部分的設(shè)計(jì)上也堅(jiān)持了清晰劃一的風(fēng)格,這使得Python稱(chēng)為一門(mén)易讀性、易維護(hù)性好,并且被大量用戶所歡迎的、用途廣泛的語(yǔ)言。
Python直接編寫(xiě)的程序段有時(shí)運(yùn)行效率甚至高于用C編寫(xiě)的程序。
Python的局限
雖然Python是一個(gè)非常成功的語(yǔ)言,但是也有必要明白它的局限性。
1. 強(qiáng)制縮進(jìn)
這也許不應(yīng)該被稱(chēng)為局限,但是它用縮進(jìn)來(lái)區(qū)分語(yǔ)句關(guān)系的方式還是給很多初學(xué)者帶來(lái)了困惑。即便是很有經(jīng)驗(yàn)的Python程序員,也可能陷入陷阱當(dāng)中。最常見(jiàn)的情況是tab和空格的混用會(huì)導(dǎo)致錯(cuò)誤,而這是用肉眼無(wú)法分別的。
2. 命令行輸出問(wèn)題
很多時(shí)候不能將程序連寫(xiě)成一行,如import sys;for i in sys.path:print i。而perl和awk就無(wú)此限制,可以較為方便的在shell下完成簡(jiǎn)單程序,不需要如Python一樣,必須將程序?qū)懭胍粋€(gè).py文件。(對(duì)很多用戶而言這也不算是限制)
Python的前景
Python在編程領(lǐng)域的占有率一直處于穩(wěn)步上升之中,根據(jù)最新的數(shù)據(jù),Python排名第六。前五名分別是Java、C、VB、PHP和C++. 作為一個(gè)很年輕的語(yǔ)言,Python的位置已經(jīng)相當(dāng)令人振奮了。隨著微軟將Python納入.Net 平臺(tái),相信Python的將來(lái)會(huì)更加強(qiáng)勁發(fā)展。Python 很可能會(huì)成為.Net平臺(tái)快速開(kāi)發(fā)的主流語(yǔ)言。欲了解這方面情況,請(qǐng)參考Iron Python的相關(guān)信息.
著名的搜索引擎 Google 也大量使用Python。更加令人吃驚的是,在Nokia智能手機(jī)所采用的Symbian操作系統(tǒng)上,Python成為繼C++,Java之后的第三個(gè)編程語(yǔ)言!可見(jiàn)Python的影響力之巨大。
Python的應(yīng)用
Zope-應(yīng)用服務(wù)器
Plone-內(nèi)容管理系統(tǒng)
Django-鼓勵(lì)快速開(kāi)發(fā)的web framework
Twisted - Python Network Application Framework Python的網(wǎng)絡(luò)應(yīng)用程序框架
TurboGears - 另一個(gè)Web應(yīng)用快速開(kāi)發(fā)框架
Bit Torrent - 著名的BT下載工具
2006年的Google編程大賽已經(jīng)將Python作為參賽語(yǔ)言之一
lua
Lua 是一個(gè)小巧的腳本語(yǔ)言。作者是巴西人。該語(yǔ)言的設(shè)計(jì)目的是為了嵌入應(yīng)用程序中,從而為應(yīng)用程序提供靈活的擴(kuò)展和定制功能。它的主頁(yè)是 www.lua.org。
Lua最著名的應(yīng)用是在暴雪公司的網(wǎng)絡(luò)游戲WOW中。
Lua腳本可以很容易的被C/C++代碼調(diào)用,也可以反過(guò)來(lái)調(diào)用C/C++的函數(shù),這使得Lua在應(yīng)用程序中可以被廣泛應(yīng)用。不僅僅作為擴(kuò)展腳本,也可以作為普通的配置文件,代替XML,Ini等文件格式,并且更容易理解和維護(hù)。
Lua由標(biāo)準(zhǔn)C編寫(xiě)而成,代碼簡(jiǎn)潔優(yōu)美,幾乎在所有操作系統(tǒng)和平臺(tái)上都可以編譯,運(yùn)行。
一個(gè)完整的Lua解釋器不過(guò)200k,在目前所有腳本引擎中,Lua的速度是最快的。這一切都決定了Lua是作為嵌入式腳本的最佳選擇。
Lua 有一個(gè)同時(shí)進(jìn)行的JIT項(xiàng)目,提供在特定平臺(tái)上的即時(shí)編譯功能,這將給Lua帶來(lái)更加優(yōu)秀的性能。請(qǐng)?jiān)L問(wèn) http://luajit.luaforge.net/ 來(lái)了解這個(gè)項(xiàng)目。
和Python等腳本不同,Lua并沒(méi)有提供強(qiáng)大的庫(kù),這是由它的定位決定的。所以Lua不適合作為開(kāi)發(fā)獨(dú)立應(yīng)用程序的語(yǔ)言。不過(guò)Lua還是具備了比如數(shù)學(xué)運(yùn)算和字符串處理等基本的功能。
Lua 目前的最新版本是 5.1.
1 目標(biāo)
LUA的目標(biāo)是成為一個(gè)很容易嵌入其它語(yǔ)言中使用的語(yǔ)言。大多數(shù)程序員也認(rèn)為它的確做到了這一點(diǎn)。
很多應(yīng)用程序使用LUA作為自己的嵌入式腳本語(yǔ)言,以此來(lái)實(shí)現(xiàn)可配置性、可擴(kuò)展性。這其中包括魔獸世界、博德之門(mén)等。
2 特性
LUA有如下特性:
輕量級(jí) LUA語(yǔ)言的官方版本只包括一個(gè)精簡(jiǎn)的核心和最基本的庫(kù)。這使得LUA體積小、啟動(dòng)速度快,從而適合嵌入在別的程序里。
可擴(kuò)展 LUA并不象其它許多"大而全"的語(yǔ)言那樣,包括很多功能,比如網(wǎng)絡(luò)通訊、圖形界面等。但是LUA可以很容易地被擴(kuò)展:由宿主語(yǔ)言(通常是C或C++)提供這些功能,LUA可以使用它們,就像是本來(lái)就內(nèi)置的功能一樣。
其它特性 LUA還具有其它一些特性:同時(shí)支持面向過(guò)程編程和面向?qū)ο缶幊蹋蛔詣?dòng)內(nèi)存管理;提供一系列數(shù)據(jù)結(jié)構(gòu),包括數(shù)組、鏈表、集合、字典、散列表等;語(yǔ)言內(nèi)置正則表達(dá)式匹配;閉包(closure);函數(shù)也可以看做一個(gè)值;提供多線程支持;等等。
3 示例代碼
是的,你猜對(duì)了:hello world...
print "Hello, world!"
一個(gè)比較復(fù)雜一點(diǎn)的例子,但是它展示了什么是閉包:
function create_a_counter()
local count = 0
return function()
count = count + 1
return count
end
end
create_a_counter()返回一個(gè)記數(shù)器,每次調(diào)用這個(gè)記數(shù)器,都會(huì)得到一個(gè)比上次大1的值。
Lua一般都用來(lái)干什么,有什么優(yōu)點(diǎn)
過(guò)去文字界面下的basic、fortran、c、pascal等語(yǔ)言能干的事,lua都能干。再加上擴(kuò)展后,lua可支持圖形界面、web、游戲 等的編程。而且由于它的底層是用 c 開(kāi)發(fā)的,它也具有非常高的性能,比python的性能高太多了。在嵌入式Linux上開(kāi)發(fā)流媒體播放器,用Python好還是Lua好
做播放器 兩個(gè)語(yǔ)言都不是很合適 還是用底層語(yǔ)言C/C++效率更高如果一定要在這2個(gè)語(yǔ)言里選的話 推薦用py(雖然我是lua愛(ài)好者)
py對(duì)linux天生就有很強(qiáng)的支持 而且py在各個(gè)庫(kù)的擴(kuò)展上 已經(jīng)做的很好 我們只需要import線程的東西就行了 而lua 更適合作為腳本或膠水來(lái)實(shí)現(xiàn)功能
以上就是關(guān)于lua為什么干不過(guò)py相關(guān)問(wèn)題的回答。希望能幫到你,如有更多相關(guān)問(wèn)題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會(huì)為您講解更多精彩的知識(shí)和內(nèi)容。
推薦閱讀:
運(yùn)行l(wèi)ua腳本的軟件(lua腳本app)
lua怎么寫(xiě)游戲腳本(lua編寫(xiě)游戲腳本教程)
景觀設(shè)計(jì)lu(景觀設(shè)計(jì)論文題目)
安寧室內(nèi)景觀設(shè)計(jì)培訓(xùn)(安寧室內(nèi)景觀設(shè)計(jì)培訓(xùn)學(xué)校)