Please MS, increase development resources behind net and c# instead. It will benefit Java more than direct Java development - competition will give Java more motivation to grow.
You say that as if they are somehow being sparing in their support of C# and .NET, which is clearly not true. What specifically do you see as lacking on that front?
What I meant is that most of the recent C# additions are merely syntactic sugar that does not increase developer productivity in a significant way, does not boost the expressiveness of the language, sometimes even decreases the readability of the code. That's in contrast to things like generics and li q.
Besides apart from C# there's also CLR and Jit that could use more love. It is well known that jvm is a better vm than CLR. Most of the CLR speed comes from using references to value types but somewhat as an afterthought and without tools that C++ provides (readonly gives you muh less power that const reference).
Apart from Borrow Checker which is a recent invention, all programming languages features, as far as I am concern has been done previously in one way or another. There is only so many language features you can fit in on a languages like C# which is soon to be 20 years old. It is a sign of maturity. And C# in itself is already very modern compared to Java.
Most of the JVM performance improvement came from many Enterprise customers absolutely pushing the limit to a point where performance of JVM today would be unthinkable 10 - 20 years ago. It is the work a hundreds of millions if not billions over the past two decade. And it is not like Microsoft are not doing research on how to speed it up.
I can't remember the last time they contributed anything significant to the .net standard library. Yes, they added a json serializer. In 2019, was about time. They ported some of those library to .net standard (but only some, even with .net standard 3 there are lots of small refactorings that are required to make my libraries run).
They are adding to the language, which is a mixed blessing, it is helping in some aspects, but also making the syntax even more complicated to a beginer. But the standard libraries are rather stale and would deserve a lot more love.
It's possible there will be more after .net 5 is released, but I think the current trend is to keep languages' standard libraries small, anyway, though. If you look at languages like python, the standard library is incredibly crufty, so it might be better if .net just deprecates stuff and people use other packages.
So much potential wasted by subpar tooling. Although I earn money as a C# developer and F# should be the logical choice, I am still studying OCaml right now.
Microsoft doesn’t have to pull resources from anything to put them on Java. It’s like if Jeff Bezos is buying a car and you say “please spend the money on a boat instead”
J++ might get a bad rap in hindsight, but back in the day, it was amazing. The editor was liquid smooth, performance wise, and the compiler was at least a dozen times faster than the JDK Java compiler. It was like the Jikes compiler before Jikes.
I recall using Visual J++ and its compiler to do "pure Java" development back then and it was a delight. I only moved to Eclipse later because Eclipse had a deeper understanding of the Java language and was able to do fancy things like traverse a call stack from static code analysis. Eclipse was considerably slower in UI and responsiveness, especially on hardware of the time, but that utility made up for it.
I think Eclipse is probably still slower on modern hardware than Visual J++ was in 1999-2000, which was the last time I used it.
The first commercial Java project I worked on we used Visual J++. It was a great environment at the time, there was very little else available if I remember correctly. Sun had something which was horrible.
Eclipse is so bad I think those of us who have been in the Java camp for years/decades/whole career have lost sight of just how much better the MS tools were/are.
I don't even remember feeling as much frustration towards VC++ in the 1990s as I do with Eclipse today.
It's too easy to forget Mac wasn't even an option back then. OSX didn't start to become viable till 2003-2004.
I've officially been doing Java 20 years now... part of me really wants to jump the fence and go work on Windows stuff. I jumped the fence to work on Python 6 years ago. But it was "Python being used for stuff Java is 10x better for" and got tired of it after a year. Python is 10x better than Java for lots of things.. but not for giant enterprise systems IMO.
Agreed. It may be true that Eclipse on a Ryzen 9 doesn't feel as responsive as Visual J++ on a Pentium III. J++ was just that much faster than Eclipse. Then again, for my usage, the J++ environment was not much more than a syntax-colored text editor with project files and a method and field browser.
Like I said, when Eclipse arrived a few years later, it provided a lot of utility that J++ did not, and obviously that utility has value. But I think both of us look back fondly on J++ because we know that had it not been cut short, it could have evolved into something different and possibly even better than what we know as Java today. It seems plausible that in an alternate history where J++ kept evolving, I'd be more satisfied with the state of the art.
J++ had extensions that were not portable -- in clear violation of the binding license agreement that Microsoft would not add anything to the java.* or javax.* namespaces.
Hence the lawsuit.
Microsoft could have added any Microsoft or Windows goodies they wanted -- as long as they didn't try to make it appear that these extensions were part of the Java platform and would run anywhere. There's nothing wrong with Java code that only works on some systems. But not if you're making a version of Java and building those extensions in, especially in a way that tricks developers into using them because they appear to be part of the Java base. Then later the developer discovers their program only runs on Windows.
I have to disagree. Sun sued Microsoft because Sun's entire motivation in Java was to keep Java portable. So much so that it was in the contract. It was a private contract dispute between two companies. A civil matter. Not a state criminal matter.
>> As many of you may know, Microsoft and its subsidiaries are heavily dependent on Java in many aspects, and also offers Java runtimes in its Microsoft Azure cloud to its customers.
Anyone know details on how MS uses Java outside of hosted runtimes?
I imagine that C# is used less and less within Azure's infrastructure and embracing other languages such as Java where appropriate. This would go well beyond direct Java runtime support. C# cannot compete with the Java ecosystem for open source cloud management software. Just take a glance at Apache projects and see how strongly Java is represented there. I imagine that Microsoft is investing heavily in Python as well.
I'm mystified as well. I worked at Microsoft for seven years and never once heard any mention of Java. Maybe it's in the acquisitions? (GitHub, LinkedIn, etc.)
It is for azure to ensure java runs smoothly there. Similar to how they pushed code to the linux kernel years ago so linux and hyper-v would play nice together.
Actually, it's probably text/plain; format=flowed, which any sane email client would display as appropriately wrapped for the viewport size. It's generally the best way to send plain text emails.
The problem here is the mailing list archive viewer, which is displaying it in a non-wrapping context, instead of letting the text wrap appropriate. It's using a <pre> instead of a <pre style="white-space: pre-wrap">, in other words.
So far we have submitted couple patches [1][2] that we felt were good opportunities to learn how contributions flow into OpenJDK, and we are now starting to experiment with JFR and other GCs like Shenandoah. As we progress, we may find other fixes and enhancements that we aim at upstreaming as well.
If you have further questions, I'd be happy to take them.
Make dot NET a truly first class citizen on other platforms. Including the ecosystem of C# and dot NET libraries. Some of this may be difficult due to the long time that dot NET has been Windows only. There would have to be a clear boundary between APIs and features of the runtime and libraries that are only available on Windows. I think Microsoft is already making moves in this direction. But I don't keep up with it.
Funnily enough I was thinking an almost identical thing this morning. We had IKVM [0] for.NET, which if I understood it correctly allowed Java to run on the CLR (I probably misunderstood this).
I'm not entirely sure why Microsoft don't build something official to run Java code on the CLR/.NET, is it a technical or legal limitation, or simply that there's no business need?
It would be huge if they implemented a way to run java libraries from .NET. Be it ikvm or something else. This would immediately open up huge amounts of very interesting libraries to .NET. For example Bouncy Castle or Lucene. Years ago I worked on a document search app. Wrote it in .NET but then almost all interesting libraries were in Java exclusively or with an outdated .NET port. Being able to use the up to date java libraries would have been huge. This experience alone makes me reluctant to use .NET. The Java ecosystem is just much broader.
Not without an enormous amount of breaking changes. The severity of them would be so high that no C# or Java programmer could ever convert their existing code.
He's basically the living legend of programming language design, having designed _three_ successful programming languages (TurboPascal, C# and TypeScript). If he's allowed to tweak Java to his liking, it might actually at some point catch up to what C# was 15 years ago, and maybe even get proper generics.