The language is very much alive, with oracle having release java 9, 10, and now 11 being just around the corner The JVM has improved with new garbage collectors, and it's not too bad in terms of speed. Sure, it's not C++ level, but it's not slow as python. Heck, the JVM is good enough that people are developing new languages for it, Kotlin and Scala.
Java is still used very actively in enterprise and android app development, it's hardly dead. Why do people hate it though?
Popularity is no indicator of quality. Stop trying to use it as an argument.
- Extremely verbose - Massive runtime - Forced OOP - Does not work well with low-level Unix stuff - Not fun to program in at all
Dominic Ward
Most people think JVM = Java and as everyone would agree, Java is a complete pain to work with. So, that's why people hate it.
>verbose >forced oop >not fun to program in JVM dialects fix this. >massive runtime Huh? It's far smaller than every other language other than C/C++. >does not work well with low level linux The JVM was designed to be cross platform.
Asher Martinez
JVM languages all share the same issues as Java because JVM bytecode is tightly coupled to the semantics of Java.
see: every single JVM shitlang having type erased generics
Leo Rivera
well, any language that runs inside a runtime (java, python, c# (.net)) will never be as good as C/C++ for accessing low level stuff and that's because they aren't designed for low level stuff
Ryder Gutierrez
> - Extremely verbose > - Not fun to program in at all Pretty much these. Java is so fucking verbose which makes it unfun to work with. At least it pays the bills and I can do fun stuff when I'm not working.
JVM itself is pretty good though.
Chase Green
because it reminds people of their work on enterprise shitware
Daniel Roberts
I don't hate Java I just hate working with Indian contractors.
Jackson Adams
People hate it for the same reasons it's popular. The majority of the world's programmers are employed working on various corporations internal systems, and for those it's probably not a good investment of debugging time to get a lower-level language version debugged. Not to mention that the majority of programmers couldn't manage something like that..
I wouldn't honestly recommend that corporations use something without GC and runtime type safety. Mostly that means java or c#. The upshot of which is that the majority of pedestrian, bog-standard code written by pajeets ends up being java. It's hardly auspicious.
Michael Stewart
Many of the programs I write are inherently unportable, so not being able to drop down to low level interfaces to do the shit that needs to get done is very problematic.
Landon Hughes
Java is not as verbose as it used to be. And C++ with its "const noexcept final override" qualifiers is actually becoming more verbose...
I use C++ because I have to (low latency stuff) but otherwise Java is a much, much nicer language to program in.
In fact, the best C++ is Java-style C++ (i.e. Qt instead of the STL crap).
Caleb Russell
C++ is shit too.
Christopher Brown
it's actually interesting that java was originally developed with the goal of fixing C++'s mistakes
There's got to be a better way to do this: Type typeInstance = new Type()
Connor Ross
in an ideal world what would you type?
David Jackson
For a person who sees it first time? Sure. For me haskel is unreadable. It's just a list of lambda which will be executed in context of object with type S and return object with type S and that list can be nullable.
Thomas Kelly
You can use var now.
Nolan Martin
"executed in the context of object with type S" this shit's retarded
just make it an S -> S why you gotta complicate shit
John Hughes
Type instance();
Brody Reed
and where would you store that object, how would you access it afterwards?
What about: Type(param1, param2) instance; treating the type declaration as the constructor thereof
Matthew Wright
I don't hate Java, but I don't like it either. >Irritatingly verbose >Shitty math libraries >OO, but not pure OO >Not fun to use
Hunter Green
Because it is useful to make shit like on the pic. You are making the lambda an extension of the object, so the lambda receives the object as "this" reference.
> People don't use Lombok because "it's a hack" > People use google's Immutables abortion instead, which just adds more fucking ceremony what the fuck. > People add on fifteen code generators instead of dealing with "verbosity", and now instead of having 4-5 java classes, you have 8-10 fucking configurations instead that "saves you work" but all they do is generate interfaces and shitty implementations that you need to work around instead. Yes, I get that generating shit from wsdls make sense but ffs, stop generating everything all the time! > So now nobody uses the good tools, everyone uses the wordy tools, everything takes more effort than doing it manually, but user, imagine how shit it would be without these tools!
When a class has legit 476 lines of imports, something's wrong.
It all started with Spring and it's @Autowire bullshit. Fuck Spring.
Jaxon Kelly
This.
Me, the older I get, the more I prefer languages like Java. It's simple, clear, stable, has a big standard library, and a huge community behind. You can find third-party libraries for everything, even OpenGL or Vulkan bindings, and these are well maintained. No feature bloat on the language itself, you can learn it in a week. With Java you focus on your code instead of focusing on the language syntax.
oh no what a terrible thing
Jaxson Gray
Thanks god you can now use spring in functional way and set up all that shit via the code and not the shitty xml gibberish.
Nicholas White
>- Extremely verbose Good thing. Well named classes and variables makes work much easier >- Massive runtime Not really. >- Forced OOP Not really. I would prefer if it forced more OOP (since it is oop language...) but new version are leaving OOP... >- Does not work well with low-level Unix stuff It is not meant for that. >- Not fun to program in at all And this explains your problems with java. Seeing verbosity and oop as issues happens to people that program for fun. Not for real work. Basically you are neet.
Dylan Smith
This, all of these are true.
Verbose is good, JVM is fast and unless you are doing embedded the ~200mb runtime is fine and with java 9 you can make self containted jars that are only a few mb in size
I personally love the verbosity of Java. It's as specific as it needs to be while avoiding eyesores like >>, ::, __name__, *args AND **kwargs.
Christopher Foster
I love programming in Java. IDEs are powerful as fuck, making it all so fucking comfy. Need getters and setters? Klack generated. Need to refactor/move some class? Klack. Done. So I don't really get the verbosity argument.
The ecosystem is one of the best too. Need some third party library? Maven this, maven that. Shit builds literally anywhere. Just like that. And you'll find all you'll ever need. And it's maintained too. And actually works.
Also JVM is fast.
Ryan Garcia
Well, yes. I've tried Vert.x some time ago and now I think I will use it next time I need to write a backend. Especailly love it with kotlin coroutines.
Carson Russell
Where's the reference, you fuck?
Liam Bennett
Android doesn't use Java. There is no Java in Android. You can't run Java in Android.
There is only the Android api, you can't use the java api because the runtime doesn't support java.
Evan Howard
I don't think java is a bad language. It definitely has its faults, but I've always considered it reasonably clean (well, so far). However, those updates are the one thing that I am getting fed up with. Pretty sure the nr1 reason for all those updates aren't so much necessary improvements as they are reasons to keep the industry stocked with work.
Michael Thomas
>Why do people hate it? I'm old enough to remember how horrible the original Windows implementation of Java was on PCs. That poor implementation took the shine off Java for me permanently.
Oh that and dynamically laid-out UIs. That never looked good.
Oh and Eclipse takes five minutes off your life for every minute you use it. Taking up smoking is safer.
Austin Walker
> Extremely verbose > Not fun to program in at all Sure, it's not a scripting language where you can hack in a lot of functionality in a few lines, but that has its advantages. The verbosity helps with reading the code even without having comments, the extra layers gives even more flexibility, although most people probably won't care what kind of reader they need to parse some text file, the few that do have the choice. Lastly the fact that it's strongly typed makes it much easier to debug. It's actually a blessing with big programs, not so much small ones.
> Forced OOP Just a minor inconvenience to those that don't know it. I prefer it. Again, once a program gets to a certain size, or you're working on it with multiple people, the separation OOP gives you is great. And forced means nobody can sneak in functional shit.
> Massive runtime > Does not work well with low-level Unix stuff Valid points. It's not a language meant to do low level stuff or build small tools with. It's so OOP it expects to operate entirely in it's own world, leave the rest to whatever it runs on.
Luke Reed
dumb boomer
Hunter Ortiz
I am Generation X, not that it matters. Attacking me personally changes nothing about what I wrote.
it changes everything because all your points are extremely outdated
Jayden Reed
harder than python, slower than c++; there's just no proper usecase in between them: want programs that are fast and easy to develop? want performance? want neither? than java is for you!
That you think python has any usecase at all save for small scripts tells me a lot about your knowledge of software engineering.
Asher Barnes
>That you think python has any usecase at all save for small scripts tells me a lot about your knowledge of software engineering. more like you expose yourself here, this is becoming more and more false
Daniel Powell
It used to be much worse than it currently is.
The main downside I can think of is that it still has too C-inspired syntax (not everything is an expression, too many things are statements which don't compose well) and something like Kotlin has nicer syntax. The other is the excessive IDE culture which makes it annoying to start a project without an IDE and a hard to configure build system to manage dependencies.
Java is pretty comfy by now, and it's about to get type inference and value types.
Ethan Rodriguez
In meme startups maybe It is not considered a language for serious development in any big corporation where things actually matter. The popularity of python is solely tied to its popularity among fresh cs students and bootcamp zoomers, who think that because they know their babby's first programming language that they can apply it to everything.
Oliver Sanchez
it already has type inference
Caleb Turner
It's nice for FP and JVM. I'm finding myself moving to haskell more and more, but I think scala is the second best FP language out there after haskell.
Yeah Java is getting nice features now. They're talking about adding pattern matching and more.
But the problem then is that you're just polishing a turd. Sure the features are nice but it's going the C++ feature-creep way. It makes sense for Oracle, since so many people use Java, but I don't see how it makes sense for individuals to use a language that has schizophrenic functionality just for the sake of backwards compatibility and tradition.
Benjamin Gomez
Python is *enough* for most straightforward projects (and not just scripts), look up Bots (the EDI server) for a good example
Ryan Davis
Does it matter much if I learn C# before Java?
Elijah Bennett
Java is simpler and easier than C#. You'll probably have an easier time learning Java first. On the other hand, if you know C# then you essentially already know Java.
Jonathan Gomez
Nope Recommendation if you want to learn java: mooc.fi, go to the english site and do the courses.
Angel Foster
>Why do people hate it though? Microshaft
They're the reason. Basically they've created C# to fuck Java over. Same syntax but just extended enough to be incompatible. Same old embrace, extend, extinguish. My opinion.
Brody Roberts
Java is not the only one to do it that way...?
Ryder Watson
C# has more features desu
Leo Taylor
that isn't automatically a good thing see: C++
Wyatt Martin
Yep. It was pretty obvious when C# came out too.
Brayden Cooper
I think C# exists as a necessity for Microsoft. Microsoft had tried J++ and J# and both failed. At that point the only language they had made themselves was Visual Basic which kept going through significant redesign stages. Visual Basic sucks as a language so it is not hard to see why Microsoft was interested in a language that was strongly typed but not nearly as a clusterfuck as C++.
Christopher Martinez
It's a good language from a speed & reliability perspective, but people hate it because you have to either write unmaintainable code with it or type so much to attain maintainability that you get carpal tunnel. Some features it needs badly:
1. A literal notation for maps. 2. A boilerplate-free way of sharing code that does not abuse inheritance. 3. Some way to extend new interfaces to existing types. 4. Real lambdas. 5. Destructuring-bind 6. multiple-dispatch 7. A non-half-assed type system.
That's just off the top of my head. I use Java, and it works great, but I curse how obtuse it is constantly. I think if you solved 1 & 2, 95% of people would stop complaining.
Jackson Jenkins
most of your points are fine but 1 and 4 are retarded
Benjamin Bell
Why would you use Java if you don't want OOP???
Isaac Peterson
you forgot the ;
Oliver King
it's a better language for general programming than C++
"everyone" hates languages that are better than C++
I agree but >JVM dialects fix this. What? I don't think people understand how fragile and inferior other JVM languages are. To even interface with Java code, Scala comes with a complete Java front-end! No other JVM language, not even Kotlin, comes close to Scala's robustness at interfacing with Java.
Hudson Roberts
When I make a mistake in java I needed to redeploy my WAR and restart the WAS. It takes too much time for 1 mistake that I fail to fail fast.
Camden Wright
Android Studio Dracula Consolas 18
Jack Collins
>t. can't program for shit and only cares about the editor
Kevin Walker
What the fuck are you talking about? Kotlin is 100% interoperable with Java. Unlike Scala.
Noah Harris
Based.
Robert Thompson
OSGi exists. Update your bundles at runtime.
Chase Flores
>using war >using was
dumb boomer. Use embedded http servers for each application like spring or vert.x do it
Benjamin Rodriguez
You are mostly right, but making my workflow fun is important to me. I code because I find it interesting and fun. I would do it even if nobody paid me for it. I think this is the difference between a good programer and a pajeet who is basically forced to write code.
Hudson Mitchell
Python is easy to learn, hard to master. It's a highly flexible language that has options for a wide range of tasks, from writing robust backends to using it as an orchestrator language for heavy compsci stuff. I know that its easier to shit on tech that you don't understand but it's really fucking pathetic and exposes you as someone who is really insecure about his knowledge...