A curious question - why is Objective-C not used very widely outside of Apple ecosystem?

I was playing with it for a while even before iPhone was a thing and I kind of liked it, but it's basically only for Apple devices. Nobody on Linux or Windows sides uses it for anything.

I have had the misfortune of using GNUStep about a year ago, and it's, unfortunately, still very buggy. Why is there no more activity there?

Without an integrated framework, it's just an OO mechanism hung off the side of vanilla C. And while that mechanism does have some sweet features, it's also slow and really weird looking for someone who's used to C, and seeing it in the middle of C code is like in a Bollywood movie where they suddenly break out into song.

Love the analogy.

Not to leave course of the original comment re:ObjC, but I think to a certain extent you don't see C# really being used outside the Microsoft ecosystem, as Mono does exist. An integrated framework is probably the programming language equivalent of having an "army and navy."

Programmimg is soo based on trends and not on technical merits :

Dart is a great language - it's way more feature complete than typescript, it comes bundeled with official package manager, build system and a dev server (huge value compared to the js ecosystem schicoprenia) and it's designed by people who actually know their shit and have decades of expirience in both language design and VM implementation/compilers (isn't constrained by JS design decisions)

Dart started marketing it self as a JS.next, IMO unrealistic goal, but has dropped that agenda for like 2 years now (?). It still dosn't prevent people from making uninformed comments about it being a failed google js.next language.

It's really an amazing ammount of working tools and code in that project, waay better than angular 2 js/typescript for example but people won't even evaluate it because of reputation.

The same is true for .NET, Microsoft took JVM and Java and then took it to the next level - stuff that just got in to Java (Lambdas) or will be getting in years (Value types) have been a part of .NET for a decade now - and in recent years Microsoft made a 360 on cross platform and OSS with Core.CLR - this is not even mentioning F# being a MS sponsored and supported tool with the tooling support that implies, and just the best in class tooling with VS in general.

Yet most people won't even touch .NET because it's not hip.

I don't think developers should take the blame for not using a language which has from day one been a deliberate trap intended, by its very usefulness on Windows, to tempt people away from Java into creating programs which can't survive outside Windows. It began as an attempt to nobble Java with incompatibilities (Microsoft J++), and when that got sued off the market, it returned as a "different language" (C#) that looked nearly the same, trying to play on all the same strengths - except the ability to escape from Microsoft's OS. Nor has that ever ended. Microsoft has no interest in helping Mono reach parity with its own version.

You can use it, but your programs will be stuck on Windows, and your time and effort and dedicated mental resources will be joined at the hip to Windows, in a way that doesn't apply to almost any other language.

See this is exactly what I'm talking about !

I can't blame you for not being up to date with developments on .NET platform or in the Microsoft world - but please o please refrain from making comments about the issue you are not informed about and obviously haven't looked in to for the last couple of years.

Microsoft has their own cross platform open source .NET implementation under MIT license supported officially on Linux and OSX. https://github.com/dotnet/coreclr

Not only that but they are opensourcing and porting huge parts of their stack like build system, web framework, etc. and are supporting it officially on Azure cloud. https://github.com/aspnet/Mvc

They are doing pure OSS from scratch projects such as LLILC - a static compiler for CoreCLR based on LLVM : https://github.com/dotnet/llilc

Further more even before that Microsoft has started opensourcing large parts of their implementation at the request from Mono team and Mono has taken those + CoreCLR and made their implementation better - showing that they actually wanted to help Mono team implement feature parity.

And finally Microsoft recently acquired the Mono team (Xamarin) and will probably fold that in to their OSS offerings.

So please stop the FUD - it's not helping anything - I realize you have an opinion but before voicing it please check if it matches the facts - otherwise you're just creating noise in the discussion.