偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

為什么我選擇Lua?

開發(fā) 開發(fā)工具
Lua是一個(gè)小眾產(chǎn)品,而什么本文中作者會(huì)選擇Lua語言呢?作者認(rèn)為Lua語言的7點(diǎn)優(yōu)勢足夠讓他認(rèn)為Lua確實(shí)是一門非常簡單并強(qiáng)大的語言。下面就讓我們詳細(xì)的了解下吧。

在這篇文章中,我將向你解釋為什么要使用Lua。我寫這篇文章最初的動(dòng)機(jī)是由于Lua郵件列表中的一則消息 “why isn't Lua more widely used?” 。針對這個(gè)消息的回復(fù)各種各樣,有的說是因?yàn)槿鄙兕悗?,而我更贊同另外一個(gè)觀點(diǎn),那就是大部分人都不喜歡自己動(dòng)手 (do it yourself)的方式來解決問題。我常常把Lua比作Arch Linux。這也就注定了Lua是一個(gè)小眾產(chǎn)品。下面我將列出幾條為什么我要使用Lua的理由:

1. 可以和 C/C++ 集成

我的編程經(jīng)歷不長,但是我已經(jīng)使用過很多種語言了,包括Lisp,Scheme,Python,Perl,Bash,VBA,SQL等等。但是它們沒有一個(gè)可以像Lua那樣可以和C混著使用。C語言的API非常的干凈和直觀,你花一個(gè)下午的時(shí)間就可以上手了。如果你對這個(gè)感興趣的話,你可以看看“PIL's section on the C API” 。

為什么這個(gè)特性很重要呢?首先,如果你有現(xiàn)成的C/C++類庫的話,你可以很容易的在Lua中調(diào)用這些API。或者你也可以寫一個(gè)腳本讓Lua在C中執(zhí)行。這也意味著Lua的程序不會(huì)有速度問題。如果你還是覺得Lua不夠快的話,你可以用C完全重寫這段代碼。雖然別的語言的程序也可以用C重寫,但是我還沒有發(fā)現(xiàn)誰能比Lua更方便的做到這一點(diǎn)。

2. 快速、簡潔

相比于其他語言,Lua的實(shí)現(xiàn)是非常高效的。也許是因?yàn)長ua使用的是“基于寄存器的虛擬機(jī)” 而不是基于堆棧的虛擬機(jī)?;蛘哒f使用Lua的開發(fā)者都非常的牛逼。不管怎樣,你幾乎不需要顧慮Lua代碼的性能問題。

但是如果你對性能還是不滿意的話,你可以嘗試使用LuaJIT:
“LuaJIT是公認(rèn)的運(yùn)行最快的動(dòng)態(tài)語言的實(shí)現(xiàn),并且對內(nèi)存的使用少,虛擬機(jī)占用低于125K,JIT編譯器占用不到85K (在x86環(huán)境中)。”
LuaJIT可以幾乎和C代碼餓速度媲美。不管怎樣,如果你還是對速度不滿意的話,你可以試試我在***點(diǎn)中提出的建議。

3. 教育作用

雖然這不是一個(gè)編程語言的功能,但是我發(fā)現(xiàn)使用Lua讓我對計(jì)算機(jī)科學(xué)的整體了解有所提高。比如說,這篇文章是關(guān)于 Lua 5.0 的實(shí)現(xiàn)的,讓我對虛擬機(jī)是如何實(shí)現(xiàn)的有了一個(gè)了解。閱讀源代碼讓我大開眼界。我認(rèn)為這一切都得益于Lua有條不紊的改進(jìn)

4. 函數(shù)式編程

Lua提供了函數(shù)式編程的架構(gòu),讓編程更加的有趣。例如 anonymous functions, higher order functions, lexical closures,proper tail calls等等。這些特性不是語言的一些語法糖,而是Lua從底層就整合了這些特性。比如說,Lua的每一個(gè)方法都是一個(gè)值(比如數(shù)字2,或者字符串“ktr”),也就意味著每一個(gè)方法都是匿名的。你只要給它取個(gè)名字,然后你就可以調(diào)用它了。你可以給print重新賦值:
print = math.sin
你可以利用這個(gè)功能創(chuàng)建沙箱。如果print是一個(gè)危險(xiǎn)的操作,你可以替換成你自己的print方法或者從全局中刪除這個(gè)方法。

