Isn't "scripting" in Unity a misnomer?

It seems to me that there is a whole group of people who learn programming at the same time as they start learning Unity who aren’t going to understand what a scripting language is. A scripting language to me is something that is directly interpreted, like JavaScript (the real run-in-a-browser kind), VBScript, Python, Lua, and so on.

C#, “JavaScript”/UnityScript, and Boo are all compiled to intermediate language and are regular full-blown languages (not scripting languages). Now with IL2CPP, we’re even compiling all the way to machine code, which isn’t generally something you do in a scripting language.

But the Unity documentation and the editor itself consistently refers to coding in Unity as “scripting.” And of course, just to add to the confusion, they have to call their proprietary language “JavaScript.” Grrr.

It’s of no consequence to my own work, since I understand the difference, but it irks me that new programmers are being exposed to that terminology in such a (potentially) confusing way.

Instead of Create → C# Script, it would put a smile on my face if the editor instead said Create → C# Class, at least as a start.

2 Likes

Unity is hardly the first to use the word ‘scripting’ in this manner.

The term scripting in the context of programming has always had a very loose definition and is very dependent on the context you’re using it.

In the context of a game engine, it’s often referred to as a ‘scripting language’, because you’re writing code that scripts the behaviour of a scene in the game.

I wouldn’t fret to much on the use/misuse of the term ‘scripting language’ since it hardly has had a consistent definition through the history of its use.

i wouldnt care much about the terms, also under your logic python would not be a scripting languages as well, sice it is jit compiled to byte code.

In my understanding scripting refers to something that runs on an underlying engine. You build scripts to run inside the Unity environment. Outside of the Unity environment your scripts are generally useless. So in those terms we are scripting with Unity.

If you are building an entire application with C# you could call it programming. This is quite different from what we do in Unity.

The general term the community seems to use is coding. This takes into account the other extra bits that are technically not programming, but are essential to make Unity work.

Ultimately it doesn’t matter. The English language has no compiler to check syntax or word legitimacy. Unity could call it tabogaloo, and if the community accepted it we would all be tabogalooing in C#, JavaScript and Boo.

2 Likes

While I think you are technically semantically correct…especially from a programming perspective…

The term scripting in game development might also refer to the fact you are literally “scripting” out the behavior of the game entities…

Kind of like the “script” dictates the behaviour of the actors in a play

1 Like

Well I don’t know what any of this means but now I am more confused than before. Ignorance truly is bliss.I posted a comment earlier and it seems to have been deleted or i didn’t press the send button wierd.

I agree, what you are creating is a class, it makes a lot more sense for it to say Create [insert language here] class.

As the others have stated, it doesn’t really matter much, but YES - @Steve-Tack - I agree with you :slight_smile:

When you run “regular” C# code within the .NET framework or Java within the JRE, you can think of those as running in an “engine” (just not a game engine). Outside of .NET or the JRE, that code is generally useless. But outside of the game dev world, nobody refers to C# or Java as scripting languages. There is a distinct difference.

It’s not really that important to me, I just feel for the noobs. Though the term “JavaScript” is ten times worse. Can you imagine someone going into a job interview and saying they “know JavaScript” after learning UnityScript? “So, what’s your experience with jQuery and AngularJS?”

I think it matters a little. I’ve pointed folks to the book Programming Game AI by Example a few times. I has a chapter called To Script, or Not to Script, That Is the Question. That would be very confusing if you thought programming = scripting. (or programming == scripting, or programming === scripting, hehe)

I would greatly prefer they call it tabogaloo. That word doesn’t have any pre-existing connotations. :smile:

2 Likes

Pretty much everyone in the community agrees with you here, except a few guys in the sales team. We get the opposite a lot as well. Experienced JavaScript users come on expecting to hit the ground running, only to realise they have to essentially learn a new language from scratch. When anybody brings it up I use UnityScript, but it’s hard for the term to catch on when Unity itself calls it JavaScript. I spent a fair amount of time as a noob on MDN before I realised the difference, gave up, and started with C#.

Well tabo(o)galoo would probably not be the best word to use it does carry some negative connotations. Wait what scripting isn’t programming?

I remember googling this a few years ago and reading an article that said systems are programmed and behaviors are scripted (e.g. program the tools, graphics engine, physics engine, etc. for the game engine and script those systems to define how they behave in the context of your game). That’s always been the distinction I’ve made between the two.

C#, when used to build systems, would be considered a programming language. When it’s used to script game logic, it would be considered a scripting language. This post has some interesting opinions on the subject as well.

1 Like

C# is NOT a scripting language and its code files are not scripts. Python, Lua, Javascript et.al are scripting languages. Scripting languages are interpreted, not compiled like C#.

Even in game studios (at least the AAA ones), this holds true. Frostbite has a scripting language that designers can use to write scripts that use an interpreter to make calls into the code. WoW has a Lua layer that allows players to create Lua scripts that makes calls into the code. If some piece of logic is written in a scripting language that is sitting on top of the code then it is written in a script. If that behavior is written in code, its code.

Build a bridge and get over it guys … concentrate on things that will improve the world instead of wasting electrons.

1 Like

Reducing confusion for noobs is my idea of improving the world. I’m not saying I’m losing sleep over this issue. The bottom line is, yes, scripting in Unity is a misnomer and it’s something to be aware of. That’s all.

This is the reason

“If there is one thing you can do to change the world what would it be” Miss World 2015 host question.

Contestant at the Miss World contest 2016
“Reducing confusion for noobs is my idea of improving the world.Scripting in Unity is a misnomer and it’s something to be aware of. That’s all.oh…and maybe cure world hunger.”

I believe the noobs are our future
Teach them well and let them lead the way
Show them all the beauty they possess inside
Give them a sense of pride to make it easier
Let the noob’s laughter remind us how we used to be

Another thread about nothing.

2 Likes

I tend to consider them more as raw recruits. If they listen and have the talent they can succeed. However most of them just end up as casualties. The success rate for noobs making to veteran status is vanishingly small.