왜 루아가 아닌 파이썬입니까? [닫은]


45

왜 파이썬이 구글의 지원을 받아 인기가 높아졌고 루아는 그렇지 않습니까?

루아가 왜 배경에 머물 렀는지 아십니까?


3
Lua는 배열과 사전이 같은 것으로 가장하고, 잘못된 결과를 반환 할뿐만 아니라 비 결정적 결과를 반환 할 수있는 길이 게터를 선호합니다. Google의 이유가 무엇인지 모르지만 이것이 싫어하는 이유입니다.
Steve314

4
나에게 파이썬은 코딩하기 쉽고 더 즐겁고 더 많은 기능을 가지고있다. 내 머리 꼭대기에서 몇 가지 예 : 발전기는 Python ( yield) 에서 일류 시민으로 왔으며 Lua는 더 번거로운 설정이 필요합니다. 파이썬의리스트 인덱싱 [::]은 큰 장점입니다. 파이썬에는 합법적 인 클래스와 상속이 있습니다. 루아는 더 빠르지 만 실제로 속도가 중요한 경우 파이썬에서 사용할 Go 코드를 작성하는 것이 좋습니다.
Frank Bryce

나는 LuaJIT을 좋아하지만 그것에 대한 내 사랑의 큰 부분은 포함, 속도 및 작은 발자국의 용이성입니다. 하루 종일 무언가를 프로그래밍해야한다면 파이썬을 향해 더 많이 기울어 질 수 있습니다.

@FrankBryce 당신은 그것을 거꾸로 얻었다. 파이썬의 생성기는 루아 코 루틴의 일부입니다. inf.puc-rio.br/~roberto/docs/MCC15-04.pdf
capr

답변:


37

나는 Lua를 정말 좋아하지만 실제로는 약간의 제한이 있으며, 다른 사람들이 언급했듯이 Lua의 기원에서 구성 파일 언어로, 나중에는 내장 스크립팅 언어로 파생됩니다.

Lua를 작게 유지하려는 목표로 인해 베어 본 기능 만있는 매우 작은 표준 라이브러리 만 있습니다.

이로 인해 루아 개발자들은 루아 개발자들이 보편적으로 수용되는 핵심 라이브러리 세트에서 공동 작업하는 대신 다른 많은 언어의 표준 라이브러리 자체에서 제공하는 기능을 다시 구현하기를 원합니다.

멀티 스레딩, 정규 표현식, 플랫폼 독립적 인 파일 액세스 방법, 심지어 비트 연산 (5.2까지)은 Lua를 훨씬 더 크고 느리게 만들기 때문에 "포함되지 않은"것입니다. 물론 라이브러리가 이러한 작업을 수행 할 수는 있지만 독립적 인 관리자와 품질 수준이 있습니다.

내가 틀리지 마 나는 방금 열거 한 것과 같은 이유로 루아를 좋아합니다.


54

단순성 : Lua는 Python보다 "틈새"목표가 더 많습니다 .

파이썬은 일반적인 프로그래밍 언어로 유용하다고 생각됩니다. 따라서 많은 경우에 유용합니다. 잘 알려진 많은 유형의 응용 프로그램을 다루지 만 특정 제약 조건을 대상으로하는 다른 언어와 직접 경쟁하지는 않지만 구문의 단순성입니다.

Lua는 완전히 내장 된 스크립팅 언어를 목표로합니다. 현재 빌드 시스템과 같은 다른 컨텍스트에서 사용 되더라도 초기 목적입니다. 소프트웨어에 내장되고 도메인 별 스크립트 기능 및 구조를 쉽게 구현할 수 있어야합니다. 그것은 매우 미니멀리스트이므로 실제로 제한된 하드웨어에서도 사용할 수 있습니다 (NintendoDS에서 Lua를 사용했습니다). 객체 지향)을 사용할 수 있습니다. 휴대 성이 뛰어나 (ANSI C) 최신 임베디드 소프트웨어를 위해 적절한 양의 메모리가있는 임베디드 하드웨어에서 사용할 수 있습니다 (기억을 기억한다면 기본 lua vm은 약 400ko이며 객체 생성을 반복하지 않으면 거의 커지지 않습니다. ...).

따라서 Lua는 처음에 응용 프로그램의 스크립팅 언어를 포함해야하는 상황에서 사용됩니다 .

파이썬은 거의 틈새 언어를 필요로하지 않는 거의 모든 용도로 사용됩니다 (파이썬을 사용하여 성능이 좋은 게임을 만들 수는 있지만 성능이 많은 게임은 실제로 그러한 시스템을 피해야합니다).

단순히 파이썬이 루아보다 더 많은 맥락에서 사용된다는 것입니다. 내가 아는 한, Java (모국어 및 모국어 지원을 제공하는 Android) 이외의 Google은 임베디드 소프트웨어 회사가 아니기 때문에 실제로 모든 곳에서 Lua가 필요하지 않지만 Python은 자신이하는 모든 작업 (웹, 빌드 시스템)에 유용합니다. , 커뮤니케이션, 웹 및 웹).

