Really? I was only using C++ for a long time before learning anything else, I just had to tell myself that python is pretty much just English and it wasn’t that difficult.
@@Kyle-ut7bg I guess I used confusing language. By brain twister, i by no means am saying it’s difficult. It’s just so shocking simple, that it stuns me when I am trying to do things and am used to a slightly more verbose way of formatting.
Maybe when C# was named J#, but modern C# beats Java like a poorly designed red headed step child with the gang of four book until it admits that the JVM is trash.
@@conundrum2uso many faults I don't know where to begin. Java is enterprise level, which C# isn't. Java is consistent over all internal classes/libraries. C# isn't.
@@AndersJackson you listed 2 vaguely opaque concepts. enterprise level meaning what, exactly? that there's a large set of libraries already available? yep, that's C#. the fact that there are very large corporations using C#? again yes. internal libraries? you mean how when a feature is proposed to the language and the Java community throws a "but muh compatibility" fit? that doesn't exist in dotnet
@@mdbrenna no, it isn't. Java is Enterprise quality, C# isn't. You can still run code compiled from Java 1 on modern Java, and it has only added two new instructions in the byte code since the beginning. That to support functional programming. C# isn't Enterprise quality, but it still can be good enough.
Most people who hate Java have never worked on large enterprise codebases where Java thrives. Yes for your hobby project it’s kinda shitty, but when you work on enterprise solutions that generate tens of millions in revenue it’s incredibly powerful with a rich ecosystem. You do not want languages like Python for that.
I have worked in big (also enterprise sized) java and c/c++ code bases and no, I still hate Java way more. May come down to preference, but personally Java is just too restrictive.
I've spent a few years on developing java program for an enterprise. It's a absolute nightmare, but it's controllable. Imagine pulling a codebase to your machine for the first time, it's a 1G of git history and there might be a team of 5 Indian guys working on it, on another branch, for another feature. The are a room of tech lead, who draws UML and it immediately reflect into interfaces. Java is a great language, but it has a bad reputation of verbose code and terrible work related to it, so a lot of opinions are biased. Their work sucks, not the language itself.
It's legacy, doesn't make it good. By that logic why would any1 use a browser besides IE or Netscape? This is not far-fetched: despite the intentional similar name Java unlike JavaScript is basically dead for web development, unless you want you sites to have even more gaping holes than those still using Adobe Flash.
My problem with Java is more how it forces you into OOP, like you have to create a scanner object to read input instead of just calling a function. I had to create a whole bunch of objects that had different roles just to read REST data. It just feels very unnecessary.
You gotta, open the connection, use the connection and close the connection, each of those methods might throw an exception that needs to be handled, it's easier to use an object to do those, and you get the positive side that you can share the object reference instead of the file descriptor (less clear code). Then java to fight verbosity, made a special try catch that can open, use and close by defining only a try catch. try(var out = new DataOutputStream()) { // Use the out... // Once outside the try, the out variable will call the out.close() automatically } catch(Exception e) { //Handle exceptions }
You do know the New IO (nio) library allows you to just read a file path into a byte array directly? And you can just work with that? Reading with a scanner in general is the worst/slowest way to read data in java. It is only used for tutorials iirc, or to interact with the console. While yes it forces you into oop, at least in a lot of ways it gives you ways to deal with your data more easily.
C: writes a function Java: create a separate file possibly in a new namespace based on the directory. Create new class. Add static method. Import the file. Call method using the entire namespace. Fails to compile because you didn’t try to catch the 7 possible exceptions in the method
I'm honestly curious: are there any noteworthy cases when you need to decide between JS and Java nowadays? For me Python compares to both, but otherwise. 🤷♂️
@@whohan779 Well, the obvious one is that js is good for websites, java is good for if you want to write a scalable server. Java and js are both used in mobile app development. And the biggest one in my opinion is also the things that already exist that already use java, so like if you want to make a minecraft mod, or you want to use certain libraries, java supports a lot of things purely by existing all these years. But also, perfectly fine to stick with python, you can do a lot with whatever language, except use javascript for desktop apps or anything server-side ( _cough_ I hate node and electron _cough_ why do I need to run a whole chrome browser for discord to function _cough_ )
Thank you! I am an eCommerce Java developer and of course I use it daily. I had a bad taste in my mouth at one time for Java, but once you understand how to write clean Java code it’s pretty slick.
Java is an instrument, Python is an instrument, Rust is an instrument. Any language is an instrument. Don't blame instruments. Blame those who use them wrongly
This is ridiculous. Java is like the plastic recorder you played in school. There are other languages that are more like fine made wood and brass. Just like anything else, every tool has it's high or low quality.
@@hatnis java and c++ are both extensively used in Legacy systems and Big Tech infrastructure. New languages cannot compete or even come close at least for 5-10 years.
Java actually helps a lot because the coding syntax is similar with c# im currently focused on so it's not bad, just thinking it as a path lead you into next journey
Yet the c++ version, while faster, runs a lot worse in gameplay. The java version is slower, without mods that make it on par with the c++ version, but it is actually a lot more playable to begin with. Or do you like falling down through the floor at any power level of 2... Not a joke that is a bedrock bug deemed not worth fixing.
@@Speiger I don’t think bugs are a feature of the language a program was written in. Like it’s obviously possible to write perfect C++ code, that doesn’t mean Microsoft’s engineers are going to
don't forget the fact that the C++ version is multithreaded. from the bugs I've seen on the internet, it looks like ,more than one thread is trying to complete one single task but the task is executed at different timings making the results unpredictable (mostly the reason ppl call redstone in that version is"cursed" or random). from this i think it's not bcz of C++ rather than the programmers themselves. Java edition is single threaded and it only uses other threads for rendering new chunks.
Spring takes Java to a whole new level. Lombok is useful for boilerplate and other conveniences. Wish it were more comprehensive in its vanilla state, but definitely not a bad language. I've never understood the whole language snobiness anyway. It's just a programming language.
Java was the first language I learned and it isn’t that bad, I kinda like it tbh and can get stuff done. Now days my goto languages are C# and Rust but if I had to use java for some reason I will happily use it.
My first language was Turbo Pascal. Then c/c++. I was really happy that i don't need to use that pointers anymore. And system throws exception instead of ruining memory. But as i said before there are no bad programming languages. But a lot of bad developers and managers
Compile once, run on a blu-ray player, "3.5 billion devices all of them blu-rays", documentation outdated by 22 years, "when we print the stack we PRINT the stack" language.
@@shhawty the joke went over your head, just like solid runtime errors that are actually useful managed to avoid Sun Microsystems and Oracle. Yeah you can install a JVM anywhere, and it will suck anywhere you install it.
compile once, "oh shit, the version is too low", install different java, change PATH, "oh shit, the version is too high", install more java, change PATH, brute force untill you find the magic java version seriously tho, have they ever heard of backwards compatibility?
People start to love Java once they spend Christmas debugging some weird bug, that always, ALWAYS comes from some dynamic loosely-typed language. Suddenly, writing long variable names with types and all is not a bad idea afterall.
Strict typing is not one of the reasons why people don't like Java. It wasn't mentioned in the video and there are loads of strictly typed languages. With your logic people should hate Rust. Guess what? Rust has been the most loved language every year since it was released 8 years ago. Java is one of the most hated. So you're wrong.
Strict typing has nothing to do with Java, it's not specific to Java. I bet you're the kind of person that doesn't realise you can have a capitalist dictatorship and a communist democracy.
I once fixed a bug none of my senior devs could figure out because it was an issue with a 60 character line file name that needed to match an exact class path but yea JS hijink bugs are the big problem lol. Not anticipating those classes of bugs is like leaving memory leaks in a c or cpp program and thinking it's the languages fault you fucked yourself
Java runs using a JVM (Java virtual machine) which is a huge problem when you focus on performance, but as long as you have enough ram and processing power you can run java basically everywhere so as always it depends on what you want to do
My big problem with Java is that Kotlin exists. Kotlin is simply much more refined and modern, it has better support for functional style, better null safety, it's less verbose, but it still carries the core spirit of Java. Also, Java codebases tend to be on old versions of Java, which are a lot worse than modern Java. Anything Java 7 and below is lacking any amount of functional features, Java 8 is extremely common and has some, but it's not until Java 14 (when Records were released) that it really starts to have the kind of support you want.
Bro... Before, I hated people yelling Kotlin is better. I started Java and played with it almost 2 years. I came to a point where Java is running out of updated libraries such as on Android. M3 designs are now in Kotlin. Google docs mostly written in Kotlin. When I learned Kotlin, it only took me a day and I can create an app with it. I am thankful with Java for the skill she gave to me but I swear I will never go back to that trash.
@@simpleelegant9269 I've been programming in Java for over a decade at this point, some 6 years professionally. I was also skeptical of Kotlin for a long time, especially outside of Android. I mean, other JVM languages like Groovy and Scala had niches, but none succeeded at being strictly better than Java, so I had no reason to believe that Kotlin would. Now, I think it's just a matter of time (possibly a long, long time) before Java is eclipsed by Kotlin in pretty much every space.
One drawback of Java is the tendency for developers to rely on the garbage collector rather than mastering memory allocation techniques. While Java served its purpose in its time, the landscape has evolved. Nowadays, particularly for server applications, transitioning back to languages like C++ or C# often proves more beneficial. The economic advantages, stemming from improved efficiency, can be substantial, especially in server environments where the difference can translate to millions of dollars annually in a data center setting.
What are the benefits of Kotlin? Some friends have been trying to convince me to switch a Java project I'm making to Kotlin but I don't really see much past syntax changes.
@@spiriten kotlin requires much less boilerplate code and handles it natively instead of requiring 3rd party dependencies. Plus kotlin has very useful modern features like string interpolation, type inference, null safety, extension functions and coroutines
@@spiriten Properties and extensions were the reason for me to switch for new stuff. Data classes and sealed types had been a reason as well, but those are features Java introduced some versions ago as well. Oh, an Kotlin encourages null safety. Properties are a very important feature for a modern language, followed by async operability.
Tried replying a couple times with specifics, RU-vid deletes my comments. Many of these seem like non-festured and like they'd actually get in the way. Regardless, coroutines and improved performance functions sound nice... but not nice enough to switch my code base
Java has improved through the years, but it still requires to make almost everything into a class or object. That's my big gripe with it, and many devs, with more experience and writing experience than me have dissected this problem. But there's also the problem that many people are stuck using Java 8 or even 7, and ofc they are missing many qol improvements.
I am a mechanical engineer and had to learn some java at the beginning of my studies. After that I never wanted to code again ever in my entire life. Years later I did an internship at a company and had to develop a small tool in python. I didn't have a position where I had to code, so that was kind of unexpected. But wow, I actually had fun coding and decided to become a software developer after my degree instead of doing engineering stuff. I am now on the job for about 2 years working as a full stack developer with a master's degree in mechanical engineering. So basically java traumatized me to a point where I never wanted to see any sort of code in my life again and python saved me years later from that trauma 😂
When i started my career and started learning java doing hellow world god damn took hours and to run the same on other machine another hell due to all these jdk jvm env variables hell, it was black hole instead of focusing on solving problem, had put whole lot of effort to just set it up. At that time we didnt have proper ide, youtube help videos etc had to depend on books or someone's help. It was nightmare 😅
My complaint would be Java encourages object-oriented designs with design patterns that create an illegible explosion of classes. C++ too but at least there you can use the tools in service to another paradigm.
My teacher introduced OOP to me with Java. Yeah, the verbose-y syntax are very overwhelming at first, but soon it make sense to me. When i had to encounter Python OOP for the first time for my project, i was very confused and i still think that OOP with Java still make a lot of sense to me compared to Python, it's just feel more proper and logical since Java is almost purely OOP.
Yeah I never understood why people would want to use python as an OOP language. Its an interpreted language so use it like one. They’re called python scripts for a reason
write once, debug everywhere. Another point that worth to mention is, being a Java developer will give you a lot of opportunities... maintaining legacy code. For new and exciting projects the companies tend to use those languages who takes less effort to deploy and write such as Golang, Javascript and Python.
@@AnujeetRoy09 thankfully, for that purposes is not longer needed, you can write native android apps with Kotlin, or hybrid ones with Dart and even with typescript/JavaScript which most of the user cases are covered using an hybrid approach. Aside from android I'd say Java is a bad choice to start a new project.
Most people cant figure out how to write sexy and clean code, but once you do java is really good because only using vanilla java you can make almost anything
Java is highly restrictive. It forces you to use OOP for everything, forces you to always pass objects by reference, forces you let the GC do its thing, and will not let you use quality of life features present in other languages like operator overloading simply because the creator of Java didn't like them, while still using them for string concatenation. Its the University style, textbook correct hyper defensive style of coding come to life. At least the people who use it code like that.
Also no default parameters, forced method overloading, no multiple inheritance, no static functions, directories are namespaces, no conditional compiling, encapsulation of every single file/class you import, poor compiler optimization, bad memory management, etc
Java has way too many rules and restrictions. All files must be classes/enums/templates, namespaces are forced to be the directory structure, no default parameters, no static functions, forced encapsulation of every class you use, bad error messages, no multiple inheritance, annoying exception handling, no conditional compiling, etc
I learned Python before I learned java, and honestly, I liked java better as soon as i got into it. I love java now, I find it to be really readable and easy to use.
I'll always feel much safer handling raw pointers in C++ (which can be easily avoided anyway) rather than handling Java references having to understand if some implementation of a virtual-by-default method might return null and why
One of the first languages I got super deep into at school. I created a Mock OS called FireStar as one of my last projects, had desktop icons, a functioning science calculator, and I even embeded another friends game into it and had a rudimentary command prompt. Before you ask, yes. It was more like a game, and not a real OS, no Kernel or anything like that. But at the time it was extremely fun.
@@gabedarrett1301Depends on how you define "clear syntax", for me make the syntax shorter does not mean make it more clear. The only reason I stick to Java because I find the syntax is clear and easy to read, especially if your code is complex. The only reason I stay away from Go, Kotlin, Python, PHP, because the syntax is horrible, especially when your code is complex.
Java is the best language for back end development. One you deal with large codebases and have to work with multiple teams together, you will understand the importance of writing vrebose and strictly OOP code. Try debugging Production errors and you will see how important Java is.
I am a 100% Pythonista, but of all the languages I have tested, Java isn't that bad. Yes, there are many concepts that takes only a few lines in code in Python but an entire class in Java, but I do like the consistency of Java in many cases. What made me give up on Java was the mess with setting up the proper environment. For instance, If I built an android app using Android Studio in java, and then open the project a few years later on a new PC, I never got able to recompile it on the first trial. I constantly had to check version, configuration files and more. This is alot of the reason why I stick to Python and intepreted languages. But if I had to choose a compiled language, I would choose Java above any other. Java for me is a perfect middle-ground. low-level enough to not cause too much mess in your code, but also high level enough for you to not worry too much about segmentation faults or memory leaks.
I’ve been using Java for 24 years, and recently switched to to python to try. Besides python’s cute and smart little shortcuts, I still think Java is better overall. Also, call me crazy but I find curly brackets better than indentation!
"java is boring" is often told by people who only had personal projects that they are unable to read after 6 months. Yes it does not have the spiciness of the triple comprehension list filtered by a lambda expression that you can do in python, but that's honnestly not a bad thing.
Java is one of my most favorite languages... But, it definitely requires more "enter press" then writing, long long words and class names are sometimes a headache, but good to remember.
I learned basic skills in many languages over the course of being a hobbyist, so I never developed a favouritism or dislike for any language... except for the weird ones
Javas really good and a great balance between type inefficient script Lang's and low level boilerplate AOTs. I found it very productive, reliable and readable in a functional yet explicit manner when I used it (except for crazy inheritance trees I've had to integrate with).
Lern it. It's worth it. It's a great stepping stone for learning any language (except python) if you learn python it's pretty likely you will never learn another language and become a programmer.
Java is one of the best languages out there except for the whole JVM thing. A good alternative is Kotlin or Kotlin multiplatform. Kotlin compiles to Java code but it's better in terms of readability, coding speed and new coding practices. But Kotlin multiplatform doesn't have good library support.
@@glitchingcore powerful choice. There's a lot you can do with it. But if you ever get frustrated with unreadable errors and weird bugs I suggest you have a look into rust.
I originally learnt python but I couldn't understand loops too good and stopped. Then I learnt Java and I'm still glad I did. I could easily learn the basics of oop and it was so understandable as well
I really hate java, but the level of optimisations you can do with it is really impressive. The level of tools available in monitoring a java app is god damn good.
The main reason Java is so popular is that it's taught to almost everyone as their first language for some reason nowadays Ok apparently this really just an American high school thing. AP computer science A.
@@bradleon1926 here the first time I had to do anything Java related was my second semester and it wasn’t to learn Java it self it was to learn the concept of object oriented programming
As a Java hater I need to say, Java isn't that bad. Java conventions are. The thing I simply cannot understand in Java is why can't a field be public? Why use getters and setters for EVERYTHING even when clearly unnecessary? If the only thing your getter does is return and the only thing your setter does is, well, set, I don't see why it shouldn't be a public field.
Every java program I've ever used is slow, buggy, and uses windows 3.1 style dialog boxes. This was enough to stop me from being interested in learning.
Yeah, it kinda sucks, just like any other language out there. But it pays the bills. Honestly though, if I have to work within the JVM I'd rather use Kotlin.
Java was my first language. For me, I really (like really) love Java because it was easy for me to understand. After which, python, which I had a few problems while learning and now I’m learning C#.
If you put fair amount of learning and practice to understand how Java OOP works i'm sure you'll used to it in a month. Don't let the long syntax demotivate you to learn, trust me it will make sense soon ps: from a person who first introduced with procedural programming with python and then introduced OOP with java
Java isn’t bad but it has so many unnecessary rules and restrictions. I’ve learned to love C and rust just from how easy it is to only code what I want. Of course I’m not going to write a web server in C but if I work on an open source C project, I can focus on only writing what I need and not worry about all of the restrictions Java has. C# is nice because it keeps some of the features from C++ too. It still has goto statements 😆
And I honestly think it is a good language to understand the fundamentals of OOP and what other languages also do, but under the hood. And Spring with Java are one of my favorite backend technologies because it feels really stable and understandable. I haven’t tried every single backend technology but all have drawbacks of some sort and Java is often a good compromise between speed, simplicity and fault tolerance.
The power of Java is not the language itself but the Java Virtual Machine, the community (popular with universities), written resources behind it, and the tooling such as IntelliJ.
I actually started with java and use it to this day. I can only recommend anyone who wants to learn to program to start with java instead of python. It helps enormously in the long run where python tends to stick and slowly you down. Java introduced you to industry standard syntax right away without being overloaded with tons of special magic keywords. It's incredible what new features are on the horizon for java (yes java is not boring and dead its activity developed). For example nearly the full feature set of (named) tuples and patterns matching which is in its last preview phases in form of records and pattern matching with switch and instanceof. For more information there are great videos on the official Java RU-vid channel.
Probably one of the best languages to start with if you actually want to learn coding. And it is big in application development too. Not only is Android development Java-based but a lot of enterprise application backends are written in Java with frameworks like Spring or Vaadin.
@@sanerin7111 just entered in a new project where at round table decided to write new microservices in Java instead of kotlin, reason is it's easier to hire java developers than kotlin devs
Writing codes in java will examine your patience level. Remember when you write a Hello World program. Require big patience to achieve even a variable declaration
Agreed to them if it's not C# then the language sucks. It also make me laugh when gamers talk like they know how to program but then get completely lost when you start taking about the basics of object orientation programming