How we fell out of love with Java

แชร์
ฝัง
  • เผยแพร่เมื่อ 24 พ.ย. 2024

ความคิดเห็น • 220

  • @GoodTechConf
    @GoodTechConf 14 วันที่ผ่านมา +57

    It is always funny to see people saying java is old, not fun, complex and not for young developpers. Well, I can tell you I spend 2 or 3 years with NodeJS backend in K8S infra and it was the most painful experience of my entire life. A fucking disaster. This is what fun, uncomplex and new languages are in real life ? Take a look on what GraalVM can do, What Quarkus can do, what SpringBoot can do, and try to do that with the other ones... what a joke. What you are talking about was true at the end of the JEE era, but right now, with the most recent updates Java became really powefull.

    • @acasualviewer5861
      @acasualviewer5861 13 วันที่ผ่านมา +9

      In the fashion industry.. ehem.. I mean, the software industry, people abandon a language right around the time it's getting good. Once Java got really sophisticated with features, performance, and garbage collectors, people moved on to immature languages with less libraries, unsophisticated VMs but a lot of wiz bang features (a lot of which are retro and not very good like some of the "modern" ways to handle errors.. ).

    • @GoodTechConf
      @GoodTechConf 12 วันที่ผ่านมา

      @@acasualviewer5861 so true. The big mistake made by rookies is to underestimate the amount of complexity required by popular infrastructure like k8s. No, you don't use Python or NodeJS in this land. sorry. or you are just crazy. Rust and Go may be good candidates but not for today. they are just for CLI tools in my opinion at this point. They are not ready for complex microservices or at least only for very specific ones. C# can be better than java in many ways but they have "kind of" failed in the container market I think.

    • @RondellKB
      @RondellKB 12 วันที่ผ่านมา +1

      Your comment sums up the software engineering social media landscape perfectly. They over hype these new "exciting" languages, but you end up with a bunch of problems that you wouldn't have had in the first place.

    • @kerojey4442
      @kerojey4442 11 วันที่ผ่านมา

      The herd always listens for their opinion leaders, classic.

  • @AlesNajmann
    @AlesNajmann 12 วันที่ผ่านมา +12

    Java has pattern matching and in fact it's already more powerful that the one in C# because of exhaustive checking on sealed hierarchies. I'd recommend to do a bit more preparation to your videos.

  • @RayBellis
    @RayBellis 14 วันที่ผ่านมา +38

    You can't judge a (major) language's popularity based on stackoverflow question volumes. The more mature a language is, the fewer novel questions it gets.

    • @traintocode
      @traintocode  14 วันที่ผ่านมา

      @@RayBellis Javascript is equally mature however trends.stackoverflow.co/?tags=java,javascript

    • @swedishpsychopath8795
      @swedishpsychopath8795 13 วันที่ผ่านมา +5

      Exactly: That is like hiring the programmer most experienced in debugging. Is it better to be an expert in fixing mess you made or is it better to never need to debug? It is a qustion about maturity!

    • @ruslikaici
      @ruslikaici 13 วันที่ผ่านมา +1

      yeah, maybe they just run out of questions

    • @RayBellis
      @RayBellis 13 วันที่ผ่านมา +4

      @@traintocode not really. JavaScript has continued to acquire new features at a high rate, and there are *so many* questions about JS frameworks that all get tagged with JavaScript too. It's also a language far more likely to attract newbies, and thus generate more questions...

    • @TheBlackManMythLegend
      @TheBlackManMythLegend 13 วันที่ผ่านมา +3

      @@traintocode nature in age not in usage. java is used for web for decades. it's super known. Javascript in the backend it's new so that's why people talk about it.

  • @hristoistoyanov
    @hristoistoyanov 13 วันที่ผ่านมา +18

    In java, you can write functional code without classes, see jep 495. And that is just one thing wrong in this video

    • @traintocode
      @traintocode  12 วันที่ผ่านมา

      TIL thanks. Although that does feel like they are simply copying C# than doing any actual innovation with the language. Time will tell I guess.

    • @FilipCodes
      @FilipCodes 12 วันที่ผ่านมา +6

      "@traintocode 'simply copying C#' funny because C#'s entire existence is copied from Java"

    • @traintocode
      @traintocode  12 วันที่ผ่านมา

      ​@@FilipCodes that's exactly why it's funny. Because now it's flipped, how the turn tables.

    • @RondellKB
      @RondellKB 12 วันที่ผ่านมา +1

      ​@@FilipCodesYeah, you took the words right out of my mouth. C# was literally a carbon copy of Java when it came out.

    • @FilipCodes
      @FilipCodes 11 วันที่ผ่านมา +1

      @traintocode Not at all, actually. Please tell what was brand new invented in C# that hadn't been done before and that Java "simply copied".

  • @EduardoSanchez-un2hh
    @EduardoSanchez-un2hh 12 วันที่ผ่านมา +4

    Java is like the girl you would hook up with, but you'd be ashamed to be seen with.

  • @bariole
    @bariole 13 วันที่ผ่านมา +21

    Summary: Don't use Java - its slow, use Javascript instead. Don't use Java - its old, use Python instead. Don't use Java - it isn't hip enough, use C# instead. Don't use Java - it has too many successful libraries leading to an emotional fatigue. Don't use Java - it doesn't have "THE community" (???). Don't use Java - it isn't easy to use (??). Don't use Java - it isn't fun (?). Don't use Java - it's reliable..

    • @arcane3327
      @arcane3327 13 วันที่ผ่านมา +12

      understood. use java for everything and be happy :)

    • @OZTutoh
      @OZTutoh 12 วันที่ผ่านมา

      I can't figure out if this is sarcasm or not. It's not helping.

    • @xpamamadeus
      @xpamamadeus 12 วันที่ผ่านมา +1

      @@OZTutoh Its sarcasm ofc.Java its cool and and seems host seems stay in past.

    • @JonJenkins1982
      @JonJenkins1982 12 วันที่ผ่านมา

      I mean, Java certainly isn't fun or easy.

    • @jahelation8658
      @jahelation8658 12 วันที่ผ่านมา +1

      Low latency extremely high performance algorithmic trading platforms in financial centers like London use Java for a reason. Try sending one million messages per second from one VM to another VM using memory mapped files and you will understand performance.

  • @JorgeMen-y1i
    @JorgeMen-y1i 13 วันที่ผ่านมา +22

    I haven't "fallen out of love" with Java. Quite the opposite. I like it more and more.
    I totally disagree with you.

    • @traintocode
      @traintocode  13 วันที่ผ่านมา

      If enough people comment this I'll make a follow-up video called "Why Java is still cool"

    • @otto-villekuusinen2613
      @otto-villekuusinen2613 12 วันที่ผ่านมา +3

      @@traintocode In my country Java still seems to have the biggest number of jobs.

  • @dono42
    @dono42 13 วันที่ผ่านมา +4

    I remember the birth of Java in the mid 90s, so we must be around the same age. Prior to that I primarily did C/C++. Java made me so much more productive. What used to take days could be done in hours, not even to mention essentially eliminating obscure memory corruptions. I have done Java development at multiple companies over the years since then, and even a little still now.
    But there were always problems. It has always felt really slow, even 30 years later today. And the Java UI never quiet matches the native UI (yes, there are non-standard workarounds). The casing and common syntax formatting is quite ugly. All of these issues and more were resolved when C# arrived around 2001. It was probably around 2003 or 2004 that I fully fell out of love with Java. The reason was how generics were implemented: type erasure rather than actual generic types in the runtime. I understand why this was opted for, but it was the final straw for me.
    I still use Java, but only when I have to. In my career Java has always seemed to only exist for legacy code bases. The senior developers don't want to touch it and younger developers look at like I may look at Fortran.

  • @luismpcunha
    @luismpcunha 13 วันที่ผ่านมา +13

    A lot of your points would apply 7-10 years ago, but are currently outdated. It's important to get up to date with the latest language features before making commentary on it.

    • @traintocode
      @traintocode  13 วันที่ผ่านมา +1

      I'm not aware of any new Java features that people are super excited about. Maybe you're right though and we'll see higher results for Java in the 2025 SO survey.

    • @GoodTechConf
      @GoodTechConf 12 วันที่ผ่านมา +4

      @@traintocode Note that we are all very kind with you 🙂, but that's true: you really need a big giant refresh about what is Java today. then okay, do a video about it.

    • @AlesNajmann
      @AlesNajmann 12 วันที่ผ่านมา

      @@traintocode there are, check project liliput, project loom, project valhalla, project panama. It's full of significant improvements

    • @luismpcunha
      @luismpcunha 12 วันที่ผ่านมา +1

      @@traintocode it's possible that it won't, people generally don't go look for these things on their own, and a lot of people are stuck on older versions for professional resons. But you as a content creator making videos on the topic absolutely should have.

  • @contextfree
    @contextfree 13 วันที่ผ่านมา +3

    Yes, C# had pattern matching first, but Java is trying to catch up. See JEP 440 & 441 that released in Java 21 for example or JEP 455 that previewed in Java 23 this year. And in my Languish trends data, I see Java holding rather steady the past 1 1/2 years or so. I don't know the cause, but I think they've been holding off market share decline recently.

    • @contextfree
      @contextfree 13 วันที่ผ่านมา +3

      Also, Java has 2 releases every year these days. Been doing that for years. (I'm not a major Java user myself. Just trying to correct some things.)

  • @maardal
    @maardal 14 วันที่ผ่านมา +10

    8:13 Java get's new releases every 6 months now ^^ Every 4th release is a LTS every 2 years .

  • @JuvenalMuniz
    @JuvenalMuniz 13 วันที่ผ่านมา +8

    History is showing each year that going against Java (the platform) is a mistake. What about Java (the language)? Well, the platform is what matters most. Don't like Java (the language)? Pick and choose: Groovy, Scala, Clojure, JRuby, JPython, Kotlin, etc. You'll get interoperability and access to a lot of Java APIs/libraries.

  • @bjbegui
    @bjbegui 13 วันที่ผ่านมา +6

    I'm still in love with Java especially the modern stuff I try to jump on Java projects as much as possible.... For me it's much better than c++. Go anything reacts...... And if you use a framework like quarkus.... It's over

    • @bjbegui
      @bjbegui 13 วันที่ผ่านมา +3

      It's very clear he does not know much about Java listening to him talk The community is extremely fast there's constant improvements and what he says can't be done in Java can and it looks much better

  • @jsizemo
    @jsizemo 12 วันที่ผ่านมา +4

    I would be curious to see if someone out there does a “The Case for Java in 2025” video. I would hope that there would have been a lot of quiet improvements made over the past few years, and people ask “Have you worked with Java lately? Those old annoyances that people complained about in the mid oughts are no more.”

    • @traintocode
      @traintocode  12 วันที่ผ่านมา

      There's loads of people in the comments here defending Java, if I made a video saying how great it is I guarantee there'd then be loads of comments telling us it's rubbish and out dated.

    • @jsizemo
      @jsizemo 11 วันที่ผ่านมา

      @ Yes, you would get those kinds of comments regardless. My suggested title above is more click bait sounding, and you might have gotten more views. And I would like to see to what extent my assertions above are true.

  • @TheMisiekkiller
    @TheMisiekkiller 14 วันที่ผ่านมา +44

    zero insight its like a ai article, no knowledge in this video

    • @traintocode
      @traintocode  14 วันที่ผ่านมา +1

      @@TheMisiekkiller I'm definitely not an AI lol. Thanks for the feedback.

    • @IoanEugenStan
      @IoanEugenStan 13 วันที่ผ่านมา +4

      @@traintocode it's what an AI would say :).

    • @traintocode
      @traintocode  13 วันที่ผ่านมา +2

      @@IoanEugenStan not at all it's a very human response"
      This reply should explain you are a human sufficiently well. If you need any more help feel free to ask me. In the meantime I'll be sat here plotting the downfall of mankind.

    • @samjiman
      @samjiman 13 วันที่ผ่านมา

      I'd love to see your content. It's easy to criticise.

    • @traintocode
      @traintocode  12 วันที่ผ่านมา

      ​@@samjimanI'm actually totally on board for criticism. It helps me make better videos. The software developer community is actually really cool with criticising stuff because they always do it in a respectful way and don't just attack people and hominem like in so many other niches.

  • @acasualviewer5861
    @acasualviewer5861 13 วันที่ผ่านมา +8

    Java broke the taboo (at a large scale) of writing projects in languages other than C or C++.
    It also had a huge library included and an even larger open source ecosystem. It was in the right place at the right time.
    Java has lost favor because of Oracle. People don't trust Oracle.

    • @traintocode
      @traintocode  13 วันที่ผ่านมา +1

      I tried really hard not to publicly throw shade on oracle in this video but privately I agree with you.

  • @IdoN0TneedTherapy
    @IdoN0TneedTherapy 12 วันที่ผ่านมา +3

    Developers will run after the next cool thing - which invariably is supposed to "fix the problem" with whatever language it is intended to replace.
    Java was supposed to be the platform for safe internet-enabled apps. It became a popular attack vector for malware.
    I don't remember who said it, but I recently came across someone who nailed it by stating that all programming languages are shit.
    Of course - a younger me would probably disagree.

    • @llothar68
      @llothar68 11 วันที่ผ่านมา

      Young Programmers. The hipsters and the TH-camrs

  • @spayeur
    @spayeur 12 วันที่ผ่านมา +3

    You didn't mention Oracle trying to cash in too much, or the languages which compile to Java byte-code which have kept up with up-and-coming trends. True, it's not Java, but they deserve a mention.

    • @traintocode
      @traintocode  12 วันที่ผ่านมา

      There's only so much shade I can throw in one video without getting ratio'd off of TH-cam

  • @SkillzMiller79
    @SkillzMiller79 13 วันที่ผ่านมา +6

    I just want to make sure what you stated. You said that big enterprises and businesses who make tons of money use it reliably but new developers who don’t really have a lot of experience with coding doesn’t. Thus Java is not good. Did I summarize this video correctly? Also great video production quality! I just can’t tell if this was made to engagement farm or was meant to be taken seriously.

    • @traintocode
      @traintocode  12 วันที่ผ่านมา +2

      Almost except I never actually said "thus Java is not good" nor do I believe it. I was really just commenting on the SO developer survey putting it lower and lower every year. And thanks (I think) I have no interest in engagement farming I just like making TH-cam videos.

    • @SkillzMiller79
      @SkillzMiller79 12 วันที่ผ่านมา +1

      @ fair! Thanks for the reply! Also shows some work the Java community needs to do to reengage the new age community if they want to stay relevant. This is the first video I’ve seen of yours so wasn’t sure what to expect but now after watching some of your other videos, your content is great just this seemed a bit more of an attack on java from first watch.

  • @TomEugelink
    @TomEugelink 12 วันที่ผ่านมา +1

    Updates have a long wait? There is a new version every 6 months! You got the story right up until 10 years ago.

  • @nsing323
    @nsing323 13 วันที่ผ่านมา +3

    It's not WRITE ONCE, RUN ANYWHERE... It's WRITE ONCE, DEBUG EVERYWHERE

    • @christianibendorf9086
      @christianibendorf9086 13 วันที่ผ่านมา +2

      In the end it still comes down to the level of competence of the developer. ;-)

    • @GoodTechConf
      @GoodTechConf 12 วันที่ผ่านมา +3

      I can testify that NodeJs is WRITE ONCE, CAN'T DEBUG ANYWHERE. It's just undebuggable (in my case it was a breakpoint in a lib loaded in a lib loaded in a microservice), people do console.log instead. what a shame. the source map go crazy at some point of complexity (mixture of libs and typescript, you name it...). It just don't work. Then compare this nightmare to the JVM and its debugging capabilities (remote debug in a pod baby !). it's another world. ... a professional one. 🙂

    • @kevinmaltby4202
      @kevinmaltby4202 11 วันที่ผ่านมา

      No that's C#, though more aptly because Microsoft are involved it's 'write once, crash everywhere'

  • @pippop9583
    @pippop9583 13 วันที่ผ่านมา +3

    Java is the best in terms of features, in my opinion. The problem is job market

    • @RondellKB
      @RondellKB 12 วันที่ผ่านมา

      Java actually has a huge job market. What do you mean?

  • @adambickford8720
    @adambickford8720 2 วันที่ผ่านมา

    You might want to check out modern java. It has records, pattern matching, sealed types, etc. It's not super elegant, but it's there.
    And i'd argue virtual threads are objectively better than async/await

  • @gerhardruscher5067
    @gerhardruscher5067 12 วันที่ผ่านมา +1

    For the logs: python was around 20 ago allready, it 8s not new ;)

  • @icantchosemyname
    @icantchosemyname 12 วันที่ผ่านมา +3

    Looking for a job, learn Java.

  • @TheBlackManMythLegend
    @TheBlackManMythLegend 13 วันที่ผ่านมา +3

    It's still enormously used.

    • @traintocode
      @traintocode  13 วันที่ผ่านมา +1

      So is PHP......

    • @steves9250
      @steves9250 10 วันที่ผ่านมา

      And so is COBOL

  • @dpecos
    @dpecos 14 วันที่ผ่านมา +4

    Quite a few things started in this video are not correct, like the pace of releases in Java, among other things. Nowadays i would consider Java over something like Kotkin or Scala, its syntax has evolved, bridging the gap between them, ands still, it’s Java , with millions of developers.

    • @ecavero1
      @ecavero1 13 วันที่ผ่านมา

      I left Java for Groovy and, more recently, Scala. The thing that I didn't change is the JVM.

  • @BluesBoySid
    @BluesBoySid 13 วันที่ผ่านมา +1

    For me it depends, for what i'm going to achieve. I work in Java, and i use it as functional or OOP. I preffer also C++, i like Asembler, but mostly i work with JS and other web development things :)

  • @edmaphis9805
    @edmaphis9805 11 วันที่ผ่านมา

    Look up Java's project Amber.
    It's added Records for sum types and added Sealed Classes for product types for ML style algebraic data types. It's added Switch Expressions to deconstruct algebraic data types similar to C# cases.
    Look up Java's project Loom form light weight threading obliviating the need for async programming styles.
    According to the OpenJDK team, ML is modern Java's inspiration, not Kotlin, C#, Scala or Go.

  • @kennedymwenda3357
    @kennedymwenda3357 12 วันที่ผ่านมา +1

    For the record Python is older than Java

  • @swedishpsychopath8795
    @swedishpsychopath8795 14 วันที่ผ่านมา +18

    Just because you don't understand or master Java doesn't mean Java is the problem. Have you seen the mess Kotlin is bringing to the table? Script kiddies LOVE kotlin and rust, and I suppose this junior programmer probably is one of them?

    • @minor12828
      @minor12828 13 วันที่ผ่านมา +4

      Hi bro, could you please share some of those kotlin bad sides. I am considering learning it in the next week.

    • @christianibendorf9086
      @christianibendorf9086 13 วันที่ผ่านมา

      @@minor12828 … the difference between the two keywords va… and va… ;-)
      Also, doesn't Kotlin make everything public by default?

    • @traintocode
      @traintocode  13 วันที่ผ่านมา +3

      Side note but all languages have bad sides, that shouldn't put you off learning something new.

    • @nathanlewis42
      @nathanlewis42 13 วันที่ผ่านมา +6

      script kiddies love Rust? Really?

    • @adambickford8720
      @adambickford8720 2 วันที่ผ่านมา +1

      @@nathanlewis42 The number of bad takes in 3 sentences is stunning.

  • @z0raDev
    @z0raDev 10 วันที่ผ่านมา

    Maybe it‘s worth mentioning that as a developer you are not always given the chance to choose what you think is the „coolest“ programming language.
    Also, the coolest language is not the one that solves problems the most effective way or is efficient in your specific use case.
    And sometimes you want to stay in the ecosystem already in place.
    That‘s why I personally like Kotlin. Can‘t remember my last Nullpointer Exception 😅

  • @modolief
    @modolief 13 วันที่ผ่านมา +5

    Umm ... applets? I don't think they were ever all that big of thing for the Java development landscape. It was all backend, and maybe some standalone Java apps. Applets became unpopular after not too many years.

    • @christianibendorf9086
      @christianibendorf9086 13 วันที่ผ่านมา +1

      We all just fell for the click bait here. ;-)

    • @traintocode
      @traintocode  13 วันที่ผ่านมา

      I remember applets being a huge thing around the turn of the millennium every website seemed to use them

    • @llothar68
      @llothar68 11 วันที่ผ่านมา

      No they were not. There was some talk and hype but not used cases

    • @modolief
      @modolief 7 วันที่ผ่านมา

      @@traintocode I'm just giving my subjective impression. I jumped on the Java hype train around 2000 and I do remember some applets here and there, but I just don't remember them as a huge part of the landscape. I think they had a lot of constraints on what they could do. And as JavaScript became increasingly potent, the applets vanished. I remember writing an applet that ran some math code back in the 90s, but that was just for the practice of trying out the applet concept, not because the code needed that platform. Would have been easier just to do it as a command line program. And again, during the 8 or 9 years during which I coded Java, it was almost all serving up web pages. Then I switched to Ruby (which I liked better).

  • @soberhippie
    @soberhippie 12 วันที่ผ่านมา +3

    Python is not __newer__

    • @traintocode
      @traintocode  12 วันที่ผ่านมา

      Upvote for writing in markdown.

  • @jaysistar2711
    @jaysistar2711 11 วันที่ผ่านมา +1

    Java wasn't revolutionary, it was a (dirty) simplification of C++, and it was marketed to people who didn't program as the thing that they should force upon those that they manage. It's VM only worked with the 1 language, while p-code ran at least Pascal and C, but, like the JVM, p-code interpreters were slower than Pascal or C code compiled to a native executable. By the way, C is truly "write once, run anywhere" with a few platform abstraction libraries, so there really has never been a point to having Java. Java also mainstreamed, and doubled down on 3 of the biggest mistakes in programming: nulls, exceptions, and garbage collection. Forget Java. Just use Rust.

  • @saumyacow4435
    @saumyacow4435 10 วันที่ผ่านมา

    Some of us still love Java, and for good reason.

  • @rommellagera8543
    @rommellagera8543 13 วันที่ผ่านมา +4

    Coolness vs reliability??? 😮

    • @traintocode
      @traintocode  13 วันที่ผ่านมา

      Basically yes. Reliability comes at a cost of speed. A brand new startup doesn't need to build a reliable MVP they need a quick one, which is why I think we see this trend in startups.

    • @rommellagera8543
      @rommellagera8543 13 วันที่ผ่านมา +3

      @@traintocode I just hope that speedy development does not deal with financial system/module

    • @christianibendorf9086
      @christianibendorf9086 13 วันที่ผ่านมา +4

      @@traintocode You can create a complete service in Java in a matter of minutes, with Quarkus even natively compiled. How much quicker would you want it?

    • @InfernalLegion84
      @InfernalLegion84 12 วันที่ผ่านมา

      I've built from scratch MVP web service backend with communication with a few external services via http and mysql db pretty fast using SpringBoot 3.x, JDK 21, lombok. Dunno, maybe if I knew like go or python it would be faster. Seemed pretty fast to me!

    • @RondellKB
      @RondellKB 12 วันที่ผ่านมา

      ​@@christianibendorf9086All these arguments that development time is slow have 0 basis in reality, no survey, study, or experiment was ever done to verify this. People just state this because in Java you have to write semicolons...or maybe one extra line in an algorithm. No thought I'd even given to the maintenance or debugging afterwards.

  • @adambickford8720
    @adambickford8720 2 วันที่ผ่านมา

    Java was also free in a time where compilers and libraries were sold for cash money. This meant anyone w/an internet connection could start learning. Even the EE offerings had free 'reference implementations', such as tomcat and glassfish, that were good enough for many companies, especially when compared to what Oracle or BEA were charging.
    Then oracle happened.
    That sucked the trust and enthusiasm out of the room. MySql vs maria db, hudson vs jenkins, etc. Even java itself was clearly bought just to sue Google over Java ME vs Android. Hard to want to champion that.

  • @atabac
    @atabac 13 วันที่ผ่านมา +1

    i think real technology geeks wouldnt really care what's the greatest and what's the least because they can adapt on the changes in these technologies and each technology can be as equally important depending on the project and the current need. Whatever you need to deliver as long as it has fast performance, cheaper to develop with, shorter development time.
    But i think the coolest is C/C++ since the first C++ compiler was written in C/C++. The rest like Java, C# or Python their first compiler (and virtual machine it was interpreted) was written in C/C++. And in C/C++ you can just make your own language.

    • @traintocode
      @traintocode  13 วันที่ผ่านมา +1

      We all know the coolest is rawdogging assembly language

    • @atabac
      @atabac 13 วันที่ผ่านมา +1

      @traintocode microcode maybe😅

    • @christianibendorf9086
      @christianibendorf9086 13 วันที่ผ่านมา

      One of the coolest things you can do in C/C++ are pointers to pointers to pointers. :-)

    • @atabac
      @atabac 12 วันที่ผ่านมา +1

      @@christianibendorf9086 ansi c standard can have up to 12 pointer🤣 maybe thats just the minimum stack depth c hardware that time. application-wise, maybe you wont reach that much cross fingers 🤣

  • @rursus8354
    @rursus8354 12 วันที่ผ่านมา +2

    Java is not a technicians' product, it is a market hype product. Most market products are programming paradigm backlashes: Java reinvented generics 27 years after they were really invented, and they did it in a deficient way. And the open source software community loves capable programming languages, not Java. Java is what was pressed down our throat by our bosses, and we accepted it because we're making money on it. 1:15: UPDATE: It sounds like you claim that you programmed code that was written for different operating systems, but based on the description, it seems you don't understand what you are talking about, and are only second guessing what others did before. Mostly programs were just not portable, so they existed on one operating system only. Portable programs had different code bases for GUI because they are that different, (or they used wxWidgets, which was then called wxWindows, and at that time it was an inferior experience). They also may have had quasi-unified code bases for operating system calls and that may have been error prone.

  • @MikeBrady68
    @MikeBrady68 11 วันที่ผ่านมา +2

    Oracle lording over Java hasn't helped its reputation among developers, IMO.

    • @martinsmith2802
      @martinsmith2802 11 วันที่ผ่านมา

      Microsoft and C# ?

    • @MikeBrady68
      @MikeBrady68 11 วันที่ผ่านมา

      @@martinsmith2802 I don't have a problem with Microsoft. The company has been a great custodian of the language. They have innovated, moved it forward, and made it widely available. Microsoft is developer friendly. I'm not the type to despise large companies just because they are large.

    • @julianjupiter5890
      @julianjupiter5890 9 วันที่ผ่านมา

      Those who follow and see objectively the innovations of Java now recognize Oracle as better steward of Java.

    • @adambickford8720
      @adambickford8720 2 วันที่ผ่านมา

      @@martinsmith2802 You're arguing against yourself. C# is amazing, if apache owned it, it'd be the #1 language.
      Many people still thing its closed source and windows only

  • @steves9250
    @steves9250 10 วันที่ผ่านมา

    I stopped using it about the Oracle got involved and things just got messy.

  • @maxtrax3258
    @maxtrax3258 13 วันที่ผ่านมา +5

    I don't understand why you hype Python so much. It is older then Java and uses almost every where C code underneath. Fore shure it is easy to write code in it. Everybody can hack his way through it and the result looks like that. Hacked 😂

    • @christianibendorf9086
      @christianibendorf9086 13 วันที่ผ่านมา +2

      I actually wonder why he didn't list HTML as cooler than Java. ;-P

  • @rontarrant
    @rontarrant 11 วันที่ผ่านมา +2

    I _never_ like Java. First time I tried it, I lasted about five minutes and tossed it.

  • @OZTutoh
    @OZTutoh 12 วันที่ผ่านมา +1

    6:40 DECISION FATIGUE! THAT'S ME!

  • @grimfistgaming7694
    @grimfistgaming7694 11 วันที่ผ่านมา

    Modern Java (>17) is a fckin masterpiece and leaves most of its competitors in the dust. Jakarta EE and MicroProfile complement Java to a robust and super productive environment. There was Zero research involved in the making of this video.

  • @DanielCordey
    @DanielCordey 10 วันที่ผ่านมา

    The best language is the one being adopted by the largest community... period !

  • @codebuster2716
    @codebuster2716 8 วันที่ผ่านมา

    On November 8, 2024, the FBI, in collaboration with other U.S. government agencies, including the Cybersecurity and Infrastructure Security Agency (CISA), recommended that software developers transition away from memory-unsafe languages, such as C++, by January 1, 2026. These languages allow direct manipulation of memory addresses without built-in safeguards. Instead, they suggest using the following languages:
    • Python
    • Java
    • C#
    • Go
    • Delphi/Object Pascal
    • Swift
    • Ruby
    • Rust
    • Ada

  • @JReuben111
    @JReuben111 9 วันที่ผ่านมา

    Java has been going through a renaissance recently - the Classfile API provides strong metaprogramming capabilties and Project Panama FFI is quite powerful.
    Its the ecosystem of Java that sucks - Spring Boot OOP bloat is not very exciting.
    For stable production systems, I would choose Java over Python or Javascript (both of which do not support multithreading or static typing); but I would also push for Rust if given the choice.

  • @Carter9007
    @Carter9007 14 วันที่ผ่านมา +3

    Great review but if your target audience is Java developers you might want to do a little more research and tell us something new.

    • @traintocode
      @traintocode  13 วันที่ผ่านมา

      My target audience isn't Java developers. It's people who use other languages who are looking at Java from the outside. I suspect Java developers already know everything I talk about in this video.

    • @grolsch973
      @grolsch973 10 วันที่ผ่านมา

      @@traintocode They know better about everything you talk about in this video :)

  • @ko2marios
    @ko2marios 11 วันที่ผ่านมา

    The tiobe language index would be a better index for language popularity.
    Java is still 3rd, for 2023.

    • @traintocode
      @traintocode  11 วันที่ผ่านมา

      That sounds interesting do you have a link?

  • @CarrigansGuitarClub
    @CarrigansGuitarClub 12 วันที่ผ่านมา

    Write once tweak anywhere....

  • @anon_y_mousse
    @anon_y_mousse 12 วันที่ผ่านมา

    I'd say my main reason for disliking Java is that it's far too verbose and doesn't have enough syntax. It takes the "just add more code" concept from C++ to an extreme. I'd rather write a program in 5 lines of code and be done than write 20 or 30 lines that go beyond the edge of my screen and require me to either horizontally scroll or do word wrapping. Also, did they ever add operator overloading to Java? I love being able to define weird types and then overload all the operators on them. Oh, and UDL's are awesome. If you haven't implemented your own then you need to. They introduced so many cool things in C++11.

  • @WestTechLol
    @WestTechLol 11 วันที่ผ่านมา

    Good luck running Python on the backend for anything non trivial. The lack of true parallelism aside, dynamically typed languages like Python suck at scale and they require more test coverage than statically typed languages like Java. If you don't like the verbosity, use Scala - you still get the JVM. Java is already becoming more and more functional in nature even without going all in with Scala. I don't have a problem with folks using Go or Rust to get faster native binaries, but that's a yesteryear problem. Most services today need replication for scalability, and tend not to be resource bound.

  • @ShuvoInDeutschland-h8h
    @ShuvoInDeutschland-h8h 12 วันที่ผ่านมา

    Oh yes, we throw all 10 billion devices

    • @traintocode
      @traintocode  12 วันที่ผ่านมา +1

      You don't wanna do that they might break

  • @3amael
    @3amael 12 วันที่ผ่านมา +2

    What happened to Java... bloat and slow innovation.

  • @sjfsr
    @sjfsr 11 วันที่ผ่านมา

    What about J++? Microsoft's attempt at having java in visual studio. They probably made C# after getting sued for J++. I still have a J++ book for applets and servlets. lol, good times.

  • @martinsmith2802
    @martinsmith2802 11 วันที่ผ่านมา

    This is like watching a review of Java on Fox News! He doesn't seem to have his facts correct, know modern Java or care.
    I love the line about only people who care about reliability use java.
    I even began to wander if English was his first language he made so many mistakes.
    I can't wait for his next video on why the internet will never catch on.

    • @kevinmaltby4202
      @kevinmaltby4202 11 วันที่ผ่านมา

      Given the recent blatant lies about Big D, it's more like a CNN report.

  • @theghost9362
    @theghost9362 14 วันที่ผ่านมา

    OK DUDE , i get it , I love java people 😉

  • @dimlylitcorners
    @dimlylitcorners 13 วันที่ผ่านมา

    So Java is a lot like Pascal … ?

  • @mr.shredder5430
    @mr.shredder5430 14 วันที่ผ่านมา +1

    your right about C# , .Net has has provided so much for ease of rapid development, like java which has android studio so java and c# are like the industry standard for crossplatform development tools, whereas javascrip is best for its web development,

    • @MarkLitchfield
      @MarkLitchfield 14 วันที่ผ่านมา +3

      "whereas javascript is best for its web development" Yeah? Tell that to the Electron, Tauri, React Native, Bun and Deno communities. They apparently didn't get that memo.

  • @OptimumConsulting
    @OptimumConsulting 11 วันที่ผ่านมา +1

    Java reminds me of my ex-wife.....extremely verbose !!!...it is like listening to Disco music in the 2020....

  • @DarinM1967
    @DarinM1967 14 วันที่ผ่านมา +2

    Java was popular, like pretty much all other past and current popular languages because of the "hype." IBM/Oracle burned a lot of money marketing Java, which is why it became popular. Now after decades of people banging their heads against it and forced to see it's warts everyday, they realized that it wasn't worth it. Popularity rarely if every equates to quality. Sharp is no different and neither is .NET in general. The problem with languages in the industry has to do with marketing. Who is backing it and why. If we look back at the last 50+ years its obvious why popular languages became popular and became mainstream, and then eventually unpopular. The Industry depicts the languages not the people forced to use them, which is illogical and stupid, but it is what it is and until the workers grow a pair, its going to stay that way.

    • @acasualviewer5861
      @acasualviewer5861 13 วันที่ผ่านมา

      what company backs a technology matters a lot.. Microsoft has known that forever.
      People liked Sun, they don't like Oracle as much.

    • @julianjupiter5890
      @julianjupiter5890 9 วันที่ผ่านมา

      @@acasualviewer5861but as far as Java is concerned, Oracle is better steward than Sun.

  • @youngicorn
    @youngicorn 13 วันที่ผ่านมา +1

    thank you for this informative video! I found it easy to follow and understand. I am really confused why so many people in the comments think that you're trying to bash on Java. I found it clear that Java might be old and lacks 'flashiness' but still a great language that's here to stay :p

  • @zahidahmed7043
    @zahidahmed7043 12 วันที่ผ่านมา

    Bruh, your talking points are 7 to 8 years old. jdk 24 will be released on march 2025 and jdk 25 will be later on the same year. Releasing an LTS every two year with six months of release cadence with such a huge ecosystem, its mind blowing. Can't agree with your points.

  • @sernik_z_rodzynkami
    @sernik_z_rodzynkami 12 วันที่ผ่านมา

    I don't get how you can criticize Java (rightfully) and like C# at the same time.
    I know it's not entirely true, but it's really fair to say that C# is Java modernized by Microsoft. Of course modernized can be better than the original, but in such case: why not Scala?

    • @traintocode
      @traintocode  12 วันที่ผ่านมา

      The reason I double down on the C# comparison is that it's syntactically much more similar to Java than scala is, it just has more features so it's an easier comparison. Plus loads of my channel subscribers are C# devs.

  • @kevinmaltby4202
    @kevinmaltby4202 11 วันที่ผ่านมา

    C#? No thanks. I don't want to go down that Microsoft mess of 'write once, crash everywhere'. It would also ultimately mean being forced to use Windows and probably deploy on Windows servers. Not for any strong technical reasons but just because people play computer games on Windows (yes I have heard that used as an argument as to why should stick with Windows) Anecdotally I heard that the same versions of C# libraries are different between platforms which sounds like typical Microsoft . These days if it's not Android development then people would likely use Spring/Spring-Boot framework with which can create a variety of applications. Most people jump on the 'functional programming' bandwagon just because it's the latest thing. My experience of functional programming was a nightmare. It wasn't my application but trying to debug it was a pain as the application was jumping all over the place, and of course none of these 'functions' had any tests because writing tests isn't cool for these hipsters. The new Java FFM is interesting and makes calling native code a lot easier than JNI.

    • @traintocode
      @traintocode  8 วันที่ผ่านมา

      C# doesn't force you to use windows or deploy on windows servers. I think your information on C# might be 10 years out of date.

    • @kevinmaltby4202
      @kevinmaltby4202 8 วันที่ผ่านมา

      @@traintocode You didn't read what I wrote: 'Not for any strong technical reasons but just because people play computer games on Windows (yes I have heard that used as an argument as to why should stick with Windows)". And others have pointed out, your information on Java is years out of date.

    • @adambickford8720
      @adambickford8720 2 วันที่ผ่านมา

      @@traintocode the irony

  • @sparkybrit
    @sparkybrit 13 วันที่ผ่านมา +1

    Odd that you don't mention Scala

    • @traintocode
      @traintocode  12 วันที่ผ่านมา

      Scala is like to Java what F# is to .NET. I wouldn't compare F# to C# they have different philosophies they aren't meant to replace each other.

  • @PhantomPhobos
    @PhantomPhobos 12 วันที่ผ่านมา +1

    Think you spend too much time talking to camera, people lose interest fast, should have simple visual examples and comparisons of each point you're making.
    fireship is pretty much the bleeding edge example of how to engage with the information overloaded tech interested audience of today aside from his focus on sarcastic / ironic humor.
    I agree that Java is falling out of the sky, since it lacks the hype factor the communities that are behind other languages, it was the big kahuna during early days of corporate growth.

    • @traintocode
      @traintocode  12 วันที่ผ่านมา

      I actually completely agree with this - but man making visuals is extremely time consuming and I can't spend 20 hours on every video. Someone recommend me an AI tool for making visuals and I'll be all over it. Currently I just spend a lot of time clicking around in Resolve to make like 4 graphics.
      Being a lone TH-camr with a job and a family trying to compete against actual teams of full time content people is really hard.

  • @tubeincompetence
    @tubeincompetence 13 วันที่ผ่านมา +4

    Feel out of love? I never liked it to begin with.

  • @manishdeshpande
    @manishdeshpande 9 วันที่ผ่านมา

    The main advantage of Java is platform independence which is a stark contrast to ".Net" or C#. This is a biased video.

    • @traintocode
      @traintocode  8 วันที่ผ่านมา

      .NET is also platform independent

  • @akaalkripal5724
    @akaalkripal5724 11 วันที่ผ่านมา

    I use C++ and Java quite extensively, your video is about as outdated as the dinosaurs.

  • @mwigojonathanmark1683
    @mwigojonathanmark1683 12 วันที่ผ่านมา

    As always, such videos are so opinionated... Most of the points in the video aren't even valid, which Java version are you talking about and are you still in the eraly 2000s where Java hardly got updates. JavaScript has more uncalled for libraries and frameworks than any language on earth and you speak of *DECISION FATIGUE* in Java eco system... anyways, looks like this is a C# fanbase channel after all so I didn't expect much.

  • @stan4676
    @stan4676 14 วันที่ผ่านมา

    How come you didn't mention kotlin

    • @traintocode
      @traintocode  14 วันที่ผ่านมา

      Same reason I didn't mention Scala or Clojure really - they run on the JVM but they are distinct languages from Java and it didn't really fit the narrative soz.

    • @stan4676
      @stan4676 14 วันที่ผ่านมา

      @traintocode but kotlin was made specifically to replace java. The number of teams migrating from java to kotlin is probably one of the most important factors. It's like c and c++ or javascript and typescirpt

    • @ecavero1
      @ecavero1 13 วันที่ผ่านมา

      @@stan4676 That is only for developing on Android.

  • @teasmas101
    @teasmas101 11 วันที่ผ่านมา

    It was a good video until you started talking about OOP, everything after that sounds like it came from ChatGPT, or the most far fetched sources since it is actually just a lot of false facts in a row. Bro really said that C# is embracing funcional programming over OOP???? That's the nost out of touch thing anyone with (apparently) tech know how have said

    • @traintocode
      @traintocode  8 วันที่ผ่านมา

      I don't think it's out of touch, if you look at all the new C# features from Record types to pattern matching, the language is releasing a lot more "functional programming" type features than OOP oriented ones lately. It's definitely embracing functional programming.

  • @franciscotorresreyes3528
    @franciscotorresreyes3528 13 วันที่ผ่านมา +3

    BS

    • @traintocode
      @traintocode  12 วันที่ผ่านมา

      Brilliant Story?

  • @hellelo.5840
    @hellelo.5840 13 วันที่ผ่านมา

    Java tried to force premature refactoring on the industry

    • @JosifovGjorgi
      @JosifovGjorgi 13 วันที่ผ่านมา +1

      nope, that is called Clean Code by Uncle Bob - you can premature refactor in every language

  • @abbassiziad1379
    @abbassiziad1379 8 วันที่ผ่านมา

    Please, if you don't master something, don't spread fake information about it.

  • @PhthaloJohnson
    @PhthaloJohnson 14 วันที่ผ่านมา +5

    There's a couple reasons why Java is bad.
    1. Write once run everywhere is a lie. You cannot run Java on non supported platforms. The user also needs to have rbe java environments on their machine. Compare that to python that does not need to be compiled or languages like Go that only need to distribute the binary.
    2. Build strategy. Since Java needs to be built despite being interpreted, you need a build strategy. Your choices are maven and Gradle. Both garbage. Compare to Go or Rust where it's literally one command.
    3. OOP is very ingrained into the language so you can't do anything productive easily. There's too many things that are confused in the language. For example, I need to create a separate file for a simple struct. And I need a class for a new namespace. The way Go and Rust do it, with modules is the much better approach.
    4. The type system is confusing and not that useful. No tagged unions. Pattern matching is bad. Lambdas and closures are badly implemented. You have to rely on try catch. Type constraints are implemented with inheritance and interfaces which is confusing and not as powerful as traits in Rust for example.
    5. A lot of garbage libraries you have to sift through to find something actually useful.
    Overall, I think there's zero reason to use Java compared to Go, Rust or Ocaml.

    • @th3r3v92
      @th3r3v92 14 วันที่ผ่านมา +5

      Comparing Java to Python or Go overlooks the ecosystem differences. Python also requires dependencies that may not be installed on all systems, and Go binaries can be large while lacking the dynamic runtime advantages provided by the JVM. The JRE can be bundled with Java applications as well. Additionally, you can't run Python without it being installed locally, so it's essentially the same situation as with most other programming languages. Of course, you can use Docker, virtual environments, etc., but you can do the same with Java, so.. :)
      Regarding libraries: RxJava and Spring cover 99% of use cases. You're welcome. :)
      Points 3 and 4 are in my opinion personal preferences. I enjoy using Go, but personally, I don’t like Rust. But I can accepth that you prefer those over Java.
      But... Mentioning Python as an example of a language that doesn’t need to be compiled is funny when you consider that it can’t even do parallel processing due to the GIL. So, once again, it’s all about your needs and personal preferences. :)

    • @Alex-mp5bu
      @Alex-mp5bu 14 วันที่ผ่านมา +6

      1) You need a python interpreter for your platform. You can distribute java programs as single binaries too, not very (space) efficient, but doable.
      2) You can use a build tool, but you don't have to. Maven and Gradle are common options, but not the only ones.
      3) Your example is utterly wrong.
      4) So how are lamdas badly implemented? Rely on try catch? What are you talking?
      There is at least one good reason to use Java compared to anything: If you or your team are majorly experienced in Java. And there a still a lot of Java devs still out there.

    • @RedShift5
      @RedShift5 14 วันที่ผ่านมา +5

      1) With Python you also need a runtime and sometimes you need to install modules which require compilation. On Windows that means installing literally gigabytes of compiler tools from Microsoft and then hope the compilation doesn't fail. If you want a truly "write once run everywhere" without a runtime, you need to write a C program and compile it for different OS'es and architectures. And if you're doing anything more than hello world, your code will be rife with ifdefs to account for platform API differences, have fun with that.
      2) Granted, build tools sucks, but on the other hand, they suck for many other languages as well. It's not an easy thing to get right. But maven does so much more than just builds, you can make an entire pipeline that runs your tests, reports test coverage, builds your binary just the way you need it, distribute it, etc... You're comparing a simple knife to a Swiss army knife. Furthermore, since Java 11 (released 6 years ago), you can run uncompiled Java classes with one command.
      3) You don't need to create a separate file for a struct (nb structs are called records in Java), inner classes/inner records exist. I don't know what you mean with needing a class for a new namespace, namespacing is done via packages but you don't even have to use packages, you can just put everything in the source root if you want to. Comparison to Go and Rust is really just "same but different". Yes the OOP part can be heavy-handed, but choosing your libraries strategically helps a lot with that (as it does in any language).
      4) I don't know what you mean. Lambdas and closures work just fine.
      5) Like with any other language... Plenty of unmaintained stuff in Go, Rust, Javascript, Python, ...
      Overall, I think there's zero reason to take your comment seriously.

    • @Carter9007
      @Carter9007 14 วันที่ผ่านมา +3

      wth are you going to do with Ocaml. Good luck finding a job with any of these languages. You can't always get what you want.

    • @ecavero1
      @ecavero1 13 วันที่ผ่านมา +2

      1) You cannot run a Go binary build using Linux on Windows. You would have to target it to run on a specific platform.
      2) gradle run
      3) Only one class needs to be public. You can have multiple classes in one file if you wish.

  • @JonJenkins1982
    @JonJenkins1982 14 วันที่ผ่านมา +3

    This video misses the mark. It's not that Java is not the "cool" language, it's that Java is downright unpleasant to work with. There is a lot of cruft, a lot of boilerplate, the tools to work with it are slow, and the language itself lends to some extremely bizarre over-engineering using OO programming techniques. There's also the fact that it's historically been riddled with security issues.

    • @acasualviewer5861
      @acasualviewer5861 13 วันที่ผ่านมา +1

      it's actually the non-OO programming techniques like getters/setters that make Java frameworks ugly.. but that's more of a framework than a language problem.

    • @christianibendorf9086
      @christianibendorf9086 13 วันที่ผ่านมา +1

      So what exactly are the "extremely bizarre over-engineering using OO programming techniques" you speak of? Some examples?

    • @traintocode
      @traintocode  12 วันที่ผ่านมา +1

      ​@@christianibendorf9086I expect they are referring to the gang of four design patterns. For a while every developer was shoehorning design patterns into codebases that simply didn't need it. A lot of that happened in the Java world so that's probably what they are referring to.

    • @christianibendorf9086
      @christianibendorf9086 12 วันที่ผ่านมา +1

      @@traintocode But that's not exactly a feature of Java. (-:

    • @FilipCodes
      @FilipCodes 12 วันที่ผ่านมา +1

      "Omg I have to write code" type of comment 😂

  • @m.b786
    @m.b786 14 วันที่ผ่านมา

    any programming language .. container ... JVM useless

    • @kevinmaltby4202
      @kevinmaltby4202 11 วันที่ผ่านมา

      Or the 'engineer' is just useless.