java is pretty awesome. it has its flaws, like basically all the other languages and environments. probably the best part about java is there actually is different implementations of it, even openjre has a couple different runtime options. im pretty sure you can use gjc and compile native code.
also, the swing gui has gotten a LOT better. it now can use native toolkits to integrate better with the native system. swing on gtk looks pretty gtkish from last time i checked. and ive seen images of it on windows looking pretty good.
where it lacks is desktop api's. mostly it has no native java api's for 3d, gpgpu or video. you can use some opengl bindings or some media file libraries bondings but there is no java 3d api's or java video api's.
c# is an awesome language - i'm less sold on Mono
And you can definitely still have memory leaks in c# apps, it just makes it less likely to happen. One annoyance i have is that it's way to easy to forget to dispose something that's IDisposable. In c++, you know you always have to free everything, but c# makes you complacent until something comes along and you don't realize you have to free it up. It seems like a compiler warning in such a case would be beneficial.
If java is SUCH a terrible language then WHY is its JVM so versatile and useful? The java JVM can be used as the runtime for a dozen different languages, and java itself is pretty much just JVM assembly language.
Originally Posted by oneman
I work with a LOT of different computer languages, and I gotta say that all the ones that are still around after all these years, well, the reason they didn't die, is because someone is actually finding them to be useful. Sure TCL is miserable, but then again you can't beat the simplicity of expect. Perl encourages you to write code that looks like line noise, but it sure is useful in a pinch when you need something more than a shell script.
C# is a language without a home, without a purpose. It fills no need that's not already filled by another existing language. It's nothing more than a knee-jerk artifact of a response to Sun, yet another typical Microsoft day-late-dollar-short approach to business. They are the only "going concern" that takes it seriously and we KNOW that Microsoft freely abandons technology when it doesn't suit their purpose. Frankly I just don't see the point in spending mind cycles on something with such dubious future prospects.
Well, you already described it's purpose, a Microsoft version of Java, one which they can define the standard for themselves and sell tools for. That said it's interesting seeing Microsoft going back to strongly pushing native code for VS 2012: http://channel9.msdn.com/Events/Goin...ingNative-2012
Originally Posted by frantaylor
C# definitely has a purpose on the MS side of things, and it's not going anywhere. I'm less sure that Mono has a purpose on non-windows platforms, though.
Originally Posted by XorEaxEax
I don't think anyone can take a serious look at C# and Java, and come out thinking Java is superior - unless they are concerned about being cross-platform. That's where C# fails.
Miguel! We deserve better! We deserve better than having your patent infested Microsoft code smuggled into every platform.
Get off with that stuff!
There is a 3D API, it's actually called Java 3D. You wouldn't want to write a game in it though. LWJGL seems to be a much better choice. It's used for Minecraft, which obviously doesn't have the best graphics but that was intentional.
Originally Posted by benjamin545
In other shocking news today, water is wet, and RMS calls for more GPL apps.
My dad asked me about Mono in an email yesterday, here's what I replied with.
Mono's intention was never to help POSIX-compliant OS users or developers of POSIX-compliant operating systems.
Its goals were to:
Get POSIX developers to learn Microsoft .NET and start making Windows programs.
Get POSIX operating systems to depend on .NET so Microsoft could sue them later.
Novell was the only one that actually got a solid patent license, and it never covered OpenSUSE or users of OpenSUSE. The Microsoft Community Promise was a load of crap. The "Promise" doesn't prevent them from seeding patents to troll companies they run, like Intellectual Ventures. The Promise also doesn't cover Windows Forms, ASP.NET, or GDI at all. There's a provision that looks innocent enough but undermines the entire Promise by itself. That provision says that the implementation has to fully comply with the ECMA standards for the CLR and for C# or VB.NET to get covered under the Promise.
This can be taken to mean that a user or distributor of any .NET alternative that is not 100% faithful to the "standard" due to bugs or implementation gaps, or a user of an alternative that provides the ASP.NET, Windows Forms, and GDI compatibility layers gets the Promise nullified then and there. The rest (if there is anyone left after that) get to wait for Microsoft to seed patents to Intellectual Ventures and will get sued as well.
As for Moonlight. Silverlight is (thankfully) more or less nowhere to be found. even Microsoft's bribe money didn't carry it very far. The vast majority of Silverlight code on the internet is malicious software for Windows PCs, since Microsoft installed it through Windows Update without asking the user if it was OK, and took the liberty of tossing in plug-ins for Firefox, Chrome, Opera, and Safari as well.
If Silverlight had caught on, Moonlight (development of which is also more or less dead now) would not have helped a single user. It was never compatible with the current release of Silverlight, so it usually wouldn't run the same applets that the current release of Silverlight did. (It never supported Silverlight DRM, so Netflix would never have worked)
Silverlight applets required patent-encumbered media codecs. The first time you ran an applet in Moonlight that needed them, it would take you to a Microsoft site where you had to sign a Microsoft EULA agreement on binary executables to be ran inside Moonlight. The patent license on the codecs only extended to Moonlight when it was running in a web browser, so if you made standalone desktop applications with Moonlight and used those codecs, you lost your patent license to the codecs.
The patent license for Moonlight itself doesn't cover any distributors but Novell, and it doesn't cover you unless you got it in binary form, from Novell. The fact that the actual code to a lot of Mono and Moonlight was under the MIT X11 license or the LGPL doesn't help anyone when it comes to patents. The X11 license doesn't force them to give you a patent license. Even though the LGPL does, it can only cover the few components which are licensed under the LGPL. Since Novell, Xamarin, and Attachmate are the promoters of the software and have no .NET/Silverlight patents to license, and Microsoft has been careful not to distribute it, you don't even get patent licenses for the LGPL licensed components.
Distributions that promote Mono are asking for legal trouble. It was never going to be competition for Microsoft, it was (as was Novell, as is Attachmate, and SUSE) controlled opposition. It's for the best that the dilapidated state of the software itself prompted the few remaining non-SUSE distributions to start getting rid of it, starting with Ubuntu.
No respect from and for this guy Miguel...