파이썬은 임베디드 스크립팅을 위해 많은 게임에서 사용되지만 루아보다 무겁고 느립니다. 파이썬의 문법은 게임 구조에서 스크립트 정보에 의존하는 큰 게임에 더 적합합니다 (확실하지는 않지만 스크립트에 "실제로 완전한 언어"가 필요하다면 파이썬을 포함시키는 것이 좋습니다. 성능이 좋으면 좋은 아이디어입니다). 파이썬은 내장되지 않았으므로 괜찮습니다. C ++에 포함되는 것을 목표로하는 Python과 동등한 기능은 Falcon입니다.

극단적 인 비교를 위해, 임베디드를 대상으로 미니멀리스트 루아보다 더 완전한 구문을 가지고 성능에 경쟁하는 일부 언어 : ChaiScript, AngelScript, Io ...

그건 그렇고, PreMake 또는 Bam과 같은 새로운 빌드 시스템이 Lua를 빌드 파일 언어로 사용하는 것을 보았습니다. 아이디어는 그것이 게임 개발자들로부터 가볍고 잘 알려져 있다는 것입니다 (게임 개발의 빌드 시스템은 큰 문제입니다). 아마도 Lua가 더 높이 평가 될 수있는 또 다른 영역 일 것입니다. CMake 구문보다 확실히 사용자 친화적입니다 ....


4
임베디드 언어로서의 Lua의 목표는 아마도 주요한 기여자 일 것입니다. 그러나 그럼에도 불구하고 언어의 "인기"는 언어 자체의 실제 디자인이나 기능과는 관련이 없으며 "적시 한 장소"의 문제와 관련이 있다고 생각합니다 (예 : PHP 참조).
Dean Harding

글쎄, 나는 특정 목적을 겨냥한 언어가 자연스럽게 특정 사용자들에게 어필하여 관객을 일반 언어보다 더 자제한다고 생각합니다. 범용 언어보다 청중이 적 으면 언어에 대해 이야기하는 사람들의 수에 직접적인 영향을 미칩니다. 그 이외의 특정 대상은 특정 기능을 의미합니다. 따라서 모든 상황에 적합하지는 않습니다. 예를 들어 루아만으로는 매우 좋은 GUI 프로그래밍 언어가 아닙니다. 실제로 유용하려면 몇 가지 추가 사항이 필요합니다.
Klaim

즉, 웹 사이트 개발과 같이 널리 사용되는 필드에 PHP를 사용하지 않았다면 지금은 어디에도 없을 것입니다.
Klaim

Lua는 주로 임베디드 언어로 사용되지만 범용 프로그래밍 언어입니다. 예를 들어 mod_lua로 CGI 스크립트를 만들 수 있습니다. 루아가 왜 임베디드 언어로 남아 있는지에 대한 질문을 바꿀 수 있습니까?
BenjaminB

그것이 기원이기 때문에. 범용 언어로 PHP를 사용할 수 있으므로 예를 들어 범용 언어로 사용할 수 있습니다. Perl을 사용하여 동일한 작업을 수행 할 수도 있습니다. 그러나 그들의 기원은 오리엔테이션을 만듭니다. 다시, 그들의 초기 목적은 일반 언어에 다른 언어보다 덜 유용합니다. 루아는 객체 지향 (예 : 쉽게 추가 할 수 있지만 네이티브가 아님)과 같은 예제를 위해 GUI 시스템에서 쉽게 사용할 수있는 기능 언어가 없습니다. 원래 특정 목적을 위해 만들어진 언어와 일반적인 언어의 차이점을 확인하십시오. 그들은 모두 어쨌든 제약이 있습니다.
Klaim

4

Lua로 모든 것을 할 수 있습니다. 프로그램을 확장하기위한 스크립트 언어로 만들어 졌습니까? 그렇습니다. 그러나 그것에 국한되지는 않지만 Lua에 대한 많은 라이브러리가 있으며 올바른 도구 (LuaJIT의 FFI 또는 tolua)를 사용하면 C / C ++ 라이브러리를 사용할 수도 있습니다. 내 관점에서 파이썬을 더 많이 사용하는 이유는 나이 뿐이며, 많은 대학과 학교에서 파이썬을 첫 번째 언어로 사용하고, 루아보다 파이썬을 아는 사람들이 더 많으며, 파이썬을위한 좋은 라이브러리를 훨씬 쉽게 찾을 수 있습니다 언어가 더 성숙하기 때문에 루아보다. 또한, 나는 파이썬에 대해 많이 알지 못하지만, 아는 한, 최종 사용자로부터 코드를 쉽게 숨길 수 있습니다. 루아에서는 무엇이 쉽지 않습니까?

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.