This is just out of wonder, because I saw in a answers post from a reputable guy that Javascript will become deprecated, and JS is the language I use and it’s kinda making me paranoid?
Will it become deprecated???
I feel like they want to deprecate it. There’s been rumors about it. I’m not sure if there’s been any official statements on the matter or not, but it does seem like things are slowly heading in that direction.
I suggest learning C#. I’d rather Unity focuses on one language and does it well, rather than spreading itself thin between multiple.
Unity has joined the .net team (or whatever they call it) so it’s possible, however, unlike the last one they got rid of (boo), JS and C# are both really popular. So while it could happen, I wouldn’t expect it to.
The nice thing is, I don’t find that c# is that hard to learn, especially since you know javascript already. For myself, I can look at javascript and tell you what is happening and could probably convert my c# to it if I really wanted to. So I don’t think you’ll have trouble if you have to switch.
dont know what unitys plans are, but once you know one langauge it is pretty easy to jump to others. Most of the time spent learning, is learning to program and not learning a language’s syntax.
…
hhhhh
That’s a bit of a shame. Why would they want to deprecate it?
Honestly, I really hope they don’t. I can learn C#, but i’ve put alot of effort in my game so far and I don’t want most of it to go to waste in downtime.
if they get rid of it, im sure it will be in stages, if you look at what happened with boo, they simply got rid of the UI options for creating boo scripts, and stopped providing documentation for it. But legacy projects that contain boo will still compile and work.
That’s what deprecation means - not supported for new code. C# is used by the majority now, and it has features lacking in UnityScript. Now is the time to learn it, before you get left behind.
The thing is, Unity’s “JavaScript” (UnityScript) only exists in Unity. It’s got nothing to do with actual JavaScript. This means that in addition to maintaining the engine, Unity has to maintain a programming language. When they finally update the runtime to support modern C# features, they’ll have to:
- spend a ton of time and resources upgrading UnityScript to support the new features or
- let UnityScript exist, but without support for those new features or
- deprecate UnityScript.
They cut Boo because almost nobody was using it (except us!). UnityScript has a bunch more users, probably because it used to be the “default” language of Unity, but since Unity’s switched to C# for their main examples and documentation, I’m expecting the number of users to steadily drop. I guess that once the numbers drop low enough, they’ll kill it off.
They didn’t eliminate it entirely though. You can still create scripts for it (by importing blank .boo files) and UnityScript is actually written in it. Complete removal of one of them would practically guarantee the removal of the other at this point.
That said I feel like they’ll just allow it to function the same as Boo and provide zero support. If they provide any now.
Am I the only one that feels UnityScript has already been deprecated? Just nobody has bothered to write a blog post about it.
As evidence
- None of the new features have UnityScript examples
- None of the learn material is in UnityScript
- UnityScript gets zero mention in Unite
- There is no documentation for the language
These are all signs of a deprecated feature. It’s just no one has told UnityScript yet.
It’s also worth noting that the actual “You can’t use UnityScript anymore” moment is still a a while away. Features don’t get officially removed unless there is a business reason to do so. My bet is that won’t come till the .NET profile upgrade.
No. You’re not the only one who feels that way. There just aren’t any official statements to back up that feeling.
sadly, you’re not the only one… i used C# before, then i switch to javascript until i learn node.js. i think Javascript is powerful with a tons of library out there.
How many of them work out of the box with Unity’s implementation though?
Exactly zero. Remember we are talking about UnityScript, Not JavaScript.
The idea of Unity deprecating Javascript terrifies me.
I’ve been working on my game for six years and most of it is in Javascript/Unityscript. I can;t even imagine what this would mean. At the very least if they forced us to use c# the engine could still at least run old UnityScript, otherwise we would have to rewrite hundreds of files, and that wouldnt be possible with my manpower.
Unity began as a very democratic piece of software - open and user friendly - and it was easy for web designers like me to migrate to it from Flash because we knew Javascript. Its like the door.
I saw the same thing happen to flash (and wrote a popular blog post about it a few years before its decline) - Flash moved from a looser but more accessible Actionscript 2 to the more programmer oriented Actionscript 3. Better performance but it was too complex for many artists and we abandoned it.
Please keep UnityScript in unity.
I don’t necessarily see them obsoleting it.
Note, deprecating and obsoleting are 2 different things.
Deprecated means the functionality still exists, but it is no longer maintained, and is kept for historical purposes (existing code that uses it). Which means any errors/bugs with it will never be fixed. It is advised to not be used as it may be obsoleted at some point, if/when the developers port existing code dependent on the feature that is deprecated.
Where as obsolete means it is no longer in use, should never be used, and may be removed all together at some point. This phase is intended to allow 3rd party users of the API to port their code as it means that 1st party has already ported all their existing code away from it.
So basically things go through the phases of: common use → deprecated → obsolete → removed
I doubt that Unityscript will be removed ever as long as some sort of mono/IL compiler is utilized by Unity. Sure new features may not be added to the language, bugs may not be fixed, but it won’t be nixed completely. I mean heck… technically speaking… boo is still supported in Unity if you happen to have scripts laying around.
I wouldn’t panic yet. Nothing official has been announced.
Even after the actual deprecation you’ll still be able to use older versions of Unity that support UnityScript for a long time.
Finally some clever entrepreneur will put up a compiler on the asset store that will convert UnityScript to IL. Unity is always going to support IL, so as long as you can get into IL you will be fine.
So I wouldn’t panic about changing things over for an existing project. I would advise going to C# for new projects.
Ill try to keep chill:) Thank you. Although ive had problems using older versions of unity because they can’t target some IOS devices and I cant use newer packages in them. Im still on Unity 5.2 because of some performance issues in newer versions on IOS and although its performance is rock solid, im running into those issues because im using it, so there is a shelf life for how far back Mobile developers can reasonably go.
That sounds abit better. I just think keeping both allows people like me easy access to a powerful piece of 3d software and people coming in from native webgl.
Is there really that much of a difference between C# and UnityScript that someone is able to pick up the latter when they can’t pick up the former? I’ve had to assist with some minor scripts before and frankly the differences always felt very minor.