That's actually a problem when people discuss about languages. They don't understand that there is a difference between Startups and big Corps. The later want applications they can easily maintain for the next 10-20 years. So they don't use the new and shiny stuff, they use the stuff that works and has proven itself.
@@mouthpiece200 Usually building the software you use to build or run actual software/applications. Think: -a game engine you use build your video games in (Unreal Engine is a very popular option built with C++) - something graphic intensive (photoshop, video editing, 3rd rendering etc) -operating systems, kernels, drivers and things that need to be fast (so you need good control over hardware), although for really low level stuff and embedded hardware, robotics some people might still prefer plain old C -other languages/libraries or running environments: Python is built on C but I think many libraries are written in C++ (and if you want to do something computationally intensive in Python the answer is usually to use one of them, because Python itself is far from the fastest thing out there), Node the runtime environment you (usually)use to run JavaScript outside of a browser is a C++ wrapper allowing V8 (the JavaScript engine in Chrome) to run on a server You can use it for web with web assembly and a cool example is Figma that runs in a browser which is convenient but has very fast C++ code for the heavy graphical computation. It's not that common though - C++ is in its element with the lower level things described above Even with those C++ is lately falling out of favor for something Rust when it comes to building new software
I still remember 3 years ago watching Stefan on RUclips Fast forward , I gave myself a better chance by teaching myself coding while having a full time job as cabin cleaner working around 60 hours a week am average and still manage to code on the side. Good new- I have been working as full stack engineer for 5 months now and it is my first job. Tech stack: Java. Spring , Postgres’s, React, aws s3 and some internal tools 🧰. Yes it is a corporate amd it is remote but still need to dress while meeting with managers amd stuffs. This video is really accurate Stefan knows exactly what he is talking about. Thanks my friend
React frontend + Java backend skills will get you a job guaranteed. Python is good for learning stuff, for DSA, and online assessments. However Java gets you in the industry
Stefan, LONG time fan. I secured my first job as a Server-Side Java Engineer. I also very much enjoy how explicit the language is and enjoy the workflow. Coding is a big slow I agree, but it's such a fun language to code in. I appreciate you mentioning Kotlin and I need to begin my learning towards that. I have a solid foundation in Java, but I would like to begin focusing on Kotlin now. It's amazing how accurate this video is. I'm a good interpersonal "professional" communicator and so is EVERYBODY else on my team.
I rather waste time writing a reliable and secured code. Therefore I still go for java no matter how open minded and optimistic I am on other languages.
Very good and accurate analysis of Java development. I work at a big bank and everything is shifting to java/spring boot microservices (of course COBOL and mainframe will still be there for the next 50 years). Working in this setting means that you will have to deal with people and do lots of compromises and prioritizations of different tasks, but for me that is a positive. I'm not writing code every hour of the week, which can be nice sometimes. Lots of unforeseen issues show up all the time. You never know how the week will turn out. I just want to say this to whoever is reading: If you like programming, but also like to deal with people and use your social skills, then working for a big corporation is a good place. Corporations are setup like the army; if you put in work and give good input, it will not go unnoticed. The pay is also very good. And yes, we run java 19 + all the new shiny tech. Not all corps are slow to change, but it really depends on the tech culture in the corp.
The most important thing in a corporate environment is code readability. Far more so than how long it takes to write code. A senior developer will typically spend 80% of his/her time to read and understand existing code that needs changes.
Not always. In the multi domain world, you have the opportunity to pick the right tool for the job. Some services might be written in java, some might be in nodeJS or even golang and maybe rust. It's case by case.
I agree with most of the points, having said that, Spring boot has advanced a lot. A lot of manual configuration has been eliminated, also the performance with reactive java with project reactor is unmatched. Not to mention the proven longevity has compelled organizations to use java. Now with kubernetes, docker and new ci/cd pipelines, deployment is not an issue.
Hey Stefan, i thought this might interest you. Three months ago I finally got my first job as a fullstack web developer at a really tiny company (8 people in total). I applied for a frontend position, but it turned out that i have to do everything because the other five developers are busy mostly working on a big project for a bank, and i take care of the smaller projects for other clients. I absolutely love that, learned an incredible amount of stuff in a short time doing that. I absolutely get now that it is crucial to get a job asap btw, never could have learned all this by myself. Here comes the interesting part. Turns out, we use vuejs, spring boot and a postgresql database for pretty much everything (im working on one project with spring boot + thymeleaf rn though). The configuration and overall structure is almost the same between projects, so when a new customer comes along, you can usually just copy a template project and tweak it a little bit. I asked my bosses why they dont use something like nodejs, and they told me they had done that amongst other things, but always ended up coming back to spring boot. I have to admit i didnt completely get the technical reason, it had to do with scalability, maintainability and modularity i believe. A reason i could think of is that you can use it for absolutely everything, even though it might be overkill in some cases. Also all three of the companys founders had worked on enterprise level projects before, so maybe they just use this stack because it is what they like and know best. Anyways, just wanted to let everyone know that not every job in java is at enterprise level. Keep in mind though that i applied to a front end position, didnt have a clue about java and the spring framework before i started working there. They told me i got the job because they were under the impression that i could adapt to a new language/framework/technology quickly, and that was one of the things they were looking for. In fact i showed them a python project i was working on in the interview, it didnt even have anything to do with web development. Never would have thought of learning spring boot to find a job in a small company, which is what i always wanted. Another thing to mention is that i live in germany, so maybe the job market is different here.
I'm sorry that you do not get enough help at your first workplace. I have worked at multiple small companies (by small I mean less than 50 people) and I had the same general experience. They usually cannot afford the time to properly train new people, so most don't even recruit juniors. For my friends I recommend starting at a larger organization, or during the interview asking a lot of questions about how they train new people. If they don't have a satisfying answer or just point you to some "course" then probably it's the same as where you are at. With smaller companies the advantage is that you get to work on a lot of more diverse stuff, while at large companies you usually get to specialize in a smaller range of topics. Over time you will figure out which one suits you better and keeps you more engaged.
python is better and faster than java because no need for semicolon in python. --> I guess this is how people comparing programming languages nowadays LOL
As you get older, landing gigs gets harder until your career is like a frozen block of ice somewhere around age 50. Yes, there are older devs, I'm just saying it gets a ton harder.
I recently went through a Java Web development training program. It isn’t that slow to write basic Rest APIs w/ Spring Boot. But once you try to add Spring Security/Oauth it definitely is challenging. For beginners, the most difficult part is learning how to use Maven’s build tool to add dependencies. Also, Spring itself is used for way more than just web development. I think it’s flexible for many use cases and Maven/Gradle is the most intimidating part.
If you're looking for a job, generally speaking you will want to learn a language that has loads of jobs available for it. I made the mistake of learning Elixir and building a full product with it and still cant find a job because im not a senior engineer and there just arent many junior jobs in the elixir space. Java might be hella verbose but if youre looking for work, I'd say its a good place to go for your first job/language.
This is absolutely true! Recently got word for a job at a well established vehicle company that is building their software in Java and most of the job is basically back-end work communicating with the servers, etc., but the pay is so good... The job is a "hybrid" model (office and some WFH), but people are pushing for more WFH days for the devs.
You must have a great job. Congratulations! They are rare. I started programming in Java when it was a new language. I've been developing Java for over 30 years now. I've encountered all kinds of employers since then. I'm still developing new Java Apps. I'm also maintaining legacy code. This is the life of a software developer. You speak in generalizations which apply no matter whether it's a new langauge, an old language. It doesn't matter if your young or if your old. It doesn't matter who you work for. The soft skills you speak about are important everywhere. Javascript, and Python are older technologies than Java. There are many legacy apps that are written in Java. Many companies are still using Java. Java, like most languages, will grow and stay relevant. You do say some thigs that are true. A company will use whatever technology is important to their business. Consider where and what you want to do and work towards that goal.
quick question if you dont mind, What do you mean by legacy code, does that mean that comes didnt want to upgrade to the latest available version, like some companies might still stuck at Java 8 ? also what the reason that they dont upgrade as there might be cases where the older version are out of support so it can be risky for the customers too isnt it
Strict typing, in conjunction with simplicity, is more important than both write speed and runtime speed. This is why the overwhelming majority of jobs posted are in Java and C# in pretty much every city. Companies tend to want to eliminate a whole class of errors that comes with loosely typed languages like Python, which is why Python is mostly used in academia rather than industry. Even on the frontend, companies are moving toward Typescript. Languages like Rust and C++ usually don’t make the cut due to their complexity. They have the strict typing part but C++ in particular defeats the whole purpose by introducing a new category of bugs (pointer-related). A company needs to be in a position where speed is a serious priority for them to commit to those languages.
Agree. I have developed in C++, C#, Java, JavaScript and PHP, and scripted in python, shell etc. Some things are quicker to write in those languages, but when you need a big application and will be supporting it for a long time it is much easier to look for errors in Java and C# and like you said it eliminates a range of errors entirely. Also a lot of code analysis tools work better on statically typed languages, and the open source community around Java is strong.
I agree with you 100%. You could have added Scala to the list of overcomplicated languages. I love Scala by the way. That being said, I'm seeing fewer and fewer Java backend jobs these days on Linkedin. Almost every time it's Python and JavaScript. Perhaps it depends on the company. Java would be more present in bigger companies. But I'm surprised by how popular Python is for web development. And I have been working in big data space (Data Science and Data Engineering), so I'm pretty familiar with Python.
I went to Java because I knew I was going to work with big companies. I work to a Brazilian digital bank that went international. We work mostly with Java 11+ ans Golang. What I like the most here is that we have little dress code (any kind of long 👖 and any kind of t-shirt without logos and drawings) and they are really good with the remote work model. We also have a really simples deploy pipeline, a lot of DevOps implemented, we run all in AWS. May be I'm in a really new niche for Java, with modern deploy pipeline and modern server side architecture. It was nice to here your opinion about it, because I may be working in a company that is the exception for Java. I'll ponder about learning Golang
Personally, I like Java for prototyping in industry (aeronautics). I work in a R&D department in a big company, the portability is great, the verbosity is nice for complex algorithms, easy to learn, has good perf, etc.. We are able to run it on Raspberry, drones etc. For me it's a little step before passing the algos in C++ for MVP. If I need something more technical I run Matlab.
I will tell you reality. Good Java coders who know their shit around Spring, hibernate, JPA, spring security, spring boot etc. are in super high demand. Corporates are going out of their way to hire good Java engineers and paying extra. Plus if you are already working in a project for sometime, there is a job security angle which many people prefer. The reason is that Java is very hard and scope is humongous when you consider all the frameworks around it. There is no substitute for Java when you are talking about building real time data engineering
It's true, but the work absolutely sucks. It doesn't take me "forever to write code in Java" that's total bs. Tools like IntelliJ make it possible to knock out code and tests very quickly.
I am a backend developer working on microservices with spring boot. Agree with almost all the stuff except for the part where you mentioned that it takes a lot of time to configure spring applications especially with XML files. This used to be the case until Spring boot took over and its been a while. It doesn't take much time to develop in Java as long as your task is well defined to begin with. Also as a developer, semicolon is embedded in my subconscious.
I know I agree. I’ve been a Java Engineer for over 4 years. This only used to be a problem before IntelliJ started handling everything for me. Seems like he is referring to legacy code with eclipse and older versions of spring boot. Can’t remember last time I had to configure XML besides pom file
@@An-Engineered-Journey Like many people (or should I say Java haters lol), he has an old vision of Java. Java has evolved quite a bit (type inference, records, lambok, FP features, springboot, etc...). Yes, Java is verbose but not as much as it used to be. Also IntelliJ is very powerful.
I have a good experience in both express/js and spring/java. The biggest difference between the two is that js lets people do really stupid things that leads to some crazy bugs. For that reason, e prefer spring/java.
Java programer here: 12+ years in automotive and aerospace industry. I recently started my 4th project xD It pays nice, truth is that 50% of time you spend on XML and other various text configuration. There is variation, some people prefer 99.9% backend, I like a mix of UI and backend, some DevOps
Sir I really appreciate you for making this video. Because i was confused which Language to chiose because many RUclips videos are suggesting so many different languages and libraries with frameworks. No you're making some of my decisions lighter. Thank you so much sir keep it coming 🙏❤️ love from Papua New Guinea 🇵🇬
Hello Stefan! That's awesome video for someone who loves writing code in Java. I will slightly disagree from your Spring boot point of view. The older versions of Spring MVC like 7-8 years Old, yes they required lots of configuration files but now a days, the Spring boot made life really easier. Its all annotation based and handles most and most of the boiler plate code in itself and by its AOP paradigm it actually lets the developer focus only on business code taking away almost all of the cross cutting concerns. You can write a complete MVP in just few hours if not minutes with a valid RestAPIs, FrontEnd or anything you like. Moreover to compliment spring boot with other front end tech like React/Angular, there comes other Scaffolding frameworks/tools like JHipster, you can write a complete MVP Crud app with proper front end and back end layer in just couple of minutes and then build upon that as MVP gets approved.
I agree with your assertion regarding the type of work you will be doing with Java, you have pretty much described the first five years of my programming career.
Stef is spot on as usual. I’m a self taught I broke my way into the industry and I cut my teeth on Java. Currently got hired on a big old legacy project in telecom. It is what it is. Pays the bills. I’d like to be on a nimbler newer stack.
@@bb5242 That's true. But if you're young and not married to Java legacy, best to look forward. That being said, my problem with Kotlin is that it made too many compromises in order to achieve interop with Java, rather than become something truly different. I see the same thing happening with Carbon in order to interop with C++. Spoken like a true Rust guy, which I am.
Learning Java now because I'm finding the small company, startup space to be exhausting and i stable. My early career was spent in the corporate world working non-technical or semi technical jobs, and I'm comfortable in that environment. I like big enterprise and I cannot lie.
I prefer the startup environment. As a company grows and becomes more "corporate", job satisfaction plummets. You just get more managers who are clueless, more procedure that is time wasting and too many pointless meetings.
@@toby9999 There are pros and cons. Certainly what you describe can happen, but I've worked for 3 different startups i the past 3 years and at my life stage I'm seeking stability. Also it sounds like you're describing a small company growing into a larger one which is different than an established enterprise. If they don't adapt to growth it can get bad, fast. I've witnessed that a few times as well!
You're right. Interpersonal communication and networking across teams is incredibly important in enterprise size environments. I'm interested in your opinion if the same sentiment applies to the direction of C#/.NET. My experience has been that C# is also used in smaller to medium sized teams for both legacy (.NET Framework) and greenfield (.NET Core) development. Would you say that .NET is a safe choice balancing the maturity and stability that larger companies value along with a new resurgence of "hotness" with the latest updates over the past few years? I enjoy writing C# but the company I'm currently at uses Java - Luckily I'm focusing on front end, but don't want to let my full stack chops slip.
@@StefanMischook Would u recommend going with .NET ? Since I've heard there is no market available for .NET as most new age developer's are more acquainted with python,JS and working on macs rather than Windows systems plus the general disdain for Microsoft by new age crowd ? Please give some insight's here
One of the advantages of working for a smaller concern, especially one that does consulting and staff augmentation for clients, is that you learn a lot in a short time. Not just in terms of different technology stacks, but also different business domains. In the space of a year, you may be working for 6 months at a logistics company, three months in private banking and another three months at a tiny NGO that cannot afford to operate a Java stack. It makes you a more competent and skillful software engineer.
Java being used mostly for web and android development? I don't think so. I don't think anyone is using Java for web development these days. Most web development is being done with the fancy Javascript frameworks. For android, they're probably mostly using Kotlin too. Now where is Java being used? It's being used heavily for backend development. Can't think of any language threatening its position for a long time. Maybe Golang in the long run. It's true though that it's mostly being used in large companies but it's not true that it's only being used for legacy code. If a company uses Java in its backend, a new feature requiring a new microservice will likely be written in Java. Also, write time speed is greatly increased with Spring Boot with its convention over configuration approach and increased even more if you use libs as Lombok and new versions of Java containing features such as vars and records. Also, a LinkedIn search for Java + Worldwide, Javascript + Worldwide or Python + Worldwide returns similar number of postings, so there's great need for all of them and Java isn't going anywhere. Also, remote work is here to stay, regardless of the size of the company. Last but not least, use the "right" tool for the right job. If your plan is to do frontend development, dive into javascript frameworks and you'll be fine. If you want to work with backend development, learn Java, Go or Node. If data science/ML is the plan, then go for Python. Mobile? Then Kotlin, Swift or Flutter. Low level? Then C/C++ or Rust. The frustration comes when you try to use the "wrong" tool for the right job, for example, having a backend written in Python, etc.
There's nothing wrong with Python in the back-end tbh. Have you ever heard about FastAPI? Pretty solid work there, with more github stars than Java Spring framework on github! BTW, you're on point w/ everything else of the comment
Kotlin's impact is there. Null safety, less verbose. C# also has evolved similarly to Kotlin, and is implementing the null safety of Kotlin in the exact same syntax, someNullableVariable?.someProperty. C# also introduced the null coalescing operator, which has a slightly different syntax, ?: in Kotlin and ?? in C#. Java cannot do this as elegantly and instead wraps in an Optional that is less ergonomic. Java will get some of this in the long run though, just will take awhile
@@luizfeliperosadasilveira6235 that's why I used quotes on "wrong" and "right" tool. We can use most languages in most scenarios. I'd say Python in the backend sounds very exotic and I would never do such a thing, but that's just me.
Agree 100%. Another negative aspect of the Java world is that interviews are focused on syntax oddities and heavy leetcode recipes and boring stuff like that.
Depends upon the company and your experience level. I had that experience a lot more with C++ jobs. Also I got a lot less of these kind of interviews after 3 years and a lot more talking about past experiences.
Every FAANG company uses Java. Plenty of startups use Java too. The ones that don't use Java attract using Python or JavaScript; they're using Go or Rust or occasionally still Ruby
There are exceptions to the rule, of course. I've interviewed with startups that use Java. My current company has an established Java codebase but it's not a giant corporation. I like it; it doesn't have a "big company" feel but it's a lot more stable than the typical startup. It all depends on what you want. If you crave chaos, then it's probably not for you.
I've worked for big and small organizations (including a few startups) outside of Silicon Valley for over 20 years and most of that time I was writing Java. I've written Java at startups. Lots of startups don't use Java but many do. You're spot on that if you do Java development you're also doing backend web application development. I think Java is a great choice for startups because it has a large community with tons of well-written libraries and well-established patterns. I've dabbled in Kotlin and if you know Java it's easy to transition to Kotlin. It's basically Java 2.0. I've written Javascript and Python and they are completely different beasts but I wouldn't say they're "nimbler" by any stretch.
FYI: Not all large corporations are mamooths. And with Java (and Spring Boot / Quarkus) you can write lean code. But yeah, Java is mainly for backend development (but that’s not necessarily a bad thing) 😊 EDIT: Just saw 2nd half. Just a tip: at least do a hello world with Spring Boot and come back and redo this video. You’re smart and capable person, but obviously you haven’t programmed any modern Java application in a long long time.
Hello. I have never done a hello world in Spring Boot. I have tried to check about it on youtube. It looks quite long to configurate and verbose. Do you agree ?
@ZettaiKatsu2013 something many new aspiring devs seem to struggle to understand is that languages like Java, C# and C++ only _seem_ verbose if you're beginning with scripting languages that cut out declaration and type rules. But there's a reason for strict syntaxes, static typing and OOP concepts: so applications can scale ... so you can build big things that are fast, don't become a total mess and can be extended and maintained for many years. Scripting languages simply don't scale well by comparison. I can much more easily make sense of a huge project written in C# or C++ than if you tried to do it all with Python scripts ... can't even imagine what sort of nightmare that would be ...
... What a java dev calls "lean code" is not the same as c#, js, ts, go, rust dev would. I am currently working with springboot; I have built a microservice with quarkus (an MVP). And those are 100% bloated. I don't know why there is so much hype around the "modern java"; it is still giga heavy compared to other programming languages ecosystems. Finally, writting low level system components (like driver) is still the best experience I ever had with java as a primary language. After experiencing modern c#, kotlin, and rust, I can confidently write java is one of the less ergonomic language to write non-technical business logic.
Yep. I was of that opinion until I was forced to use PHP and other scripting languages … then I knew what Java was all about. That said, I haven’t looked at Java for years.
Agreed. Since Java 8 stream API, it is as good as any functional programming language. And I laugh when people compare it with Python. Python is only used as a scripting language. I have not seen any framework around Python being used in big corporates (Airflow is the only exception )
Great video, but I have to disagree with some stuff: First I think you may not be up to date regarding Spring-Boot or Spring in general. No one configures anything with XML these days, it's "just" Java Config + Spring Boot heavily uses the convention-over-configuration-approach, so if you are not doing something funky you don't really have to configure that much, since you only configure the CHANGES to a default installation. Java may be very verbose and you type a lot more than with other languages. But imo you overestimate the impact on your productivity. The hard part is usually figuring something out, the actual typing is like 5% of my job AT MOST. Also: what's the alternatives? Writing the backend in C# or Express is not that much faster than Spring-Boot (if at all) and you loose the big of advantage of Java: it's a very mature language with mature frameworks for just about anything you could possibly need.
not to mention ides like intellij auto complete means you're typing 10% of all of your code - which means we keep our explicit typing without having to specify it manually.
Sorry but that’s simply NOT TRUE. Companies like Netflix, Uber, Box, Splunk, Snowflake and many more have a lot of Java on their backend. And it’s not a legacy code. New functionalities are being built using Java. And that’s also not true that typically only banks and other financial institutions use Java. All of the big tech like Google Amazon Apple etc use JVM and Java. Google has huge codebase built around Java. It constantly migrates to newer version and actively use it for new stuff. And that’s not true that you have any speed advantages using let’s say Python for those web projects. You see the code often changes. And when it does you need static typing and other safety features. That’s it. You can prototype in Python or plain JS. But it almost always ends up being at least typescript. And is typescript really less verbose than modern Java? I don’t think so. When people talk about it it almost sounds like the language stopped evolving in the 90s… when I hear that I immediately know that’s some ignorant speaking. Sorry.
As someone that has spent the last 5+ years writing medium scale python backend services with strict static type annotations and leveraging all static analysis checks available to maintain some semblance of sanity... I totally agree... if you're going to all that effort in Python to maintain type safety etc. the productivity difference between it and compiled languages or Strongly typed like Java has already mostly gone away
I work for a large company and maintain legacy Java code based built using Spring Framework. I have worked in many languages but maintaining legacy code base is extremely frustrating and not rewarding. I have now removed Java from my resume and will no longer work in Java. Think before you learn Java and apply to jobs that make you maintain legacy codebase. Sometimes companies hide the true facts about the job so be careful. It’s not worth the money.
Hello, thanks for this video I had recently left my previous job as a Java springboot developer working on huge enterprise apps And your video has tempted me to reconsider what types of jobs I'll be getting into next Since as you said, Java Development is just much much slower than python or javascript development
I landed my 3 previous roles in Java full stack pretty easily. Meaning you should know server side Java and the popular front end frameworks. React, Vue, Angular are in high demand. At my previous job I had to learn a framework called VAADIN which was great because everything was handled from the backend.
My compromise is pushing our team to use Kotlin for server side JVM. So much less boilerplate and quite a bit easier and quicker to write. Our requirement is being compatible with company Java based frameworks, so Kotlin first perfectly 😀
being an amateur - i got write time speed down a fair bit by getting vba to (re)write vba code i know all you real coders are going to say yuck, but it works
Spot on, as a Java developer I can agree with all that was said here(except the semicolon part, sounds made up), although it still sucks that my options are limited as where and what I can work on. I am sick and tired from writing web servers code in big corporations, but there is no way out of this, too late for me to do anything else.
yeah comments are right im working as backend java using mainly spring-boot and you can write an API with CRUD operations in 10 minutes. spring-boot is now agile enough as compared with older spring
Javascript and Python maybe look like they are easier to write, but because they are easier and freely-typed, they could lead to catastrophic results on the long run, especially if they are common among younger developers, and businesses owners who only care about fast results.
Agree, Mexican government has a long history on Java. A lot for endpoint config in my experience with Tax, Health applications on private companies. Personally is an acquired teste. I will prefer medium companies or by project in large companies. My experience is on technical support, some web programming. Government take years to plan, decide and start a project.
Maybe you are not up-to-date. Spring Boot is very lightweight, bare minimum boiler plate code and config. No more xml, simple yaml config file or annotation driven. Very performant and the standard "de facto" for every modern Java development, suitable even for startups. Obviously legacy code is a different story but this apply to every language. Still a very good overview from you.
Amazon / AWS is like 95% Java + Lombok + Guice/Spring/dagger even on micro services. With Lombok there is no more boiler plate or verboseness and with Guice/Dagger/SpringBoot there is no more config / xml Honestly no difference in what the apps look like compared to typescript now
Lombok is a pain in the ass sometimes. I've worked in several orgs that adopted it because it seems so cool, but then later backed away from it because of its unpredictability.
@@bb5242 I’ve never in ~10 years seen any unpredictability. What examples do you have? Using NoArgsConstructor, __inject, getters, setters, utilityclass, AllArgsConsttuctor, RequiredArgsConstructor, nonull etc. but those are the most common I use. Are you using experimental features?
I agree with you about most java jobs being in the larger corporations and supporting legacy apps, but it sounds like you haven't used Java and Spring for the last 15 years or so. Nobody uses xml configs anymore. The time it takes to write the code is not that massive anymore either. Newer frameworks encapsulate tons of boiler plate code. You just need to use annotations.
@@StefanMischook yeah, legacy code is a problem. I’m fortunate that I’m working on a new project that is using Java. My previous project used Kotlin and it was a mess. A lot of tight coupling and bad programming practices. Mainly because the language allowed you to do it and the programmers took advantage of that.
@@oLunatiko Can also chime in to legacy projects. Java now has the means to take a lot of configuration off you with conventions and annotations also help a lot, but most of the companies I worked at still use software and frameworks that are 5+ or even 10+ years old...
@@avalancs6612 totally agree. Annotations are great, and frameworks are a lot lighter compared to many years ago. Pojos are so simple now, I still like to see their getters and setters though. 😂
Hi Uncle Stef, just found your page and let me tell you i am hooked on this channel and your other one. I am 24 and started my journey couple months ago with wanting to get into this industry and only been focusing on Java, so I’ve been teaching myself before i start a bootcamp and i am hungry for it. To be completely honest i want this life style, to be able to provide for my family, to be able to do things i love, have TIME over all and the list goes on. I am and want to be confident this is going to be my future but i know i much to learn. I have looked into your website (looks great) but not the code i want to learn. Do you have advice for people getting into this field of work and lifestyle or anything that comes to you? Thank you
It is definitely useful advice. However development speed has very little to do with how much boilerplate you need to write. Kotlin mixes very nicely with java, it could be a natural successor in the enterprise. I guess you can hate the enterprise for many reasons, but startups are probably not any better.
I'm very surprised you didn't mention the strongly typed aspect of Java when comparing it to other dynamic languages like JavaScript and Python. Development speed is one thing (and debatable given the maturity of Java frameworks like Springboot) but debugging time, and refactoring time are also important. Yes, it's true Java jobs tend to be in large companies, not just banks but Faangs companies as well.
With so many Java jobs, and the reluctance to hire Java programmers with little to no experience... How are they filling them? Are they willing to hire boot camp grads at this point? Or is learning Java in a boot camp a death sentence?
It seems that Java is the new COBOL in that regard. However, languages like Go, Rust and Elixir (functional programming) are becoming more popular. Perhaps there is a future in these long term? Dirty ole PHP and (cough) Ruby aren't going anywhere either. Sure Python is used a bunch but for web applications not the first choice either. They all have their place, tough to find Perl developers nowadays also. Tons of legacy code with Java that will have to be maintained beyond all of our lifetimes. Java is a fine choice for a language, even for beginners.
Java 11 and up is a Functional language. Golang isn't all that Functional in my experience with it. Rust and Elixir have pretty tiny adoption. I like Golang, but Google has a tendency to abandon projects and leave everyone in a lurch.
Stefan does a great job here in his analysis - but really as he has also confessed Java is a language anyone who has studied it, and gives attention to details, definitely falls in love with. I personally truly love java for much of its complexity, its explicity which just makes it really nice to use. This, and more factors make sense that it is priority for really huge corps.
Even though the majority of the Jobs in Java are corporate ones, that's not the whole thing. Several tech first companies runs on Java, such as Netflix and Spotify, and the whole behavior thing leans more on the startup side than the corporate side. I work at one of this tech first companies for 3 years now, and I can not complain. Scale, doesn't matter where, necessitates more stable and reliable languages and stack. Consolidate frameworks and companies such RedHat, Confluent and Oracle supporting it.
Thanks for this video. I am a civil engineer who got sun microsystems certification way back in 2000 or so but did not use it until lately for android apps. But Iwas using AutoLisp/Vlisp for automatic design calculation and drafting using their Lambda functions which gives the AI capability. However I find that java since 2014 has added that option which gives me the same AI capability for generating my drawings on any CAD system via DXF code. I wonder how many have realized this huge boost for java in engineering?.
Described my Java experience almost to a T. It was my first professional experience so by the end of two years of working on legacy enterprise code with JSF and PL/SQL procedures ported from a Windows Forms app codebase, dealing with tons of convoluted red tape I felt so burnt out, I thought SWE just wasn't for me. Then I took a step back and it turns out I still love this boilerplate-y language, but the usual environment is not for everyone.
Back in 2021 when I resigned from the my first job. The only skills I had was PeopleCode on Oracle's PeopleSoft ERP and some SQL. Was unable to find a job at all. Just lied on my resume and wrote java, spring boot, microservices etc etc etc. And boom, there was a flood of calls from HRs. Went ahead and learnt spring in a few weeks and got a good paying job with ease.
As an ex BA for a bank, I can confirm, I had to be there with the devs during deployments and it’s hell. I had to work without more than Sunday afternoon off for two months Terrible environment and everyone was sooo against ágile
I code for many years and used multiple languages through the years. Most of the current higher level languages are not as different in terms of produtivity as many insist, specially if people use the right toolkit. I mainly program in Java because it's powerful in many ways (it can be very simple but also allows much more complex and structured code if needed). For most of the things, such as Web applications, APIs, I use Vert.X, that is extremely fast and basically as simple to implement as with any other modern language. I won't use anything else just because I can have a few less lines of code or some function or syntax that allows me to do a lot in a line, even if it's not readable code. People are alwas trying to reinvent the wheel in programming, but only in rare ocasions the wheel was indeed reinvented or substancially improved.
Must learning platform did not encourage Java because it has a long learning curve, so the push for PHP and javascript, the truth is Jave is the most secure language and trusted at the enterprise level for reasons.
Great video. Two years later, Java is still alive. Spring Boot development is simpler than ever. It's not a startup language, but it's hard to find a startup that can just simply avoid java and doesn't have at least 1 Microservice written in a JVM language. Migration in big corps has started, Go and Python are winning the race. Big Monoliths survive and 40+ senior devs are happy to maintain them. The role of the pure backend is dying. Now you're a full stack data engineer. You enjoy React as much as your python pipelines. AI is still dumb and all the learnings from a verbose, object oriented language help us to write better code.
Im currently starting a new Java project at a mid sized company using Quarkus. It's like a lighter spring boot. Having lots of fun working on it so far.
I had 20 years of Java experience, now I use Kotlin. I even accepted a lower wage because I didn't want to go back. If you like your sanity, overcome your Stockholm syndrome and go with a modern language. Try it just for two months or so, and you will start to get PTSD when you see a semicolon.
Idk as much as you, but for me, I tried JavaScript before as my first language, and it's cool, but I did not fully enjoy it. I feel like I would like to learn Java much more. Trying to pursue it. It's quite a nice amount of time tbh, 20 years, am impressed
Lot’s of XMLs 7:03 . Probably 10 years ago. Update the toolset and use modern Java! Chasing down semicolons? Still coding with notepad or what? 7:21 Big long deployment cycles in a bank for a Java developer? Banks are notorious separating the development and run. Developers release, but do not deploy. That is a different job. In a proper setup run ppl. are not even allowed to talk to dev ppl. other than emergency support. Release package including documentation is delivered, must work. If not, run ppl. will roll back, report, new release, but dev ppl. do not go in 4am Saturday. If they do, that is not Java. That is bad company structures. I was working 7 years for one of the largest Swiss banks and I was called once as 3rd level support Saturday afternoon, not in the morning. Btw: when I arrived they have solved it.
Chasing missing semi-colons is not really a big deal if your IDE is good. Spring, as well, is mostly annotation-driven these days and less XML-driven. Spring has found its place in the microservices world, but a microservice architecture is not necessarily the best solution for every product. Services that are considered monolithic tend to be made worse by Spring.
With Spring Boot, configuration is minimal and, even if I'm just starting to look into it, it's awesome. As a matter of fact, the. Net framework seems to be copying this approach. For backend development, Java is great!
i like java, but the ecosystem is the worse. setting up projects is what takes time and the search for workarounds for problems that shouldn't be there.
Facts! When you have to struggle to do an Hello world or some simple CRUD, for me it’s a red flag. Life is too short to debug stuff that shouldn’t be there in the first place. (Not exclusive to Java)
I have been working with Java / Spring boot at multiple large banks for about 4 years, working with legacy code bases and building brand new from scratch applications. I gotta say it is a love hate relationship. (Mostly hate, but at least it’s not Ruby) But what can I say, that pay though
After 6 year of consultancy in big companies, every time I have been told that it is a “big large project” I have realized that everyone thinks that his pipi is big but it is actually not compared to others. I write in Java just as fast as a typescript project and just as fast as a Golqng project. Unless you are writing libs in 2024 I would say each language is well streamlined and optimized for fast pace environment. XMLs configurations in spring, that must be an old old project probably creating servelets in the worst way possible . Old is not equal to big or complicated or better, it just mean that your managers is scared to touch it because he likes to think it is big and complicated so he also did not upgrade package/framework versions. I call that skill issues.
Typical helpful video by Stef, full of nuggets of information that you won't find elsewhere. My C++ instructor at BU Corp Edu Center [late Dr. James Devlin] used to hate Java; he would say "you don't get the colaaan colaaan with Java", referring to " :: " the scope resolution operator. Question Stef: What kind of language would one use if one wanted to write a script to manipulate the play-time of youtube. For example, while going to bed I put on a long video or playlist, but I want youtube to stop playing the video after 45 min let's say, without shutting down the computer. I know I can schedule the shutdown of the computer in my Linux from the command line. Python, best option? Or would one use a shell script?
Perhaps try building a basic extension in Chrome, mainly with Javascript ? OR, you can inject a javascript directly into your youtube's browser tab, set a timeout and when the timeout hits, it closes that particular browser tab. Never tried, but that should do the trick.
Spring boot is in HUGE demand and is used by every other startup or small business. Java is NOT mainly for large businesses. And with all the new features since maybe Java 17/18, it is much more dynamic and versatile.
I think you should have a few more java people to give you an idea. That friend that uses java in his company doesn't seem like they use any devops practice and seems like a monolith. I agree it's more for bigger companies.
I do not agree. Live in Munich, know a lot of local software companies. Most still have Java as their #1 language (except Python for AI). With a startup work place ethic to be able to attract the talent. What you say just means that Java is serious business and that's cool.
Its curious to me that the professional C# for web world is closer to the javascript web world in these descriptions even tho its a child of java. To be fair it feels alot more like kotlin these days. Most businesses i find as a C# developer are actually Medium are small , my responsibilities are usually wide ranged and developer productivity is pretty high even tho the code is obviously alot more verbose than js. Less configuration than any js project tho :D we barely fill out xml files. max the appsettings.json and some k8s yamls. Makes me feel for once, like big Daddy Macrosoft actually did and is doing quite a good job with their (not so much anymore) Java Clone
That's actually a problem when people discuss about languages. They don't understand that there is a difference between Startups and big Corps. The later want applications they can easily maintain for the next 10-20 years. So they don't use the new and shiny stuff, they use the stuff that works and has proven itself.
Even in that case, C++ over Java. No? Just to avoid the memory hog issues at least.
@@jhonnyvasquez9758 wait for web assembly to take a hold, maybe?
@@jhonnyvasquez9758 Why is c++ not good for web? What's c++ best for?
@@mouthpiece200 Usually building the software you use to build or run actual software/applications. Think:
-a game engine you use build your video games in (Unreal Engine is a very popular option built with C++)
- something graphic intensive (photoshop, video editing, 3rd rendering etc)
-operating systems, kernels, drivers and things that need to be fast (so you need good control over hardware), although for really low level stuff and embedded hardware, robotics some people might still prefer plain old C
-other languages/libraries or running environments: Python is built on C but I think many libraries are written in C++ (and if you want to do something computationally intensive in Python the answer is usually to use one of them, because Python itself is far from the fastest thing out there), Node the runtime environment you (usually)use to run JavaScript outside of a browser is a C++ wrapper allowing V8 (the JavaScript engine in Chrome) to run on a server
You can use it for web with web assembly and a cool example is Figma that runs in a browser which is convenient but has very fast C++ code for the heavy graphical computation. It's not that common though - C++ is in its element with the lower level things described above
Even with those C++ is lately falling out of favor for something Rust when it comes to building new software
@@taariqq Rust says hi
I still remember 3 years ago watching Stefan on RUclips
Fast forward , I gave myself a better chance by teaching myself coding while having a full time job as cabin cleaner working around 60 hours a week am average and still manage to code on the side.
Good new- I have been working as full stack engineer for 5 months now and it is my first job.
Tech stack: Java. Spring , Postgres’s, React, aws s3 and some internal tools 🧰.
Yes it is a corporate amd it is remote but still need to dress while meeting with managers amd stuffs.
This video is really accurate
Stefan knows exactly what he is talking about.
Thanks my friend
What resources helped you the most in your journey? I'm currently learning care java but don't know hibernate, JPA, spring security, spring boot.
Any advice ie were you self taught or did you need formal certification etc
@@Mobile-pd1uc definitely get some type of certification
I'm deeply sorry for you.
Not because of cabin cleaning, but because of React.
Bro where did you learn postgres
React frontend + Java backend skills will get you a job guaranteed. Python is good for learning stuff, for DSA, and online assessments. However Java gets you in the industry
Generally speaking i'd say angular and java are the top choice for enterprise apps, but it really depends on the country you live on
@@TortelliniSRL I agree
You are right but let’s instead combine angular
@@TortelliniSRL you're right it's more of angular with java, but use react is also increasing.
It would be weird if you use Python to solve DSA when you try to get Java job right?
Stefan, LONG time fan. I secured my first job as a Server-Side Java Engineer. I also very much enjoy how explicit the language is and enjoy the workflow. Coding is a big slow I agree, but it's such a fun language to code in. I appreciate you mentioning Kotlin and I need to begin my learning towards that. I have a solid foundation in Java, but I would like to begin focusing on Kotlin now. It's amazing how accurate this video is. I'm a good interpersonal "professional" communicator and so is EVERYBODY else on my team.
I rather waste time writing a reliable and secured code. Therefore I still go for java no matter how open minded and optimistic I am on other languages.
How much of the Java language did you have to learn before applying?
‘server side” Java? Lol there’s no such thing as “non-server side Java”, so you can skip that part when introducing yourself
@@ozobianwadibia self taught for 6-12 months
@@nicholascherry5962 Thanks a lot.
Very good and accurate analysis of Java development. I work at a big bank and everything is shifting to java/spring boot microservices (of course COBOL and mainframe will still be there for the next 50 years). Working in this setting means that you will have to deal with people and do lots of compromises and prioritizations of different tasks, but for me that is a positive. I'm not writing code every hour of the week, which can be nice sometimes. Lots of unforeseen issues show up all the time. You never know how the week will turn out.
I just want to say this to whoever is reading: If you like programming, but also like to deal with people and use your social skills, then working for a big corporation is a good place. Corporations are setup like the army; if you put in work and give good input, it will not go unnoticed. The pay is also very good.
And yes, we run java 19 + all the new shiny tech. Not all corps are slow to change, but it really depends on the tech culture in the corp.
I agree with most of what was said. In my country 10-50 people companies also use Java, so not only big companies.
@@baldwin6944 Did you end up doing the oracle java certs?
Do you work remote?
Also a Java job or c# is a career . You will be part of this company forever .
It’s job security z
What is your day to day like do you have meetings everyday?
The most important thing in a corporate environment is code readability. Far more so than how long it takes to write code. A senior developer will typically spend 80% of his/her time to read and understand existing code that needs changes.
Once any small company starts to grow.
They always switch to Java on Server Side. And keep JS based Front End.
Makes sense. You want security to run your back end servers while having the flexibility to manage your database on the front end.
Not always. In the multi domain world, you have the opportunity to pick the right tool for the job. Some services might be written in java, some might be in nodeJS or even golang and maybe rust. It's case by case.
Also is not necessary to say JS is keep on the front end, is pretty much the only choice.
I agree with most of the points, having said that, Spring boot has advanced a lot. A lot of manual configuration has been eliminated, also the performance with reactive java with project reactor is unmatched. Not to mention the proven longevity has compelled organizations to use java. Now with kubernetes, docker and new ci/cd pipelines, deployment is not an issue.
Hey Stefan, i thought this might interest you. Three months ago I finally got my first job as a fullstack web developer at a really tiny company (8 people in total). I applied for a frontend position, but it turned out that i have to do everything because the other five developers are busy mostly working on a big project for a bank, and i take care of the smaller projects for other clients.
I absolutely love that, learned an incredible amount of stuff in a short time doing that. I absolutely get now that it is crucial to get a job asap btw, never could have learned all this by myself.
Here comes the interesting part. Turns out, we use vuejs, spring boot and a postgresql database for pretty much everything (im working on one project with spring boot + thymeleaf rn though). The configuration and overall structure is almost the same between projects, so when a new customer comes along, you can usually just copy a template project and tweak it a little bit.
I asked my bosses why they dont use something like nodejs, and they told me they had done that amongst other things, but always ended up coming back to spring boot. I have to admit i didnt completely get the technical reason, it had to do with scalability, maintainability and modularity i believe. A reason i could think of is that you can use it for absolutely everything, even though it might be overkill in some cases. Also all three of the companys founders had worked on enterprise level projects before, so maybe they just use this stack because it is what they like and know best.
Anyways, just wanted to let everyone know that not every job in java is at enterprise level. Keep in mind though that i applied to a front end position, didnt have a clue about java and the spring framework before i started working there. They told me i got the job because they were under the impression that i could adapt to a new language/framework/technology quickly, and that was one of the things they were looking for. In fact i showed them a python project i was working on in the interview, it didnt even have anything to do with web development. Never would have thought of learning spring boot to find a job in a small company, which is what i always wanted.
Another thing to mention is that i live in germany, so maybe the job market is different here.
I'm sorry that you do not get enough help at your first workplace. I have worked at multiple small companies (by small I mean less than 50 people) and I had the same general experience. They usually cannot afford the time to properly train new people, so most don't even recruit juniors. For my friends I recommend starting at a larger organization, or during the interview asking a lot of questions about how they train new people. If they don't have a satisfying answer or just point you to some "course" then probably it's the same as where you are at.
With smaller companies the advantage is that you get to work on a lot of more diverse stuff, while at large companies you usually get to specialize in a smaller range of topics. Over time you will figure out which one suits you better and keeps you more engaged.
7:17 I don't understand, a missing semicolon would cause a compile error. Does your friend not work with an IDE that catches it before he commits?
python is better and faster than java because no need for semicolon in python. --> I guess this is how people comparing programming languages nowadays LOL
He also doesn't run his code before commiting.
Real men don’t run their code and just ship it. Running it is someone elses problem. You want someone that cares? -Get a dog.
@@smallbluemachine That's what I told my previous employer after being fired.🗿
@@suryatioc401 I must admit I started to get triggered when I read the first part of your comment haha
I have yet to meet a single experienced jobless Java developer. So conclusion is that => Learn Java
I'm week 3 into a fullstack Java bootcamp and nearly had a heart attack lol. Thanks for debunking this
Lots of java jobs out there for sure!
As you get older, landing gigs gets harder until your career is like a frozen block of ice somewhere around age 50. Yes, there are older devs, I'm just saying it gets a ton harder.
What is ur status dude?, and he said for experienced not for freshers. r@@michaelharrington5860
@@bb5242 Wouldn't Java be easier for older devs? As startups probably are more likely to hire younger?
I recently went through a Java Web development training program. It isn’t that slow to write basic Rest APIs w/ Spring Boot. But once you try to add Spring Security/Oauth it definitely is challenging. For beginners, the most difficult part is learning how to use Maven’s build tool to add dependencies. Also, Spring itself is used for way more than just web development. I think it’s flexible for many use cases and Maven/Gradle is the most intimidating part.
I started using spring with maven, now I use spring with gradle. Gradle has won me over
for adding dependencies, dont you just copy paste the ... tags then let maven sync ?
@@ripple123 there's also maven cli
Authentication /Auth still confuses me 😂
Definitly disagree I ve found the magic of Spring and Hibernate way harder than the dependency part. Been coding now for three years.
If you're looking for a job, generally speaking you will want to learn a language that has loads of jobs available for it. I made the mistake of learning Elixir and building a full product with it and still cant find a job because im not a senior engineer and there just arent many junior jobs in the elixir space. Java might be hella verbose but if youre looking for work, I'd say its a good place to go for your first job/language.
Just Java as a language that had "loads" of jobs available for it? Any other languages?
@@KCswiish-Code there's others. C# for example. Javascript.
This is absolutely true! Recently got word for a job at a well established vehicle company that is building their software in Java and most of the job is basically back-end work communicating with the servers, etc., but the pay is so good...
The job is a "hybrid" model (office and some WFH), but people are pushing for more WFH days for the devs.
You must have a great job. Congratulations! They are rare. I started programming in Java when it was a new language. I've been developing Java for over 30 years now. I've encountered all kinds of employers since then. I'm still developing new Java Apps. I'm also maintaining legacy code. This is the life of a software developer. You speak in generalizations which apply no matter whether it's a new langauge, an old language. It doesn't matter if your young or if your old. It doesn't matter who you work for. The soft skills you speak about are important everywhere. Javascript, and Python are older technologies than Java. There are many legacy apps that are written in Java. Many companies are still using Java. Java, like most languages, will grow and stay relevant. You do say some thigs that are true. A company will use whatever technology is important to their business. Consider where and what you want to do and work towards that goal.
quick question if you dont mind,
What do you mean by legacy code, does that mean that comes didnt want to upgrade to the latest available version, like some companies might still stuck at Java 8 ? also what the reason that they dont upgrade as there might be cases where the older version are out of support so it can be risky for the customers too isnt it
Strict typing, in conjunction with simplicity, is more important than both write speed and runtime speed. This is why the overwhelming majority of jobs posted are in Java and C# in pretty much every city. Companies tend to want to eliminate a whole class of errors that comes with loosely typed languages like Python, which is why Python is mostly used in academia rather than industry. Even on the frontend, companies are moving toward Typescript.
Languages like Rust and C++ usually don’t make the cut due to their complexity. They have the strict typing part but C++ in particular defeats the whole purpose by introducing a new category of bugs (pointer-related). A company needs to be in a position where speed is a serious priority for them to commit to those languages.
Agree. I have developed in C++, C#, Java, JavaScript and PHP, and scripted in python, shell etc. Some things are quicker to write in those languages, but when you need a big application and will be supporting it for a long time it is much easier to look for errors in Java and C# and like you said it eliminates a range of errors entirely. Also a lot of code analysis tools work better on statically typed languages, and the open source community around Java is strong.
I agree with you 100%. You could have added Scala to the list of overcomplicated languages. I love Scala by the way.
That being said, I'm seeing fewer and fewer Java backend jobs these days on Linkedin. Almost every time it's Python and JavaScript.
Perhaps it depends on the company. Java would be more present in bigger companies.
But I'm surprised by how popular Python is for web development. And I have been working in big data space (Data Science and Data Engineering), so I'm pretty familiar with Python.
@@jean4j_bro you’re everywhere! Happy to see you as a subscriber of this great channel. I am one of your LinkedIn contacts.
I went to Java because I knew I was going to work with big companies. I work to a Brazilian digital bank that went international. We work mostly with Java 11+ ans Golang. What I like the most here is that we have little dress code (any kind of long 👖 and any kind of t-shirt without logos and drawings) and they are really good with the remote work model. We also have a really simples deploy pipeline, a lot of DevOps implemented, we run all in AWS. May be I'm in a really new niche for Java, with modern deploy pipeline and modern server side architecture.
It was nice to here your opinion about it, because I may be working in a company that is the exception for Java. I'll ponder about learning Golang
You are at Inter, aren't you?
and*
Personally, I like Java for prototyping in industry (aeronautics). I work in a R&D department in a big company, the portability is great, the verbosity is nice for complex algorithms, easy to learn, has good perf, etc.. We are able to run it on Raspberry, drones etc. For me it's a little step before passing the algos in C++ for MVP.
If I need something more technical I run Matlab.
I will tell you reality. Good Java coders who know their shit around Spring, hibernate, JPA, spring security, spring boot etc. are in super high demand. Corporates are going out of their way to hire good Java engineers and paying extra. Plus if you are already working in a project for sometime, there is a job security angle which many people prefer. The reason is that Java is very hard and scope is humongous when you consider all the frameworks around it. There is no substitute for Java when you are talking about building real time data engineering
Any resources you recommend to learn hibernate, JPA, spring security, spring boot?
Good for them. I would not go that way despite the pay, as it would bore me to death.
@@basicguy5785 you can do front-end. Both government and local startups need some frontend, right?
It's true, but the work absolutely sucks. It doesn't take me "forever to write code in Java" that's total bs. Tools like IntelliJ make it possible to knock out code and tests very quickly.
true
I am a backend developer working on microservices with spring boot. Agree with almost all the stuff except for the part where you mentioned that it takes a lot of time to configure spring applications especially with XML files. This used to be the case until Spring boot took over and its been a while. It doesn't take much time to develop in Java as long as your task is well defined to begin with. Also as a developer, semicolon is embedded in my subconscious.
I know I agree. I’ve been a Java Engineer for over 4 years. This only used to be a problem before IntelliJ started handling everything for me. Seems like he is referring to legacy code with eclipse and older versions of spring boot. Can’t remember last time I had to configure XML besides pom file
@@An-Engineered-Journey Like many people (or should I say Java haters lol), he has an old vision of Java. Java has evolved quite a bit (type inference, records, lambok, FP features, springboot, etc...). Yes, Java is verbose but not as much as it used to be. Also IntelliJ is very powerful.
Also, with modern IDEs and CI/CD pipeline platforms, the requirement of semicolons is pretty much in significant.
I have a good experience in both express/js and spring/java. The biggest difference between the two is that js lets people do really stupid things that leads to some crazy bugs. For that reason, e prefer spring/java.
Java programer here: 12+ years in automotive and aerospace industry. I recently started my 4th project xD It pays nice, truth is that 50% of time you spend on XML and other various text configuration. There is variation, some people prefer 99.9% backend, I like a mix of UI and backend, some DevOps
Sir I really appreciate you for making this video. Because i was confused which Language to chiose because many RUclips videos are suggesting so many different languages and libraries with frameworks. No you're making some of my decisions lighter. Thank you so much sir keep it coming 🙏❤️ love from Papua New Guinea 🇵🇬
Hello Stefan!
That's awesome video for someone who loves writing code in Java. I will slightly disagree from your Spring boot point of view. The older versions of Spring MVC like 7-8 years Old, yes they required lots of configuration files but now a days, the Spring boot made life really easier. Its all annotation based and handles most and most of the boiler plate code in itself and by its AOP paradigm it actually lets the developer focus only on business code taking away almost all of the cross cutting concerns. You can write a complete MVP in just few hours if not minutes with a valid RestAPIs, FrontEnd or anything you like.
Moreover to compliment spring boot with other front end tech like React/Angular, there comes other Scaffolding frameworks/tools like JHipster, you can write a complete MVP Crud app with proper front end and back end layer in just couple of minutes and then build upon that as MVP gets approved.
Hi, can you show me these, as example "a few hours MVP"? I'm really interested.
I agree with your assertion regarding the type of work you will be doing with Java, you have pretty much described the first five years of my programming career.
Stef is spot on as usual. I’m a self taught I broke my way into the industry and I cut my teeth on Java. Currently got hired on a big old legacy project in telecom. It is what it is. Pays the bills. I’d like to be on a nimbler newer stack.
Go if you really want a change. Kotlin if you still wanna play with the JVM
@@RogueTravel Not that many Kotlin roles outside of Android.
@@bb5242 That's true. But if you're young and not married to Java legacy, best to look forward. That being said, my problem with Kotlin is that it made too many compromises in order to achieve interop with Java, rather than become something truly different. I see the same thing happening with Carbon in order to interop with C++. Spoken like a true Rust guy, which I am.
Learning Java now because I'm finding the small company, startup space to be exhausting and i stable. My early career was spent in the corporate world working non-technical or semi technical jobs, and I'm comfortable in that environment. I like big enterprise and I cannot lie.
I prefer the startup environment. As a company grows and becomes more "corporate", job satisfaction plummets. You just get more managers who are clueless, more procedure that is time wasting and too many pointless meetings.
@@toby9999 There are pros and cons. Certainly what you describe can happen, but I've worked for 3 different startups i the past 3 years and at my life stage I'm seeking stability.
Also it sounds like you're describing a small company growing into a larger one which is different than an established enterprise. If they don't adapt to growth it can get bad, fast. I've witnessed that a few times as well!
I've been doing web development for 20+ years and still find your videos insightful.
You're right. Interpersonal communication and networking across teams is incredibly important in enterprise size environments. I'm interested in your opinion if the same sentiment applies to the direction of C#/.NET. My experience has been that C# is also used in smaller to medium sized teams for both legacy (.NET Framework) and greenfield (.NET Core) development. Would you say that .NET is a safe choice balancing the maturity and stability that larger companies value along with a new resurgence of "hotness" with the latest updates over the past few years? I enjoy writing C# but the company I'm currently at uses Java - Luckily I'm focusing on front end, but don't want to let my full stack chops slip.
C# has a strong future.
@@StefanMischook Would u recommend going with .NET ? Since I've heard there is no market available for .NET as most new age developer's are more acquainted with python,JS and working on macs rather than Windows systems plus the general disdain for Microsoft by new age crowd ? Please give some insight's here
One of the advantages of working for a smaller concern, especially one that does consulting and staff augmentation for clients, is that you learn a lot in a short time. Not just in terms of different technology stacks, but also different business domains. In the space of a year, you may be working for 6 months at a logistics company, three months in private banking and another three months at a tiny NGO that cannot afford to operate a Java stack. It makes you a more competent and skillful software engineer.
Java being used mostly for web and android development? I don't think so. I don't think anyone is using Java for web development these days. Most web development is being done with the fancy Javascript frameworks. For android, they're probably mostly using Kotlin too.
Now where is Java being used? It's being used heavily for backend development. Can't think of any language threatening its position for a long time. Maybe Golang in the long run. It's true though that it's mostly being used in large companies but it's not true that it's only being used for legacy code. If a company uses Java in its backend, a new feature requiring a new microservice will likely be written in Java. Also, write time speed is greatly increased with Spring Boot with its convention over configuration approach and increased even more if you use libs as Lombok and new versions of Java containing features such as vars and records.
Also, a LinkedIn search for Java + Worldwide, Javascript + Worldwide or Python + Worldwide returns similar number of postings, so there's great need for all of them and Java isn't going anywhere. Also, remote work is here to stay, regardless of the size of the company.
Last but not least, use the "right" tool for the right job. If your plan is to do frontend development, dive into javascript frameworks and you'll be fine. If you want to work with backend development, learn Java, Go or Node. If data science/ML is the plan, then go for Python. Mobile? Then Kotlin, Swift or Flutter. Low level? Then C/C++ or Rust. The frustration comes when you try to use the "wrong" tool for the right job, for example, having a backend written in Python, etc.
I'm week 3 into my fullstack Java bootcamp and nearly had a heart attack lol. Thanks for debunking this
There's nothing wrong with Python in the back-end tbh. Have you ever heard about FastAPI? Pretty solid work there, with more github stars than Java Spring framework on github! BTW, you're on point w/ everything else of the comment
Kotlin's impact is there. Null safety, less verbose. C# also has evolved similarly to Kotlin, and is implementing the null safety of Kotlin in the exact same syntax, someNullableVariable?.someProperty. C# also introduced the null coalescing operator, which has a slightly different syntax, ?: in Kotlin and ?? in C#. Java cannot do this as elegantly and instead wraps in an Optional that is less ergonomic. Java will get some of this in the long run though, just will take awhile
@@luizfeliperosadasilveira6235 that's why I used quotes on "wrong" and "right" tool. We can use most languages in most scenarios. I'd say Python in the backend sounds very exotic and I would never do such a thing, but that's just me.
@@johnnydoamaralPlease don't call python wrong before JavaScript 😂
Agree 100%. Another negative aspect of the Java world is that interviews are focused on syntax oddities and heavy leetcode recipes and boring stuff like that.
Depends upon the company and your experience level. I had that experience a lot more with C++ jobs. Also I got a lot less of these kind of interviews after 3 years and a lot more talking about past experiences.
For job: Java , C# , C++ , PHP , Cloud
For starutps: Javascript, React, NextJS, NestJS, Python(Django) , Ruby on Rails, Go , PHP (Laravel), Cloud PAAS
For solo Developer Entrepeneur: Javascript React, NextJS Django, Rails, Cloud PAAS
Every FAANG company uses Java. Plenty of startups use Java too. The ones that don't use Java attract using Python or JavaScript; they're using Go or Rust or occasionally still Ruby
There are exceptions to the rule, of course. I've interviewed with startups that use Java. My current company has an established Java codebase but it's not a giant corporation. I like it; it doesn't have a "big company" feel but it's a lot more stable than the typical startup. It all depends on what you want. If you crave chaos, then it's probably not for you.
wtf who craves chaos i only crave money
I've worked for big and small organizations (including a few startups) outside of Silicon Valley for over 20 years and most of that time I was writing Java. I've written Java at startups. Lots of startups don't use Java but many do. You're spot on that if you do Java development you're also doing backend web application development. I think Java is a great choice for startups because it has a large community with tons of well-written libraries and well-established patterns. I've dabbled in Kotlin and if you know Java it's easy to transition to Kotlin. It's basically Java 2.0. I've written Javascript and Python and they are completely different beasts but I wouldn't say they're "nimbler" by any stretch.
Thank you so much for the breakdown. This has given me a lot to think about when it comes to career decisions I'm struggling with right now
Take your time, make a well reasoned decision free of emotional bias.
FYI: Not all large corporations are mamooths. And with Java (and Spring Boot / Quarkus) you can write lean code. But yeah, Java is mainly for backend development (but that’s not necessarily a bad thing) 😊 EDIT: Just saw 2nd half. Just a tip: at least do a hello world with Spring Boot and come back and redo this video. You’re smart and capable person, but obviously you haven’t programmed any modern Java application in a long long time.
Hello. I have never done a hello world in Spring Boot. I have tried to check about it on youtube. It looks quite long to configurate and verbose. Do you agree ?
@ZettaiKatsu2013 something many new aspiring devs seem to struggle to understand is that languages like Java, C# and C++ only _seem_ verbose if you're beginning with scripting languages that cut out declaration and type rules. But there's a reason for strict syntaxes, static typing and OOP concepts: so applications can scale ... so you can build big things that are fast, don't become a total mess and can be extended and maintained for many years. Scripting languages simply don't scale well by comparison. I can much more easily make sense of a huge project written in C# or C++ than if you tried to do it all with Python scripts ... can't even imagine what sort of nightmare that would be ...
... What a java dev calls "lean code" is not the same as c#, js, ts, go, rust dev would. I am currently working with springboot; I have built a microservice with quarkus (an MVP). And those are 100% bloated.
I don't know why there is so much hype around the "modern java"; it is still giga heavy compared to other programming languages ecosystems.
Finally, writting low level system components (like driver) is still the best experience I ever had with java as a primary language. After experiencing modern c#, kotlin, and rust, I can confidently write java is one of the less ergonomic language to write non-technical business logic.
Yep. I was of that opinion until I was forced to use PHP and other scripting languages … then I knew what Java was all about. That said, I haven’t looked at Java for years.
Agreed. Since Java 8 stream API, it is as good as any functional programming language. And I laugh when people compare it with Python. Python is only used as a scripting language. I have not seen any framework around Python being used in big corporates (Airflow is the only exception )
Great video, but I have to disagree with some stuff:
First I think you may not be up to date regarding Spring-Boot or Spring in general. No one configures anything with XML these days, it's "just" Java Config + Spring Boot heavily uses the convention-over-configuration-approach, so if you are not doing something funky you don't really have to configure that much, since you only configure the CHANGES to a default installation.
Java may be very verbose and you type a lot more than with other languages. But imo you overestimate the impact on your productivity. The hard part is usually figuring something out, the actual typing is like 5% of my job AT MOST.
Also: what's the alternatives? Writing the backend in C# or Express is not that much faster than Spring-Boot (if at all) and you loose the big of advantage of Java: it's a very mature language with mature frameworks for just about anything you could possibly need.
not to mention ides like intellij auto complete means you're typing 10% of all of your code - which means we keep our explicit typing without having to specify it manually.
@@noidea176 not to mention you have to pay a lot of G's for intel idea
@@darthvader8144 intellij idea community edition is free
Sorry but that’s simply NOT TRUE.
Companies like Netflix, Uber, Box, Splunk, Snowflake and many more have a lot of Java on their backend. And it’s not a legacy code. New functionalities are being built using Java.
And that’s also not true that typically only banks and other financial institutions use Java. All of the big tech like Google Amazon Apple etc use JVM and Java. Google has huge codebase built around Java. It constantly migrates to newer version and actively use it for new stuff.
And that’s not true that you have any speed advantages using let’s say Python for those web projects. You see the code often changes. And when it does you need static typing and other safety features. That’s it.
You can prototype in Python or plain JS. But it almost always ends up being at least typescript. And is typescript really less verbose than modern Java? I don’t think so.
When people talk about it it almost sounds like the language stopped evolving in the 90s… when I hear that I immediately know that’s some ignorant speaking. Sorry.
As someone that has spent the last 5+ years writing medium scale python backend services with strict static type annotations and leveraging all static analysis checks available to maintain some semblance of sanity... I totally agree... if you're going to all that effort in Python to maintain type safety etc. the productivity difference between it and compiled languages or Strongly typed like Java has already mostly gone away
I work for a large company and maintain legacy Java code based built using Spring Framework. I have worked in many languages but maintaining legacy code base is extremely frustrating and not rewarding. I have now removed Java from my resume and will no longer work in Java. Think before you learn Java and apply to jobs that make you maintain legacy codebase. Sometimes companies hide the true facts about the job so be careful. It’s not worth the money.
lol Java Spring ain't legacy code.
if devs write horrible code to maintain is the lang at fault?
Hello, thanks for this video
I had recently left my previous job as a Java springboot developer working on huge enterprise apps
And your video has tempted me to reconsider what types of jobs I'll be getting into next
Since as you said, Java Development is just much much slower than python or javascript development
Hello sir, why did you left your previous job? And do you plan to relearn some technology?
Stef man you're a legend, really appreciate your content as it gives me tons of motivation. Best wishes from Lahore, Pakistan
... and saves you lots of headaches down the road.
I landed my 3 previous roles in Java full stack pretty easily. Meaning you should know server side Java and the popular front end frameworks. React, Vue, Angular are in high demand. At my previous job I had to learn a framework called VAADIN which was great because everything was handled from the backend.
My compromise is pushing our team to use Kotlin for server side JVM. So much less boilerplate and quite a bit easier and quicker to write.
Our requirement is being compatible with company Java based frameworks, so Kotlin first perfectly 😀
being an amateur - i got write time speed down a fair bit by getting vba to (re)write vba code
i know all you real coders are going to say yuck, but it works
Spot on, as a Java developer I can agree with all that was said here(except the semicolon part, sounds made up), although it still sucks that my options are limited as where and what I can work on. I am sick and tired from writing web servers code in big corporations, but there is no way out of this, too late for me to do anything else.
yeah comments are right im working as backend java using mainly spring-boot and you can write an API with CRUD operations in 10 minutes. spring-boot is now agile enough as compared with older spring
Maybe I worked for corporations too long, but interpersonal skills have always been more important than coding in my software career.
Java jobs demand are high and 99% job are maintain legacy code, fix bugs and write tests. Still true this day.
Javascript and Python maybe look like they are easier to write, but because they are easier and freely-typed, they could lead to catastrophic results on the long run, especially if they are common among younger developers, and businesses owners who only care about fast results.
Typescript make brrr
Agree, Mexican government has a long history on Java. A lot for endpoint config in my experience with Tax, Health applications on private companies. Personally is an acquired teste.
I will prefer medium companies or by project in large companies. My experience is on technical support, some web programming. Government take years to plan, decide and start a project.
Maybe you are not up-to-date. Spring Boot is very lightweight, bare minimum boiler plate code and config. No more xml, simple yaml config file or annotation driven. Very performant and the standard "de facto" for every modern Java development, suitable even for startups. Obviously legacy code is a different story but this apply to every language. Still a very good overview from you.
Amazon / AWS is like 95% Java + Lombok + Guice/Spring/dagger even on micro services. With Lombok there is no more boiler plate or verboseness and with Guice/Dagger/SpringBoot there is no more config / xml
Honestly no difference in what the apps look like compared to typescript now
Lombok is a pain in the ass sometimes. I've worked in several orgs that adopted it because it seems so cool, but then later backed away from it because of its unpredictability.
@@bb5242 I’ve never in ~10 years seen any unpredictability. What examples do you have? Using NoArgsConstructor, __inject, getters, setters, utilityclass, AllArgsConsttuctor, RequiredArgsConstructor, nonull etc. but those are the most common I use. Are you using experimental features?
I agree with you about most java jobs being in the larger corporations and supporting legacy apps, but it sounds like you haven't used Java and Spring for the last 15 years or so. Nobody uses xml configs anymore. The time it takes to write the code is not that massive anymore either. Newer frameworks encapsulate tons of boiler plate code. You just need to use annotations.
Fair enough. I haven’t used Java in years as I said. Problem is a lot of legacy code uses old school stuff.
@@StefanMischook yeah, legacy code is a problem. I’m fortunate that I’m working on a new project that is using Java. My previous project used Kotlin and it was a mess. A lot of tight coupling and bad programming practices. Mainly because the language allowed you to do it and the programmers took advantage of that.
@@oLunatiko Can also chime in to legacy projects. Java now has the means to take a lot of configuration off you with conventions and annotations also help a lot, but most of the companies I worked at still use software and frameworks that are 5+ or even 10+ years old...
@@avalancs6612 totally agree. Annotations are great, and frameworks are a lot lighter compared to many years ago. Pojos are so simple now, I still like to see their getters and setters though. 😂
Hi Uncle Stef, just found your page and let me tell you i am hooked on this channel and your other one. I am 24 and started my journey couple months ago with wanting to get into this industry and only been focusing on Java, so I’ve been teaching myself before i start a bootcamp and i am hungry for it. To be completely honest i want this life style, to be able to provide for my family, to be able to do things i love, have TIME over all and the list goes on. I am and want to be confident this is going to be my future but i know i much to learn. I have looked into your website (looks great) but not the code i want to learn.
Do you have advice for people getting into this field of work and lifestyle or anything that comes to you?
Thank you
It is definitely useful advice. However development speed has very little to do with how much boilerplate you need to write. Kotlin mixes very nicely with java, it could be a natural successor in the enterprise. I guess you can hate the enterprise for many reasons, but startups are probably not any better.
I'm very surprised you didn't mention the strongly typed aspect of Java when comparing it to other dynamic languages like JavaScript and Python.
Development speed is one thing (and debatable given the maturity of Java frameworks like Springboot) but debugging time, and refactoring time are also important.
Yes, it's true Java jobs tend to be in large companies, not just banks but Faangs companies as well.
TypeScript. We dont make our back-end on pure JavaScript but in TypeScript.
With so many Java jobs, and the reluctance to hire Java programmers with little to no experience... How are they filling them?
Are they willing to hire boot camp grads at this point? Or is learning Java in a boot camp a death sentence?
It seems that Java is the new COBOL in that regard. However, languages like Go, Rust and Elixir (functional programming) are becoming more popular. Perhaps there is a future in these long term? Dirty ole PHP and (cough) Ruby aren't going anywhere either. Sure Python is used a bunch but for web applications not the first choice either. They all have their place, tough to find Perl developers nowadays also. Tons of legacy code with Java that will have to be maintained beyond all of our lifetimes. Java is a fine choice for a language, even for beginners.
Java 11 and up is a Functional language. Golang isn't all that Functional in my experience with it. Rust and Elixir have pretty tiny adoption. I like Golang, but Google has a tendency to abandon projects and leave everyone in a lurch.
Java for present, Rust and Go for future.
Stefan:
“I won’t use Java for a startup because it’s so verbose”
IntelliJ + Lombok + Spring Boot:
Hold my beer
Stefan does a great job here in his analysis - but really as he has also confessed Java is a language anyone who has studied it, and gives attention to details, definitely falls in love with. I personally truly love java for much of its complexity, its explicity which just makes it really nice to use. This, and more factors make sense that it is priority for really huge corps.
Even though the majority of the Jobs in Java are corporate ones, that's not the whole thing. Several tech first companies runs on Java, such as Netflix and Spotify, and the whole behavior thing leans more on the startup side than the corporate side. I work at one of this tech first companies for 3 years now, and I can not complain.
Scale, doesn't matter where, necessitates more stable and reliable languages and stack. Consolidate frameworks and companies such RedHat, Confluent and Oracle supporting it.
Thanks for this video. I am a civil engineer who got sun microsystems certification way back in 2000 or so but did not use it until lately for android apps. But Iwas using AutoLisp/Vlisp for automatic design calculation and drafting using their Lambda functions which gives the AI capability. However I find that java since 2014 has added that option which gives me the same AI capability for generating my drawings on any CAD system via DXF code. I wonder how many have realized this huge boost for java in engineering?.
😎😎 civil engineer with AutoLisp knowledge🧯🧯
Described my Java experience almost to a T. It was my first professional experience so by the end of two years of working on legacy enterprise code with JSF and PL/SQL procedures ported from a Windows Forms app codebase, dealing with tons of convoluted red tape I felt so burnt out, I thought SWE just wasn't for me.
Then I took a step back and it turns out I still love this boilerplate-y language, but the usual environment is not for everyone.
Back in 2021 when I resigned from the my first job. The only skills I had was PeopleCode on Oracle's PeopleSoft ERP and some SQL. Was unable to find a job at all.
Just lied on my resume and wrote java, spring boot, microservices etc etc etc. And boom, there was a flood of calls from HRs. Went ahead and learnt spring in a few weeks and got a good paying job with ease.
As an ex BA for a bank, I can confirm, I had to be there with the devs during deployments and it’s hell.
I had to work without more than Sunday afternoon off for two months
Terrible environment and everyone was sooo against ágile
I just got a 3 months Java internship in a big organization. I would like to learn flutter to try do develop mobile apps after internship
Go for it!
I code for many years and used multiple languages through the years. Most of the current higher level languages are not as different in terms of produtivity as many insist, specially if people use the right toolkit. I mainly program in Java because it's powerful in many ways (it can be very simple but also allows much more complex and structured code if needed). For most of the things, such as Web applications, APIs, I use Vert.X, that is extremely fast and basically as simple to implement as with any other modern language. I won't use anything else just because I can have a few less lines of code or some function or syntax that allows me to do a lot in a line, even if it's not readable code. People are alwas trying to reinvent the wheel in programming, but only in rare ocasions the wheel was indeed reinvented or substancially improved.
Must learning platform did not encourage Java because it has a long learning curve, so the push for PHP and javascript, the truth is Jave is the most secure language and trusted at the enterprise level for reasons.
Great video. Two years later, Java is still alive. Spring Boot development is simpler than ever. It's not a startup language, but it's hard to find a startup that can just simply avoid java and doesn't have at least 1 Microservice written in a JVM language. Migration in big corps has started, Go and Python are winning the race. Big Monoliths survive and 40+ senior devs are happy to maintain them. The role of the pure backend is dying. Now you're a full stack data engineer. You enjoy React as much as your python pipelines. AI is still dumb and all the learnings from a verbose, object oriented language help us to write better code.
Spring Boot is brain destroying.
So what you're saying is Golang would be amazing as it has the simplicity, epic write time speed, easily maintained, fast to compile and is fast!
Java: write once, debug everywhere
Im currently starting a new Java project at a mid sized company using Quarkus. It's like a lighter spring boot. Having lots of fun working on it so far.
I had 20 years of Java experience, now I use Kotlin. I even accepted a lower wage because I didn't want to go back. If you like your sanity, overcome your Stockholm syndrome and go with a modern language. Try it just for two months or so, and you will start to get PTSD when you see a semicolon.
Idk as much as you, but for me, I tried JavaScript before as my first language, and it's cool, but I did not fully enjoy it. I feel like I would like to learn Java much more. Trying to pursue it. It's quite a nice amount of time tbh, 20 years, am impressed
also you're a great motivation for me, I'd say. Am just a nineteen year old fresh programming enthusiast. Striving to be you, youre doin a great job
Lot’s of XMLs 7:03 . Probably 10 years ago. Update the toolset and use modern Java!
Chasing down semicolons? Still coding with notepad or what? 7:21
Big long deployment cycles in a bank for a Java developer? Banks are notorious separating the development and run. Developers release, but do not deploy. That is a different job. In a proper setup run ppl. are not even allowed to talk to dev ppl. other than emergency support. Release package including documentation is delivered, must work. If not, run ppl. will roll back, report, new release, but dev ppl. do not go in 4am Saturday. If they do, that is not Java. That is bad company structures. I was working 7 years for one of the largest Swiss banks and I was called once as 3rd level support Saturday afternoon, not in the morning. Btw: when I arrived they have solved it.
At the end Java brings food to the table.
The autoindustry is using a lot of java in the cars, so sort of embedded, also some IOT solutions and frameworks.
3:11 using intelJIdea everything in short-cut like psvm ,do setter-getter many much more shorcut that no issue!
Chasing missing semi-colons is not really a big deal if your IDE is good. Spring, as well, is mostly annotation-driven these days and less XML-driven. Spring has found its place in the microservices world, but a microservice architecture is not necessarily the best solution for every product. Services that are considered monolithic tend to be made worse by Spring.
I'm a Java developer and you got it perfectly
This is my basically what the team I'm being on boarded for is doing lol. Thanks for sharing . honest and accurate.
With Spring Boot, configuration is minimal and, even if I'm just starting to look into it, it's awesome. As a matter of fact, the. Net framework seems to be copying this approach. For backend development, Java is great!
Thank you so much! Thats the info I wanted!
Very good advise. I had java jobs, my new c++ and a bit python job, is much more fun, the resons being what you expose. Very nice advise.
Write time is mor important than run time speed?
Yeah fix 1 line of bug and run 500+ test which will take 10 min...
Totaly disagree
Runtime speed is very important for applications that demand high performance. Java doesn't cut it in this domain.
i like java, but the ecosystem is the worse. setting up projects is what takes time and the search for workarounds for problems that shouldn't be there.
Facts! When you have to struggle to do an Hello world or some simple CRUD, for me it’s a red flag. Life is too short to debug stuff that shouldn’t be there in the first place. (Not exclusive to Java)
I have been working with Java / Spring boot at multiple large banks for about 4 years, working with legacy code bases and building brand new from scratch applications. I gotta say it is a love hate relationship. (Mostly hate, but at least it’s not Ruby) But what can I say, that pay though
Is it the same case with C#/.Net?
After 6 year of consultancy in big companies, every time I have been told that it is a “big large project” I have realized that everyone thinks that his pipi is big but it is actually not compared to others. I write in Java just as fast as a typescript project and just as fast as a Golqng project. Unless you are writing libs in 2024 I would say each language is well streamlined and optimized for fast pace environment. XMLs configurations in spring, that must be an old old project probably creating servelets in the worst way possible . Old is not equal to big or complicated or better, it just mean that your managers is scared to touch it because he likes to think it is big and complicated so he also did not upgrade package/framework versions. I call that skill issues.
You are so on point!! Subscribing to your channel
Typical helpful video by Stef, full of nuggets of information that you won't find elsewhere.
My C++ instructor at BU Corp Edu Center [late Dr. James Devlin] used to hate Java; he would say "you don't get the colaaan colaaan with Java", referring to " :: " the scope resolution operator.
Question Stef: What kind of language would one use if one wanted to write a script to manipulate the play-time of youtube. For example, while going to bed I put on a long video or playlist, but I want youtube to stop playing the video after 45 min let's say, without shutting down the computer. I know I can schedule the shutdown of the computer in my Linux from the command line.
Python, best option?
Or would one use a shell script?
Hmmm ... probably a shell scripting thing.
Perhaps try building a basic extension in Chrome, mainly with Javascript ? OR, you can inject a javascript directly into your youtube's browser tab, set a timeout and when the timeout hits, it closes that particular browser tab. Never tried, but that should do the trick.
@@PriyankRupareliya saving this comment. Thank you for taking the time Priyank.
Great video Stefan, do you think you can do a video on Kotlin too? from a java developer standpoint it would be a good thing.
Spring boot is in HUGE demand and is used by every other startup or small business. Java is NOT mainly for large businesses. And with all the new features since maybe Java 17/18, it is much more dynamic and versatile.
I think you should have a few more java people to give you an idea. That friend that uses java in his company doesn't seem like they use any devops practice and seems like a monolith. I agree it's more for bigger companies.
2 years of exp with javascript still no job, so will go to Java. Wish me luck
I do not agree. Live in Munich, know a lot of local software companies. Most still have Java as their #1 language (except Python for AI). With a startup work place ethic to be able to attract the talent. What you say just means that Java is serious business and that's cool.
Its curious to me that the professional C# for web world is closer to the javascript web world in these descriptions even tho its a child of java.
To be fair it feels alot more like kotlin these days. Most businesses i find as a C# developer are actually Medium are small , my responsibilities are usually wide ranged and developer productivity is pretty high even tho the code is obviously alot more verbose than js. Less configuration than any js project tho :D we barely fill out xml files. max the appsettings.json and some k8s yamls.
Makes me feel for once, like big Daddy Macrosoft actually did and is doing quite a good job with their (not so much anymore) Java Clone
what roadmap do u suggest for learning C#/.NET ?
Hello. Has Swing/JavaFX become a niche ? Thanks for your answers
Yes they did and since a long time
Well articulated. Good advice for some new in the workforce.