문제

I have a c++server side 프로젝트가 필요 포함하는 일종의 스크립트입니다.그것은 부분의 온라인 MMO 유형의 서버입니다.나는 상당한 경험을 사용하여 TCL,그리고 같은 자연 적합합니다.나는 최소한의 Lua 내 게임에 dev 일,내가 있는 더 나은 언어 임베디드 스크립트입니다.그것은 또한 좋은 새로운 언어를 배운다.은 무엇이 상대적 강점 및 약점의 TCL 대 Lua?감사합니다!

도움이 되었습니까?

해결책

솔직히, 그들은 둘 다 과제에 매우 적합합니다. 둘 다 응용 프로그램에 쉽게 입력하기 쉽고 상당히 간단한 구문이 있습니다. TCL에서 새로운 명령 (응용 프로그램과 상호 작용하기 위해)을 추가하는 것이 매우 간단하다는 사실을 알고 있으며 LUA는 이런 유형의 일에도 매우 능숙하다고 들었습니다.

내 추천은 LUA와 잠시 놀아서 (이미 TCL을 알고 있기 때문에) 좋아하는 방법을보고 가장 편안한 느낌을 선택하는 것입니다. 많은 코드를 작성하는 경우 코드를 많이 사용하면 많이 작업 할 수 있으므로 사용할 수있는 것이 필요합니다. 결국, 최종 사용자가 스크립트를 작성하기가 쉽게 선택해야합니다.

내 개인적인 취향은 TCL입니다. 나는 LUA를 좋아하지 않기 때문에 (Warcraft Addsons를 위해 합리적인 프로그래밍을 수행했습니다) TCL을 좋아하기 때문에 (전문가와 전문가 모두를 위해 많은 프로그래밍을했습니다. 개인 작업).

편집 : 최종 사용자가 쉽게 쉬운 것에 대한 메모를 추가했습니다. 2 개의 다운 투표권을 얻었고 내 진술의 일부를 명확히하지 않는 것 외에는 다른 것을 생각할 수 없었습니다.

다른 팁

나는 내가 rhseger의 반대 인 것 같아요. 나는 게임 (온라인 게임, 우연히)에 내장 된 LUA와 TCL을 모두 사용했으며 선택이 있다면 10 '바지선 폴로 다시 TCL을 터치하지 않을 것입니다. 저의 주관적인 의견은 Lua가 제정신 언어이고 TCL은 그렇지 않다는 것입니다. 스크립팅 언어에 대한 다른 옵션과 관련하여 TCL 구문은 대부분의 사람들에게 매우 모호합니다. 그 부서도.

이 스크립팅 인터페이스가 순전히 당신을위한 것이라면 LUA가 새로운 것을 제공하지 않기 때문에 TCL과 함께 갈 수도 있습니다 (객체 방향이 아닌 경우). 숙련 된 사용자의 손에 TCL은 합리적인 도구입니다. 그러나 경험이 적은 사용자가 시스템을 사용하여 LUA를 사용하는 경우 더 간단한 구문은 많은 생산성을 구매합니다.

나는 TCL에 더 많은 라이브러리가 필요하거나 편리한 라이브러리를 가질 것이라고 생각합니다.

다른 사람들이 말했듯이, 두 언어는 모두 잘 작동 할 것입니다. 또한 틈새와 거의 같은 틈새 시장에 적합하기 때문에 JavaScript입니다. 두 언어를 매우 좋아하기 때문에 당신을 하나 또는 다른 사람에게 부르려고 노력하는 대신 객관적인 차이점에 초점을 맞추고, 한 사람이 다른 곳보다 앞서 있다고 생각합니다.

게임 서버에서 가장 중요한 문제는 원시 성능 일 것입니다. 두 언어 모두 성숙하고 최적화되어 있지만, 두 가지 언어는 컴파일 된 코드를 연기하여 일부 문제가 가장 잘 최적화된다는 것을 인식합니다. 두 언어 모두 기본적으로이를 수행하기 위해 동일한 메커니즘을 사용합니다. 언어 자체의 관점에서 Lua가 조금 더 빠른 것처럼 보입니다. 링크

