17 comments

8

No Java. Java bad. Security poor. Updates constant. No Java.

2

Can you elaborate on the security?

I wouldn't knock it for constant updates though. They are a bit in your face, but considering my Firefox install is on 43.0.1 and I've only seen it ask me to restart a handful of times, I am not sure I like being in the dark about updates. If I had more time I think I would want to know why Mozilla is updating Firefox yet again.

1
2

Java is fine. The security concerns are all from the browser plugin.

Install openjdk 8, skip icedtea-web (java web browser plugin), avoid oracle, and all is well.

edit: /java web plugin/java web browser plugin/

1
0

The vulnerability is in Apache Commons Collection and not plain java. The problem seems like it's resolved in 3.2.2 and 4.1 since 2015-11-21.

1

That's like saying Flash is fine, the only problem is the browser plugin. The browser plugin wouldn't be a problem if Java itself was secure.

Having the plugin in millions of browsers does make it a prime target, but that doesn't change the fact that Java is a security nightmare.

0

I looked for the vulnerabilities that had more information and it seems they're all exploits through web applets. CVE-2015-4903, CVE-2015-4906, CVE-2015-4916, CVE-2015-4893.

Adobe seems to believe that Flash Pro is still fine since they changed the name to Animate and are pushing html5.

5

Why Java? Why not C#?

I have noticed that many projects in Java tend to be write once run bad on any device.

Of course Java is more cross platform, but C# is coming to cross platform too.

1

Why not both?

Regardless, I am not a fan of ms after having to try and understand their licensing (they have training courses just to understand their licensing). I would love to use their tech more, but they seem to put a giant paywall around it.

You don't get that with OSS. I use SQL server, but because of their ridiculous licensing I would love to jump completely to postgres if given the chance.

0

I agree, both.

1

C# is still pretty much Windows-only for now.

The state of programming languages is pretty poor at the moment.

There was an explosion in popularity of Ruby, Python, Clojure, Go, and a bunch of other languages, but they haven't really added anything to programming languages. What they've done is add elaborate tools and scaffolds to make working with them easier. that is, what some people call a "feature" of a language is really just syntactic sugar.

Naive Programmer: "it's" is so much easier to write than "it is", I'm going to write a new language which has this feature!

Unfortunately, it means that the good ideas have been spread out among the different "languages".

Take a look at the "Multiple Catch" examples. Nothing has changed with the concept of exceptions or how they're thrown and caught. The only thing that's changed is the perceived convenience of the new syntax. I say perceived convenience because while the new method makes it easier to duplicate code, it means that you have to do a lot of extra work when you want to "unduplicate" that code. In other words, something has changed in your program and you need to handle each exception differently.

Also:

unit tests — which are only effective if you already know what bugs you have

u wot?

4

I think the main reason I hated Java was because they made us learn it in school. Also it was slow and I wanted to make high performance programs at the time.

Apart from that I got annoyed at being made to jam everything into this object paradigm, with classes and constructors and get and set methods ugh. It was also a pain to look at people's code with so much ugly nesting and braces and keywords. Declaring variables and functions with all those terms in front of them, trying to trace these chains of things pointing to each other, digging into that Api site to figure out what the damn thing was doing. It was just a huge pain in the ass and Python to me always felt cleaner and easier.

That and the constant security updates, having to support them, the incompatibilities, the thing constantly blocking, vendors refusing to update their application to be compatible with the latest JRE, forcing you to containerize everything, again, giant pain in the ass.

I can see the appeal in Java if you have a bunch of business logic and want to be able to maintain it 10 years later, it spares you the pain of trying to keep ancient evil green screen machines alive. They really convinced the world it wasn't gonna be another cobol. For the web sites and applications that most of us seem to be working on I'm not seeing the appeal.

But I agree with the premise I guess, it probably is worth a second look

2

"Use the right tool for the right job."

1

Oh gawd. Just wait until he "discovers" .NET

0

Right tool for the job.

Bash is good for "live" operations.

Python is ideal for scripting tasks and light programming.

Java is ideal for application development because it is faster and the code is more orderly than Python.

C++ is ideal for performance applications. Often you only need a small component to be written in C++ then implemented through the JNI library in Java.