문제

Lua를 볼 때 내가 읽은 유일한 내용은 "임베딩에 적합", "빠름", "가벼움" 등 다른 무엇보다 자주 읽은 것입니다."월드 오브 워크래프트" 또는 줄여서 "와우".

모든 것을 다른 애플리케이션에 포함시키는 것으로 제한되는 이유는 무엇입니까?Python이나 Perl을 사용하는 것처럼 범용 스크립트를 작성해 보는 것은 어떨까요?

Lua는 속도와 메모리 사용량(가장 빠른 스크립팅 언어 afaik)과 같은 측면에서 뛰어난 성능을 발휘하는 것 같은데 왜 Lua가 작업을 자동화하기 위해 "데스크톱 스크립팅 언어"로 사용되는 것을 본 적이 없습니까?예를 들어:

  • 여러 파일 이름 바꾸기
  • 웹에서 일부 파일 다운로드
  • 웹스크래핑

표준 라이브러리가 부족합니까?

도움이 되었습니까?

해결책

내장 된 스크립트 엔진의 특수 목적 언어로서 "시장"(어떤 의미에서) 마케팅된다고해서 그로 제한되어 있음을 의미하지는 않습니다. 사실, 와우는 아마도 Python을 내장 스크립팅 언어로 선택했을 수도 있습니다.

다른 팁

Lua는 멋진 언어이며 가벼우 며 매우 빠릅니다!

그러나 요점은 다음과 같습니다. 언급 한 작업에 성능이 너무 중요합니까?

  • 많은 파일을 바꾸는 것
  • 웹에서 일부 파일을 다운로드하십시오
  • 웹 빌딩

당신은 그 프로그램을 한 번 작성하고 아마도 한 번도 실행합니다. 런 온스 프로그램의 성능에 관심이있는 이유는 무엇입니까?

예를 들어:

  1. C/C ++ 프로그램을 작성하는 데 3 시간이 소요됩니다. 데이터를 한 번 처리하려면 프로그램을 실행하는 데 1 시간이 걸립니다.
  2. 데이터를 처리하기 위해 파이썬 프로그램을 작성하는 데 30 분이 소요됩니다. 한 번은 프로그램을 실행하는 데 10 시간이 걸립니다.

첫 번째를 선택하면 프로그램을 실행하는 데 시간을 절약하지만 프로그램을 개발하는 데 시간이 걸립니다.

반면에 두 번째를 선택하면 프로그램을 실행하기 위해 시간을 낭비하지만 프로그램이 실행될 때 다른 일을 할 수 있습니다. Play World of Warcraft는 어떻습니까? 내 점을 먹어! :피

그게 다야! LUA는 글을 쓰기가 어렵지 않지만 LUA에 관한 모든 것이 효율적으로 설계되었으며, 무엇보다도 LUA에 대한 모듈은 거의 없지만 Python 용 모듈이 너무 많습니다. 당신은 런 온스 프로그램을 위해서만 LUA의 C 라이브러리를 포트하고 싶지 않습니까? 대신, 파이썬을 선택하고 해당 모듈을 사용하여 작업을 쉽게 달성하는 것이 더 나은 아이디어 일 수 있습니다.

참고 : 사실, 나는 Lua를 사용하여 웹 빌딩을 시도했지만 마침내 언어 성능에 대해 많은 관심을 기울일 필요가 없다는 것을 깨달았습니다. Webscraping의 병목 현상은 언어의 성능에 있지 않습니다.. 병목 현상은 네트워크 I/O, HTML 파싱 및 멀티 태스킹에 있습니다. 내가해야 할 일은 프로그램이 작동하는지 확인하고 병목 현상을 찾는 것입니다. 마지막으로, 나는 lua 대신 Python을 선택했습니다. 우수한 파이썬 모듈이 너무 많습니다. 내 자신을 만들 이유가 없습니다.

Webscraping에 대한 나의 경험에 따르면, 나는 웹 빌딩 프로그램의 백엔드로서 HTML 파싱을 위해 네트워크 I/O 및 LXML을 위해 Twisted를 선택했습니다. 이 기술에 대한 소개를위한 기사를 썼습니다.

웹 사이트에서 데이터를 가져 오는 최선의 선택 : Python + Twisted + LXML

이것이 도움이되기를 바랍니다.

LUA는 파이썬보다 라이브러리가 적습니다. 그러나 확실히 살펴보십시오 Luaforge. 그것은 많은 흥미로운 libs가 있습니다 luacurl, wxlua 또는 getopt.

그런 다음 방문하십시오 루아 록스, LUA 용 패키지 관리 시스템. 이를 통해 종속성으로 대부분의 성숙한 LUA 모듈을 검색하고 설치할 수 있습니다. 느낌이 듭니다 rubygems 또는 적성.

사이트 lua-users.org 튜토리얼이나 루아 위키.

LUA에 대해 내가 좋아하는 것은 속도가 아니라 최소한의 핵심 언어, 유연성 및 확장 성입니다.

즉, 나는 아마도 파이썬에서 그러한 일을하는 더 큰 커뮤니티 때문에 당신이 언급 한 작업에 Python을 사용할 것입니다.

