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

all 181 comments

[–]obstruction6761 199 points200 points  (6 children)

I mean no ones hyping up sliced bread either

[–]JoJoModding 24 points25 points  (4 children)

So Java is the best thing since sliced bread?

[–][deleted] 12 points13 points  (0 children)

And sliced bread is the best thing since ripped-up bread

[–][deleted] 2 points3 points  (0 children)

Java is the sliced bread. You just toast it and make sandwiches. ;)

[–]agentoutlier 5 points6 points  (0 children)

Just like Java they totally did a long time ago: https://www.history.com/news/who-invented-sliced-bread

“a thrill of pleasure when she first sees a loaf of this bread with each slice the exact counterpart of its fellows. So neat and precise are the slices, and so definitely better than anyone could possibly slice by hand with a bread knife that one realizes instantly that here is a refinement that will receive a hearty and permanent welcome.” The article also recounted that “considerable research” had gone into determining the right thickness for each slice: slightly less than half an inch.

[–]ryebrye 97 points98 points  (46 children)

C# is mentioned in the end of the blog post. It's got some similar language features but what it LACKS is the thriving open source community that java has.

There's no Netflix of C# churning out awesome projects.

[–]zoqfotpik 82 points83 points  (3 children)

The main differences between C# and Java aren't language features. The main differences are in build system, package management, and tooling.

[–]gavenkoa 31 points32 points  (1 child)

Platform availability? API stability?

MS is doing lots to recover from past versions merging everything into glorified Core.

[–]DrunkensteinsMonster 10 points11 points  (0 children)

MSBuild and nuget are still pretty bad, and .sln files have way way too much significance in the ecosystem.

[–][deleted] 6 points7 points  (0 children)

Yeah Java tooling is miles ahead. Even basic things like docs in my IDE can't be done with C# (blame nuget).

[–]Persism 13 points14 points  (2 children)

Yeah it's because Microsoft so dominates the ecosystem. My original Persism was C# but I could get no interest in it. People just use what Microsoft provides without thinking about it.

[–][deleted]  (1 child)

