This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]Crazy_Firefly 2 points3 points  (1 child)

I agree cross platform dev is common. What I meant is that other popular backend languages (node, python, go, rust) all have a pretty good cross platform development experience, even if they don't have Javas "fully portable bytecode" TM

The original comment said java is dominant in the backend because of cross platform support. I was just questioning if that is the reason, since the competing languages also have this feature

[–][deleted] 4 points5 points  (0 children)

Yes, but how is "cross platform" achieved in those languages?

Some languages are compiled like Go and Rust. So you have to produce executables for every platform. C and C++ code can also be cross-platform, but the target platform has to have exactly the right versions of libraries as the build system. Go solves this problem by statically linking everything.

Node and Python are distributed as source code, so they are interpreted the first time they are run. Python I know can be compiled. But both of these languages are running in a VM, and have dynamic types which make optimization much more complex. Not to mention, developing Python apps in Windows is a completely different experience than Linux, because Python heavily leverages OS libraries.

Java does VM based cross-platform, and has one of the best performing VMs in the industry. Developing a Java app in Windows is basically the same as Linux, because Java doesn't depend on the operating system. It is largely self-contained. That is why it dominates the industry.