LUA가 스크립팅 및 확장 언어로 설계 되었기 때문일 것입니다. 에 공식 사이트 강력하고 빠르고 가벼우 며 임베드 가능한 스크립팅 언어로 묘사됩니다. 당신이 그것을 위해 범용 프로그램을 작성하는 것을 막는 것은 없습니다 (내가 올바르게 기억한다면 통역사 및 컴파일러와 함께 배송) 언어 디자이너는 주로 임베디드 언어로 사용되도록 의도했습니다 (따라서 가벼운 체중과 모든 것).

이것은 프로그래밍 문제가 아닌 사회학적 질문입니다.

나는 거의 독점적으로 범용 스크립팅을 위해 Lua를 사용합니다.하지만 Lua가 셸에서 더 잘 작동하도록 하려면 수백 줄의 코드를 작성해야 했습니다.여기에는 다음과 같은 트릭이 포함되었습니다.

  • 문자열을 인용하여 쉘에서 한 단어로 표시되도록 합니다.
  • 쉘 $(command)에서와 같이 명령의 출력을 캡처하는 함수 작성
  • Lua posix 라이브러리를 사용하여 파일 시스템을 크롤링하고 쉘 글로빙 패턴을 확장하는 함수 작성

(관심 있으신 분들을 위해 코드를 남겨두었습니다. 루아 드롭박스, 여기에는 다른 내용도 포함되어 있습니다.흥미로운 내용은 아마도 osutil ~에 os.quote, os.runf, os.capture, 그리고 아마도 os.execve.글로빙이 들어있어요 posixutil.lua.둘 다 Luiz Henrique de Figuereido의 제품을 사용합니다. Lua Posix 라이브러리.)

나에게는 간단한 구문과 뛰어난 데이터 구조를 다룰 수 있기 때문에 추가 노력을 기울일 가치가 있습니다.다른 사람들에게는 쉘과의 보다 직접적인 연결이 선호될 수도 있습니다.

확실히 표준 라이브러리가 부족합니다. 또한 파이썬, Perl 또는 Ruby보다 덜 알려져 있습니다.

최근 Windows의 LUA 설치를 포함한 배터리를 작성하려는 푸시가있었습니다. 결과는에서 찾을 수 있습니다 Windows 용 Lua Luaforge에서 프로젝트. 여기에는 통역사와 유용한 스크립트 및 응용 프로그램을 상자에서 작성하고 사용할 수있는 대규모 추가 모듈 모듈이 포함됩니다.

나는 다양한 Linux 배포판이 Lua와 일부 모듈을 포함하고 있으며 앞으로 더 많은 모듈을 포함하고 있음을 알고 있습니다.

메일 링리스트에는 논의중인 몇 가지 제안 된 모듈 라이브러리가 있지만, 커뮤니티는 아직 "공식적인"메커니즘으로 정착하지 않았습니다.

나는 LUA를 스크립팅 언어와 C에서 더 잘 구현 된 코드를 포함하는 하나 이상의 DLL에 의해 지원되거나 특정 프로젝트에 필요한 기존 라이브러리 또는 API 기능을 포장하는 일반적인 응용 프로그램의 "기본"루프로 사용합니다. 다음과 같은 GUI 툴킷과 함께 사용됩니다 IUP 또는 wxlua (WXWindows의 LUA 바인딩), LUA는 중소기업을 중소형 GUI 응용 프로그램을 매우 즐겁게 만듭니다.

"마케팅"이라는 것에 대한 답은 아마도 선택할 수있는 큰 라이브러리 세트가 부족할 것입니다. 나는 이것의 또 다른 사례를 지적하고 싶습니다 : 루비. 루비는 범용 스크립팅 언어가되어야합니다. 문제는 Ruby on Rails가 인기가 높기 때문에 레일과 관련이없는 것을 찾기가 어려워지고 있다는 것입니다. 나는 Lua가 이것을 사용하는 몇 가지 주요 것들 때문에 인기가 있지만 그 낙인에서 벗어날 수는 없기 때문에 이것을 고통받을 것이 두렵습니다.

표준 라이브러리 부족. 기간. 디렉토리에 모든 파일을 나열해야합니다 비표준 모듈.

그에 대한 충분한 이유가 있습니다 (POSIX가 필요하지 않은 엄격한 ANSI 휴대 성을 유지). 그 결과 일반 프로그래밍의 경우 Python을 선호합니다.

LUA는 사용됩니다 luatex, Tex Extension은 임베디드 언어로서 TEX 개발자들 사이에서 빠르게 인기를 얻었습니다. TEX 라이브 분포의 일부 유틸리티에 대한 스크립팅 언어로 사용됩니다. luatex 모든 플랫폼에서 사용할 수있는 바이너리는 LUA 통역사 (일부 중요한 모듈이 추가 된 Slnunicode, luafileSystem 등)로도 사용할 수 있습니다. ) 컨텍스트 매크로 언어는 요즘 LUA 스크립트를 광범위하게 사용합니다.

그것은 매우 특별한 분야입니다 :-) 그러나 게임과 완전히 관련이 없습니다!

LUA가 쉽게 포함되기 위해서는 의존성이 적고 작아야합니다. 그것은 범용 스크립팅 언어로서 적합하지 않습니다. 범용 스크립트 언어로 사용하려면 많은 표준 라이브러리가 필요합니다. 그러나 LUA가 많은 표준 라이브러리를 가지고 있다면 의존성과 메모리 발자국으로 인해 포함하기가 더 어려울 것입니다.)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top