5. 任何東西都是一張表

在Lua中,任何一個(gè)變量類型都是一張表,例如Array,Hash,“module”或者全局變量等等。也就是說你可以“require”一些模塊(類似Python的import語句)并且把結(jié)果當(dāng)錯(cuò)table來處理。在Python中,你可以 __import__('...') 一些模塊,然后返回值的變量就可以通過類似 var(module) 的方式來訪問。在Lua中,你可以通過 module[var] 的方式來訪問模塊中的變量。我這里提到Python是為了強(qiáng)調(diào)不同之處,說明Lua更容易使用。

這也讓你學(xué)習(xí)Lua的語法更加快速。你不用擔(dān)心list和dictionary、package有什么不同。

6. 一致性

不知你是否意識(shí)到,Lua是非常一致的語言。它的很多功能都是做的恰到好處。比如說,Lua沒有“for”循環(huán)直到Lua 4.0,也就是Lua語言發(fā)布7年以后。這是因?yàn)閣hile循環(huán)更為通用,而且語法更簡潔。Lua的開發(fā)團(tuán)隊(duì)相對來說比較保守,他們不接受patch,所以Lua的進(jìn)化比較緩慢,但是比較平穩(wěn)。你知道所有的功能都是有規(guī)劃的在進(jìn)行,也就意味著你不能指望你所期待的功能可以被很快的實(shí)現(xiàn)。

7. 可移植性

關(guān)于這一點(diǎn)我不會(huì)講很多細(xì)節(jié),但是Lua基本上可以在任何環(huán)境中運(yùn)行。Lua的代碼是按照“Clean ANSI C”的標(biāo)準(zhǔn)編寫的,所以如果你有一個(gè)C的運(yùn)行環(huán)境,你就可以運(yùn)行Lua。

總結(jié):Lua是一門非常簡單但是強(qiáng)大的語言。

原文鏈接:http://www.oschina.net/news/26081/why-i-choose-lua

【編輯推薦】

  1. 編程語言新寵兒:Julia誕生記
  2. 當(dāng)下主流JVM語言一覽
  3. Lua開發(fā)工具脫離Eclipse 成為獨(dú)立版本
  4. 菜鳥入門Java語言學(xué)習(xí)的要點(diǎn)
  5. 流行的編程語言之戰(zhàn)
責(zé)任編輯:林師授 來源: 開源中國社區(qū)
相關(guān)推薦

2012-11-14 20:55:07

容錯(cuò)服務(wù)器選型CIO

2013-10-22 15:18:19

2021-02-01 07:20:51

KafkaPulsar搜索

2021-04-06 11:07:02

字節(jié)跳動(dòng)組織架構(gòu)

2018-12-21 11:26:49

MySQLMongoDB數(shù)據(jù)庫

2019-04-19 11:56:48

框架AI開發(fā)

2025-01-03 08:50:23

2012-10-10 16:52:21

CentOSDebianUbuntu

2011-11-28 10:21:52

Nginx特性

2020-08-14 10:40:35

RestTemplatRetrofitJava

2021-03-15 07:43:17

騰訊工作事業(yè)

2012-01-05 10:14:24

諾基亞聯(lián)手微軟

2009-06-25 15:09:34

選擇JSFESRI

2012-04-04 22:07:12

Android

2009-12-21 17:11:38

Linux認(rèn)證

2015-10-14 18:25:03

一體化架構(gòu)設(shè)計(jì)微服務(wù)

2020-07-17 14:06:36

Scrum敏捷團(tuán)隊(duì)

2016-08-19 16:27:52

數(shù)據(jù)庫Mongo DB開發(fā)

2017-02-27 15:19:04

2015-03-02 15:13:52

Apple Watch
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號