Poll

Pick one!

Lua
54 (27.3%)
Python
48 (24.2%)
EMCA
13 (6.6%)
Ruby
6 (3%)
Other
77 (38.9%)

Total Members Voted: 198

Author Topic: If Blockland got a new scripting language, what would you pick?  (Read 9724 times)


Why would anyone code a game in Java? It's slow.

What does everybody think of this language? http://squirrel-lang.org/

Aside from the fact that its script files have the ".nut" extension...


i think javascript would be the simplest jump syntax wise, while retaining the benefits of the
you know
not stuff language

strings and stuff

I guess this is moderately relevant, what's the difference between programming and scripting?

It's simple, really.

Scripting is writing code to be ran inside an environment. So code to be ran inside Blockland is scripting.

Code that runs outside of a specified environment is programming. Raw C[++] code has no environment. Everything that exists, you create.

There's a blurred line though. Most people shorthand writing code in a programming language as programming, and a scripting language as scripting. That's not always true.

Remember, unless you're creating an environment you're scripting, so for example writing the serverCmdSelf Delete code in the engine rather than in Torque would still be scripting, you'd just be doing it in a programming language. But a lot of people would still call it programming.

Alternately, things that are commonly considered scripting languages (i.e. Lua) can be used standalone to program something.

There's no real set difference, tbh.

Why would anyone code a game in Java? It's slow.
modability. if minecraft was made in c++ for example, it wouldn't be nearly as popular as it is now

Why would anyone code a game in Java? It's slow.

Java and Javascript are two different languages.

Why would anyone code a game in Java? It's slow.
Because Minecraft
Honestly I rarely ever saw people wanting to learn Java before Minecraft, now I see it all the time

modability. if minecraft was made in c++ for example, it wouldn't be nearly as popular as it is now
The modability of minecraft is terrible; there's no official api, and any mods have to be updated every time a new version is released.
If they make an official api with an actual scripting language, it doesn't matter what language the engine uses

I don't like using words for things that should be represented by symbols. { and } are much faster to read, interpret, and write than "then", "end", "do", etc. Not to mention that they literally make sense by encapsulating the code, the words "then" and "end" have no relation to encapsulation.

I've worked with Lua. More than once. I've seen what it can do, I've seen how it does things, and I've decided I don't like it. It's not for any one reason (it's not just because ~= is used instead of != or it uses keywords instead of symbols) but as a collective language it's just not for me. I don't think it's really for anyone, to be honest. It's really old and better languages exist for every use case.



Lua is slower than JavaScript which is slower than C++. Benchmarks exist, people. It's not opinion.




edit: better benchmark
Still, with modern day processors it'd probably be fine. I don't understand why you hate Lua; I adore it.
(to those who said Java:)
Why would you want f~~~ing JAVA for the add-on language... I don't... I just don't even...
Here.
« Last Edit: August 06, 2014, 11:26:23 AM by superdupercoolguy »


This picture is stupid and shows a lack of basic understanding of the differences between programming and scripting langues
C++ and Java are programming languages, Python and Lua are scripting languages. They have less because the interpreter puts it there for them.  If you were going to write an interpreter for them to use them as a scripting language, obviously there would be a lot of things the interpreter could put it for them, making them not necessary for your "scripts"

This picture is stupid and shows a lack of basic understanding of the differences between programming and scripting langues
C++ and Java are programming languages, Python and Lua are scripting languages. They have less because the interpreter puts it there for them.  If you were going to write an interpreter for them to use them as a scripting language, obviously there would be a lot of things the interpreter could put it for them, making them not necessary for your "scripts"
exactly, lua makes it easier to program.

exactly, lua makes it easier to program.

I feel like you're getting confused between Java and JavaScript.

exactly, lua makes it easier to program.

The fact that that image exists is a loving disgrace to programmers around the entire loving world. Holy stuff I've never seen a bigger form of incompetency.

You do not script for games using programming languages. Nobody wants to use C++ to write mods except me, and I'm crazy. Verbosity is a plague to programming but taking something that's one command is no accurate show of verbosity. Here's some more accurate comparisons:

C++
Code: [Select]
auto someOtherNum = 24;
for(auto someNum = 0; someNum < 30; someNum += 3) {
    if(someNum == someOtherNum)
        break;
}

Lua
Code: [Select]
local someOtherNum = 24;
for someNum=0,30,3 do
    if someNum == someOtherNum then
        break
    end
end

Wow. Huge difference, right? Aside from the fact that Lua collapses the for statement, they're virtually identical. Now let's see what happens if we don't just want a basic incremented for loop:

C++
Code: [Select]
int someOtherNum = 24;
for(int someNum = 0; someNum % someOtherNum != abs(someNum - someOtherNum) || someNum > someOtherNum; someNum += someNum/abs(someNum)) { }

Now, see, in this case I'm using a non-standard conditional statement. It's not just a less than. This completely breaks Lua's for loop, and we can't even use it anymore.

Lua
Code: [Select]
local someOtherNum = 24;
local someNum = 0;
while someNum % someOtherNum ~= math.abs(someNum - someOtherNum) do
    if someNum > someOtherNum then
        break
    end
    someNum = someNum + (someNum / math.abs(someNum))
end



The reason I'm putting this out here is that while something that isn't even a program is shorter in Lua, that doesn't mean everything is easier. It doesn't even matter anyway, 'cause I've got major beef with the fact it does that in the first place. I didn't forgetin' tell it to import console I/O functions. Why would it do that for me? Now that function I wanted to name print[/i] has to be called printA or something because Lua decided that it needed to import a function I'm not even trying to use.

exactly, lua makes it easier to program.
If you thinking adding an import directive and a class/function definition is "hard" than you should reevaluate your "programming skills"

The fact that that image exists is a loving disgrace to programmers around the entire loving world. Holy stuff I've never seen a bigger form of incompetency.

You can't even compare these two things because they're very different types of languages used in completely different cases

Nobody wants to use C++ to write mods except me, and I'm crazy.
I think it's pretty cool.
Just one question though (since I have like zero knowledge of "hacking" into games like this): if the game engine code was changed enough, wouldn't that change the executable and you'd need to find all the address all over again?
« Last Edit: August 06, 2014, 12:51:09 PM by Headcrab Zombie »