3 ms·
What is not clear in the article is that languages and platforms are almost completely orthogonal in most cases. If we are speaking about the Java platform lock
by nadam 16y ago
What is not clear in the article is that languages and platforms are almost completely orthogonal in most cases.
If we are speaking about the Java platform lock-in, languages are irrelevant, because I can use this platform from multiple languages. Even if I use Python, I can be locked into the Java platform because I call existing Java classes (using Jython). Also, for example whether Java the language is good or bad is irrelevant, because I can use Scala to compile to the Java platform, which is the best programming language I have ever seen (for my taste at least). I can also choose to target the .NET platform from Scala.
So Java platform lock-in can be a problem, I understand. But this seems to be totally orthogonal to the topic of from wich programming languages to which platforms you can compile. These different issues are somehow mixed in the article I think.
- jacobolus 16y agoThe article’s argument is this: If you write your code in Python targeting Jython and the JVM, and the Java platform becomes unusable, there’s still a lot of your code that can be easily ported to run in CPython or IronPython or PyPy or something. If you write your code in Java and the platform becomes unusable and Oracle decides to squish alternative Java platforms, then you’re stuffed.
- nadam 16y agoOk, so the problem is that Java the language supports only one target platform. This is not completely true, I don't know too much about about J#, but as far as I know using J# basically you can compile your program written with Java syntax to .NET.
- hga 16y agoJ# is capped: the last version was shipped in 2007, it is supported by VS 2005 (now superseded by two newer versions) and support will end in 5 years.
- koenigdavidmj 16y agoAnd even that was quite an old version of the language--1.2, I think.
- ciupicri 16y agoMono is able to run Java code side-by-side with .NET as well as having Java and .NET object interoperate with each other. This is done with IKVM (http://www.ikvm.net http://www.ikvm.net) the Java VM implementation that runs on top of .NET and Mono. From http://mono-project.com/Java http://mono-project.com/Java
- borism 16y agoI don't see how this could be true. What makes Java the Language so special that it can only be compiled into JVM bytecode and not something else?
- hga 16y agoYou've got a point, however Java and its supporting standard libraries are very tightly bound. The question here would be why are you writing your code in Jython? If it's to get access to those libraries or other code written in Java, then you're just as screwed.
- jacobolus 16y agoI’m not a Java/JVM expert, I’m just trying to state the article’s argument as I understand it. I think the claim is that the legal issues (patents) w/ Oracle make Java the language harder to compile to something else. There doesn’t seem to be any overwhelming technical reason.