Java is mounting a huge comeback

Поділитися
Вставка
  • Опубліковано 4 чер 2023
  • Java 21 will bring major improvements to the world's most popular enterprise programming language. Learn about unnamed classes, string templates, and other new features expected in the future.
    #programming #tech #thecodereport
    💬 Chat with Me on Discord
    / discord
    🔗 Resources
    Java 21 Unnamed Classes openjdk.org/jeps/445
    Java in 100 Seconds • Java in 100 Seconds
    Java for the Haters • Java for the Haters in...
    🔥 Get More Content - Upgrade to PRO
    Upgrade at fireship.io/pro
    Use code YT25 for 25% off PRO access
    🎨 My Editor Settings
    - Atom One Dark
    - vscode-icons
    - Fira Code Font
    🔖 Topics Covered
    - New Java features in version 21
    - Java Programming basics
    - Unnamed classes and Instance Main Methods
    - Java Memes
    - Should I learn Java?
    - Why do people hate Java?
  • Наука та технологія

КОМЕНТАРІ • 2,7 тис.

  • @TheDiscoMole
    @TheDiscoMole Рік тому +9272

    I am not scared of AI, I am scared of Java making an unironic comeback.

    • @BusinessWolf1
      @BusinessWolf1 Рік тому +43

      XDDD

    • @thedomham2831
      @thedomham2831 Рік тому +525

      Java never left.

    • @nnnik3595
      @nnnik3595 Рік тому +171

      Be afraid for Java is eternal.
      Cue evil villain laugh

    • @anonym1984
      @anonym1984 Рік тому +142

      Java making a comeback, AI learns to write Java, we're all doomed.

    • @entx8491
      @entx8491 Рік тому +6

      Where's the unirony?

  • @Myvoetisseer
    @Myvoetisseer Рік тому +1956

    Can't believe they finally updated their website. It really is the end of times. The hardest part of learning Java was never the boilerplate. It was finding the correct download.

    • @complexity5545
      @complexity5545 Рік тому +40

      So many choices.

    • @mahanishbaruah3999
      @mahanishbaruah3999 11 місяців тому +105

      The default download is still java 8 😭

    • @faradayawerty
      @faradayawerty 11 місяців тому +4

      I liked the old website

    • @tmicecave
      @tmicecave 11 місяців тому +3

      ​@mahanishbaruah3999 Java 9 and up gets bundled with the application as a standalone program. No need to download and install Java anymore.

    • @VoidPaul97
      @VoidPaul97 10 місяців тому +4

      Are you guys telling me you downloaded it from their website instead of Oracle's? Now I get why people hate it SMH

  • @kacper9948
    @kacper9948 Рік тому +612

    I'm suprised how much I like Java when I started learning it for Backend Dev with Spring Boot. It's the language that actually taught me to use OOP (considering that it is basically forced), and the verbose code somehow makes it very readable for my little stupid brain, especially when it comes to others code.

    • @victorpimentel3072
      @victorpimentel3072 11 місяців тому +45

      same experience here

    • @adriankal
      @adriankal 11 місяців тому +12

      And that's the problem with Java. It's oop language.

    • @justsomeredspy
      @justsomeredspy 11 місяців тому +79

      That's exactly how I would describe Java. It's syntax is verbose, but it isn't ugly. The combination of rigid structure and general verboseness actually makes it easy to tell what a piece of code does once you're familiar with the language. My personal pick for ugliest language (that's still a legitimate modern programming language I use) is JavaScript. That's not to say you can't write beautiful JavaScript code, but it takes some discipline. The combination of nested promises, ambiguous typing, and variable scope lends itself to all sorts of bad practices.
      Sorting through old JavaScript code written by somebody who no longer works for the company is quite an experience. I had to add a page to an old AngularJS tool we wrote for internal use. The whole thing was written in Angular v1, and every... _single..._ variable was stored in *GLOBAL SCOPE.* Absolutely no documentation or comments for anything. Fun times.

    • @klaudialustig3259
      @klaudialustig3259 11 місяців тому +3

      What did you do before being a Backend Dev?

    • @sohailabbas007
      @sohailabbas007 11 місяців тому +1

      Same for me

  • @suparki123
    @suparki123 Рік тому +161

    Our school specifically chose Java as the first language taught specifically because it forces OOP on the user, and java is a great language for learning just that. I understand that OOP is not always necessary, and sometimes even overcomplicates things, but I know so many colleagues who've never really learnt OOP and fail to identify situations where it could really be useful.

    • @musaran2
      @musaran2 11 місяців тому +14

      OFP (Object Forced Programming).
      And good programmers *like* to learn new concepts.

    • @gabrielmourao2854
      @gabrielmourao2854 5 місяців тому +2

      My university taught java as a second language. Im not sure about which to choose as the second, but i still agree with it that you should use c. C is one of the only languages where you have to explicitly tell that you are going to use a memory adress as a pointer, so you not only learn the basics such as function calls, variable types, operations and loops, but it does so in a way that is preditable and easier to see how itd run, and also teaches you how references really work.
      However, object oriented programming is still pretty important to learn, so after learning the basics we jump to java and start coding structures such as lists, etc. This way you learn how the code behaves predictably and how references (or pointers for c) works perfectly before moving to other OO languages, without any noises or additional complexity that the OO languages offer

  • @LesegoTabane
    @LesegoTabane Рік тому +3083

    I’m a Java developer at a bank and we still running Java 8.
    It’s only now that I’m writing my first microservice for java17… I don’t see us getting to 21 anytime soon.

    • @cchutney348
      @cchutney348 Рік тому +254

      Same here, banks are terrible at adopting anything even remotely new. But on the flip side, what we *do* have is a horrible mess, so it's not all bad!

    • @Jubinmail
      @Jubinmail Рік тому +141

      @@cchutney348 Hey, if it isn't broken, don't fix it.

    • @cchutney348
      @cchutney348 Рік тому +131

      @@Jubinmail That's all fine and dandy, but everything works until it doesn't.

    • @Janakaq0
      @Janakaq0 Рік тому +25

      Learned java this year in college and we had to use 11

    • @xeon39688
      @xeon39688 Рік тому +24

      Java developers and users really hate to be up to date

  • @wlockuz4467
    @wlockuz4467 Рік тому +1847

    Java Website went from 2000s to 2010. Huge leap.

    • @LuisSierra42
      @LuisSierra42 Рік тому +68

      Things are looking great for the Java ecosystem

    • @jimmyjimmervin4507
      @jimmyjimmervin4507 Рік тому +4

      i am dead bro 🤣

    • @pyp2205
      @pyp2205 Рік тому +18

      Java Website in 2090: **looks like a site from 2080**

    • @CrystalStarscape
      @CrystalStarscape Рік тому +20

      me who loves the 2000s aesthetic 😢

    • @lawrencedoliveiro9104
      @lawrencedoliveiro9104 Рік тому +4

      Sorry, I don’t follow GUI fashions. I don’t have the brain cells to waste getting that joke.

  • @bunnihilator
    @bunnihilator Рік тому +72

    I develop both using Java/Spring Boot and TypeScript/NestJs
    In Node you need to install a bunch of dependencies just to make a minimal working foundation for the framework.
    The lack of type safety introduces bugs, not in compile timae but in runtime letting the wrong variable type pass.
    There are multiple ways of doing things. There is no consistency.
    In my opinion is just a wild west ar this point.
    In Java everything is typed, avoids data type bugs by compile/runtime.
    There's only one way of say declaring an array. You cannot ommit return types.
    It's strict which makes it predictable. And you won't believe this. The code is actually cleaner and better to look at than TypeScript.
    Also Spring Boot is the most advanced framework you'll ever get.
    So Java is actually stable, consistent and solid to work with.

    • @peanutcelery
      @peanutcelery 8 місяців тому +15

      I like JS but JS for the backend was a mistake

    • @driveDoses
      @driveDoses 6 місяців тому +4

      I agree with you. Even I work on spring boot and react with typescript. Backend always feels very clean, structured and easy to work. But frontend is all messed up.

    • @peanutcelery
      @peanutcelery 5 місяців тому +1

      @@driveDoses I think he was talking about TS/JS in the backend (Node), but I think it depends what framework you use in JS/TS.
      Mostly all the JS/TS frameworks do not implement design patterns, thus you get unstructured code. I have found that Nest.js and Angular are the exemption to that. I would still strongly avoid any non strongly typed language in the backend, but that's my opinion. Others say it is doable to have dynamic typing in the backend with heavy TDD implementation.

    • @simomed5002
      @simomed5002 5 місяців тому +1

      I heard recently that java standard edition will require licensing to use, and lot of headache when I searched about this, I am not even sure today if java is a paid programming language, and oracle seems to look for the least thing to get money from companies using java, you don't heard about this kind of stuff in any other language!! weird

    • @javier.alvarez764
      @javier.alvarez764 5 місяців тому +1

      Java SE is for desktop app, no one codes desktop apps these days. Most are saas products.

  • @jabelardo
    @jabelardo Рік тому +9

    Java have put bread at my table for 2 decades. Fortunately in my current job we have the policy of using the last LTS so we are currently on 17 and planning for migrating to 21 next year

  • @onrir
    @onrir Рік тому +888

    Let's see if their website can also become "modern" 😊

  • @thedownwardmachine
    @thedownwardmachine Рік тому +583

    If you want to know what Java will introduce three years from now, look at what Scala is doing now. A lot of Java updates are based on taking features from Scala and back porting them to Java, especially when the JVM gets changed to support Scala features.

    • @Nick-yd3rc
      @Nick-yd3rc Рік тому +13

      Scala has been disentangling for a few years, hope Java is still there in three years.

    • @nnnik3595
      @nnnik3595 Рік тому +73

      @@Nick-yd3rc as long as Minecraft still sells.

    • @rafalmalinowski1716
      @rafalmalinowski1716 Рік тому +23

      it takes from all the languages now, a lot of good thing every 6 months

    • @Nick-yd3rc
      @Nick-yd3rc Рік тому

      ​@@nnnik3595ask Microsoft then, they've got the crystal ball on Minecraft. Quite a huge revenue source btw

    • @Nick-yd3rc
      @Nick-yd3rc Рік тому +3

      ​@@rafalmalinowski1716I've yet to see a single feature carried over that's better that the original, looks more like a compromise to slow down the switch to Kotlin and the move away to other platforms, especially after the change of licensing and support terms that the legacy codebases have grown accustomed to. Without that failsafe SLA, a move elsewhere is on the table, and it's only the devs' reluctance that can hold it back for those projects

  • @tiffanitaylor8373
    @tiffanitaylor8373 11 місяців тому +27

    Never thought I'd see someone else say Java is their favorite language 😅 I love Java. I have affinity because it's the first one I learned and 20 yrs later, I still feel safer and more confident in my code when writing Java.

  • @porky1118
    @porky1118 11 місяців тому +23

    0:55 I think, it's fine to have "void". It's just like C.
    I'd also prefer if you don't need a function at all, but having one makes it slightly easier to refactor, if your main function will just become one of your main functions.

    • @bgdgdgdf4488
      @bgdgdgdf4488 5 місяців тому +4

      Your main function in c should return int but that's none of my business

  • @JakobMusic
    @JakobMusic Рік тому +621

    The one positive thing I have to say about Java (and thats 100% a personal thing) is that it helped me understand so many things in object oriented programming.
    I learned Java in School, learned advanced Java at university, coded in Java as my first job. Basicly any design pattern you can think of is implemented in Java, sometimes well, sometimes not so well, and you can certainly argue that there are actually too many design patterns.
    But still.. from basic inheritance to singletons, factories, dependency injection, annotations to more complex things like pattern matching, lamda functions... all this I originally learned in Java. Java is so unnecessarily complex that the only way to code in it is having a somewhat deep understanding of whats going on. Rather than javascript for example where You just bang Your head on the keyboard until something works.
    So yea.. for educational purposes Java is nice.

    • @LettersAndNumbers300
      @LettersAndNumbers300 Рік тому

      Will second this, apart from that I never learned to like it outside of learning. Classpath libbpath gtfo

    • @HolyRamanRajya
      @HolyRamanRajya Рік тому +13

      How do you define Abstraction and Encapsulation in Java? I swear I get too many candidates from Java background who say "data hiding/security" to define Abstraction and includes access modifiers as example; and says "referencing a set of similar things" as Encapsulation. Not sure if Java has fixed their docs, but I get a stroke when I hear that.

    • @Rope257
      @Rope257 Рік тому +36

      I'm sorry, Java is not "complex" if you think it's complex then I'd argue other languages are over-simplified.
      If anything, being new to a language is what makes it look complex especially if it is packed full of features.

    • @danvilela
      @danvilela Рік тому +23

      But that is the problem! You learn unnecessary stuff and your brains automatically starts producing bad code. Now you are a java head with a lot of useless concepts in your mind and you think you “learned” something good

    • @dickurkel6910
      @dickurkel6910 Рік тому +13

      ​@@danvilela Which if those concepts are useless though...

  • @quantume7143
    @quantume7143 Рік тому +34

    3:15 I was looking at the screen and said to myself: I don't get the joke.
    After a little bit I imagine myself using that class and I realized there is no getter for that private variable "joke"
    I just get the joke when I found out I can't get the "joke" lol :))
    Good one

    • @rubbish9231
      @rubbish9231 11 місяців тому

      But you get set it in same class.

    • @gonpaul_
      @gonpaul_ 3 місяці тому

      lmao

  • @midoevil7
    @midoevil7 Рік тому +56

    It is much more more that the syntax goodies
    JDK 21 will come with final release of virtual threads , which is the jvm equivalent for GO coroutines.
    Also there are multiple projects in place now in the ecosystem to make java more accessible for the cloud.
    Azul JDK released CRAC - i think- which allow java applications to have startup times in ms ,
    Frameworks are focusing on AOT builds using graal vm, which can also allow applications to have smaller memory footprints and ms startup times.
    The JDK team is working on multiple refactoring projects for the language, major changes in the type system, objects memory foot prints.
    But God knows when this will ever finish 😅
    Virtual threads took like 5 years in brewing and reviews

    • @user-wv9tp1tb4r
      @user-wv9tp1tb4r 11 місяців тому +4

      Thank you! This video is absurdly bad. Like a 16yrs old kid made it.
      Judging a language by how "hard" is it to write hello world...

  • @DavisBrown-jb7sw
    @DavisBrown-jb7sw Рік тому +90

    If you are not in the financial market space right now, you are making a huge mistake. I understand that it could be due to ignorance, but if you want to make your money work for you…prevent inflation

  • @orbyfied
    @orbyfied Рік тому +1676

    Java is a mid language, but the JVM and Java Ecosystem are incredible

    • @Infiny92
      @Infiny92 Рік тому +42

      Is there any reason to learn Java and not directly something like Kotlin?

    • @orbyfied
      @orbyfied Рік тому +204

      @@Infiny92 yeah, cuz kotlin is weird

    • @sethjets4687
      @sethjets4687 Рік тому +165

      @@Infiny92 Not really, Kotlin was made by jetbrains and it's directly aimed to write java with a lot less boilerplate due to it's interoperabilty, so learn Kotlin and later if you really need to program in java at least the road won't be that hard

    • @itsmenotjames
      @itsmenotjames Рік тому +17

      @@sethjets4687 kotlin was made by jetbrains...

    • @sethjets4687
      @sethjets4687 Рік тому +4

      @@itsmenotjames Oops, corrected 😅

  • @HeisenbergFam
    @HeisenbergFam Рік тому +424

    "Java is my all time favorite programming language.. To make fun of"
    The ultimate embodiment of "ngl he had us in the first half"

    • @recommendmeanything
      @recommendmeanything Рік тому +4

      Oh my god, you're everywhere lol

    • @rodrigovaccari7547
      @rodrigovaccari7547 Рік тому +11

      Bro spends his life on youtube

    • @LetsPlayCrazy
      @LetsPlayCrazy Рік тому +2

      I was expecting:
      "Java is my all time favorite programming language.. Said no one ever!"

    • @frozenintime
      @frozenintime Рік тому +4

      ​@@LetsPlayCrazy Java is my favorite programming language.
      I don't do scripting. There's a difference.

    • @LetsPlayCrazy
      @LetsPlayCrazy Рік тому +1

      @@frozenintime So... you just like how much suffering it brings to others?
      I can respect that.

  • @itsandyagain
    @itsandyagain Рік тому

    One of your best! Also, the background music was fleek and on point

  • @cse8617
    @cse8617 4 місяці тому +5

    thank you all for hating java, less competition for me, keep it up

  • @sumansaha295
    @sumansaha295 Рік тому +392

    Kotlin makes me appreciate Jvm and Java ecosystem, The developer experience is very good, and I totally understand why enterprise software is written in Java. Less time reinventing wheels and more time getting work done. And the performance isn't even bad.

    • @officialtechin5
      @officialtechin5 Рік тому +11

      Would you mind sharing your thoughts in more detail? I'm learning at the moment and I find what you say very interesting

    • @Gaer56
      @Gaer56 Рік тому +37

      I'm jealous, I've started with Eclipse, and it made me hate Java with passion.

    • @MrLowbob
      @MrLowbob Рік тому +60

      @@Gaer56 intellij all the way, if I have to code in java ... everything else is unbearable.. eclipse isn't bad per se, but java sucks and inteiilj makes the best out of a shitty experience so far ;D

    • @MrLowbob
      @MrLowbob Рік тому +10

      kotlin is decent, still prefer other stuff if I'm allowed to.
      I second the "don't reinvent the wheel" part though. and that will probably be the reason why java will stay so relevant for quite a long time

    • @wlockuz4467
      @wlockuz4467 Рік тому +35

      I started working on Android with Eclipse and Java. When I started using Android Studio and Kotlin, I felt like I was released from a mental asylum.

  • @HandledToaster2
    @HandledToaster2 Рік тому +24

    As a Java Developer: please continue to hate Java with a passion, that means more open positions and higher salaries for me!

  • @magnetdysfunction9889
    @magnetdysfunction9889 11 місяців тому +17

    I've been using all of the features mentioned in this video in my work for at least 18 months... in C#.

  • @CricketThomas
    @CricketThomas Рік тому +28

    C# is enterprise and is not slow in adopting new features. Literally it should be used by startups before node

    • @test-rj2vl
      @test-rj2vl 10 місяців тому +4

      Node is worst thing that happened to web development.

    • @CricketThomas
      @CricketThomas 9 місяців тому +5

      @@test-rj2vl piggybacking off of that, the worst thing that happened to desktop development was electron

  • @mario_luis_dev
    @mario_luis_dev Рік тому +474

    My favorite language continues to be and will always remain C++, but now that I've been working with Java and the Spring framework for nearly two years, I can say that I dig the Java ecosystem more and more. It's not as bad as ppl make it seem

    • @marquez2447
      @marquez2447 Рік тому +163

      I'm sure that most people who hate on Java have never worked professionally with it

    • @joshman1019
      @joshman1019 Рік тому +40

      @@marquez2447 I've found the same for C#. But I love the fact that if you know one, you mostly know both. So the two languages and their ecosystems really work well together.

    • @HolyRamanRajya
      @HolyRamanRajya Рік тому +21

      I learnt Java in school, but started career with C#. .NET is just miles better. Kotlin is good too, so is F# now. Most annoying aspect of Java is they used dumb words like "data hiding" to define Abstraction and "referencing a set of similar things" as Encapsulation. idk if they changed it but I still get candidates with Java background in interviews who use these definitions.

    • @NatoBoram
      @NatoBoram Рік тому +5

      Everything seems good when you only know the hardest languages. You should try something different!

    • @MeseretMuleta-cx4tz
      @MeseretMuleta-cx4tz Рік тому

      Hello mario , i am beginner java student would you mentor me ?

  • @alvins5054
    @alvins5054 Рік тому +236

    There are a lot of convenient shortcuts in IntelliJ such as psvm and sout instead of Public Static Void Main or System.out.println etc. I recommend looking them up for people who don't know because it will save a bit of time here and there.

    • @xelspeth
      @xelspeth Рік тому +13

      This is the reason why I have to type sout to write console.log

    • @Unga_Bunga
      @Unga_Bunga Рік тому +77

      How often are you guys writing main methods. Like 20 times a day?

    • @alvins5054
      @alvins5054 Рік тому +16

      @@Unga_Bunga Not main, but sout or other stuff are a bit more common.

    • @wyqtor
      @wyqtor Рік тому +11

      GitHub Copilot is the biggest timesaver of them all!

    • @Midlifecrypto
      @Midlifecrypto Рік тому +15

      IntelliJ FTW! Such an amazing IDE frankly speaking!

  • @Bash70
    @Bash70 11 місяців тому

    1:45 You can do string interpolation with the StringSubstitutor Apache class for older versions of Java.

  • @catlord539
    @catlord539 Рік тому +6

    For me, I learned Java in high school and python as a bit of a side project, python seems better for something quick and when you don’t want to worry about the stuff like decoding a video file into frames or something but if you need speed then Java is much better, it is also fun to make stuff in Java, still learning both of them so certain things are easier in either one , even “quick” programs I sometimes make in Java if it feels Easier and since Java is my first language, I will have a soft spot for it but it can be a bit complicated sometimes but at least I got chatgpt to teach me more about it,even if it is a bit outdated at this point

  • @ilkou
    @ilkou Рік тому +101

    The spring framework makes Java so much fun to work with 🍃

    • @SirDamatoIII
      @SirDamatoIII Рік тому +21

      Have you tried C#.

    • @ilushkins4642
      @ilushkins4642 Рік тому +72

      "The spring framework makes Java so much fun to work with"
      ... unless you worked with any other web framework

    • @musashi542
      @musashi542 Рік тому +2

      @@ilushkins4642 true lmao

    • @xN811x
      @xN811x Рік тому +15

      ​​​@@SirDamatoIII I've used both and I would use neither for my personal projects. Sure, C# has more syntacic sugar than Java, but it still promotes the same way of structuring programs.
      I recently worked with a collegue on a project. He did the backend, I did the frontend. I had a look - everything he implemented could have been done in about ~1000 lines of TypeScript. Instead he created distributed mess of abstractions. I don't know why anyone would want to work in something like that.
      But idk... it's a personal preference I guess. Some people like "implementation patterns", some want to get things done.

    • @OzzyTheGiant
      @OzzyTheGiant Рік тому

      Said no one ever

  • @harald9586
    @harald9586 Рік тому +96

    As Bjarne Stroustrup once said “There are only two kinds of languages: the ones people complain about and the ones nobody uses.”

    • @UltraGaivalas
      @UltraGaivalas Рік тому +5

      Yes

    • @Nick-yd3rc
      @Nick-yd3rc Рік тому +5

      There's also Rust which everyone's trying to rewrite the world in.

    • @leularia
      @leularia Рік тому +1

      who use java if new project

    • @leularia
      @leularia Рік тому +3

      im 1000% sure no one will start new project from scratch and use java

    • @tsigahn6509
      @tsigahn6509 Рік тому

      @@leularia well I’d imagine it depends on the project

  • @PhaseControlDNB
    @PhaseControlDNB Рік тому +1

    2:04 that line about the new Java website looking 10 years out of date instead of 20 got me :D

  • @jerichiyo
    @jerichiyo Рік тому +22

    I learned to code with Java, completed my first project with php, tried to switch to c#, wanted to learn Javascript, but now i find myself working with java! what a life.

  • @fasantupp
    @fasantupp Рік тому +76

    Ah, Java is fine. We've been updating our codebase from 8 to 17 for the last year. We have good templates to setup new micro-services and great company specific imports for boilerplate code. And there is so many annotations you can use to make the code look pretty. I started out in C# but java is kind of growing on me.
    Privately I usually use python though. For frontend I use whatever feels best at the moment, I kinda like flutter because of the cross platform easiness.

    • @kahssie
      @kahssie Рік тому +3

      i miss flutter for sure! was a short stint with it, but going from 0 programming knowledge to getting thrown into the middle of higher education with it was challenging to say the least. Flutter is a uniquely structured language, but it helped me visualise how programming its parts worked.. and something in my brain clicked about programming altogether. Actually saved me a ton!

    • @transcent7
      @transcent7 6 місяців тому +2

      ​​@@kahssiewhyd you miss it though? Flutter is growing. Slowly but steady. Can't wait for release of webassembly shenanigans, maybe people who actually studied CS for a month will understand what that means and drop js for good.

  • @viktorstojanovic9007
    @viktorstojanovic9007 Рік тому +16

    Just use c#

  • @Bourn77
    @Bourn77 Рік тому +101

    As a C# developer, the modern changes coming to Java makes me happy too. It have been left behind for a long time. I leared Java in College, and it has a special place in my heart. That being said, choosing Java for a new project is a huge no for me. C# just does everything better these days. Also if i have to work with Jvm i will probably go with Kotlin.

    • @HolyRamanRajya
      @HolyRamanRajya Рік тому +17

      amen, also .NET routinely officialises and inbuilts many things which Java would depend on third party implementations. There is so much support directly from MS because of it.

    • @andrewrobie620
      @andrewrobie620 Рік тому +3

      I'm right there with you. I still mostly program in Java for work, but for a long time, it just felt like it was getting left father and farther behind, and for anything new, I'd pretty much jump straight to Kotlin. At least now it feels like it's starting to catch up again.

    • @bastienm347
      @bastienm347 Рік тому +1

      What framework for web development do you use in C# ?

    • @HolyRamanRajya
      @HolyRamanRajya Рік тому

      @@bastienm347 420 Blazor it

    • @noname78520
      @noname78520 11 місяців тому

      @@HolyRamanRajya true

  • @Baptistetriple0
    @Baptistetriple0 Рік тому +89

    For those that don't get why you need the "charAt" method on string in Java and can't directly index it, it is because string in Java are UTF-8, so it is not just an array of char, it is an array of bytes, because UTF-8 is based on unicode so not all char are the same size in bytes, so accessing the nth char is not O(1), it is O(n) as you need to traverse the string to find the starting location of the char, find it's size, and decode to unicode. Strings that handle UTF8 "out of the box" are harder to deal with, because they have railguards to prevent you from shooting yourself in the foot, but force you to write code that's going to work whatever the string is. strings with char out of the ascii table are a pain to deal with when not natively supported.

    • @sku796
      @sku796 9 місяців тому +6

      You are wrong. Strings in Java is NOT UTF-8. It is UTF-16 where all characters have 2 bytes. Since Java9 we can have compact strings where all characters have 1 byte. So complexity is ALWAYS O(1). You can look into source code for charAt.

    • @joshainthere4402
      @joshainthere4402 9 місяців тому +16

      You are both wrong. Strings in Java are NOT UTF-8 or UTF-16, they are UTI-PooPooCaca so each char is 3 bytes. I know this because I use python.

    • @sylvereleipertz955
      @sylvereleipertz955 8 місяців тому

      ​@joshainthere4402 ha yeah python. Aka the slowest programming language of the universe 😂

    • @jamesking2439
      @jamesking2439 5 місяців тому

      ​@@sku796 Wait, isn't UTF-16 variable length?

    • @hellterminator
      @hellterminator 3 місяці тому

      @@jamesking2439 It is, but all the platforms ignore that and pretend it's not.

  • @josealvaradotorre6870
    @josealvaradotorre6870 Рік тому +262

    The Streams API and annotations are gorgeous. I honestly prefer Java much more than JS/TS for functional programming.

    • @InfernalLegion84
      @InfernalLegion84 Рік тому +2

      Yes! I was hoping to find at least one comment like this :)

    • @danielhalachev4714
      @danielhalachev4714 Рік тому +8

      I also like the switch statements

    • @sumansaha295
      @sumansaha295 Рік тому +3

      Streams api doesn't work as well as I want, a while back I wrote some map and flatmap transformations, it didn't work, wrote the same thing in kotlin and it works perfectly.

    • @driden1987
      @driden1987 Рік тому +14

      If I wanted functional on the jvm I’d just stick to Scala.

    • @jayshartzer844
      @jayshartzer844 Рік тому +10

      In Kotlin it is as easy as a: (b) -> c

  • @Chrisdashes
    @Chrisdashes Рік тому +6

    "Put food on my family @0:38" . . . WHAT!!?

  • @richardcesar5546
    @richardcesar5546 Рік тому +32

    This might be a hot take, but up until rust, Java was unironically my favorite language to work in for most mid to large size projects. And the reason primarily comes down to its enums, which for both languages take on the power of variants. These variants make the strategy pattern, aka swappable implementations, a pleasure to work with. The scaffolding never bothered me, a lot of that was auto-generative. As an example if you type the keys "psvm" followed by a space in most java ide's your going to get a fully formed main.

    • @FurryDanOriginal
      @FurryDanOriginal 10 місяців тому +1

      Enums are one of the very few things I prefer much more in Java than C#.

    • @si-level
      @si-level 10 місяців тому

      What so good with enum?

    • @HrHaakon
      @HrHaakon 8 місяців тому

      @@si-level
      1. The instances of the enum are all the instances that there will ever be, so they're an enumeration of values.
      2. They're still just normal objects with methods, fields, etc. like any other method. They can extend other classes, implement interfaces and so on.
      Together this lets you deal with certain enterprisey problems very succinctly.
      A lot of stuff tends to end up with code like:
      return MyEnumThatDoesSomething.findTheRightOneFor(thing).manhandleItIntoWhateverYouNeed(someDependency);
      Which tells everyone reading it what's going on immediately:
      - There's multiple ways to deal with this input.
      - These ways are inside this enum.
      - The enum itself has a static method that can find the right one for you
      And so you don't have to care too much. A lot of complexity can be ordered inside there.
      There are other ways that it helps too.

  • @GoodSmile3
    @GoodSmile3 Рік тому

    Lol your meme videos are much better than the 100 seconds series, love your character development

  • @filipstudeny
    @filipstudeny Рік тому +139

    It may sound wierd, but I love how Java code is big.
    It makes me feel good when I code something (also I do get paid to create exercises for Java)

    • @jamesonthehills
      @jamesonthehills Рік тому +32

      why do i understand and agree with what you just said

    • @sdfsdf421df
      @sdfsdf421df Рік тому +80

      big java code is trick. It's really annoying to write problem X in 25 LOC of code, but once you did that, you have straightforward, easy to read code. I love it. We had externist who worshipped scala. He wrote it in 2 LOC or so. Without unit testing, because why if it works(his actual words). I took me 1 hour to understand it, another one to be sure it's wrong, 20 minutes to convince him to explain it, 40 minutes him trying to remember how it worked in first place before he admitted it's wrong indeed. - you want big easy code. And learn to write using all 10 fingers, without mouse and arrowkeys, and how to use templates to spit out text quickly. Code should be written to be understood, not to be written faster.

    • @InfernalLegion84
      @InfernalLegion84 Рік тому +19

      @@sdfsdf421df Amen brotha

    • @lubricustheslippery5028
      @lubricustheslippery5028 Рік тому +20

      I have a feeling that one of the problem with Java is that you can write a lot of boilerplate object oriented code that don't do much and feel happy.

    • @sdfsdf421df
      @sdfsdf421df Рік тому +4

      @@lubricustheslippery5028 true, and probably part of that java is big and easy to work with. I mean you can write object oriented code - private fields/methods, polymorphism, inheritance - in pure javascript using prototypal inheritance, but will start to suffocate with your first class supporting all this. Anything deeper than 3 will be headache. The language complexity (in this aspect) and how hard it is makes you not to do it (often). You can do a really bad stuff in lots of languages. Same in java, but you will get lost in complexity later, so the discouragement to do it is weaker... Sometimes when you will get lost it's too late. You are definitely correct, overengineering happens to me and I need to control it, but I don't think it's necessarily bad aspect of language. It's direct implication of it being easy and understandable; you have room to create your own complications to work with, where other languages comes with them already :D

  • @thejonte
    @thejonte Рік тому +5

    Amazing to see a new Fireship video!

  • @waliqadri
    @waliqadri 11 місяців тому +53

    Java's syntax is admirably structured, adorned with informative keywords that empower developers. Despite the jests surrounding "public static void main string args," these essential keywords precisely convey vital information. Each keyword plays a significant role, and once you get good at it makes you feel in more control.
    As a C# programmer, But i love java(not Oracle) due to its exceptional organization and powerful nature. Not only is it simpler to maintain, but it also proves to be a reliable choice for enterprise-level software development that can stand the test of time for many years.

    • @kaz7690
      @kaz7690 11 місяців тому +20

      I don't know why people hate Java because it takes so long to write the main method and to print something when literally every word in those 2 lines have a very well structured meaning. Everything in Java exists for a reason and everything is very well defined.

    • @exidrial431
      @exidrial431 11 місяців тому +3

      @@kaz7690 "takes so long" - The main method gets auto created and printing something is a matter of just typing Sys and hitting alt+enter or whichever is your auto complete key.
      'Then why have the System.out when it just gets auto completed anyway?' - I can see the question coming and the answer is simple - it conveys importnt information.
      If you just read "print" then how can you be sure that it's the global print method? That it wasn't overwritten somehow? How can you be sure that it's printing to the console?
      Sure you can expect all of these things to be a given, you can expect that "print" simply prints to the console or whatever. But it's about the principle.
      Java is very good at clearly declaring what everything is doing - And that is what I love about it, I wouldn't have it any other way.
      System.out.println() to me looks cleaner and more correct than simply print().

    • @benhook1013
      @benhook1013 11 місяців тому +8

      @@exidrial431 Its very frustrating reading all of that java hate, most of it is nonsense. Who the fk uses println in production code, you call a logger function. Most of the people hating on OOP seem to be hobbyists.
      We switched to Go at work, we have about 15 microservices that make up our app, and Go has been a nightmare of finding missing/incomplete features, having to refactor things as Go makes breaking changes etc. We've been using it for 3-4 years now so probably jumped on a bit soon, but we are still finding library code that we have to write our self, that would be included in Java :/

    • @kakalukio
      @kakalukio 11 місяців тому +8

      @@kaz7690 It's simple really; Java is like that strict music teacher who makes you practise your scales over and over, or a ballet teacher who keeps complaining you should point your toes and maintain proper posture.
      The people complaining are the smartass teenagers in the class who just wannt skip the boring part of learning how to do things properly and immeadiatly play the complicated guitar solos without ever learning the basic fundamental skills. So they fuss and moan when the strict teacher forces them to do things properly. They'd much rather "program" in something like Python, where they can just write any old garbage, preferably using a library that does 99% of the actual difficult work for them, and it'll probably work.
      It's also why these complaints are basicly always about absurdly trivial examples, like hello world. These aren't people writing a lot of actual code for big projects, so to them it always remains pointless boilerplate with little to no use.

  • @MaxGillard-03
    @MaxGillard-03 Місяць тому

    actually just learned java and I like public static void (String args[]) when you understand what each word means it makes a lot of sense

  • @nicolasfelipe1
    @nicolasfelipe1 Рік тому +68

    Java + Spring Boot is still the king for the backend, no other languages and frameworks come even close as Typescript and Nextjs are the king of the Frontend.

    • @purpinkn
      @purpinkn 11 місяців тому +5

      🤮

    • @suryapratap3043
      @suryapratap3043 10 місяців тому +1

      I often wonder why companies still use spring boot for the backend despite Java becoming obsolete day by day.

    • @trots4940
      @trots4940 10 місяців тому +6

      @@suryapratap3043 cause its the best one

    • @32zim32
      @32zim32 7 місяців тому

      PHP symfony is great too

    • @nicolasfelipe1
      @nicolasfelipe1 7 місяців тому

      if it works for you awesome@@32zim32

  • @ronanmullarkey
    @ronanmullarkey Рік тому +6

    You can get rid of the brackets, the semi-colon and even the file: groovy -e 'print "Hello" '. Groovy did this on the jvm almost a generation ago, before kotlin and swift stood on it's shoulders.

  • @lordofthewest
    @lordofthewest 11 місяців тому +13

    Java is a great programming language to learn. It might be the best second language for learners, since while the syntax is verbose, it is specific and easy to understand once you get the basics. Once you know java, it is much easier to pick up something like c++, since you don't have to learn the oo paradigm and memory management at the same time.

    • @deeplife9654
      @deeplife9654 4 місяці тому

      People hate Java because they are not able to learn and find it hard to learn. 😂
      L

    • @kimgysen10
      @kimgysen10 3 місяці тому

      As a Java consultant, I'm happy to say that it is easy as f. Delving into external libraries to see what's happening or causes problems is easy, great debugger. Can't remember the last time I ran into unsolvable problems, there are none.

  • @quequien4577
    @quequien4577 Рік тому

    You made me remember when we were presenting our code in progress but when the professor wanted us to run our code it didn't run because the computers in the class were using java 17 and we were working with java 20.

  • @johnnychang3456
    @johnnychang3456 Рік тому +154

    Ironically Java doesn’t need a “comeback”, it has always been one of the most popular and pervasive languages. And I doubt it’s ever gonna change in our lifetimes.

    • @BusinessWolf1
      @BusinessWolf1 Рік тому +2

      yea... sure

    • @MrLowbob
      @MrLowbob Рік тому +18

      popular? meh.. most used, sure.
      java isn't really fun to work with and I don't know many that think its a good language compared to others.
      The HUGE and very hard to replace advantage that java has is the decades of enterprise code that is readily available to use. you can have your fun experience in GO or Rust or whatever, but if you can decide between established frameworks doing the things you need and taking 5 libraries and writing the boilerplate to put it all together in other languages, java just wins sadly.
      If things like GO and Rust, or idk, whatever, had a comparable amount of high quality third-party tools, java wouldn't be half as popular anymore

    • @09TYPER
      @09TYPER Рік тому +7

      @@MrLowbob so what makes you think that its fun to work with rust and go?

    • @bjarne9700
      @bjarne9700 Рік тому +10

      ⁠@@MrLowbobBro mentions fun to work and go in one comment lol. Go is one of the worst languages I’ve seen in a while and I’ve worked with python.
      I’m not saying Java is the best language for all use cases. It 100% isn’t. But it’s one of the best for most use cases. For example large web applications. A Java code base is incredibly easy to maintain compared to other languages. It has robust error handling (unlike go) and generally allows for a lot of mistakes to be statically analyzed. For most people having having a maintainable code base and an incredible range of dependencies to choose from is worth more than the 0.00002353s time saved if implemented in a compiled language.

    • @MrLowbob
      @MrLowbob Рік тому +1

      @@09TYPER tbh for Rust im Not so Sure yet. Its Not easy. I worked some with Go though and compared to Java I enjoyed it quite a bit

  • @johneurich8747
    @johneurich8747 Рік тому +5

    2:04 I Laughed so hard on that

  • @Louis_H_
    @Louis_H_ Рік тому

    Lol I'm just going to start my java development classes soon this feels like a ripple in the matrix with the timing you dropped this video :D

  • @yashrajsharma187
    @yashrajsharma187 Рік тому

    hands down the best first min of a video I ever saw !!

  • @magamboisaac7602
    @magamboisaac7602 Рік тому +33

    After spending 6 months learning java am happy to say I understand the memes

    • @GuitarSlayer136
      @GuitarSlayer136 Рік тому +2

      I don't know 2 things about Java but I'm a react dev so my best guess is that the resulting code produces something to the affect of "Could not get newJoke" or am I completely off base here?

    • @magamboisaac7602
      @magamboisaac7602 Рік тому

      @@GuitarSlayer136 u got it right

  • @spidfirechan5830
    @spidfirechan5830 Рік тому +19

    I love how, the more i know about code, the funnier your videos get

  • @jimitopfer8726
    @jimitopfer8726 Рік тому

    The encapsulation meme at 3:14 was a good one :D

  • @beantheif3795
    @beantheif3795 Рік тому +1

    0:39 "because i need that boilerplate to put food on my family" hes not even feeding them, just putting it on them.

  • @deideideidei
    @deideideidei Рік тому +6

    public static void main string args

    • @elomuskreal
      @elomuskreal Рік тому

      System.out.Println(“Hello World”);

  • @jackhawkins7285
    @jackhawkins7285 Рік тому +1

    Just did an assignment where I had to learn Java from scratch the day this came out. The system.our wound me up so much

  • @victorpinasarnault9135
    @victorpinasarnault9135 Рік тому

    The virtual threads are pretty exciting too!

  • @gwch3481
    @gwch3481 Рік тому +25

    besides the simplification of boilerplate and structured concurrency(loom), other features coming pretty soon (and some already usable in preview): easy native code interop with foriegn memory access apis and jextract (panama), less devouring of ram as mentioned in the video by storing objects more like structs (valhalla)

    • @holthuizenoemoet591
      @holthuizenoemoet591 Рік тому

      Can anyone pls point me to a good easy way to install (use in code) 3th party libs in Java? As a Python and JS dev im used to pip and nmp etc

    • @ninetysixvoid
      @ninetysixvoid Рік тому +2

      ​@@holthuizenoemoet591 Maven or Gradle

    • @Nick-yd3rc
      @Nick-yd3rc Рік тому +1

      That's all good on paper and in announcements, but as far as I've given it a few test drives, it's been underwhelming so far. It may seem like a significant improvement over enterprise Java but objectively it's not as impressive when compared to the many modern alternatives runtimes.

    • @harleyspeedthrust4013
      @harleyspeedthrust4013 Рік тому +1

      @@holthuizenoemoet591 maven is ok. gradle is a piece of shit. please don't use gradle unless you want a headache

    • @theshermantanker7043
      @theshermantanker7043 Рік тому

      Don't forget Lilliput, which plans to slash object header sizes by more than half all around

  • @yashkhd1100
    @yashkhd1100 Рік тому +22

    Java or .c# may sound old but it has all the bells and whistles to write way more optimized and stable apps. Though I believe both Java and C# are very easy to learn still I have seen lot of people who finds it more involved. So all these folks go towards JS where entry barrier is very low. Initially JS gives impression its really fast to develop however any experienced developer will realize while it sounds quick to develop initially but kind of baggage it comes with will create huge issues later if your application grows in size. Simplest example I can think of is in 2023 NodeJS world has yet to settle on which ORM to use either PRISMA or Dizzle or something else where each of them having basic issues like performance, cold start timings etc. .C# and Java world has solved ORM thing from more than 10 years back. They are performant with rock solid stability. I have seen video from jack about React server components and Next JS server performance. A slow language like PHP was able to beat React server and Next JS by huge margin. Java and c# both beats PHP in terms of performance and stability by huge margin.

    • @Nick-yd3rc
      @Nick-yd3rc Рік тому

      There's always a certain intrinsic complexity in every domain problem. If you pick a tool that doesn't align well with it, you're gonna add overhead complexity emanating from that gap. That said you can transpile to JS from Java, Kotlin and C# too, but it's still best reserved for the back-office apps.

    • @yashkhd1100
      @yashkhd1100 Рік тому

      @@Nick-yd3rc Ya we can transpile almost every lang to JS but it will create more nusance than it solves. One will need whole set of tool chain like debugger mapping from source lang to JS and what not. It just doesn't make any sense. It's time to get rid of JS as the only player from the web. Let webassebly matures itself which is specifically designed as transpile targets and devs will have many options to choose from.

    • @Nick-yd3rc
      @Nick-yd3rc Рік тому

      @@yashkhd1100 I wish everyone would just move to PureScript and finally get to enjoy proper frontend DX

  • @Nnemka
    @Nnemka Рік тому

    i love your channel! please never stop!

  • @7blue072
    @7blue072 6 місяців тому +1

    Used to program a little bit in Arduino C and started learning java as part of my AP CS A class, and so far strings being objects is what messed me up all the time 😭

  • @aleksanderdzierzon6681
    @aleksanderdzierzon6681 Рік тому +17

    You forgot to mention about virtual threads which is a huge deal! But only when the ecosystem will adopt to use it (so +10 years to wait :D)

    • @bastienm347
      @bastienm347 Рік тому +1

      He compares Java to language that like Javascript which does not even have threads. Beginners don't use these advanced programming features

    • @user-wv9tp1tb4r
      @user-wv9tp1tb4r 11 місяців тому

      New spring will use it immediately

  • @PerroConChaleco
    @PerroConChaleco Рік тому +7

    yeah but all corpos who use java also make sure to use ancient java so it doesn't really matter

  • @keemingxian8629
    @keemingxian8629 Рік тому +2

    What is the name of the music at the end?

  • @DhirenDash
    @DhirenDash Рік тому +27

    OOP design patterns are not unecessary my friend. When you look at huge backend projects in Enterprises, its these OOP patterns that help us understand the application logically in an otherwise chaotic codebase.

    • @devswell6538
      @devswell6538 10 місяців тому +1

      I’ve seen it both ways. Depends on your data tbh. But functional serverless functions in a microservice infrastructure can be just as clean and easy as a monolith oop project sitting on a massive app service instance. And vise versa.

    • @bgdgdgdf4488
      @bgdgdgdf4488 5 місяців тому

      Just because someone tries to use an unecessary concept doesn't make it necessary. Programming is not a yes-or-no question. If it was, only 1 programming language would exist. People have been arguing about the "right way" for decades

  • @sickna-sty3244
    @sickna-sty3244 Рік тому +201

    As a dev who started with Java. I approve of this comeback.

    • @Gregorius421
      @Gregorius421 Рік тому +16

      As a dev who started with Java I enjoy these jokes.

    • @aname4931
      @aname4931 Рік тому +18

      Same. I can't explain why, but to me, Java feels cosy where JS feels haphazard and python feels brittle.

    • @coldestbeer
      @coldestbeer Рік тому +13

      Everyone should learn Java. It teaches programming fundamentals & OOP like no other language.

    • @daleryanaldover6545
      @daleryanaldover6545 Рік тому +1

      as someone who played around Java a couple of weeks ago, this made me cry 😭

    • @thecoolnewsguy
      @thecoolnewsguy Рік тому +1

      ​@@coldestbeerI don't like public static void main string args

  • @domenicolordi206
    @domenicolordi206 Рік тому +14

    I'd love to see a SQL."delete from table where id=\{id}" to finally solve every problem of sql injection

    • @TheDragShot
      @TheDragShot Рік тому

      I could see an javax.sql implementation from whatever abstract class they spin up for this, that takes care of all that. It would be nice.

    • @midoevil7
      @midoevil7 Рік тому

      THEY ACTUALLY DO!
      AFAIK The java string templates actually have embedded rules, depending on the template type.
      So you can have a string template for SQL which will properly handle query parameters.
      So the templates are not just syntax sugar.

    • @vinterskugge907
      @vinterskugge907 Рік тому

      When string interpolation is here, you can write a template processor that does exactly that. I am planning to write one that produces a PreparedStatementCreator for use with Spring's JdbcTemplate.

  • @appy2501
    @appy2501 Рік тому +5

    This guy is going to level infinity ♾️ So much details and meaning in every word and line.
    Will hope to meet you someday😉
    Hats off to you boss🤞👍

  • @Raress96
    @Raress96 11 місяців тому +1

    Maybe you can make a short explaining the Java naming convention?
    Not sure how from Java 8 we got Java 14 and now Java 21 :-?

  • @dimitrilesnoff468
    @dimitrilesnoff468 Рік тому +4

    1:07 « If we rename it to print, we get a perfect language ». Python, F#, Nim and Mojo: What about the semi-colon?

    • @lawrencedoliveiro9104
      @lawrencedoliveiro9104 Рік тому +1

      Fun fact: Python allows semicolons in places like that.

    • @dimitrilesnoff468
      @dimitrilesnoff468 Рік тому

      @@lawrencedoliveiro9104 Didn't know that! Just learnt it as well for Nim.

  • @Ryuujin1024
    @Ryuujin1024 Рік тому +222

    Glad to see Java evolving, but im sticking with Kotlin. All the joys of a modern language and proper handling of nullable types.

    • @chatGPT7
      @chatGPT7 Рік тому +12

      Optional doesn't cut it?

    • @AbhinavKumar-dl2ph
      @AbhinavKumar-dl2ph Рік тому +42

      Even I like Kotlin but the sad part is Kotlin is replacing Java only in Android development and nowhere else

    • @dim4gg
      @dim4gg Рік тому +4

      Kotlin with it's companion objects and 1mln modifiers is a joke by definition 😂

    • @WolfrostWasTaken
      @WolfrostWasTaken Рік тому +44

      @@chatGPT7 Optional itself can be null which defeats the entire purpose sometimes because stupid (very stupid) programmers will return null directly instead of the empty optional...
      It's way better in Rust where it's a first-class citizen

    • @chatGPT7
      @chatGPT7 Рік тому +4

      @@WolfrostWasTaken interesting point 🤣

  • @primo_geniture
    @primo_geniture Рік тому

    Sir, this was freaking awesome!!! One can never make too much fun of Java!!

  • @elhombre2711
    @elhombre2711 11 місяців тому

    You've just motivated me to download java and take a look

  • @Jac0bIAm
    @Jac0bIAm Рік тому +16

    I'm not even a programmer or software engineer, but these videos are absolutely hilarious lmao. Keep it up dude.

  • @shantanukulkarni8883
    @shantanukulkarni8883 Рік тому +9

    Minecraft, here I come.

    • @lando2011
      @lando2011 29 днів тому

      Minecraft still uses Java 17

    • @pikagamer9676
      @pikagamer9676 9 днів тому

      ​@@lando2011 No now the latest versions uses java 21

  • @zhafran7076
    @zhafran7076 Рік тому

    Yeahh babyyhhh, I have been waiting for an update like this, and finally update their website

  • @mohamedelidrissi810
    @mohamedelidrissi810 Рік тому +4

    Java is the new guy she told you not to worry about

  • @lalainaichane319
    @lalainaichane319 Рік тому +32

    As a newly-converted Java developer, I'm delighted to hear that the language I've invested the last three months of my life in is still relevant !

    • @realmimak
      @realmimak Рік тому +13

      condolences

    • @meltygear5955
      @meltygear5955 Рік тому

      We're literally two!

    • @Jubinmail
      @Jubinmail Рік тому +8

      Hey man, of course it's relevant. Any big company I look for a job, has a Java requirement, which is... great 🥲.

    • @Gaer56
      @Gaer56 Рік тому

      I'm soon to be forced into learning Java from Python (can't find job), what should I do to ease the pain?
      Programmed in C#,C++ before but I forgot more complex things

    • @onebigsnowball
      @onebigsnowball Рік тому +18

      @@Gaer56 There is no pain in java. All the anti java memes come from unexperienced kids who need a scapegoat in order to cope with their lack of skill and feel better about using python
      edit: ill be honest maven and gradle are painful

  • @GyroCannon
    @GyroCannon Рік тому

    I was thinking exactly what was in the video:
    These features are neat and all but good luck convincing enterprise heads of tech to upgrade

  • @davidparker5530
    @davidparker5530 11 місяців тому +2

    3:24 I should point out that the meme is a bit harsh, because in this case, it isn't correct to treat strings as arrays of characters, they are not. In Java, the String class is encoded using UCS-2 aka UTF-16. In Java, a character (char) is a 2-byte type that used to represent a Unicode UCS-1 code point. However, that was only sufficient when the number of code points was less than 65536. Now Unicode has 1+ million. So UCS-1 was extended into UTF-16 which allows for some special pairs of 2-byte chars to be combined together into a 4-byte character, called surrogate pairs, to represent characters beyond the base multilingual plane. In these cases, if you just index a string as an array and get out a char, it might only be half the bytes of a unicode character, and you will experience bugs. Just see how many Java "reverse string" methods fail when using emojis. All this being said, Java String.charAt() is also busted for the same reasons stated above. Really, what we need is an object of a class that represents a "character" in a more abstract sense, regardless of underlying encoding or number of bytes in the buffer where it lives.

  • @sakarhamasaeed9909
    @sakarhamasaeed9909 Рік тому +6

    Me leaving Apple live conference to watch your video..

  • @jayshartzer844
    @jayshartzer844 Рік тому +5

    Kotlin has all that, more, and can be used on the Java 8 (1.8) JVM along with 2-way interop with Java code.

    • @terpila
      @terpila Рік тому

      Kotlin is my favorite lang so far. Already using it in most of my projects

  • @pratikwankhede6218
    @pratikwankhede6218 11 місяців тому +2

    What people are forgetting is that the biggest pain point like boiler plate code can now be managed with Copilot and AI assistant code tools.

    • @henson2k
      @henson2k 10 місяців тому +1

      but it still polluting the source files

  • @ChrisP872
    @ChrisP872 Рік тому

    I love the thumbnail for this one. That little guy has the perfect facial expression for skepticism.

  • @alexwilkinsgames
    @alexwilkinsgames Рік тому +18

    I remember in community college, I thought I'd venture into computer science and my mom had me try a java class. And I hated everything, and I dropped out of them and told myself I'd never program again. But now I can read java and I like it 😅

    • @elijahtheo5812
      @elijahtheo5812 Рік тому

      Read, so you still can't code in it?

    • @deepstatecia
      @deepstatecia Рік тому +13

      @@elijahtheo5812 He is probably some manager now.

    • @LumosX
      @LumosX Рік тому +1

      I am sorry that you developed stockholm syndrome

    • @turolretar
      @turolretar Рік тому +2

      @@deepstatecia ewww

  • @gogokowai
    @gogokowai Рік тому +9

    So Java was too hard to learn because of the boiler plate class definition? I guess so new programmers can just skip learning what classes are? Not that they typically would, it would just be boiler plate jargon just like "void main()". I don't get the logic since it's generated by templates anyways.

  • @nathanfrancisco-ribeiro6649
    @nathanfrancisco-ribeiro6649 10 місяців тому +1

    I remember trying to do Hello World from scratch on an online compiler, I immediately gave up on the language and never touched it again

  • @Laesx
    @Laesx Рік тому

    Quite the timing lol I was on Oracle's offices a few days ago on a visit and talked to some of the Chiefs for different products wish I'd knew this then

  • @FiksIIanzO
    @FiksIIanzO Рік тому +44

    After years of C# just copying everything Java does, it feels good to finally see years of Java copying everything C# does.

    • @Gregorius421
      @Gregorius421 Рік тому +13

      TBH after C# was copying Java for years a decade has passed with C# leading the race without Java even noticing C# is ahead.

    • @steffenrumpel2784
      @steffenrumpel2784 Рік тому +1

      @@joshman1019 After having jumped into PowerShell the last couple of months I had to learn about the mess the dotnet ecosystem has gotten itself into (dotnet framework, dotnet core, dotnet standard, etc) the past couple of years. To me, it feels like to be en par with the mess surrounding the Java runtime.
      I love and hate them both at the same time. :)

    • @HolyRamanRajya
      @HolyRamanRajya Рік тому

      @@steffenrumpel2784 Haven't heard of framework and standard in years now.

    • @HolyRamanRajya
      @HolyRamanRajya Рік тому

      @@Gregorius421 Anders Heiljberg is simply GOAT

  • @IamOmgPhil
    @IamOmgPhil Рік тому +10

    We killed all our java apps at work and running everything in c# best switch ever,
    and you dont need 1000 frameworks like spring just to do the basics
    its nice to see to get features from C# into Java, like the string thing

  • @Jarikraider
    @Jarikraider 11 місяців тому +1

    Fireship: "And actually why do we even need a main function in the first place?"
    Me: *"STOP!"*

  • @frozeneye100
    @frozeneye100 Рік тому

    Dude, that was Alf!!! Wicked!!!
    Seriously, I can see this going the way python 3 went when it just started out. Hang in there.

  • @Assassxndev
    @Assassxndev Рік тому +19

    I'm going to be learning Java at uni next year, so this might be a plus

    • @kirantechnophile7852
      @kirantechnophile7852 Рік тому +24

      University always teaches you the old methodologies. Better be a self-taught.

    • @SirDamatoIII
      @SirDamatoIII Рік тому

      It’s not. I hated it. Still do.

    • @toothyeye
      @toothyeye Рік тому +2

      GL learning Java 8

    • @yjlom
      @yjlom Рік тому

      @@toothyeye Java 8? since when have unis moved on from Java 7?

    • @Rwko.
      @Rwko. Рік тому +5

      Don't listen to anyone man. Java is fun to get to know ,it has a lot of things that it can teach you and its always great to have knowledge of one more language. Make sure you learn it correctly and then you can decide if you like it or not!

  • @Personaless
    @Personaless Рік тому +50

    My previous job I left a month ago just started using Java 11 for some apps instead of Java 8.
    But we also used Groovy, which cut down on so much boilerplate and gave String Interpolation. So life wasn't that bad.

    • @kirayamato6128
      @kirayamato6128 Рік тому

      groovy is greate language. also it's framework grails.

    • @ko-Daegu
      @ko-Daegu Рік тому

      @@kirayamato6128 we moving away from groovy grails to spring which’s better and more secure get updates stop using grails bad exploits this is the only thing you introduce to production

    • @inf008shorts
      @inf008shorts Рік тому

      What! You work with Java 11! Java 20 is there. You could have just looked for a job in Java 19. If it's not available, I can undoubtedly say, PHP and Java have the same fate. 😟😟
      Edit: I learnt Python 3.13. Not even fully developed yet. (Because Python 3.12 is not even released. So, till then I would learn important languages like Typescript, HTML, Sass, C, C++ and Java.)

  • @lord_of_mysteries
    @lord_of_mysteries Рік тому

    that last one hit hard bro

  • @nonnnth
    @nonnnth Рік тому

    1:28 that last panel is where my employer’s at 😆

  • @csharpcoffee
    @csharpcoffee Рік тому +35

    Hot take:
    Java is verbose but mostly very clear, obvious at a glance (or two) and is very very consistent in syntax, it has strong restrictions on how to write it making it the polar opposite of JS in all the right ways. If 2 people make the same snippet in JavaScript and Iin Java, the 2 Java snippets will be very similar, while the JavaScript ones will look like they do totally different stuff.
    Kotlin is ugly, less verbose, JS wannabe in all the wrong ways and I really hate it.
    It's syntax is wacky, unusual, and inconsistent in style. It also has a very small market share compared to JavaScript, C# and Java in the business world.
    It is just a terrible alternative to Java but people like to praise it as the savior of Java.

    • @TheEclecticDyslexic
      @TheEclecticDyslexic 10 місяців тому +5

      That take is definitely hot. I get what you are saying, but I gotta disagree.
      My problem with Java is losing the forest for the trees. I have written a fair amount of java, and I find it soul crushing and difficult to even remember what I am doing sometimes by comparison to kotlin. The verbosity is probably a plus when working with lots of people (except that the verbosity should only exist when what you are doing is not the default)... but when working in a small team or solo? kotlin without a question.

    • @annoorange123
      @annoorange123 8 місяців тому

      Theres no way two snippets will look the same lol. In any language theres 5 ways to write the same thing (in scala its 5!, cause they seem to have every feature combination). Dont say that java is so simple...

    • @rohitjakhar6672
      @rohitjakhar6672 8 місяців тому

      Wait...
      Who says Kotlin is ugly?

    • @transcent7
      @transcent7 6 місяців тому

      ​@@TheEclecticDyslexicI mean java and most popular frameworks for java are aimed for enterprise level applications. Yes, on python coding solo you will do same things faster. But what most people miss in Java is that with forced OOP, and other conventions and rules language becomes easily scalable.

    • @stijn3085
      @stijn3085 5 місяців тому

      Bro is a Java fanboy 💀

  • @michi604
    @michi604 Рік тому +5

    I grew up writing Minecraft Plugins in my childhood and youth using Java, so it is like, the language I know best
    Really don't understand the jokes about it, just seems like a regular language to me, ngl

    • @CD4017BE
      @CD4017BE Рік тому +1

      I also learned Java this way (Minecraft Mods). But later when went to university I decided to take a Java software development course (I was actually studying physics but we hat to pick some secondary subject and I though that would be an easy course to score a good mark). And this course was basically teaching us all the OOP Abstract Factory inheritance stuff that people meme about.
      Thankfully I had already enough Java programming experience before that to realize that most of these "design principles" were pretty useless and just made things unnecessary complicated. But I can see how someone who first learned java programming is such a course might think "this is how you need to program in an object oriented programming language like Java" and hate the language as a result.
      So i think many people hate Java due to the horrible way it is taught in universities.