Java is still the first language introduced to incoming Freshmen at Illinois State University. Lots of people in my IT 168 class struggled immensely. First thing I noticed though was that with the design patterns they wanted us to follow, it did make it a lot harder to implement. I would've preferred them to use C/C++ or C#, but Java is still the educational standard among many colleges and universities for whatever reason. It's honestly terrible and I personally hope for Java to be completely trashed by 2025 and replaced with either a newer standard edition of C++ or C#, but it is what it is.
For college I learnt C and JS. I switched colleges and countries and have to learn java and i would much prefer to go back to c and work with pointers than this ungodly horror.
@@Andrei-gv8zv Haha yeah. You should learn Rust. If you know modern C++ like I do, you won't like it very much, but if you don't, you might end up loving it.
That's how language should be, not like stupid staff around, when you use something like java and doing it as it should, there will be zero chance to have buggy solution
@@dns8207 oh trust me first programming language takes maximum time to learn. It almost took me 6 months just to write normal code in c#. While I learnt c in less than a 2 weeks.
I agree. Go is hands down the most clean and well-designed C-offspring I've seen. I used to have a hard time translating programming patterns I was used to from other languages in Go but then I started reading GC's source code and it all made sense. Go is the only language I know that gives me the vibe that I can code something up in an hour or two and what I end up with won't be too far from the best quality Go code out there. I absolutely love how the language has a focus on making best practices mandatory. Rust and Go alone are enough for a decent tour of the stateful world. If I had to learn programming from the start all over again, I would've gone with Go -> Rust -> Clojure -> haskell. That's pretty much the recipe to explore 80% of all programming within a year or two imo.
Java does have a learning curve for sure, but for me, once you have learned it, it's predictability makes it your best friend when getting into bigger code bases. The Libraries and Frameworks that support Java also help with programming a very modular system, while keeping your code very tidy and stable. You are welcome to disagree, just my opinion :)
I feel like most of the complaints about java are usually more related to a library/framework or just something really small. I get that lots of small things together will have a big effect, but most of the things are also just "this is different from what I'm used to which makes it bad," with the rest mostly being fixed by IDEs. If you accept that it's different and get used to it, there really isn't much to complain about
* Requires a runtime * Terrible errors * No indication if something is a reference * OO is required * BOILERPLATE EVERYWHERE * public static void main(String[] args)
@@aCrumbled * Requires a runtime -> yes * Terrible errors -> No! xD, 100x better than C++/C with its segfaults without stack trace, or errors missing completely * No indication if something is a reference -> types with lowercase name are native, everything else is a reference -> easy * OO is required -> You could work around it * BOILERPLATE EVERYWHERE -> Only if that's your coding style. Getters and setters are optional, you can make your fields public, too. * public static void main(String[] args) -> you write that literally once per program, and once you know Java, it even makes sense.
I love Java. Not because of any specific feature - actually quite the opposite: I love it for its restrictiveness. There's generally at most a handful of ways to do a thing, which results in similar patterns emerging across several developers that never talked with each other. As a result, reading code simplifies from "they could be doing this, or that, or this, or..." to "oh yeah I can easily infer what dozens of lines are going to look like from this single method call". Sure, you still can write awful Java code but generally, bad Java code is glaringly obvious to everyone, meaning that someone (hopefully you, before you subject anyone else to your mess) can and will fix it.
You should look into Rust, as its features are very restricitive. Things that are good practices in other languages are mandatory in Rust, this leads to a much lower number of bugs. And the compiler's erros messages are very useful. I used to be a Java programming, but, as I saw that it was dying (its user base is really declining), I jumped off of the Java train. Just a recommendation :)
@@johncalorino675 I've heard about Rust. I looks very innovative, and I was thinking of looking into it, but currently I'm learning C++ since it's used for a lot. Some things in Java really puzzle me, such as "reference types" - classes and arrays are, but primitives types are not, meaning you can do List, but not List. Overall, Java is a fairly good language (and there are certainly worse), but it has some weird quirks that I quite dislike. I mainly learnt it from modding Minecraft.
@@TheKodeToad The reason why you cannot use primitives as Generic type parameters is that they're inherently different from reference types to improve memory efficiency. You can think of references like C/C++ Pointers. Pointers are 64 bit in size, meaning they're the size of a "long" or "double". If we *did* treat primitives as reference types, then we would have to store a pointer to the value along with the value itself, so twice the storage that is actually needed for our value. Boxing does exactly that, takes the primitive value, stores it on the heap and provides a pointer to that value instead. (It actually has to store more information than just the value, but that's beyond the scope of this reply) So, primitives are accessed directly, while reference types are accessed through a reference. If we wanted to support List we would have to check whether the stored value is a primitive or not - at runtime. Type erasure tells us that this is not possible. The alternative is to create a copy of the generic type specifically for each primitive type. C# does this, the resulting bytecode is annoying to work with, but it does work.
Java is fantastic bruh. It is just that you are used to something else. It being a strongly typed language is a plus for me. I hate the likes of JS because when you get some bug you have no way of debugging it when it comes to type conversions.
with practically no programming experience, my university introduced me to Java first. In the entirety of my first year, I only used Java as a programming language, and I'm actually really thankful for that. It's a great language to start in BECAUSE of the amount of boilerplate. it makes you unafraid to write boilerplate code (which in turn makes you appreciate languages where you don't need it that much more), and also teaches you to adhere to syntax rules well, since the compiler will throw a hissy fit if you're missing even 1 semicolon.
Same here pal,same here 😓😅😂 Lost almost of my will to learn & practice a single tech stack for atleast a month.. i either learn the basics & not practicing it or giving it up and never touch it again.. Still hard to find the will & sure i got to.. once we get over it,we could survive & win,i hope so 😌😃 14.08.2022 4:59 Pm ist
I should really surround myself with more programmers to learn from. I accidentally took a C++ class last semester. I loved it so much, that I have decided to switch to programming from CyberSec. I am taking Java and SQL this semester. I like that Java has similar syntax to C++. However, you're using things I have never even seen before. My class didn't teach me how to create windows and shit. lol
If you want to learn programming language. Its better to learn it yourself by looking at pages, youtube videos, stackoverflow and others than taking a class that cost money. Atleast for me
I dont agree, i love java. Im 23, computer science student, ive started java as my first language and ive been working with it for just a year. I dont feel like its bad at all.
VSCode definitively was a mistake with Java 😅. Intellij Idea is much better. Edit: nice to see it being used at 4:27 😁 @7:45 no, Java is in no way a C++, it's more like C# 😄
@@TheRealMangoDev Couldn't be further from the truth with post-2014 C#. Plus, Java has this unique ability to make me want to gouge my eyes out whenever I have to work with it - but with C#, it's a very pleasant stroll in the park.
I find java as a first language teaches bad coding habits. But as a 2nd, 3rd or 4th language...it should be avoided, as there are just way better, faster and more logical languages heck even older ones that do better. The idea that it will run anywhere is half true, it might run but it looks crap and not like a true first class citizen.
I'm trying to learn Java right now only for the basics and OOP, because I believe it has a lot of learning resources available for a beginner for programming; it's versatile, and i can switch learning other programming languages easier with its syntax, maybe i'm just a masochist but i don't really know. I'm going to switch to C# after the completing the basics. I'll see how it turns out.
well... I'm a computer systems engineering student and they teach us only java, I've learn to hate it much, and I don't know exactly why, cuz I really like C# even though it is almost the same hshshshs and lately I've been learning Python. Also, the first language I learned was VisualBasic hshshs