Make JS and Boo deprecated in Unity 4. And non-functional in Unity 5

Discussion in 'Wish List' started by Meltdown, Apr 12, 2012.

  1. Jessy

    Jessy

    Member

    Joined:
    Jun 7, 2007
    Messages:
    7,189
    I'm not convinced of that, but I'm open to being convinced. My current understading is that C# supports all of the programming paradigms that UnityScript does, but not vice versa. Language features are factual data, though.

    Life occurs before the end of the day. If other people have opinions that lead to things I spend time with to be worse than they are, or could be, then I think it's justified to be displeased about it. Unity doesn't yet have a competitor, as far as my requirements go.

    Edit: I was thinking, there are some tools that I use, which I don't like having to use, but that are worth it, for the result. If that's what C# is to someone, then that's fair. (Like I said far above, I don't want to be using C#, but I think it's the best option available for Unity.) If, however, one makes the choice to use UnityScript, in its current incarnation, while knowing its limitations, then I see that as a mental condition to overcome. The differences are too minor to consider UnityScript at present.
     
    Last edited: Apr 13, 2012
  2. Ricks

    Ricks

    Member

    Joined:
    Jun 17, 2010
    Messages:
    619
    I agree to abandoning 2 of the 3 available languages. I don't care which one to stick to, either C# or JS, but one of them is obsolete (and Boo obviously). If you start with JS you get annoyed later on since most 3rd party scripts are written in C#, so the other way around is more preferable. But actually I wouldn't mind if it were JS only (which in fact is UnityScript, not Javascript) and no C# support. Just stick to a single one. Call it Unityscript, the same way UDK has its only UnrealScript language. A single scripting language would also clean up the docs, the bloat, optimize the maintenance, prevent confusions. Time that can be invested in other things.

    My impression is, that Unity Tech tries to support everything and then everything is only maintained and working half-way. The same applies to TextEditors e.g. UniScite / Monodevelop. If UT focused on its original Editor all these issues could have been fixed - but now we have 2 buggy editors. Great.

    Not to talk about their attempts to make conquer more technologies e.g. Flash etc. and by that forgetting to implement long overdue features in the game engine such as e.g. Terrain shaders. It's about time to stop the bloat.
     
  3. OmniverseProduct

    OmniverseProduct

    New Member

    Joined:
    Feb 26, 2012
    Messages:
    1,569
    Car to elaborate and share your reasoning why boo is obsolete (which I happen to disagree on)?
     
  4. alexzzzz

    alexzzzz

    Member

    Joined:
    Nov 20, 2010
    Messages:
    822
    1.
    Code (csharp):
    1. // C#
    2. var c = '1';
    3.  
    4. // UnityScript
    5. var c = "1"[0]; // Who needs chars while we have strings?
    2.
    Code (csharp):
    1. // C#
    2. List<string> list;
    3.  
    4. // UnityScript
    5. var list : List.<String>; // Verbose. What does the dot stand for?
    I can write either 'int' or 'Int32', either 'float' or 'Single', but must always write 'String' and never 'string'. Why?

    3.
    Code (csharp):
    1. // UnityScript
    2. var rect = Rect(0, 0, 100, 10); // It looks like a function call, but is still legal without 'new' keyword.
    3. var array = int[50]; // Then why is this illegal? What's the difference?
    4.
    Code (csharp):
    1. // C#
    2. struct Abc
    3.  
    4. // UnityScript
    5. class Abc extends ValueType // Are you joking?
    5.
    Code (csharp):
    1. // C#
    2. int Abc()
    3.  
    4. // UnityScript
    5. function Abc()
    Useless 'function' keyword is necessary, but useful return type is optional. Very user-friendly :)

    6.
    Code (csharp):
    1. // C#
    2. list.RemoveAll(x => x == null);
    3.  
    4. // UnityScript
    5. list.RemoveAll(function(x) x == null);
    It was a bit tricky to find the info about lambda syntax because UnityScript language reference doesn't exist. If I didn't know from somewhere that UnityScript supported lambdas, I would be sure it didn't.

    7. C# + Visual Studio
    $cs.PNG

    US + MonoDevelop
    $js.PNG

    I knew MonoDevelop's auto-completion was bad for C#, but in case of UnityScript it's beyond good and evil.

    8. Now my favorite example of MonoDevelop uselessness:

    Сorrect code:
    Code (csharp):
    1. function Start ()
    2. {
    3.     var rnd = System.Random(100);
    4.     var array = new int[50];
    5.     for (var i = 0; i < array.Length; i++)
    6.     {
    7.         array[i] = rnd.Next(10);
    8.     }
    9.    
    10.     var temp = Enumerable.Select(array, function(x) x.ToString()); // Yeah, let's try some LINQ!
    11.     var result = String.Join(", ", Enumerable.ToArray(temp));
    12.     Debug.Log(result); // Prints 50 random numbers separated with commas
    13. }
    14.  
    Code full of mistakes:

    C# + Visual Studio
    $cs2.PNG
    US + MonoDevelop
    $js2.PNG

    Rhetoric question: how much time it would take you to find and correct all the mistakes in both editors?

    The funny thing is that UnityScript is usually considered to be a bit easier for beginners than C#, but considering 6, 7 and 8 I can't imagine how this could be true. The beginner should have much passion and patience to deal with UnityScript, definitely more than I have.
     
  5. npsf3000

    npsf3000

    Member

    Joined:
    Sep 19, 2010
    Messages:
    3,775

    Err What? Did you read what I wrote?

    Useless import/class declaration fluff - unnecessary.

    • Long Winded GetCetComponent - Use the shorter version [which can be just as fast].
    • Instantiate has 'as T' fluff - use generics to remove fluff.
    • new GameObject requires typeof to add components - use generics.
    • Transform.position.x - add a set position methods that's even cleaner/shorter.
    • yield return StartCoroutine(Thing()); - WIP.

    If US is genuinely better/smaller/simpler fine. But when I've countered half your examples with equivalents or better - just ignoring them is pointless.

    If US can do things simpler than C# - then fine keep it. If by having US we are just splitting the community, implementing poor API choices that artificial increase C# complexity, and ignore all the times where C# is actually smaller and cleaner than US [alexzzzz has beaten me to start showing these examples] then it's something worth discussing.

    Exactly.... if I say *meh* it means there's nothing I could think of to counter it.

    1) You cannot create new functions anywhere near the extent we can, due to a lack of generics and extensions - we are just using our language to make our language more efficient.

    2) There is no such thing as standard behavior - read the title:

    Make JS and Boo deprecated in Unity 4. And non-functional in Unity 5

    What we are doing here is trying to see how U3D, with minimal effort, remove US and replace it with C# that, thanks to a few API tweaks and maybe snippets, is nearly identical in simplicity when it comes to 'scripting'. Several of your complaints against C# where poor API [or snippet] decisions on part of U3D that artificially made US seem simpler when that wasn't the case.

    My personally suggestion for US proponents is start adding features to your language - oddly enough one of the few things you can do with it.
     
  6. OmniverseProduct

    OmniverseProduct

    New Member

    Joined:
    Feb 26, 2012
    Messages:
    1,569
    As far as making these languages deprecated, JS I can kind of see, but I believe you are jumping the gun a little bit considering Boo is still somewhat new.
     
  7. KHopcraft

    KHopcraft

    Member

    Joined:
    Jun 6, 2009
    Messages:
    3,242
    Boo has been there from the start.
     
  8. OmniverseProduct

    OmniverseProduct

    New Member

    Joined:
    Feb 26, 2012
    Messages:
    1,569
    I think boo appeared in 2003 right? In any case I'll expand on my boo comment. I was saying to wait until at least version 1.00 but preferably a few minor releases after.
     
  9. npsf3000

    npsf3000

    Member

    Joined:
    Sep 19, 2010
    Messages:
    3,775
    :p

    I sincerely hype that people don't jump one the extremist or religionist bandwagon.

    • There are real known issues with haveing multiple languages.
    • There are real known issues with the implementation of US.
    • There are real known issued with the implementation of C#.
    These are things that can be improved upon - to simply write it off as a rant means that you're happy to be stagnant - which ain't good for survival.
     
    Last edited: Apr 14, 2012
  10. npsf3000

    npsf3000

    Member

    Joined:
    Sep 19, 2010
    Messages:
    3,775
    That's the damn title!

    If you read my first post in the thread [page2?] I actually suggest leaving boo in place - I think it needs more docs/tutorials but might be able to offer a substantially different language option. Plus I think much of U3D's internals are written with it.
     
  11. OmniverseProduct

    OmniverseProduct

    New Member

    Joined:
    Feb 26, 2012
    Messages:
    1,569
    Lose the attitude please.

    And yet you proceeded on saying to make Boo deprecated in the post I quoted you on?
     
  12. npsf3000

    npsf3000

    Member

    Joined:
    Sep 19, 2010
    Messages:
    3,775
    This is what I actually said:

    What we are doing here is trying to see how U3D, with minimal effort, remove US and replace it with C# that, thanks to a few API tweaks and maybe snippets, is nearly identical in simplicity when it comes to 'scripting'. Several of your complaints against C# where poor API [or snippet] decisions on part of U3D that artificially made US seem simpler when that wasn't the case.

    My personally suggestion for US proponents is start adding features to your language - oddly enough one of the few things you can do with it.


    Entirely US vs C# - as I've used and know both. I know little bout boo, so I leave it out of discussion entirely.
     
    Last edited: Apr 14, 2012
  13. andorov

    andorov

    New Member

    Joined:
    Feb 10, 2011
    Messages:
    1,061
    I wish they got rid of UnityScript/Boo.

    Paying customer; just my humble opinion on where the product should go. Your opinions may vary. :p

    While we're on the subject of languages, the lack of generics in the native Unity is laughably bad. Was it done this way to support Boo/UJS or is it just a random oversight?
     
    Last edited: Apr 14, 2012
  14. OmniverseProduct

    OmniverseProduct

    New Member

    Joined:
    Feb 26, 2012
    Messages:
    1,569
    Then what was the bold sentence I quoted you on?
     
  15. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Messages:
    11,325
    Why do people want to get rid of js or boo? their existence doesn't have any impact on c#'s quality, and by removing js and boo, you may be alienating unity from potential customers. Sometimes it matters. So you'd, in your blind hatred of anything but c#, would indirectly harm unity, the development environment you're using.

    Makes sense.
     
  16. npsf3000

    npsf3000

    Member

    Joined:
    Sep 19, 2010
    Messages:
    3,775
    Maybe because the costs of having US may outweigh the benefits?

    That's the question.

    Blind hatred is simply blindness on the part of the accuser - I've used US and half a dozen other languages. I've also wasted a sh*t load of time because of problems with US [whether that be split resources, wasted time due to poor ide, poor language docs, helping people with conceptual problems that US *can* help propagate etc]. So I ask questions pose solutions - that's not blindness that's common sense.

    That's up for dicussion - there are various things already outlined in this thread that U3D could do for C# that would making coding in it easier, that they haven't done. For example, how come we have US 'snippets' but not C# snippets?
     
    Last edited: Apr 14, 2012
  17. npsf3000

    npsf3000

    Member

    Joined:
    Sep 19, 2010
    Messages:
    3,775
    The damn title. As I said last time, and stated in the post you quoted from.
     
    Last edited: Apr 14, 2012
  18. OmniverseProduct

    OmniverseProduct

    New Member

    Joined:
    Feb 26, 2012
    Messages:
    1,569
    Ok, probably should make it clearer next time.
     
  19. Meltdown

    Meltdown

    Member

    Joined:
    Oct 13, 2010
    Messages:
    3,865
    It's about interoperability, and community focus. It would be a lot better for the Unity community if everything was in the same language, and the way to code one language, was the same as the other. (I mean not having to put stuff in special folders etc). Also interfacing with 3rd party source libraries between US and C# is a nightmare and one I think is just a royal pain in the a**.

    For instance, take a look at this recent post on the forums..
    http://forum.unity3d.com/threads/132052-Experienced-uLink-user

    Just one of many examples. Even though the solution is fairly simple, it does somewhat cause some confusion for developers.

    To be honest, after some of the good points posted in this thread, I wouldn't mind if they kept US in, I just wish it worked transparently with C#, and the only difference at all was purely syntax and NOTHING ELSE. The problem is there are too many differences in the two implementations, bad interoperability and the ways of managing your files is different.
     
  20. rqpaine

    rqpaine

    New Member

    Joined:
    Oct 6, 2011
    Messages:
    69
    get rid of Boo, add support for Brainfuck!
     
  21. npsf3000

    npsf3000

    Member

    Joined:
    Sep 19, 2010
    Messages:
    3,775
  22. Izitmee

    Izitmee

    Member

    Joined:
    Jan 27, 2011
    Messages:
    2,420
    Ehe, I don't want to get into the language war, and was reading this thread for fun. But I have to say that I actually hate that UnityScript includes UnityEngine and System.Collection automatically. That's because, when doing stuff in UnityScript, I have classes that don't use those namespaces, and MonoDevelop starts giving me warnings that those namespaces are not used :p Also, I like that C# allows you to create classes that don't derive from MonoBehaviours. That's not fluff, since a lot of classes won't need that, and in that case it's just a useless overhead.

    And since there's no God, it means that... :D (aha, joking, joking, just a personal opinion :D)
     
  23. Izitmee

    Izitmee

    Member

    Joined:
    Jan 27, 2011
    Messages:
    2,420
    Double post deletion (sorry :p)
     
    Last edited: Apr 16, 2012
  24. KHopcraft

    KHopcraft

    Member

    Joined:
    Jun 6, 2009
    Messages:
    3,242
    An opinion to which we both share.
     
  25. c-Row

    c-Row

    Member

    Joined:
    Nov 10, 2009
    Messages:
    744
    Well, US brought me here so I consider that a benefit for them.

    The "only" experience with any C flavoured language I had before switching to Unity was C++ which regularly gave me headaches. I know that C# and C++ aren't the same thing, but at a first glace, all I could think of was "Oh no, not C again...". Most of the books on Unity feature US code rather than C#, which is another valuable point. There is a world outside the internet, you know, and some of us prefer learning with a good book in our hands rather than a PDF on a screen.
     
  26. koyima

    koyima

    Member

    Joined:
    Mar 19, 2009
    Messages:
    1,565
    yep first stuff I wrote was with UnityScript too.
     
  27. Meltdown

    Meltdown

    Member

    Joined:
    Oct 13, 2010
    Messages:
    3,865
    So you guys are using Unity because of US?
    Or because it's a great environment to develop multi-platform games in?

    If Unity only supported C# would you never use it?
    What would you use then?
     
  28. c-Row

    c-Row

    Member

    Joined:
    Nov 10, 2009
    Messages:
    744
    I decided to give it a try because it offered more than one option. I only found out about the second point afterwards. ;)


    Hard to say in hindsight. At the time I had to decide between Blitz, Dark Basic, Torque and Unity. Again, if there was more printed documentation covering C# and Unity, I might have started with C# instead. Blame Will Goldstone. :D

    So far, US has been sufficient, and as long as there are more tutorials in US rather than C#, I guess it's here to stay. if I were you, I wouldn't get too many C# Eliteist Club badges printed just yet. ;)
     
  29. npsf3000

    npsf3000

    Member

    Joined:
    Sep 19, 2010
    Messages:
    3,775
    You want to go beyond the basics taught in the 'unity3d' books.

    Do you go to the dozens of great books about language features, framework, structures, best practices, game related topics, other related apps [e.g. servers] etc. written in C#...

    Or the 0 written in US?

    What benefit does one have from learning US instead of C# - particularly if Unity took the same steps with C# as they did to accommodate US?

    Finally - if Unity made this decision, how hard would it be for the publishes out there to refresh thier books with C# instead of US? Particularly as they'd be out of date since this is targeted at a 4.0 or 5.0 release?

    I'm not an elitist. I am a programmer. I don't like redundant code.
     
    Last edited: Apr 16, 2012
  30. c-Row

    c-Row

    Member

    Joined:
    Nov 10, 2009
    Messages:
    744
    I wouldn't go to any of them if I hadn't started with Unity thanks to the inclusion of US in the first place. There's no point in picking up books on advanced topics written in C# if you don't know the basics first.


    Thanks to a lot of practise with JS, switching to US appealed to me much more than getting my head around C#, so the benefit was that I didn't have to learn it. My last experiences with all things C were... mixed, to put it nice.


    I don't rule out the possibility to switch to C# in the future, but in the meantime please stop acting like it's the one true language and your opinion is the only valid one. That just makes you look like a dick.
     
  31. Meltdown

    Meltdown

    Member

    Joined:
    Oct 13, 2010
    Messages:
    3,865
    I don't think NPSF3000 is coming across as a dick, he simply is stating his opinion (as we all are) and providing facts at every step.

    We're not trying to say we're better because we use C#. We just think Unity as a product and as a community would benefit as a whole if it stuck to one language, and if you had to choose only 'one', C# would be the obvious choice for a variety of reasons posted previously.
     
  32. Jessy

    Jessy

    Member

    Joined:
    Jun 7, 2007
    Messages:
    7,189
    I think NPSF3000 is making a solid argument, and not doing what you're saying. I used UnityScript for two years, before abandonding it, and don't feel it was a worthwhile endeavor. I had no problem learning the basics of C# in my first few weeks with Unity, but I went with UnityScript due to my respect for people like Eric5h5, Matthew Wegner, Forest Johnson, and the small team that UT used to be. As I've expressed here, I've since come to the conclusion that the continued use of UnityScript is a disorder that even bright people are susceptible to. I remember the days of having an aversion to C#, but I recognize that now as neurosis brought on by peer pressure.
     
  33. npsf3000

    npsf3000

    Member

    Joined:
    Sep 19, 2010
    Messages:
    3,775
    Thank you :)

    What people have to understand is that I'm not some neo-Nazi [my Jewish ancestry would have a fit], but a dedicated and somewhat hardcore programmer. I may be guilty of over-zealousness - but how are the attacks on my person going to help?

    I've done what many have done. I sat down and learn US - because of recent experiences with JS and AS. I realized after a while that the lack of VS was a big problem, so took the leap to C#. I towed the *party* line that C# was for the more hardcore developers, and that US was far more friendly for beginners etc.

    The difference is I didn't stop there. Extension Methods. Lambda's. Linq. Events. Generics. WCF. Console Applications. Photon Networking. Player.IO. Multi-threading. My funny BFI. etc.

    I dug deeper and deeper, went wider and wider. And I noticed something odd - something very very odd.

    C# is a beautiful language not because it's so complex and featured... but because you can make it sooo simple!

    You no longer have to declare the type of every single variable you create. You no longer have to cast objects from lists when you can use generics. You do not even have to have import statements and class declarations if you do not want them! And if something is wrong with the way something is done - there's a fair chance you can improve it!

    That means you can take a look existing classes.... for example monobehaviour and really start thinking about how it could be done better. And when I start seeing that many of the simplicities of US are due to API faults, when I start seeing students with serious conceptual errors because of shortcuts US took, when I see people denied the entire worlds available at a single google search because of language...

    That's when I ask 'Is this the best way to do things?'
     
  34. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Messages:
    11,325
    So VS is an option for all us mac owners then?
     
  35. c-Row

    c-Row

    Member

    Joined:
    Nov 10, 2009
    Messages:
    744
    Don't worry. I am German, so I should know one when I see him anyway. ;)

    That last sentence probably came across a bit harsh - sorry about that - but the one red line running through the previous pages gave the impression that anybody vowing for US as a viable alternative for those of us who don't "get" C or simply chose US because it has a lower entry point were all wrong and not even worthy of calling themselves programmers, which angered me.

    Sorry - VS? [edit] Oh, guess you mean Visual Studio... I'm on a Mac, so the lack of VS is a given for me, not something that drives me towards one specific language. ;) Actually, Intellisense and auto-indenting would be the most obvious reason for me to switch since both seems to work better with C# than US in MonoDevelop, but even with C# it's not as consistent as VS handles it.


    I still think it is.

    ... are probably things a beginner couldn't care less about. The Gossip forum is full of threads telling people to start with something simple, like Pong or Asteroids. Why do you want to raise the entry bar for them in the same breath?

    Good luck with that if you don't have any prior experience whatsoever, though. ;)

    The best way to do things is give people something easy to start with and help them to make the switch later on, not alienate them in the first place, and accept that sometimes different people take different routes to reach the same goal.
     
    Last edited: Apr 16, 2012
  36. npsf3000

    npsf3000

    Member

    Joined:
    Sep 19, 2010
    Messages:
    3,775
    The use of US alone isn't in itself bad - I have no problems with boo. But I do think the vast majority of people using it would have been better served to use C#. So this isn't an attack on US programmers by any means, but a question of the nature of the costs of support what is closely becoming 'C# lite'.

    Yep. But at what cost? You still believe that US is easier for beginners... so I ask you to do something simple: Give some examples where by using US the learner benefited. Because as I see it, the differences are much smaller than many perceive, and the costs much higher. And I'm more than happy to argue this with examples - this isn't some wishy washy handwaving.
     
  37. actuallystarky

    actuallystarky

    Member

    Joined:
    Jul 12, 2010
    Messages:
    156
    Sorry but I have to take issue with a nonsensical statement that has been repeated so many times it's now taken as fact. I completely fail to see how UnityScript is more beginner-friendly than c#. Auto-complete and intellisense for US is horrible in Monodevelop when compared to C#. (NOTE - this is an apples to apples comparison within Monodevelop. VS does not enter into this)

    No single feature helped me as a beginner more than auto-complete, intellisense and good error checking. My daughter struggled with US (because the Unity docs told her to) for days before I showed her how incredibly easy C# auto-completing made things.

    If Hippo wants to use UnityScript for reasons unfathomable, more power to him. He's getting things done and obviously knows what he's doing but how is a horrible environment where even simple syntax errors and typos slow you down better for beginners?
     
  38. npsf3000

    npsf3000

    Member

    Joined:
    Sep 19, 2010
    Messages:
    3,775
    Yes. But even if it wasn't, I don't see how that helps you.
     
  39. c-Row

    c-Row

    Member

    Joined:
    Nov 10, 2009
    Messages:
    744
    It's a gateway without which some of us probably wouldn't be here today.


    This might be a no-brainer for you, but the C# scripts have the same frustrating problem Java and pretty much all the docs on it had for me - there is a whole bunch of additional code that's just supposed to be there without anybody going out of their way to explain why it actually has to be there in the first place when other languages seem to work fine without it.


    That's not a problem of the language itself, even though those are good reasons to take a look at C# instead of US indeed.
     
    Last edited: Apr 17, 2012
  40. npsf3000

    npsf3000

    Member

    Joined:
    Sep 19, 2010
    Messages:
    3,775
    A gate way that's potentially outlived it's usefulness, and now server the role of quagmire? It's easy to get into...

    Great argument except:

    • There is tons of resource out there to explain why you include those lines.
    • US isn't any different, in fact it's potentially worse.
     
  41. Meltdown

    Meltdown

    Member

    Joined:
    Oct 13, 2010
    Messages:
    3,865
    +1, one of my strongest points for this argument as well. People underestimate the power/help/guidance of good intellisense and error checking.

    Spending 5 minutes on a C# tutorial to find out what this 'whole bunch' of additional code is for would have changed your life :)
     
  42. c-Row

    c-Row

    Member

    Joined:
    Nov 10, 2009
    Messages:
    744
    Now you tell me. Guess I should do the switch then to impress my friends and instantly attract women. :D
     
  43. npsf3000

    npsf3000

    Member

    Joined:
    Sep 19, 2010
    Messages:
    3,775
    Nope.

    You do it to earn the money which attracts the women which impresses your friends

    Any more questions?
     
  44. Meltdown

    Meltdown

    Member

    Joined:
    Oct 13, 2010
    Messages:
    3,865
    Either way you'll be pimpin' it :)
     
  45. c-Row

    c-Row

    Member

    Joined:
    Nov 10, 2009
    Messages:
    744
    Blondes or brunettes?
     
  46. BrynP

    BrynP

    New Member

    Joined:
    Mar 7, 2012
    Messages:
    49
    I hear blondes quite dig C#, I mean just uttering the words, public static void just turns them on. Though, I guess it's better to offer them a return value. ;)


    Brunettes on the other hand are more US, if you start talking in functions, they'll jump right on top of you.


    So...in other words, let US users get their brunettes, they need love too. :(
     
  47. npsf3000

    npsf3000

    Member

    Joined:
    Sep 19, 2010
    Messages:
    3,775
    Yeah but young brunettes find Func<You, Me, Love> Funky.
     
  48. Izitmee

    Izitmee

    Member

    Joined:
    Jan 27, 2011
    Messages:
    2,420
    Damn I always preferred brunettes. Now what, should I move back to US? :p

    P.S. (great, now the derailment of this post shows that us coders are just a bunch of male nerds, mainly :D)
     
  49. Diviner

    Diviner

    Member

    Joined:
    May 8, 2010
    Messages:
    663
    I believe this entire thread is moot. I personally don't hold a grudge against the existence of any language in Unity's arsenal (I teach UnityScript to NPSF3000's dismay :p while I use C# to design games), but the point here is understanding how UT functions as a company.

    Take for example all the previous versions of Unity's GUI system. UT is all about backwards compatibility. That's why we have currently both OnGUI and GUITextures/TextMeshes/GUIText. If Unity suddenly decides to completely remove one of its features, upgrading a game to a newer Unity version will no longer be a viable option. And therefore, many developers that count on this practice will be alienated.

    Therefore I firmly believe that even if UT pays any kind of attention to this thread, they'll stop at the first suggestion : not offering any more support on UnityScript by version 4.0. The possibility of completely removing UnityScript by version 5.0 is completely out of the question based on UT's practice so far on backwards compatibility.

    Having said that, I think both sides of the argument have valid points. Personally I see Unityscript working, and even though it drains the resources of UT from more pressing concerns, even if it's just a notion and not a fact that Unityscript is more beginner-friendly, UT can't afford to look the other way. If people believe it, UT must see to that they're satisfied. That's from the perspective of a UT developer, not a freelance programmer. What we say is irrelevant when it comes in conflict with UT's business practice.

    PS :

    That actually made me lol. :D
     
  50. alexzzzz

    alexzzzz

    Member

    Joined:
    Nov 20, 2010
    Messages:
    822
    My impression is that the only common thing between C# and C is their syntax while the ideology is totally different.

    In C language NULL == 0 == FALSE == '\x0'. It's too low-level to make the difference between all this stuff. Everything is just numbers.

    C# as a high-level language has references, integers, chars, booleans, enums. These are really different types, types of different nature. So if you want to convert from one to another, you should express your intention explicitly, otherwise it would make no sense. We are people, people make mistakes, programmers make even more mistakes on a daily basis. C# protects you from the most stupid ones.

    US is high-level too and also mostly shares the same C syntax, but it allows itself much familiarity with types, less than C does but still much.

    Yes, you don't have to cast, but if you want named numbers why not to use named numbers (aka constants) instead of using enums, that are not numbers, as numbers? It looks exactly like var color = mother + gravity, while mother equals to five.

    Code (csharp):
    1. if (x - 2) DoSomething();
    If x-2 what? Hell, you can even compare integers to strings and the compiler swallows it as if nothing happened!

    Of course US is friendly for beginners because beginners tend to make more errors and US welcomes them to make errors. I've seen enough beginners asking what was wrong with their scripts, why they didn't work as intended. C# compiler easily could tell those guys what was wrong but unfortunately the scripts were in US.
     
    Last edited: Apr 17, 2012