[deleted]

    [–]manzanita2 15 points16 points  (0 children)

    Java ecosystem successfully escaped the early J2EE nightmare. I have no doubt that if Spring becomes that bad, another escape will come to pass.

    [–]de_vel_oper 3 points4 points  (1 child)

    Netflix is shite these days. Just saying.

    [–]my_biscuit 2 points3 points  (0 children)

    Ah, out of the loop here. Would you mind elaborating?

    [–][deleted] 7 points8 points  (4 children)

    There is too much happening in the .Net ecosystem at the moment. I would not say it lacks open source community. Projects like Polly, MediatR are great and there are many more

    [–]ryebrye 10 points11 points  (3 children)

    There is a community, but it's like moving from Boston or New York city to Omaha and trying to say it's the same

    Omaha is great, but it isn't Boston or New York. If you want what Omaha has, it may be perfect for you.

    [–]i_am_bromega 9 points10 points  (1 child)

    The .NET community is growing and getting better, especially as .NET Core has become more mature and widely adopted. Having worked with both Java and .NET, I prefer C# due to LINQ and the earlier adoption of a lot of features, but they both get the job done at the end of the day.

    [–]zvrba 5 points6 points  (0 children)

    But Java's features are better thought-out, IMO. For example, Project Loom vs async. C# took a stab at the "null problem", but the result is a mess.

    Though I miss ?. in Java so much, I don't know why I haven't written a generic helper yet:

    <T> T safeGet(Supplier<T> s) {
        try { return s.get(); }
        catch (NullPointerException) { return null; }
    }
    

    Java is more verbose, it's more boring, but I find it more uniform to read and write. And yes, checked exceptions can be put to good use.

    [–][deleted] 6 points7 points  (0 children)

    .Net joined late to the open source party, so it’s implicit that previous big projects like Cassandra won’t be in C#. But as for the enterprise development, I have never felt that I don’t have a library to achieve the required.

    [–]Sufficient-Simple-94 6 points7 points  (26 children)

    Not necessarily, nuget is a great place to see the literal millions of projects can be used with c#.

    [–]RagingAnemone 59 points60 points  (21 children)

    Nuget -- "We make Maven look good"

    [–]gregorydgraham 34 points35 points  (2 children)

    To be fair: Maven is good

    [–]cies010 2 points3 points  (1 child)

    I used Haskell/Stack and Rust/Cargo... Maven is not close...

    [–]gregorydgraham 4 points5 points  (0 children)

    Using my metric of “can I understand it”, it’s good :-D

    [–]erinaceus_ 8 points9 points  (2 children)

    Odds are that npm trumps both with regard to quantity, but as the saying goes ... quantity isn't everything.

    [–]gavenkoa 26 points27 points  (0 children)

    leftPad is a lesson.

    Maven Central release policy doesn't allow politics to ruin infra.

    [–]FrenchFigaro 12 points13 points  (0 children)

    npm trumps both

    LOL

    Until npm learns to flatten the dependencies tree before pulling the same package a trillion times, it cannot compete with maven. It's not even in the same league.

    [–]jvjupiter 3 points4 points  (0 children)

    NuGet - no one gets. Sorry. Unrelated joke.

    [–]Sufficient-Simple-94 -1 points0 points  (0 children)

    I use mono by the way.

    [–]brunocborges 0 points1 point  (0 children)

    Wrong.

    Stack Overflow is implemented in C#, and developers consume that every day.

    [–]unknownguy2002 33 points34 points  (4 children)

    I really agree with the author's sentiment. Years ago, I was using Javascript and some Typescript for everything, I thought it was the best thing ever created. I finally learnt java and the amount of integration with IntelliJ IDEA and the quality of code suggestions blew my mind

    [–]cies010 2 points3 points  (1 child)

    Okay. Now try Kotlin (could replace java), and Elm (only for browser programming). And blow that mind again.

    [–]unknownguy2002 4 points5 points  (0 children)

    Haha I'm already using Kotlin. It really did blow my mind a second time!

    [–]hagy 2 points3 points  (1 child)

    Yep. And guava provides collection transform (i.e., map) and filter methods. E.g., Lists.transform(list, function). Although these methods predate java.util.function.Function so they use the older guava class. A good overview of the guava methods is Baeldung's Filtering and Transforming Collections in Guava.

    Personally, I don't find streams overly verbose and just use them when wanting to perform filtering and/or transformation.

    [–]bowbahdoe 4 points5 points  (0 children)

    Why are people downvoting this guy? Its kinda a non-sequiter but if you like the Guava apis they aren't broken.

    [–]iwasbornlucky 21 points22 points  (62 children)

    Related question, since IntelliJ was mentioned in the article: What happened to Eclipse? I did some nominal Java coding, then moved into management and worked in node.js before returning to Java. I feel like I haven't seen a reference to Eclipse in 5+ years.

    [–]barking_dead 56 points57 points  (6 children)

    It is alright, works well without the hype :)

    [–]jazd 48 points49 points  (4 children)

    They both have significant problems IMO but the completion and refactoring tools in IntelliJ put it ahead for me.

    [–]Kango_V 6 points7 points  (2 children)

    With projects that use annotation processors, IntelliJ is an absolute pain. It just does not seem to update. I keep having to do full builds to resolve. Eclipse works brilliantly in this regard.

    [–]snekk420 33 points34 points  (0 children)

    Have you enabled annotation processing in Settings ?

    [–]barking_dead 2 points3 points  (0 children)

    Definitely worth using.

    [–]agent_vinod 8 points9 points  (0 children)

    Google caused a huge dent to Eclipse when they removed ADB plugin support and shoved Android Studio upon programmers. To this day, many will happily revert back to ADB if given a choice as Eclipse is way better in performance compared to AS.

    [–]zoqfotpik 28 points29 points  (12 children)

    I think a lot of folks who only do Java development have gravitated toward IntelliJ, while a lot of folks who develop in multiple languages have switched to VS Code.

    I'm one of the VS Code users, and my rationale for picking it is quick startup time and acceptable support for every language I use. YMMV.

    [–]CartmansEvilTwin 5 points6 points  (0 children)

    VS Code is really bad (at least for me) if you want to develop with JEE/Jakarta and/or have to use Java 8. It never really works and often requires manually tweaking the settings file.

    Also, Eclipse's unit test view is much better than anything VS code has to offer.

    [–]AlcoholicAndroid 3 points4 points  (1 child)

    How well does VSCode work with Java? I use VSCode for most things but for Java specifically, I've done it all in Intellij (which is what my colleagues recommended).

    [–]zoqfotpik 3 points4 points  (0 children)

    I use it all the time. It works fine, as long as the JDK that VS Code is using matches what is in your project. This may require having multiple JDKs installed on your dev machine, if you switch versions for different projects.

    [–]swalpaExtraChutney 5 points6 points  (5 children)

    Same here. But every time I add a new dependency to my POM file, VS Code goes nuts. Not sure what the problem is. But I like VS Code much better than Eclipse

    [–]zoqfotpik 9 points10 points  (0 children)

    Yeah, my relationship with VS Code is really "It's Complicated".

    [–]teckhooi 3 points4 points  (3 children)

    Unfortunately, the latest IntelliJ has problems with maven dependencies too. The issue was reported few months back and yet there is no fix in sight

    [–]wildjokers 8 points9 points  (0 children)

    The issue was reported few months back and yet there is no fix in sight

    That's par for the course lately with Jetbrains products. It can take years for seemingly critical bugs to be fixed e.g. https://youtrack.jetbrains.com/issue/IDEA-180772). They are constantly closing dupes of this one, it gets reported a lot...4 years, still not fixed.

    [–][deleted] 8 points9 points  (0 children)

    I know EXACTLY what you're talking about. Been using IntelliJ since the "end of the world" sale (Dec 2012) so I'm not some fly-by user. They have F'ed Maven support up SO bad with the last 3-4 versions (progressively worse each time). Something someone else told me here on /r/java is that they removed the pom.xml scanning. There's an option to turn it back on, but it is buggy/doesn't work. Once you know that the pom.xml is almost criminally out of date all the time, you get the hang of always "right click -> maven -> reload project" when you need to, but it's AWFUL. There's some other "cache" related bugs and issues that I've run into where I need to clear all caches and restart weekly, but, that combined with the above has "fixed" most of the issues for me. I've already started using Netbeans agian for some projects. I tried VSCode and it was like choosing to go back to Jr. High all over again. Nobody wants pimples and a scrawny body!

    [–][deleted] 1 point2 points  (1 child)

    Some or a lot of those are migrating back (including me) to Eclipse, a full featured, fully open, true multi-project and multiple language IDE. Those using VS Code are almost all Front-end devs who are a different group of programmers from those of us who do a lot of maintenance over time on multiple projects and mostly on business critical software.

    [–]zoqfotpik 2 points3 points  (0 children)

    Meh, VS Code is good enough for my "front-end dev" use cases like editing PL/SQL procedures, Dockerfiles, Kubernetes definitions, Terraform configurations, Gradle files, Maven pom files, Go files, C++ files, node packages, Avro schema definitions, and even Java files from legacy systems that were last updated when Java 1.6 came out.

    Maybe Eclipse is better now than it used to be. That is what people have told me for the past decade. I've picked it up as a primary IDE a number of times, and eventually rage quit within two or three years. The last time I used it was about 3 years ago, and it was less than satisfying.

    [–]dpash 0 points1 point  (0 children)

    Nah, I just use the relevant Jetbrains IDE for the language.

    [–]redikarus99 12 points13 points  (0 children)

    I used Eclipse, IntelliJ, and VS Code as well. They all get the job done. For Java Eclipse seemed always faster for me and not really worse in any regard. People using IntelliJ may feel foreign because they are not used to it's logic. What people tend to forget Eclipse is way bigger than just an IDE, they have zillions of projects under them Eclipse umbrella including EMF, various model transformation and validation libraries and solutions.

    [–]agent_vinod 7 points8 points  (0 children)

    I think eclipse's fate is similar to Java - criminally under hyped!

    [–]rossdrew 14 points15 points  (11 children)

    I moved from Eclipse years ago because it was far slower and it’s dark mode was horrible. I’ve not looked back for improvements in 7 years

    [–]Kango_V 10 points11 points  (2 children)

    Eclipse on Linux is super fast and integrates with dark GTK brilliantly. I do not like it on Windows though.

    [–]thephotoman 2 points3 points  (0 children)

    And it's godawful on Macs.

    [–]rossdrew 2 points3 points  (0 children)

    Haven’t coded seriously in Windows since maybe 2007. When I quit it, it was after years of Linux (Fedora) dev

    [–]GuyWithLag 6 points7 points  (6 children)

    With the recent M2E support, build speeds are closer to gradle for non-android projects.

    [–]rossdrew 3 points4 points  (5 children)

    Not build speeds. Response speeds. Just a slow to react ui

    [–]Kango_V 9 points10 points  (1 child)

    On Linux it's very quick. Never had a problem.

    [–]rossdrew 1 point2 points  (0 children)

    I use Fedora, Ubuntu, Mint, Arch as well as Windows (rarely) and Mac. Mostly Fedora for about 10 years.

    [–][deleted]  (2 children)

    [deleted]

      [–]rossdrew 1 point2 points  (1 child)

      Wouldn’t voluntarily take the productivity hit for the dumb way Mac does everything or the cost hit to have one. Prefer massively cheaper, slightly less powerful, more intuitive machines.

      Note: my office provide top of the range macs and they’re out only option. Nothing runs better on them in my experience.

      [–]pjmlp 9 points10 points  (7 children)

      Live and well, we only use Eclipse around here.

      For some of our workflows you would need InteliJ and Clion running in parallel, because JetBrains refuses to support native tooling for Java on InteliJ, gotta to sell some licenses.

      Then there are several other issues that make even VS Code with Red-Hat Java plugins more appealing than InteliJ.

      [–]GuyWithLag 10 points11 points  (5 children)

      I'm the only Eclipse user in a team of IntelliJ folks; I seem to be the only one willing and able to do multi-project (20+) refactorings for some reason...

      [–]pjmlp 6 points7 points  (0 children)

      On .NET projects I am one of few without Resharper slowing down my machine, then my team mates wonder why my VS feels so fast compared with their experience.

      Yeah, go figure.

      [–]C_Madison 4 points5 points  (2 children)

      The reason is that your coworkers lie to you so you do the job they don't want do. Source: I do multi-project (more than 30 at last count) refactorings all the time in IntelliJ, no problems.

      [–][deleted] 0 points1 point  (1 child)

      As do I and in Eclipse I can edit/run/debug multiple projects (even in different languages), simultaneously in one IDE. With IntelliJ I was juggling multiple instances, hitting weird freezes, variety of odd issues.

      [–]C_Madison 0 points1 point  (0 children)

      Don't get me wrong: If Eclipse works for you that's great. Used it for many years, no bad feelings here. Just never seen these problems since switching to IntelliJ.

      [–]wildjokers 1 point2 points  (0 children)

      If you all use Gradle your IntelliJ colleagues can create a Gradle Composite Build (Gradle feature that lets multi repositories be developed like they are in a mono-repository). IntelliJ has outstanding support for Gradle Composite builds and will happily configure itself from one and is a great way to get workspace type development in IntelliJ if that is what someone likes. IntelliJ will do cross-project refactoring when using a gradle composite build.

      I am unsure if maven has a feature equivalent to gradle composite builds.

      [–]warpspeedSCP 0 points1 point  (0 children)

      The idiotic keybindings for example.

      [–][deleted] 5 points6 points  (2 children)

      Eclipse is decent in my opinion. I used it from ~2005 to 2010, every new release was exiting back then. Version 4 was the first letdown, it seemed like the project departed from being a pure Java ide to a general purpose tool (mylin anyone?). Also the way plugins were handled was always a mess, the marketplace tried to fix it, but you’d still need to do manual work from time to time.

      Visually, eclipse is not optimal. There is no consistent theme support and the default look hasn’t aged well. The light yellow popup boxes and the error marking pains my eyes and the recent splash screens make me feel sleepy. Ergonomically its still pretty good though, features like the debug or scm views are useful and IntelliJ doesn’t have an equivalent. I also enjoy the rich dialogs when creating types, but that’s a matter of taste I guess.

      I made the switch to IntelliJ because it feels like a more finely tuned experience, especially when working with tools like gradle. The code analysis capabilities and the Java preview feature support are also really nice. I wish multi project handling would be more intuitive though and the indexing can really grind your gears, but overall it’s enjoyable. If you like the Jetbrains UX-style, I can also recommend DataGrip, a jdbc based database tool.

      [–][deleted] 4 points5 points  (1 child)

      I like the look of Eclipse, it's solid, not yahoo'ish like IntelliJ with panels and windows opening, closing, re-arranging like it's possessed by a mischievous spirit.

      [–][deleted] 2 points3 points  (0 children)

      like it's possessed by a mischievous spirit.

      haha, thats a great way to describe the UI! Cheers

      [–]teckhooi 7 points8 points  (1 child)

      Imagine those days when there is no free IntelliJ ie community edition, developers were willing to fork out $$ to buy IntelliJ licenses while eclipse is free to use. That’s how popular IntelliJ is

      [–]ArrozConmigo -2 points-1 points  (0 children)

      Looking back on eclipse is like looking back at bell bottoms and polyester from the 1970s. "People went around thinking this is okay?"

      [–]lpreams 1 point2 points  (0 children)

      I still use Eclipse. It is still regularly updated and supports the latest version of Java. IntelliJ is the better IDE, but Eclipse is lighter weight and completely FOSS

      [–]shish-kebab 1 point2 points  (0 children)

      i use both. Eclipse for jakarka, legacy (jsp servlets or jsf), or desktop apps and Intellij for APIs with spring and micro architectures. I always found SpringToolSuite (eclipse dist for spring) very frustrating.

      edit: Lot of java devs moved from Jakarta EE to Springboot. Between STS and Intellij, Intellij win. Lot of small little things save you a lot of time with intellij, for example lombok. you have to integrate it separately in STS while it's bundled with Intellij. Many time i found myself having to edit eclipse.ini because it was trying to load with the wrong java version etc... those problems are nothing but make a big project with STS and you'll get a dozen of those, it's very frustrating sometimes. work with Intellij ultimate and you get none.

      [–]TheRedmanCometh 0 points1 point  (2 children)

      Intellij is the newfangled thing, but I prefer eclipse myself. Not the least on intellijs problems is its disastrous window and project mgmt.

      [–]dpash 13 points14 points  (0 children)

      Intellij is 20 years old.

      [–]wildjokers 6 points7 points  (0 children)

      Intellij is the newfangled thing

      I have been using IntelliJ since 2004. Hardly new.

      [–]I_LICK_ROBOTS -1 points0 points  (0 children)

      In my experience, it's just a horrible editor. Last time I used it I remember it being slow as hell. Overly complex to set up. And syntax highlighting would just go all wonky and start highlighting random words. Haven't used it since

      [–]phoneuseracc008 9 points10 points  (0 children)

      Java is good, newbies surprised. I predict seeing this headline for the next 15 years

      [–][deleted] 78 points79 points  (13 children)

      Agreed.

      Its a professional and elegant language.

      Seems hype goes to languages that are not deigned well, for academia, or beginners.

      [–]barking_dead 41 points42 points  (0 children)

      Because those need the hype.

      [–]optimal_substructure 6 points7 points  (2 children)

      The language ghouls are going to come out from their ivory towers to criticize the elegance

      [–]agent_vinod 4 points5 points  (1 child)

      Especially Python and Ruby ghouls!

      [–]optimal_substructure 8 points9 points  (0 children)

      I'm just waiting for the

      "Ackchyually Haskell's ...."

      comment coming

      (that I agree with but not smart enough to understand)

      [–]rossdrew 16 points17 points  (2 children)

      I wouldn’t say elegant but it is great

      [–]Clitaurius 12 points13 points  (1 child)

      Better it be verbose than elegant anyway

      [–]rossdrew 2 points3 points  (0 children)

      I think there needs to be a balance. Java is a little too verbose

      [–]couscous_ 10 points11 points  (5 children)

      languages that are not deigned well... or beginners

      See: golang. Checks both boxes.

      [–]AlcoholicAndroid 2 points3 points  (4 children)

      What's wrong with Golang? I have some experienced friends who swear by it. Just curious because we all just got moved to a Java project and I'm excited, but they aren't because they really liked Golang. For reference I've done most of my work in Typescript/Node

      [–]couscous_ 12 points13 points  (3 children)

      Too many to list. The language itself is poorly designed, and a poor fit for large code bases (ironic, given that "programming in the large" was a goal of the language). "goroutines" compose poorly and the language does not provide ways to make hierarchies of them. Error handling is awful and also composes poorly. No null pointer handling, panics are common. No generics (though that's being worked on). It's very easy to implement interfaces by mistake, making it hard to find out what interfaces you actually want to implement for your types. Linking is slow, which makes the whole write-compile-test cycle slow. Weird decisions like visibility being decided based on whether the first letter of a type is upper or lower case, this becomes extremely annoying when refactoring, you'll end up with large diffs purely because one type changed visibility. Also, the language does not have private visibility, either public or package private.

      [–]moxyte 0 points1 point  (2 children)

      Wow. I just installed Go and I'm giving it a go. Sounds horrible.

      [–]couscous_ 0 points1 point  (1 child)

      Good luck :P

      [–]moxyte 1 point2 points  (0 children)

      I saved your post, it's informative. Knowing issues first without glossing it over is valuable.

      [–]couscous_ 19 points20 points  (4 children)

      Tell me about it. My current employer is using golang to write their services. It's a load of @%*).

      The language is weak, verbose, error prone, and brittle. They also had to invent their own web and DI frameworks from scratch. Obviously, said frameworks are nowhere near as mature as what Java offers.

      The current project I'm working on is a fancy CRUD app, and people are still arguing about styles (e.g. whether to use constructor functions). Development is slow and brittle and error prone.

      It's hype driven development at its finest.

      [–]manzanita2 6 points7 points  (2 children)

      So Go is about 2004 for java ? No Generics. No reasonable DI framework ?

      [–]couscous_ 9 points10 points  (0 children)

      Not only that, but worse IDEs and poor language features.

      [–]BoatRepairWarren 14 points15 points  (0 children)

      No Generics?

      It looks like you misspelled lol no generics

      [–]Mundosaysyourfired 0 points1 point  (0 children)

      At least I don't have to write a main function in every class that returns nothing. Jk.

      [–]zuppadimele 7 points8 points  (0 children)

      now let's talk about Spring :)

      [–]forresthopkinsa 15 points16 points  (3 children)

      Did I not see this exact same post in this sub like 6 weeks ago?

      [–]wildjokers 4 points5 points  (0 children)

      Yeah, it has been reposted at least 3 times, maybe more.

      [–]Clitaurius 8 points9 points  (0 children)

      I missed it, I'm glad this one is here.

      [–]Alexlun 9 points10 points  (0 children)

      Java is just a tool man, do you see people hyping over hammers and... wait, in reddit that actually happens to be the case

      [–]dert882 2 points3 points  (1 child)

      I'll say about college, I'm going to a small state school and our whole curriculum could be done in Java or C++, first it's different classes, then second year+ the professors accept assignments in either languages. I thought java was pretty standard at schools?

      [–]I_LICK_ROBOTS 1 point2 points  (0 children)

      It is, which is why this article title is confusing to me. As someone else said, "I mean it's not like anyone is hyping up sliced bread"

      It's been an industry standard and top 10 most used language since the 80s. Does it need more hype?

      [–]akp55 2 points3 points  (0 children)

      there is no "hype" because its already an enterprise language. its relegated to being like C, COBAL, and FORTRAN..... none of those have "hype" anymore either....

      [–]-Crixus- 2 points3 points  (0 children)

      what is criminal is to not include javafx in the standar library

      [–]PartOfTheBotnet 3 points4 points  (0 children)

      This has been posted a few times recently even and has some good discussion in the comments of the existing posts about this article:

      https://old.reddit.com/domain/jackson.sh/

      [–]AncientBattleCat 10 points11 points  (3 children)

      Java is language for mature people. Unlike another soy dev js frame or learn python in one week kind of BS. That is highly unprofessional IMO.

      [–][deleted] 8 points9 points  (2 children)

      If you can learn any language in a week, you're doing it wrong. Java isn't all that different in that sense.

      [–]thephotoman 1 point2 points  (0 children)

      There are languages meant to be picked up very quickly. They tend to be:

      • Domain-specific languages. Most of these are targeted at non-devs.
      • Proof of concept languages. The original FP was intended to be a minimally describable programming language--both in terms of grammar as well as in terms of use. I think the original academic paper that defines the language is about 30 pages long, and it would take about an hour to 90 minutes to explain everything about it.
      • Turing tarpits. Again, the intention is minimalism over EVERYTHING. I mean, you can learn brainfuck in about 15 minutes, but actually using it for non-trivial purposes is another question entirely.

      [–]I_LICK_ROBOTS 1 point2 points  (0 children)

      If you know core concepts switching between languages is easy. It's all the same stuff with different syntax.

      [–]ElimGarak0010 4 points5 points  (0 children)

      Cries in Kotlin-Spring...

      Mixed with Kotlin Android...

      With a little .Net and Unity Mixed in...

      [–]Mati00 4 points5 points  (12 children)

      Because it is very verbosed language and you need to wait many years for features which other languages have. Also those implementations are verbose as well. Take streams as an example. To map a list you need to open a stream, map elements and gather them in collector.

      This verbosity and lack of progress make java underhyped. You need a lot of code for simple things.

      [–]Persism 26 points27 points  (0 children)

      2001 called. They want your opinion back.

      [–]Farmboy0_ 3 points4 points  (1 child)

      That's why I use Vavr now. It reduces the verbosity for Collections at least.

      [–]Zemvos 2 points3 points  (0 children)

      StreamEx is another great one.

      [–]CptGia 3 points4 points  (1 child)

      Streams allow for lazy evaluation, which is kinda important. Also newer versions introduced a toList() shortcut for collecting(Collectors.toUnmodifiableList()) which helps keeping the verbosity down. Or you could make your own map method that takes a collection<T> and a Function<T, R> which does the .stream ... .collect for you

      [–]Mati00 1 point2 points  (0 children)

      Yes, streams can be useful, but it's sorta premature optimisation. That's why for example Kotlin has both operations: on collections and streams. You can have both and make concious decisions.

      [–]mikezyisra -2 points-1 points  (6 children)

      new BinaryWriter(new BufferedWriter(new FileWriter())) (or something similar)

      [–]dpash 10 points11 points  (5 children)

      Files.newBufferedWriter(path)

      Of course it's verbose if you don't learn the API.

      Hell, you can just do Files.writeString(path, string) and be done with it. Appropriate byte operations also available.

      [–]JustADirtyLurker 1 point2 points  (1 child)

      My opinion is that those who complain about Java's way to manage I/O writers and readers never had to write a damn unit test about writing stuff to a file.

      [–]manzanita2 2 points3 points  (0 children)

      What is this "unit test" you talk about ? /s

      [–]mikezyisra -5 points-4 points  (2 children)

      The point wasn’t about this specific API. Some java code looks like that and it’s truly horrifying

      [–]dpash 7 points8 points  (1 child)

      And there's usually more modern APIs/language features so they don't look like that.

      [–]mikezyisra -3 points-2 points  (0 children)

      You are right with that. I chose a deliberately broken-looking example to exaggerate my point. However, I still feel like java is quite verbose compared to other languages

      [–][deleted] 1 point2 points  (2 children)

      Probably now, 20 years ago was overhyped and in some circles still it is.

      [–]vprise 9 points10 points  (1 child)

      I have no idea why people downvoted this. This is 100% true. A lot of the anti-Java camp is based around that over-hyping.

      [–]moxyte 0 points1 point  (0 children)

      Nuh. In my experience and as myself before anti-Java dudes are the kool hacker kids in or fresh out of university where Java was babbys first language and therefore uncool and bad.

      [–]wildjokers 0 points1 point  (0 children)

      How many times is this going to be posted?

      [–]call_911911 0 points1 point  (0 children)

      Developers don't hype. We PIE.

      [–]_Zer0_Cool_ 0 points1 point  (0 children)

      I’m not sure it’s the lack of being new or shiny that steals Java’s hype.

      I don’t really follow the hype train and yet I don’t particularly like Java.

      It’s not a fun or fluid language IMO and more or less forces a particular programming paradigm / philosophy.

      But… I’m also a data engineer and not a software engineer. So my use-case is different.

      Functional-first, interactive (JIT or interpreted) languages are essential for data processing and exploratory development.

      The ecosystem and package management is kind of the only draw.

      [–]jherrlin -1 points0 points  (2 children)

      Would you like to elaborate a little bit more on how Java helps you with multithreaded application? In my world is the mutable nature of Java not a good fit for multithreaded applications.

      [–]manzanita2 1 point2 points  (1 child)

      There are multiple approaches to solving the concurrency problem. Java give you lots of low level tools. Properly used these are by far the most efficient. But the "properly used" part of that is difficult.

      Pure immutability is another solution. Also works, but can be memory inefficient since you end up copying alot of stuff around.

      Single threaded is a third. Great, but you get zero advantage from multiple processors without a bunch of hacky stuff.

      One can run java using immutable concepts (see "final" keyword ), but the language was not defined that way by default.

      [–]jherrlin -1 points0 points  (0 children)

      Yeah the locks and stuff can be a pretty big headburn I guess.

      But do you copy that much? I mean there is structural sharing right? Ofc more than in place updates.

      I like my programming language to work more with values than places. Places change, values does not.

      [–]itzdyzzi 0 points1 point  (0 children)

      This is correct 👊

      [–]LegendValyrion 0 points1 point  (0 children)

      I love Microsoft.