4

Unity uses Mono in order to achieve multi-platform compatibility. Because of that it wouldn't make sense to use .NET 4.0 or higher, since Mono does not support them either.

However Mono does support 3.5, in fact it supports most of its features , so I wonder, why does Unity still use version of .NET that is almost a decade old.

I understand that most if not all developers prefer stability and familiarity over cutting edge. I would just like to know what are possible reasons for this decision. Especially since later .NET versions introduced several very nice features. Compatibility reference for Unity.

user1561358
  • 304
  • 3
  • 14

2 Answers2

2

According to this site it has to do with the support of other computers. Most computers will be able to run .NET 2.0 but not 3.5. It also runs C# 4, I believe, 5, but definitely not C# 6. For some reason, they're kind of behind on things. I think its because there's little benefit of doing upgrading everything.

AustinWBryan
  • 3,249
  • 3
  • 24
  • 42
  • 6
    It's actually because they are in a battle royale with Xamarin over licensing (mono runtime itself is LGPL under Xamarin), not because there is little benefit in updating. There is tremendous benefit. – borrrden Jan 18 '16 at 09:57
  • Mono runtime now uses MIT license. – HooliganCoder Jan 19 '18 at 00:01
2

.net 2.0 and it's subset is there for apiCompatiblilty that being said it's for using of 3rd party libraries but you can use .net 3.5 features in your code as you have stated that mono supports it for example system.linq, although there is some limitations on it for example some namespaces are not available for example : system.data , also linq has some constraints on mobile platforms http://forum.unity3d.com/threads/to-linq-or-not-to-linq.223887/

mahdi mahzouni
  • 474
  • 5
  • 15