Documentation, Unity scripting languages and you

September 3, 2014 in Technology

Everybody has their favorite scripting language, and the use of different languages evolves over time. Historically, we have supported three languages: C#, UnityScript (also known as JavaScript for Unity) and Boo. Of course, we aim to concentrate our support on the languages you want to use.

Currently, according to our editor analytics statistics, the percentage of scripts created in the three languages break down like this:

graph3

This means that, as so few people use Boo, and the resources required to support it in the docs are not negligible, we’ve decided to drop support for Boo documentation for the Unity 5.0 release and use our resources in a more constructive way.

When Unity 5.0 launches, we will also drop “Create Boo Script” from the menu. That said, and very importantly, if your project contains Boo scripts, they will still work just as before.

We have listened to your feedback, and what you’ve been telling us that you really want from your documentation is C# examples across the board. As a consequence, we’re also moving internally to provide the best support for C# that we can.

Currently, most Tutorials, and Sample Assets are based around C#, and in the 5.x cycle, we’ll ensure that all our C# examples in the documentation are first-class citizens.

Side note: up until now, our internal procedure has been to write sample code using UnityScript / JavaScript, which is then automatically converted to C# and Boo. We’ve now made it possible for Unity engineers to author their examples in C# and auto-convert them to UnityScript, using a newly developed and improved C#-to-UnityScript converter.

Thus, many of the C# examples you’ve been requesting are now live, and even more will be ready when Unity 5.0 comes out. W00t!

Comments (86)

