The horse is but a distant memory...
...but Oracle have finally finished the latest round of improvements to the hinges on the stable door. Closure will surely follow!
Java EE 8 arrived last month rather later than expected – but it landed in time for Oracle OpenWorld and JavaOne, which are taking place this week in San Francisco, California. Enterprise-flavored Java hasn't seen an update since June 2013. Linda DeMichiel, Java EE 8 specification lead at Oracle, recounted the long road to …
Um. I'm making a joke, a humorous misunderstanding given the two possible meanings of the phrase "Closure will surely follow [the improvements that Oracle are making to Java]". In the intended understanding, the term closure is to express a change in open state of the stable door, from the saying "to close the door after the horse has bolted". In simple terms, too little, too late. The second, unintended meaning is the language feature of closures as present in many languages from lisp to c# but notably missing in Java. The comment about real closures is because many people confuse lambdas with closures. For some use cases they can substitute but not all.
I am not sure why you bring up JavaScript.
(Probably way too big.)
The only comparable technology is .Net, which is fine if you want to confine yourself to Windows.
The various scripting languages do not come close. No static typing makes them horrible to work with in large projects and their performance is inheritantly bad (even with the new run times that do brilliant job of optimizing a broken design).
C/C++ are archaic rubbish that should never have become popular and cost the world billions in wasted programmer productivity. Go etc. do not have the JIT compilers and generational garbage collectors.
So Java is a bit of a monster. But it works. And it works well.
(J2EE is another story. But it can be safely ignored.)
C/C++ are archaic rubbish....
... and are the languages Java Virtual Machines are written in, along with most key desktop applications like MS Office and PhotoShop all significant web browsers, database engines, web servers, operating systems, device drivers etc. etc. ad infinitum.
Java (more accurately, Kotlin) is great for developing Android apps and vertical LOB stuff for "Enterprises" but the closest it has ever come to mainstream PC software is probably Eclipse or IntelliJ which are both vastly inferior to Visual Studio. Oh, and to round it off - write me something in Java for an STM32 with 48k of RAM. I didn't think so.
I do prefer IntelliJ and it's siblings over Visual Studio, quite a bit. Now it's been a few years since I actually tested VS, but at the time it was a complete crash fest. Jetbrains IDEs have not crashed on me the last year or two at least.
What, in your opinion, makes VS superior to the jetbrain IDEs?
What, in your opinion, makes VS superior to the jetbrain IDEs?
@Wulfhaven
I should point out I don't use IntelliJ per se, I use Android Studio and PyCharm, which are both IntelliJ derivatives.
Visual Studio is far faster than JetBrains stuff (I wonder why!?) and integrates everything in one IDE rather than the weird feature discontinuities that appear between WebStorm, PyCharm and CLion. If you open an Angular 4 component or JSX in PyCharm there are some things that don't work as they would in WebStorm and it gets worse if you're working in C at the same time. IntelliSense works better than JetBrains equivalent (particularly for TypeScript), as does automatic on the fly reformatting, particularly of HTML. There are also more/superior resource handling tools and plugging in external compilers (e.g. NXP and TI toolchains) works more smoothly. What VS doesn't do is run on Linux or support Kotlin as effectively (unsurprisingly), so if I'm targeting Android or using a gcc toolchain I'll use JetBrains.
Mostly I'm working on Industrial Control (IoT to hipsters) so I'm tracing code/data from embedded microcontroller sensors (C/C++) through several consolidation and processing layers (Python/C#) to drawing graphs on screens (TypeScript/Kotlin) and I don't want to swap around between different IDEs.
Your problem is that you are looking at one language to do everything.
Your problem is made harder by choosing Java.
All languages have their pros and cons (apart from Javascript, which is shit).
Assembler/machine - If Ive got a bare bit of metal, with 20K of RAM and 40K of ROM, Im hardly going goign to run .Net on it, am I?
ANSI/C99 C - You can get a compiler for pretty much any CPU that existed. The standard library is well know and works. The language and stdlibs dont change every 4-5 years.
Its great for writing long lasting, system software in.
C++ - Curates egg. I like the user define types bit. Im Ok with the class mechanism. Templates are a bit complex. I wish theyd stop updating the language - C++86 != C++91 != C++ 98 != C++14.
Java - Great for running on the JVM. Remind me, what was the problem is was trying fix?
Python - great for running stuff at a very high level of abstraction.
Id never wriet an ISR in Python. Equally, Id not script some network tests in assembler.
t.b.h. I am very very worried (enough to post).
This is why I use JEE:
http://adambien.blog/roller/abien/entry/hello_javaee_7_with_maven
I worry that the "Spring" people will "take" over and the simplicity of JEE (that has taken years to perfect) will be lost.
The point of having an EE server, to run on, is that you don't have to build you server from scratch in your own code base (aka Spring).
EE servers are incredibly powerful and millions of man hours has gone into perfecting them.
J7EE is massively productive, JSF is incredibly powerful when teamed up with a components (IceFaces, Primefaces). And its stable; unlike the Javascript frameworks where the components don't work well and the whole framework is completely thrown out every 6 months. Just because people can't understand how to use JSF does not mean its JSFs problem.
People are blown away with how productive JEE is (from personal experience).
As another poster pointed out; a lot of java is not about web front ends.