IMO an 'objective' look of scripting languages would show AngelScript, JavaScript and Lua as being far ahead of the alternatives on most measures, excepting C++ as not strictly being a scripting language. All these are made to be called and call native code and themselves. One other important factor is who Stardock can afford/get to do the actual integration of the codebase. If someone like Mike Pall creator of LuaJIT (both an efficient extremely fast Tracing JIT and the fas
Anangara
There is also one elephant in the room of scripting languages that would place in my top three right between Lua and Python. JavaScript has three major implementations with major support and performance as well as a host of other implementations. JaegerMonkey, v8 and JavaScriptCore. It could quite possibly mean that you could use the browser as an IDE.
One plus for scripting in Lua and Python contra C++(can be done but not a walk in the park) is the possibility of interactive development, testing and debugging by having a scripting console open while running a script. For one example of a Lua implementation see ToME T-Engine 4. That style of development has always been a favourite since way back when I discovered Lisp and Forth. Many modern development and testing techniques are a subset of this.
When it comes to multi threading in Lua there are more than a few options. The LuaLanes site offers a comparison of some different implementations. The design space is from green threads to native threads, from 1:1 over N:1 to N:M mapping to native threads, 'occasional' mulithreading to pervasive and message passing.
I'd say Python speed concerns can be mitigated by choosing the fastest implementation for each problem domain but currently even PyPy is only close to equal to Lua. That might well change in the future and then it has to catch up to LuaJIT. While there are C++ compilers for Windows it represents a possible failure point unless the game makers either bundles or anoints a blessed distribution due to quirks and implementation decisions made in the compilers.
@legaceez: I'm pretty much isolated from the WoW scene. Only interaction is having corrected some friends AddOn scripts. Looking at Python modding on WoW whom I never knew existed it seems it is an external component that needs to be installed by the user or in some cases the AddOns actually install a working Python runtime at install time. Only reason for that I can fathom is the non-sandboxed operations that can be achieved. Not exactly a plus from a securit
@legaceez: Lua is more or less the one of the great standard scripting langages for games (and applications too). The biggest Lua example in user numbers is WoW. Civ IV is Python (Civ V switched to Lua) I think but Minecraft is modded in Java.
[quote who="Gwenio1" reply="95" id="2882135"] Quoting Anangara, reply 91 None of the languages discussed have especially strong typing (they have far from weak systems but there has been much more research done). Catching errors in compilation in languages without much of type inference doesn't catch any noticable percentage of insidious errors. Just to check, by type inference do you mean it as defined at http://en.wikipedia.o
None of the languages discussed have especially strong typing (they have far from weak systems but there has been much more research done). Catching errors in compilation in languages without much of type inference doesn't catch any noticable percentage of insidious errors.
Always gets me to smile when the newness of of style and syntax troupe gets a walk around the block. Technically true since 1966 is a whole eight years after 1958.
Lua has always been an excellent data description language as well. Its ancestry is SOL (Simple Object Language) and DEL (Data Entry Language) and usage in commercial petrochemical and geological data processing and configuration.
I OTOH don't get the point he's trying to make. He is using the names dynamic and static typing while describing the differences between weak and strong typing. Static typing is typechecking in the compiler phase. Dynamic typing is typechecking done in the runtime. Different concepts alltogether. Having programmed in assembler and Forth I can say it is a whole different animal. Dynamic typing actually makes using different modules easier mainly because of the difficulty of doing a tra
While Lua and Python have a similar solution to muliple threads the difference in implementation is pretty telling in how Lua was rewritten and redesigned from the bottom up with an API geared to manageable muliple threads and states. For the middle ground of multithreading there are the coroutines that generalize the concept of subroutines. As for dynamic an static typing I'm pretty much undecided. Or rather unimpressed by the weak safety guarantees offered by Java/C/C++
If one considers mulithreading a must then Python is pretty much dead in the water from my perspective.
Choosing between Lua (Portugese for The Moon, not LUA) and Python is pretty easy for me. While Python is a good language with a lot of libraries and documentation I find it much easier to use the smaller orthogonally designed multi paradigm Lua with the ability to support both functional and object oriented programming (both prototype and class based) as well as imperative programming. Admittedly Python is pretty pragmatic too when it comes to that but with some strange exeptions. Never