Subscribe to comments
  1. Mick

    October 14, 2014 at 3:58 am / 

    Ahahaha !!! Your picture is awmsoe, Thiago!About CCR they’re soooo cool! I bought an album in a small music store in Lisboa last summer, with two different versions of Susie Q. One studio version, one live. That song is just amazing. Like the rest of this album.By the way, there’s a band not far from Fredrikstad that has made CCR music its specialty. They call themselves CCA Creedence Clearwater Arrival and they’re quite good. Can’t measure the original, though

  2. WazzaM - Lokel Digital

    September 26, 2014 at 10:13 pm / 

    I think Unity have made a wise decision by dropping Boo. Likewise Javascript and C# are great languages well worth keeping as has been pointed out by others before me.

    The genius of Unity’s architecture with Mono’s implementation of .NET’s IL means that supporting multiple languages is easy from a runtime perspective but it’s not free to test, support and document the usage of multiple languages in game development on the Unity engine. Again dropping Boo, given it is so infrequently used, makes perfect financial sense. Use that energy to make the engine better. I like Python but I found Boo too different to Python to make me want to use it. (Boo is Python-like if you didn’t know that…)

    There is some confusion in the comments. C# is not C! Not even close! So the comment that C is a 30 year language … doesn’t help anyone. C# is a merge of C++ keywords sitting on top of Java and Delphi semantics. Apple hasn’t dropped C. Guess what most operating systems are written in. C is never, ever going away but is increasingly relegated to low-level code (device drivers, core OS). However, that’s an entirely irrelevant and futile argument since C has no relationship to Unity whatsoever.

    Dear Unity, please keep supporting Unity/Javascript as you have and I’m glad you’re raising C#’s profile internally. Personally I find the C# development a bit more precise.

  3. Fattie

    September 15, 2014 at 9:45 am / 

    Please pick ONE language and completely dump the rest. The fact that unity offers two languages is a real industry nightmare.

    Both languages are totally trivial and it will cause no problems longer than a day or two for anyone using language A if you dump language A and stick to language B.

    So you’re dumping Boo – thank goodness. This article hints you will eventually dump u/s. Quite simply, the longer you wait to do that, the worse it is for everyone.

    1. Wiill

      October 9, 2014 at 9:56 am / 

      I’m no longer ctearin the place you’re getting your info, however good topic. I must spend some time finding out much more or working out more. Thank you for fantastic information I was looking for this info for my mission.

    2. Meri

      October 14, 2014 at 3:19 am / 

      I’ve come across that ndyoaaws, more and more people are being attracted to video cameras and the issue of digital photography. However, being a photographer, you will need to first devote so much time frame deciding the exact model of video camera to buy as well as moving via store to store just so you could buy the lowest priced camera of the trademark you have decided to choose. But it doesn’t end there. You also have to contemplate whether you should obtain a digital digital camera extended warranty. Many thanks for the good ideas I received from your weblog.

    3. Clonkex

      October 21, 2014 at 2:32 pm / 

      How can you SAY that?! Javascript is WAY easier than C# and I would be forced to drop Unity if they dumped JS! I’m horrified that people think that way. It would take weeks for me to learn C# over JS.

  4. Alberto

    September 13, 2014 at 12:01 pm / 

    Please in Unity 4.5 change the net framework so that we can write script in net framework 4.5.
    This will allow to have more advanced stuff.

  5. Mark Hessburg

    September 11, 2014 at 5:35 pm / 

    I absolutely prefer UnityScript and I am a paying customer and I work full time with Unity.
    I doubt the editor statistics will know if a C# script comes from the asset store. There are thousands of people using Unity like some WYSIWYG tool. Think of all the postings “Do I really need to learn coding to make a game in Unity?” or the success of tools like PlayMaker.
    A large portion of the Asset Store developers and PlayMaker uses C# hence the statistics will automatically be strongly biased due to people who does not script at all. I’m programming since 1982 and I don’t want to use C# because I just don’t like it, one reason why I’m using Unity is UnityScript. A lot of the steps Unity took since when I started using it in 2007 were often bad for the overall experience of Unity (especially the Free version but also the Windows Editor flooded the forums with… well, let’s say it in a more polite way: people who are disturbing the formerly great and useful experience you could have with the community.) The Asset Store which was a nice Idea but results in mostly terrible Assets for people who want to use things in a plug & play way that often requires a lot of work to get rid of the annoying “useful stuff” first before you can really integrate it. But who cares? Just don’t use it, just don’t visit the forums too often and it is OK. But now when real features like support of different languages start to disappear then this is affecting me directly and this is really a bad thing. The day you drop US is the day you will start losing my money – seriously.

  6. 3Dgerbil

    September 11, 2014 at 3:25 pm / 

    Please don’t drop UnityScript, or I’ll drop Unity…. Shouldn’t we realize that C is now a 30-years old dinosaur that has patched and repatched to handle OOP ?
    Even Apple started the path of abandoning C by introducing Swift…
    30 years time is an enormous time in computing world; would you cross the Atlantic on a piston engine aircraft just because you’re used to it ?

  7. Jashan Chittesh

    September 11, 2014 at 12:40 am / 

    Great move, and thank you for sharing the statistics. So it seems that UnityScript lost a lot of popularity in recent times – in my poll that was started Feb 29, 2009 and is still ongoing, it’s still 53% (see also: http://forum.unity3d.com/threads/boo-c-and-javascript-in-unity-experiences-and-opinions.18507/ … unfortunately, it got severely broken by the new forum software :-( ).

    Personally, I think UnityScript is not a language anyone should use but as long as it doesn’t consume a lot of resources, I don’t mind having it around (as long as no one wants me to use it ;-) ).

    1. Clonkex

      October 21, 2014 at 2:35 pm / 

      Now what’s wrong with UnityScript? It’s easily as good as C# and way easier to use.

  8. Paul

    September 9, 2014 at 2:44 am / 

    I think it’s totally wrong, because I’m boo user who is a brilliant language and, moreover, for developers who use Python becomes easier to recognize the Unity 3D, i have projects 100% in boo and my developer team only works with boo. The boo has this low percentage because it is being ignored by propia Unity, does not disclose, says nothing about boo, only C # and sometime Js (unity script), because there is no support in the community about boo with this language more difficult to learn. However I will make a boo in Package for Unity 5 for support in boo

  9. Nathaniel Sabanski

    September 8, 2014 at 7:24 pm / 

    Community supported documentation is a great idea. It has proven to work very well for communities such as PHP (say what you will about the language but it has arguably has some of the most useful technical docs of any community).

    I would be more than happy to contribute Boo documentation for Unity API’s I happen to use… preferably if contributions with upvote/downvote or are integrated (for quality control).

  10. Jamie

    September 8, 2014 at 5:38 am / 

    @boaz, a community supported documentation would be superb. I’d happily help contribute to the Boo documentation. And it’d be a shame to see the hard work of documenting Boo through the 4.x cycle tossed away.

  11. Boaz

    September 7, 2014 at 11:43 pm / 

    I also resonate with better c# documentation and examples for all of unities features. However, I think it’s a shame to drop boo. Right now boo is going through a vicious cycle- not enough documentation -> not enough users and so fourth. Please consider leaving boo in, and opening the official unity documentation to community support. When we have complete c# documentation the community can easily translate everything to boo.

  12. Peter Dwyer

    September 7, 2014 at 1:31 pm / 

    On the subject of scripting. Can we get a quick blog on the state of the universal asset bundles. I believe 5.0 is supposed to introduce asset bundles that don’t become useless when unity versions change. Is this still the case?

  13. Dorin GRIGORE

    September 6, 2014 at 4:47 pm / 

    Very Good! I use C# and i’m profesional web/js developer. I prefer C# in Unity.

  14. Pedro

    September 6, 2014 at 4:39 pm / 

    I really love Javascript , and is easy to learn. ! ;)

  15. BeliarTheEvil

    September 6, 2014 at 5:12 am / 

    @Jim Preston: I agree that python is a superior language, I’ve been a python coder for years and besides agreeing with some criticism and limitations, overall it’s MUCH better than pretty much any language out there imho.

    The problem of python is performance, that’s why I advocate cython over python for anything real time. With cython you can “compile” python code into c binaries, which per se are much faster than the thing running interpreted in cpython, but the real power of cython is that simply by declaring some c types you get incredible performance. Last benchmarks I did it was much faster than mono on Linux, getting very close to hand written c++ and java. And a very good thing is that the source protection is actually decent because there’s no way someone can get back the python code from the c binaries generated by cython, in fact even the c code is pretty much unreadable… I wonder what kind of binary that code generates when compiled with optimizations and stuff.

    The problem with cython is that somehow that amazing piece of software is unknown… Plus people are ignorant about its features and amazingness.

    A very nice thing is that you can simply program in standard python, which works just as fine in cython, and optimize only the performance critical code, by adding some “cdefs” here and there. So, basically menus and other stuff would be standard python and the only things going to be optimized are the ones that run in updatexxx. I can’t imagine the productivity boost…

    Of course that’s never gonna happen, and c# isn’t a terrible language IMHO.

  16. Jim Preston

    September 6, 2014 at 1:38 am / 

    We’re moving to Python 3.x for Web dev. Python is growing in popularity. JavaScript and PHP are limited. C# is like driving an old truck unless that’s all you do in life. Please think about how many users you would pick up with Python. It has far more different use cases than many other languages.

  17. Jamie

    September 6, 2014 at 1:10 am / 

    I understand the rational, but am saddened to see Boo losing official support. It was only in 4.x that Boo actually got reasonable documentation – which is why I suspect it lagged behind the other languages in popularity. It’s a shame to see it being somewhat dropped – it made bouncing from Python at work to Boo in the evenings fairly easy.

  18. Taugeshtu

    September 5, 2014 at 12:44 pm / 

    @And no, you won’t write scripts faster or easier in JS/Boo.
    Have you actually tried writing code in Boo yourself? And not in “well, I have 5 minutes to spare, let’s try this” way. I bet you didn’t.

    Boo pros compared to C#:
    Indexed properties: MyClass.Stats[StatsEnum.Strength] = 5
    Direct access to Vector fields in transforms: transform.localPosition.x = 0
    Pain-free dynamic typing: x as duck = “I’m a string now, but I can be anything!”
    Who needs structs to return multiple parameters from function?
    def Some( x as int ) as (int):
    return x, x*2, x*4

    x, y, z = Some( 2 )

    Array/List comprehension is somewhat debatable given C#’s LINQ, but generally, when you know what you’re doing with Boo – you do write faster with it. There are problems, of course, mostly caused by Unity compiling c# and boo separately. Therefore boo isn’t something I’d go with for production. But it’s an exceptional dose of fun when I just want to make something for myself.
    Boo makes programming fun again.

    Shame Unity decided to even produce UnityScript, we could’ve had 20% of people using Boo now…

    1. Clonkex

      October 21, 2014 at 2:38 pm / 

      If Unity had not created UnityScript, I would not be using Unity today, and neither would 18.9% of their current users.

  19. A*

    September 5, 2014 at 12:19 pm / 

    Hi, JS is easier than C#, but C# is a “real” language supported and used widely, more powerful, versatile, and feels natural with unity with a lot of features. However learning it is not as easy as JS, so this is the point.

    #####I want to Unity to provide for beginners C# learning tutorials at least to get them started in using unity#####

  20. charles l

    September 5, 2014 at 7:11 am / 

    I use unityScript java,, and i need to use unity 3d with.
    I have misery with c# and boo. Please keep US !

  21. atoi2008

    September 5, 2014 at 5:58 am / 

    I know java, and I find US confusing.
    In Java I can initialize my variables using public int or private bool.

    In US I’m a little lost on the syntax with the colon in there and it doesn’t feel like Java at all to me. C# seems more familiar, almost exactly like Java in my opinion and why I prefer to use it.

  22. artemisart

    September 4, 2014 at 8:15 pm / 

    Would it be possible to support languages such as F# or Nemerle ? or provide support for custom compilers ?

  23. shetstorm

    September 4, 2014 at 8:07 pm / 

    The best thing Unity can do before killing JS and Boo is to provide a JS/Boo 2 C# script converter. As for syntax, come on, it’s almost identical.
    And no, you won’t write scripts faster or easier in JS/Boo.

    1. Clonkex

      October 21, 2014 at 2:41 pm / 

      I can’t speak for Boo as I’ve never looked at it, but JS/US? Yes, yes I do write scripts far quicker and much easier than C#. C# feels heavy and messy and I simply don’t like it.

  24. GOBLA Games

    September 4, 2014 at 6:21 pm / 

    ok
    i totally agree with removing boo language from unity editor
    but you have to support java script also plus c#
    i am one of developers who work with 2 languages in one project
    if you have 20 people work using c#
    and 8 people work using Jscript
    that is not mean to just support the 20 peoples
    you have to give the other their rights for learn in improve their self

  25. BeliarTheEvil

    September 4, 2014 at 4:06 pm / 

    Hey there… It was about time to dump Boo imho. Sometimes I wish Unity had only C# to begin with, that way I wouldn’t be able to choose JS for my games (worst decision ever) which seriously lacks a decent editor… I never had real problems doing stuff with a mix of 3rd-party C# code and my own JS code, however, when I need to code in C# it’s so much better… Monodevelop in it’s utter stupidity, actually helps you code, while in JS it goes breaking your code as you type, unless you completely disable the code helpers, in which case it turns into something like a broken Windows 3.1 notepad. Code helpers are really helpful so you don’t have to keep the entire docs in your mind, however, you have to hit ‘esc’ all the time because MD is so dumb and you also have to hit ‘ctrl+z’ lots and lots of times when it change your code to something incredibly stupid. I just wish MD had ‘non-intrusive’ code completion and helpers, something that just shows you the help but doesn’t change your code without you asking it to do that. It’s extremely frustrating when you go back to Unity and sees a lot of errors because MD broke your whole code. I’m not even saying that all the pads don’t work for JS… you don’t even have a code outliner, if you need to quickly find a function, there’s no easy way to do that, the fastest way is to hit the hotkeys for ‘find’ or ‘find in all files’ and type the function, which is a little bit better than windows 3.1 notepad.

    I keep wondering… if people use UnityVS because according to them MD sucks for C#, and compared to the JS support, MD is a dream to program in C#, I wonder how they would rate MD for JS… I mean, we’re using the “sh*t of the sh*t” :D hahaha.

    I really like JS, it’s so much simpler than C#, however, due the lack of a decent editor, I’m planning to dump JS asap and go for C#, perhaps I will even sign up for bizspark (or something) to use UnityVS instead, which seems to be the most decent editor for Unity scripts.

  26. Lunarcloud

    September 4, 2014 at 2:52 pm / 

    I’m a full-time Javascript / HTML5 developer and had to stop using UnityScript because it’s just *NOT* the Javascript I’ve come to love. It’s missing too much. It’s too weird.
    To help the context switch, and use a stronger game-making language, I use C#

  27. Tiles

    September 4, 2014 at 1:10 pm / 

    Uniscite is still my favourite. For downloading Uniscite, just download an older Unity version before version 4 ( I think they removed Uniscite with 4.3, but am not sure). And grab Uniscite from there.

    I also never understood why people wants to remove a language at all. It makes Unity less powerful. I still vote for even more languages, not fewer.

    Dropping existing languages is not good. Even in the case of BOO it removes quite a few users from the list. I doubt that dropping the support for BOO will even play in the costs for those now lost users. And it increases the fear that JS is the next language to be dropped. This has something to do with trust. And so it is not really a clever move.

    And there just IS a difference between C# and JS, which really makes a difference.

    1. Ralph Hauwert

      September 4, 2014 at 2:04 pm / 

      We absolutely don’t mean to erode your trust, which is also why we are making these very soft changes. As for more languages; you actually illustrated the problem if we do that today; as we start supporting a language, the expectation is that we will keep on supporting it for at least an x amount of time for a y amount of users. For that simple reason, both addition and removal are things that we have to very carefully consider. As I’ve mentioned, we have loose thoughts on for example pluggable language support, but no real plans today.

    2. Nothanks

      October 27, 2014 at 9:41 am / 

      Horrible idea. Maintaining a language takes time. Every language that they have to maintain takes time away from actual development of new features.

  28. Vectrex

    September 4, 2014 at 12:48 pm / 

    All I ask is that the { brace be on the NEXT line :) Including the ‘create new C#’ template. You wouldn’t believe how much that confuses my students.

    1. Ralph Hauwert

      September 4, 2014 at 2:04 pm / 

      You are asking for a change in the default template for C# monobehaviours ?

      1. Aylin

        October 10, 2014 at 3:28 am / 

        Looking at the migration oveirvew (simple or advanced) I don’t see how to make sure that the email addresses are moved to the new server. Are they moved automatically? The other steps are clear enough.If I decide to move from the old server to the new one how much time do I get to move between the two servere? And am I charged for just the one?

      2. Pangit

        October 14, 2014 at 4:00 am / 

        With almost eheyrtving which appears to be building within this particular area, your viewpoints tend to be somewhat refreshing. Nevertheless, I beg your pardon, but I do not subscribe to your entire suggestion, all be it exhilarating none the less. It appears to us that your comments are generally not completely validated and in simple fact you are generally your self not even wholly confident of the point. In any case I did appreciate reading through it.

  29. Sinister Mephisto

    September 4, 2014 at 12:12 pm / 

    About time.

  30. dasd

    September 4, 2014 at 10:53 am / 

    I wanna use C++ do they have it? LOL

  31. user13

    September 4, 2014 at 8:35 am / 

    Please give download link for UniScite, or include it in future version of the software, it’s good enough for those who want UnityScript, Mono is slow in my Computer. Ofc I could just get it from old version of unity, but those are big downloads just for the small 1/2 mb editor.. i hope i am not the only one who wants UniScite.

    Or anyway, just a download link in the comment, will be enough too..
    Thanks

    1. Ralph Hauwert

      September 4, 2014 at 2:06 pm / 

      You can get UniScite from older versions of Unity, but we don’t do actual support on it anymore.

  32. Sebastian K

    September 4, 2014 at 7:44 am / 

    I really hope this is not a step towards removing Boo entirely… I use it for the vast majority of my projects. It rocks!

    I also do not understand how people can argue FOR removing languages… Why would you want to make Unity less powerful? Not everyone wants to work in C#. They pretty much get Boo support for free under Mono.

    The ability to select your language is a unique and awesome feature of Unity, whether it be Javascript, C# or Boo.

    Experienced users shouldn’t have much trouble referencing the API regardless of samples… but that sucks for newcomers! Removing the shortcut to “Create Boo Script” feels like a step towards removing the language… I genuinely hope not!

    1. Ralph Hauwert

      September 4, 2014 at 1:47 pm / 

      Sebastian, as you can see Boo is still there in 5.0, but we are remove buttons and docs. We are following our stats on this and subsequently following our users in terms of on what work we put resources.

  33. Christopher

    September 4, 2014 at 7:17 am / 

    I love this, but I think dropping Boo all together would be a better move. It is rarely used by anyone and maintaining support for it consume resources.

    1. Ralph Hauwert

      September 4, 2014 at 1:48 pm / 

      UnityScript relies on Boo; for us to remove compiler support for something that is there either way would be unnecessary.

  34. WAN

    September 4, 2014 at 4:34 am / 

    I prefer unity script, because I’ve been doing web development with javascript, I’m more familiar with it than C#. I will continue using it as long as it is supported.

  35. koblavi

    September 4, 2014 at 3:43 am / 

    Nice Move, sounds fair. I just think this should have been done 3 years ago. Looks like the language itself is a self-fulfilling prophecy (Boo has just been ‘Booed’ of stage) :-P.

    I agree with the notion that Unity should eventually move towards official support for only C# both in terms of documentation and examples. UnityScript and C# are just too similar. Besides, C# has cleaner syntax and is more widely supported even outside of the unity community.

    Finally (and I have said this before in a previous post) Unity should work on allowing language bindings for other Languages that are not officially supported by unity but compile to IL (without the DLR parts). Unity already supports other languages (sort of) as long as you drop the compiled DLL into the editor and not the source. It would just be nicer if you could just double click source and edit & drag and drop just about any .NET language in the editor provided you have the necessary binding module installed :-) . Sure it entails a bit of work. But it will really be nice if you can tell developers that they can use any .Net language to write scripts in Unity

    1. Ralph Hauwert

      September 4, 2014 at 1:50 pm / 

      The idea of pluggable languages is something we are thinking about, but we currently have no solidified plans in that direction. I do feel it does generally make sense though, but again, no solidified plans to put effort in that today.

      1. Bob

        October 17, 2014 at 5:47 pm / 

        The lack of pluggable languages is the only thing holding me back from using Unity.

        I think, anecdotally, that there are many programming teams out that that just can’t swallow the idea of being locked into a particular language like C#, or worse, a kinda-javascripty language that doesn’t really function the same as what everybody already knows.

        Unity really is an outlier in this sense, the standard practise is to provide API bindings and let the community do the heavy lifting.

  36. Yoyo

    September 4, 2014 at 2:05 am / 

    please don’t drop javascript/UnityScript unless you intend to replace it with a built-in Blueprint-type of visual language . As a beginner I find Unityscript easier to deal with than C#

    1. Ralph Hauwert

      September 4, 2014 at 1:54 pm / 

      Have a look at the Unite 2014 – Keynote video, in which Lucas is showing a sneak peek at a research project that has been going on; https://www.youtube.com/watch?v=5RZBxGexCuk#t=5490

  37. HeliosDoubleSix

    September 4, 2014 at 12:08 am / 

    Now just get rid of UnityScript so you can add fully concnetrate on proper editor inspector support and serialization for all the C# things such as Dictionaries, Interfaces / Polymorphism and so on…. till then FullInspector ho!

  38. Chillersanim

    September 3, 2014 at 10:58 pm / 

    Apart from the discusion whether to use US or C#, I would also like to remark something about the documentations.
    As it is now, most components are quite good documented. But subparts like enums and stuf are not yet documented. You can’t see which value does what for example.
    Also I would really like it, if I could see somewhere which features are available in which Unity versions. It would help a lot by making assets backward compatible.
    Thanks

    1. Ralph Hauwert

      September 4, 2014 at 1:56 pm / 

      Good points, I’ll let Aleks comment on this. As for “assets backwards compatible”; I’m not sure what you are asking for; however, for 5.0 we are planning to ship with something to call the script updater, that does it best to update your projects code to conform with new / changed api’s.

    2. Kaylana

      October 9, 2014 at 10:43 pm / 

      That’s a posting full of inighst!

    3. Youjin

      October 14, 2014 at 3:59 am / 

      This is cute blue mittens free getnitg a bit more subjective, but I much prefer the Zune Marketplace. The interface is colorful, has more flair, and some cool features like Mixview’ that let you quickly see related albums, songs, or other users related to what you’re listening to. Clicking on one of those will center on that item, and another set of neighbors will come into view, allowing you to navigate around exploring by similar artists, songs, or users. Speaking of users, the Zune Social is also great fun, letting you find others with shared tastes and becoming friends with them. You then can listen to a playlist created based on an amalgamation of what all your friends are listening to, which is also enjoyable. Those concerned with privacy will be relieved to know you can prevent the public from seeing your personal listening habits if you so choose.

  39. Emil "AngryAnt" Johansen

    September 3, 2014 at 10:34 pm / 

    @Nathaniel
    Given the size of the community and even a pessimistically low guesstimate of the sample size used to generate the division referenced in the post, do you honestly believe that the number of entirely closed projects you refer to could significantly change the percentages?

    Undoubtably the departure of Rodrigo has reduced the internal amount of support for Boo. However he was one awesome dude in a large and still growing company. Again, a simple look at those figures would, at least to me, convey that one strong advocate for or against would not do much to change the outcome.

    @Nikko
    If C# were a proprietary language, do you really think that Unity would have dared to rely on Mono for scripting for so long? Or for that matter that any of the larger companies licensing Unity would dare to do so?

    Personally, I can’t really fault Unitys logic behind this move. However I am very much hoping to see a pluggable compiler pipeline at some point and looking forward to the kind of community projects that would sprawl around such a feature.

  40. Peter Dwyer

    September 3, 2014 at 10:16 pm / 

    @Nathaniel to be fair to unity. They dropped Boo because it’s simply not used in anywhere near the amount of volume as either UnityScript or C#. Just from personal experience I have never met one person who used Boo and I move in both the Indie and AAA circles regularly.

  41. Nathaniel Sabanski

    September 3, 2014 at 10:10 pm / 

    I think this is a mistake. Boo is a brilliant language for pro Unity people and can drastically increase the expressiveness of your code VS number of lines written. There are probably entire closed source games not being counted in the ratio above.

    Probably has something to do with Rodrigo leaving?

    1. Ralph Hauwert

      September 4, 2014 at 1:57 pm / 

      The stats come from the editor, so closed source wouldn’t mean much for the statistic. The reason why we are doing this is because we are following where are users are going and generally allocating resources where they are most wanted and effective; with boo having low numbers like this, not having it as a first class citizen is in my opinion more honest in reflecting that.

  42. Chris

    September 3, 2014 at 9:53 pm / 

    I converted my project from Unityscript to C# and haven’t looked back.

    Apologies for the shameless plug, but for anyone interested, the converter I created to do this is available on the Asset Store: http://u3d.as/content/spoon-sized-entertainment/csharpatron/8FF. …It goes as far as I think you can to make conversion of a complete, live project as simple as possible.

  43. Richard Fine

    September 3, 2014 at 9:46 pm / 

    @NIKKO: “C# is Microsoft and they have not yet published in public domain.” Uh, yes they did, from C# 1.0 – as ECMA-334, the same standards body that Javascript is published with. http://www.ecma-international.org/publications/standards/Ecma-334.htm

  44. Nikko

    September 3, 2014 at 8:40 pm / 

    Javascript is an open source language, independent form any corporate power, C# is Microsoft and they have not yet published in public domain. Microsoft has a long pattern at changing technology every 10 years, it is their business model. Remember Visual Basic, MFC, ASP, just to name a few. I would not rely on C# at all. C++ should be pushed as it is an universal language that everyone can learn at School and is not dependent on Microsoft business strategy…

  45. Richard Fine

    September 3, 2014 at 8:26 pm / 

    Yeah, I wouldn’t worry about UnityScript, it’s not going anywhere. And as people have noticed, while UnityScript is around, Boo will pretty much always continue to *work* as it’s what powers UnityScript on the back end…

    For people interested in the language converter tools, have you already seen things like http://www.m2h.nl/files/js_to_c.php ?

  46. Juan Sebastian

    September 3, 2014 at 8:08 pm / 

    funny thing is Unityscript compiler is made on Boo lol.

  47. Gabriel Cesar

    September 3, 2014 at 7:37 pm / 

    Why not trade for Boo Python? We would have more support from the developer community. ;)

  48. Andy Martin

    September 3, 2014 at 7:09 pm / 

    It’s time for Boo to go. I’m a bit surprised though. At Unite, I heard several times how proud they were to support all 3 languages. There is no need to waste resources showing Boo documentation though.

  49. Christopher Hager

    September 3, 2014 at 7:02 pm / 

    @Matthew Radford

    Don’t worry for a long while. They’re dropping Boo because less than a percent of Unity3D users use it. JavaScript (or UnityScript as I just learned. Yay, I’m still a bit of a newbie) has a good following of 20%, or 1 out of every 5 developers. Dropping JavaScript now (or in the near future) would be a lost for the company.
    I personally use C# (cause that’s the one I know how to use… to an extent) and am glad that they’re refocusing their setups to C#. But it would also be nice if they provided the UnityScript for every C# script they will display. That way I can better see the difference between the two languages for myself.
    And I’m not saying C# is better. It’s just the one I know the best.

    1. Stephen

      October 10, 2014 at 3:10 am / 

      Hmmm, let methink about this one. From the rlubbe of our everyday lives we feel so much perceived pain, darkness and loss, Debts of feelings and the decline of our beliefs. But in that rlubbe a little broken heart still holds out hope and yearns for the freedom of peace and unity once again. The little vine proves that even broken souls can be repaired and look forward to a wonderful future where all is forgiven and life begings again.

    2. Teresita

      October 11, 2014 at 10:38 am / 

      Even so, when being attentive to your paoernsl shoe’s whole jogging mile, additionally you have to take into account your fat. Sportsmen which are incredibly huge must change their sneakers prior to the particular gentle and transportable joggers. As an option to transforming their footwear each and every Eight months (when functioning 3 days for each week), they have to cut it two-months quicker. However, light-weight joggers can easily expand the lifestyle with their shoes for any few weeks. Expert tennis gamer, Carolyn Wozniacki becomes mind with her excellent tennis video games perform but her dress design and also Adidas tennis shoes possess caught the eye and thought linked with soccer fans from around the entire world. Wozniacki could be the regarded attract pertaining to Adidas’ Stella adidas design. The sports activities range for girls moyen aesthetics and luxury to further improve operation amount. The attractive designs you should not compromise superior take part in Caroline Wozniacki emanates from Denmark and her WTA introduction within 2005.

  50. Adams Immersive

    September 3, 2014 at 7:00 pm / 

    As long as UnityScript stays around (given that it’s most similar to the non-Unity JavaScript web coding I do) I’m happy!

    I’d like to see more UnityScript examples added as well: some pages have no example at all.

  51. Alberto Fonseca

    September 3, 2014 at 6:44 pm / 

    This is great news and I’m glad to see the use of analytics to direct resources to areas where they’ll have the most impact for users. I for one would love to see the C# docs contain more examples across the board so this is great.

  52. Adam

    September 3, 2014 at 6:37 pm / 

    The differences between Unity’s “JavaScript” (UnityScript) and C# are very very small. Most code can be shared unaltered between the two languages.

    I agree with Robert that one can learn the differences between UnityScript (US) and C# in an afternoon, and it will be second nature before the week is out.

    Having cut my teeth with Unity using Unity’s JS (and coding in Unitron!), then moving to C# to be more compatible with 3rd party add-on’s like EZGui, the transition was very easy.

    To people with a background in the real JS, C# may seem intimidating, and the apparent similarities of syntax between JS and US may be comforting, but they mask the fact that US is pretty much C# in JS clothing.

    I think it’s a great thing that we can still code in C#, US & Boo, I think it makes sense for Unity Technologies to concentrate on just one language, and I’m on the +1 wagon to officially change the name of the language to UnityScript.

  53. Matthew Radford

    September 3, 2014 at 6:26 pm / 

    Oh man… I’m a bit concerned Javascript is going to be removed.. I’ve grown quite fond of it. I think one if the best Features for me about Unity Script is how simple it is. I’m always talking to other unity users I hang out with and they seem to be constantly trying to figure how to do THIS or THAT in C#. Using Unity Script I don’t think I’ve ever once thought about the language, only the API.

    Please don’t switch to C++ for everything like Unreal. Sure the graphics guys need it, but the rest of us don’t.

  54. Phil Winkel

    September 3, 2014 at 6:09 pm / 

    unity script is just annoying, unless you’re doing your entire project in unity script. If you try to mix unity script with C# you run into all these ridiculous issues with order of compilation, trying to reference unity script stuff in C#, etc.

    Plus, like mentioned above, it’s often referred to as javascript when it’s not even really javascript. I think it should probably just be referred to as unity script across the board.

    Should probably just transition to C# and focus 100% of resources on that. If you can automatically generate UnityScript from C# that’s great. Don’t waste any time on UnityScript though.

    It’s more beneficial to learn C# (a real programming language you can do other development with) than to learn UnityScript, some weird version of javascript that you can only use for unity development.

    Down with UnityScript!

  55. Robert Cummings

    September 3, 2014 at 5:29 pm / 

    Considering JS requires Boo internally, this is just a surface change. People can still write in js and boo, but the long term future should be that they are removed and people can just plug in a language of choice for example Lua bindings or such. The core of Unity should be just pure c# and hopefully (C++). This means everyone wins, especially since Unity wouldn’t have to burn resources on a tiny minority.

    Oh, and learning C# from JS takes about a day, if just sticking with what js can do. No excuses, it is time, and it’s happening. Start the migration today and you’ll get an internet’s worth of C# code and resources you can use.

  56. gakaki

    September 3, 2014 at 5:09 pm / 

    i like javascript (but not static type javascript in unity ) and lua , because they are simple and can be hot updated

  57. Anthony Madden

    September 3, 2014 at 4:42 pm / 

    I really hope you guys don’t get rid of unityscript. All of my games I’ve released are in US and it would suck to have to start scripting in C#. I do know how to script in C# but its soooooo much faster to prototype using unityscript.

  58. marty

    September 3, 2014 at 4:24 pm / 

    Any chance those C#->US and US->C# conversion tools will ever be shared with the community?

  59. DallonF

    September 3, 2014 at 3:59 pm / 

    Suggestion: please change all instances of “JavaScript” in the editor and and documentation to “UnityScript”. The true JavaScript language is evolving and the distinction between modern JavaScript and UnityScript is becoming increasingly prominent.

    Plus it would help reduce the confused newbies on the forums who bought a Java book hoping to learn Unity scripting.

  60. Frederico Zveiter

    September 3, 2014 at 3:40 pm / 

    Fair enough.

  61. Colby

    September 3, 2014 at 3:23 pm / 

    Makes sense to me. I was kinda figuring it was only a matter of time til boo was dropped. Awesome about C# and I friggen can’t wait for Unity 5!

  62. Wilson Koder

    September 3, 2014 at 3:17 pm / 

    Will the C#-UnityScript converter be available to the public? And I have to do this, first!

    1. aleksandr

      September 4, 2014 at 12:20 pm / 

      Thank for your feedback. There is currently no plan to make the C#=>US converter public.

Comments are closed.