News for hackers. Stuff that matters.
Re:Free for students: Professional developer tools from JetB... by egeozcan on Monday October 31, 2016 @08:40AM (#12836151)
Well that confused me at first. I questioned why those features would qualify for "enterprise software". Then I remembered that the EE in Java EE is for "Enterprise Edition" and my serach made me end up on Wikipedia[1], which explains enterprise software as "computer software used to satisfy the needs of an organization rather than individual users" - it's simple and makes total sense.

[1]: https://en.wikipedia.org/wiki/Enterprise_software

Re:Free for students: Professional developer tools from JetB... by Delmania on Monday October 31, 2016 @10:21AM (#12836900)
I have just a few nitpicks:

Hobbyists and startups might choose TFS since Visual Studio Online is free for orgs of a certain.

> "computer software used to satisfy the needs of an organization rather than individual users"

This applies to software like HP's ClearCase and Rational rose, whereas the EE in Java is bit of a misnomer. Originally, Java SE was designed primarily for single threaded desktop applications and applets, whereas Java EE was designed for a more networked application with application servers.

What happened is that Java EE was a beast to work with, but some features of it like servlets, injection, and data mappings were useful, so developers built versions of those that could work with Java SE (think Tomcat and Spring). The Java team took the lessons and redid Java EE to make it easier to work with. It's still a bit of a beast to work with, but good enough to build an application with.

Re:Free for students: Professional developer tools from JetB... by paulmd on Monday October 31, 2016 @12:39PM (#12838442)
> What happened is that Java EE was a beast to work with, but some features of it like servlets, injection, and data mappings were useful, so developers built versions of those that could work with Java SE (think Tomcat and Spring). The Java team took the lessons and redid Java EE to make it easier to work with. It's still a bit of a beast to work with, but good enough to build an application with.

This is a really important point for all of Java, in fact. It's a fairly old language (21 years) that has had a lot of trial-and-error and a lot of very niche applications (embedded/mobile development). There is a lot of stuff that is abandoned, obscure, deprecated, or not really used for its original purposes anymore.

For example of something that's widely acknowledged as an outright mistake, see the Cloneable interface.

http://www.artima.com/intv/issues3.html

Do also see the DEFCON talk "The Secret Life Of SIM Cards" that was posted here last night, for an example of a niche embedded usage of Java. There is a LOT of Java running around - not just on smartphones, but on all kinds of embeddable/mobile devices.

https://www.youtube.com/watch?v=_-nxemBCcmU

In many ways DotNet is a clean-slate reimplementation of what Java could have been. It avoids many of the pitfalls that Java ran into, but I think it also misses the boat on some others. I would love a Maven equivalent for C#. And checked exceptions actually are useful in some contexts and C# misses out, but on the other hand Java took it way too far by adding tons and tons of checked exceptions for generic "something happened!" failure cases, many of which are implementation errors and should be unchecked. C# has a lot less boilerplate but also more opportunity for mistakes if you aren't careful.