다음 큰 요인 인 라이브러리의 관점에서 볼 때, 어떤 언어도 라이브러리를 사용하여 유용하지 않아도됩니다. 그것은 큰 런타임 라이브러리가 유용하기 위해 필요한 Java와 같은 언어와 비교할 때 두 언어는 매우 작습니다. 다시, 이것은 원래 디자인 요구 사항의 결과입니다. 두 언어 모두 선택할 수있는 풍부한 애드온 라이브러리가 있지만 적어도이 범주에서 TCL이 다소 다양하다는 것은 저의 인상입니다. tcl :( TCL 확장 보관소 / TCL 확장 저장소 ) lua : ( Luaforge )

또 다른 차이점은 핵심 언어 자체의 것입니다. 두 언어 모두 스타일보다 단순성을 가치가 있지만 유사성이 끝나는 곳입니다. LUA는 매우 간단한 컨텍스트 무료 문법으로 대부분의 프로그래머에게 친숙한 구문을 사용합니다. TCL 구문은 또한 단순하지만 실제로 유닉스 쉘 언어처럼 보이지만 다른 기존 언어와 공통점이 없습니다. 라인 방향 명령 구문이 명확하기 때문에 TCL은 비 프로그래머에서만 더 쉽습니다. 그러나 다른 언어로 경험되는 프로그래머는 일반적으로 비전 구문에 반대합니다. 코드 생성 측면에서 어느 쪽도 굉장히 용서하지는 않지만 둘 다 강력한 메타 프로 그램 시설을 가지고 있습니다 (비교할 수 있지만 CLISP 매크로만큼 강력하지는 않습니다).

LUA C API는 응용 프로그램에 통합하기가 매우 쉽습니다. C에서 LUA 상태 및 기본 데이터 유형에 완전히 액세스 할 수 있습니다. 예를 들어 스크립팅이 필요없이 해시 테이블 구현을 얻기 위해 LUA를 사용하는 것이 좋습니다.

C로 작성된 LUA 기능은 전역 이름으로 주입하거나 대부분의 표준 라이브러리 기능과 같은 테이블에서 수집하거나 DLLS로 구현하고 런타임에 동적으로로드 될 수 있습니다. 이를 통해 응용 프로그램은 안정적인 API를 제공하고 LUA 또는 C로 작성된 플러그인을 지원할 수 있습니다.

언어로서의 LUA는 놀랍게도 강력하며 기능적 및 객체 지향 프로그래밍 스타일을 지원합니다. 완전한 소스 키트와 전체 문서화는 1MB 미만에 적합하며 DLL의 전체 VM, 컴파일러 및 표준 라이브러리는 Windows의 164KB에 불과합니다.

버전 2 정도부터 TCL을 진지하게 조사하지 않았습니다 ... 구체적인 방식으로 비교하려고하지 않을 것입니다. 나는 그들이 둘 다 같은 틈새 시장에 적합하고 거의 같은시기에 발명되었다고 믿는다. 그들은 분명히 열렬한 사용자 커뮤니티를 가진 성숙한 언어입니다.

Lua 가 LuaJIT, 는 JIT 컴파일러에 도달 C 속도 단단한 루프에 사용되는 같은 프로젝트 Snabb 스위치, 성능이 중요(Snabb 처리할 수 있는 기가비트/초,모든 통해 처리되는 LuaJIT).LuaJIT 또한 쉬운 사용 FFI 사용할 수 있는 액세 C 함수를 작성하지 않고 C stub 코드입니다.

PUC-Lua(이 표준을 구현하)에서 지원하는 복구에서 밖으로 실행됩니다.도 LuaJIT 으며 TCL 않습니다.

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