Hey Uncle Stef, I am a self-taught with a background in Law. So I am not like a super super nerd, however, I want have been playing around with JavaScript for about 2 years and I want to try my hands on another language. My intention is to build Enterprise application(Banks and Financial institutions). I am at a crossroad picking between Java and C# as they are the chosen twins in my market(Nigeria). in terms of availability of Job, both goes head in head. So I have the following question: 1. Can I get a remote job in USA, Europe and Asia working with either of this language as someone living in Nigeria as these areas are my 2nd target market. 2. What learning path would you suggest, I mean, for instance, with web dev and front-end, I need to learn HTML, CSS(maybe tailwind or any other shinny framework), JavaScript then React || Svelte || Angular etc. what will be your suggested learning path bear in mind my intention to develop for Banks and financial institution. Thank you very for sharing these knowledge for free!!
@@Throllfinn MS tech stack is so "MS" that switching is not an easy task. Currently Visual Studio is starting to resemble scratch programming where you only drag and drop. That is situation because Delphi architect is also .Net architect.
Hi there, I have a question. I've learned REST api in the past 2 months, and I'm wondering what to do next. Do I need to have familiarity with web langs (html, css, js) or can I just go to other more back-end specialized niches (like: grpc, microservices, etc). I already know sql and ef but I'm just asking you for the job market.
I know people don't seem to care anymore about this but how about performance? Does it run well? Does it manage memory in a good way? Is the cpu usage low? I know hardware is getting stronger but it doesn't mean we shouldn't be mindful of that. If you compare C# and Objective C what will the answer to these questions be?
Thinking about? I hear pros and cons but what's really the bottom line? Personally I think C# is a clever compromise but for green field projects I wouldn't use either.
I'm also liking the flexibility of C# too, maybe i should just try switching, the only boring part is learning unique stuff about C#, most of other syntax is similar or identical to Java's.
@@laurentpayot3464 Virtually no F# jobs and C# has already adopted many F# features. Features C# adopted from F#: Pattern matching (C# 7.0+) Records (C# 9.0) Discriminated unions (upcoming in C# 12 as "choice types") Expression-bodied members Local functions Tuple types and deconstruction The "with" expression for immutable object updates Switch expressions Top-level statements
I work with both languages in webdev.; not much difference, well, Java is bit more verbose but with Lombok in Spring they reduced it a little... so overall, it depends on the environment and usecase.
micahelastl what languages are more used frequently for web dev backend at startups? I know that at enterprise level C# and Java are preferred, but I don't know at startups. You seem to be a professional web dev, that's why I'm asking.
@@adrian-4767 define "startup" ? There are so many technologies out there these days and most of them are very powerful. As a developer you might want to specialize in some languange and framework until you reach an expert level. But honestly, If you know how to code in Java and use Spring Boot, C# .NET is no match for you. But back to your question: I would say C# .NET is more used for SME, simply because it is more modern language.
@@michaelastl yes, by startup I meant "SME". But I wasn't specifically asking between C# or JAVA in SME, I was talking about in general of all programming languages which ones are the most frequently used at SME. JS? Python? Ruby? PHP? TypeScript? I do know at enterprise C#/JAVA are king, but I don't know at SME.
@@adrian-4767 It depends the business of the startup. AI - Data - Academic, science or learning ? python and a bit of js All the rest (Ecommerce , Finance, and more) js /c# / php Some industrial startup might go with c++ /python
@@adrian-4767 for startups mostly the fastApi (python) or nestJs, both of them are similar on structure and architecture that can be used in spring-boot as well if your startup wants to migrate to some more powerful
I've used a lot of .NET in my college, but I've never had a job where to use it... now I'm a Java developer for some years, and 100%, at every hour, every day, I can say that .NET and the Microsoft ecosystem is a better place, focused on actually development and not on a lot of configuration and shit... I will go with .NET even if I have a -20% decrease in my salary. The big problem: Companies fear Microsoft
I code in C#, and actually every time I try a new language, going back to C# just feels right. It gives you all the tools you ever need - GC, reflections, source generators (THEY ARE A GAME CHANGER), native compilation, low level memory management (it even has borrow checker if you drop down low enough), hot reload. It's all there. With every release it just gets better and faster. EF Core is still king of ORMs, no question about it. And discriminated unions are coming!
Microsoft pushes a technology hard then drops it, look at Silverlight and recently Xamarin For backend, Java will continue to dominate with framework like Spring for Enterprise system, unless Microsoft demonstrate a stable and long term technology stack, large scale projects will continue to be a Java space It is not the language itself but the framework for enterprise development, unless you have a framework like Spring that have been tested for years or decades already - C#, Python, Javascript, etc. will have a hard time dislodging Java at the backend
Both are great programming languages. You can learn fundamental concepts with both. IMO you can increase your knowledge and make your professional life even better using both. You should learn both.
This sounds more like a comparison of the ecosystems. How many already established frameworks and platforms each language has. The languages themselves might be on an equal level, it's just that C# has Microsoft behind it developing all these frameworks and platforms that you use the language with and that sets it apart. You listed so many for C# here but all I hear for Java these days is Spring. That's about it.
In my learning I recently switched from C# to Java just because there is so many more learning resources for Java. They are both so similar I can easily switch to c# at a later point.
Meh, in 2014-2018 maybe was easier to juggle between them, but right now .NET and C# have more features and an accelerated speed of adding new things, while compared to the Java + Spring world that are slow af... I don't say this is actually bad ("slowly but surely"), but on the short term (first 5-8 yrs) of your career it will be much harder to go from Java to C#.
@@Bobita25 To me (as a beginner programmer) it seems like Java is somewhat of a subset of C#. So my thinking is if I can learning Java first with it's more limited feature set, in great online courses like Hyperskill or CodeGym then I can move over to C# in 12 months having a good foundation in Java. With C# there are no equivilants to HyperSkill or CodeGym, also Java seems to have alot of more open source packages.
@@Dismanameboi You can do everything in both in the end. I think is a good idea to start with Java because of its lack of syntactic sugar. Is important to choose also depending on your country/region, I still think there are a lot more Java opportunities because of the companies fearing Microsoft. But the most important thing is to do what you like, you need to enjoy what you are doing. I tell you that as a java dev at my day to day job, but with 0 enjoy on that, I always preferred to use C# and .NET outside my job. More quality resources (written/media) than Java in my opinion, where I see a lot of fanatics.
I've been a C++ Windows application developer for 28 years. All Windows desktop stuff. Never touched the web. Barely ever touched C# or java, but enough to form a massive java "hatred". I loathe it with a passion. I basically quit because of it. The stress is too high.
I’ve used Flutter for a pet project and think it is awesome. Dart is easy to learn and has a lot of similarities to C# (though some differences too). Unfortunately I haven’t seen much of a job market for it.
Desktop applications are easy in Java with Swing or JavaFX, you can set up Gradle to bundle a custom JVM with very little code. I write them all the time.
@@toby9999 I have used C# with Forms. The part that is easier is using the Visual Studio UI to build the UI in C#, but that is only easier for newbs. Handwriting UI code is my personal preference. The JavaFX UI is my favorite because it has amazing reactive tools and is much snappier than forms to the user. Setting up your application to be a self contained application can be done with ChatGPT in about 5 minutes. Also you can use Kotlin instead of Java for the same result with a more modern language. This isn't to dog on C# or anything, I simply do not think it is better.
It's really your only option in enterprise, its great on private cloud, especially with Spring. There are many resources out there that do support Spring/Java back ends. So many frameworks that work together well to deliver quickly. .NET is also great though too - I think either would be a win but your handing you balls to Microsoft which is a negative he doesn't even mention. I like that there's a lot of COTS products that you can leverage with .NET but .NET also has more churn in its products which causes great pain. Stefan really paints himself into a corner today by forcing himself to look at the over all picture and choose one. I'd never use either for a web app, even in enterprise these days. Same with mobile development, not sure desktop apps are even relevant these days. Finally, I'd also say that while you get a leg up with knowing the syntax for game development the type of programs you're writing for Unity are so different to other bits of work I'd suggest it's a fairly low priority consideration. I do both Unity and java development, they both have their place. I'd also argue that Kotlin is java, close enough anyway. Just dont do javascript backends for the love of god.
If you are or want to be a huge Enterprise that has software spanning decades and teams with people that come and go over that timescale the only choice between the two is Java. C# has to change too often to be as useful in this regard (the old mantra applies, "In order for Microsoft to win, the customer must lose", they need to force change so you will be forced to pay for updates, but changing enormous enterprise systems at that rate is not feasible - which is why Java is still everywhere as good architects understand this).
go for backend, if sanity and dignity mean anything to you. Frontend means saying hello to the mad mad world of the javascript ecosystem where a gazillion frameworks come and go each day, even established frameworks like react produce breaking changes, and this has driven frontend devs nuts, there is no such thing as a happy frontend dev. You can thank me later for telling this to you. However, for freelance, you will still need to know vanilla javascript, and maybe an easier framework like vue.
Ok, this is a nice video, but to be honest, these days with all this AI stuff, the most important thing is the job and career. I know C# is used in a lot of different places, but still, for gaming, there are other options. Even for desktop, there are a lot of other options, and most of the C# jobs I’ve seen in my area are for backend, not game dev or desktop applications, etc. Based on backend jobs, which one do you think is better for career goals?
Java is such a rigid verbose mess. It isn't even fully OOP for something that clings to that paradigm. They had one of the best Lisp hackers ever join the language project and yet they still don't have true first class functions in 2024.
Few are talking about how bloated and even unreliable has become software. C# looks appealing to me, in a Java-dominated location, but Microsoft is not that much more worthy of trust.
@ellyeroms-qy1ym Have you seen to while video? Uncle mentioned it in it. It's called .NET MAUI, the successor of Xamarin.Forms that is deprecated already.
I haven't used either (C# or java) a whole lot, but I hate java with a vengence. The whole thing... the language, tools, ecosystem, and overly engineered OOP codebases. MS Visual Studio is an awesome IDE, and it supports C#, and the whole thing integrates well with Windows, whereas the whole java thing feels like a hack. If I had to choose one instead of C++ for Windows application development, I'd choose C# every time. Being language agnostic is a nice goal, but grinding out code in an environment one hates isn't a good goal.
Happy New Year, Uncle Curly. I know it's about choosing the correct tech for the task, but, be honest, what do you like working with best? My guess is PHP - or Ruby 🙂
Learn Both. I like Java because it's open source and good for "creative programming" (i.e. you can learn about its workings under the hood with a decent amount of effort and, potentially, expand on it in ways that you can only imaginge). I use C# on a case-by-case basis (example: game programming, etc). It has more abstractions and is only grounded in reality by the fact that it's based on Java. Just my 0.0000000001 bitcoin cents.
Hey Uncle Stef, I am a self-taught with a background in Law. So I am not like a super super nerd, however, I want have been playing around with JavaScript for about 2 years and I want to try my hands on another language. My intention is to build Enterprise application(Banks and Financial institutions). I am at a crossroad picking between Java and C# as they are the chosen twins in my market(Nigeria). in terms of availability of Job, both goes head in head. So I have the following question: 1. Can I get a remote job in USA, Europe and Asia working with either of this language as someone living in Nigeria as these areas are my 2nd target market. 2. What learning path would you suggest, I mean, for instance, with web dev and front-end, I need to learn HTML, CSS(maybe tailwind or any other shinny framework), JavaScript then React || Svelte || Angular etc. what will be your suggested learning path bear in mind my intention to develop for Banks and financial institution. Thank you very for sharing these knowledge for free!!
For European banks its Java and Angular. But even within any big institution you can find a department that used a different framework and frontend tool. Most of the legacy code was written in java using EJB, JSP and struts so Java is very ingrained to many organisations. A newer department or company would have equal choice between Java and C#
You should be fine. There are some limits working on .NET since it is Windows first ... if you will. But generally you'll be fine. You could leverage VMware Fusion ... if you really need to work with Windows on your M3. The M3 has more than enough power to run it all BTW.
Steph where we going here? Jet Brains makes Kotlin. In fact some people make web apps with Kotlin .kt and .java files in the source code build (don't ask why). But Java 23 Graal native is a game changer. And no one is writing a game in C# they are using C. If you want to get a job in the corporate world Java and Kafka is ubiquitous. Same with ERP and CRM API apps. Java rules. With that being said if you are doing financial software for corporate environments C# is a must.
Problem with C++ is that it is very difficult to NOT make mistakes. And the language itself is big and complex (like since 2011 you have move semantics, difficult to explain to an absolute beginner or even a Python guy, lambdas are very versatile but perhaps too versatile). And I even havent mentioned advanced meta programming, co routines. Even for me after 30 years of C++ and mainly using C++ 17 and after, I cannot say I am an expert. Unless it is for real use cases, like Unreal Engine (5.5 is vastly superiour to Unity), I would not directly advice C++. Resumé what I mean is that most C++ bugs tend to be trivial things (like resource (de)allocation) that other languages do not have. Example search for linux system programs like haproxy release-notes and code and you would be amazed by the amount of trivial bug fixes and bad quality all over the place.
I would pick Java for higher salaries and C# for everything else. C# offers much better dev experience and has a brighter future. Java is gradually becoming the new Cobol.
@@toby9999 Me too. Java as a language has improved. The problem with Java IMO is the ecosystem: lots of poorly maintained and cumbersome old tech. The thing I hate the most in C# is SQL Server. IMO SQL Server is overly complicated. Java has many SQL Servers, if you get what I mean.
C# is probably the most elegant and expressive language out there, but the new "HOT RELOAD" in Visual Studio is really getting on my nerves. It gets to the point when I have to rebuild the whole project when changing some HTML or layouts
It depends if you want to be a freelancer or a professional developer, C# is more for enterprises or more established companies. On the other hand Python (and other languages like PHP, Javascript, etc) are more nimble (quoting Uncle Steph) and can be used to rapidly put together a minimum viable product which makes them more useful for small businesses...
@@amirmahdi9958 to add big companies like nasa. National geographics Instagram and a few others use django. But c# for exomerse or enterprise django for startups and ecomerse
if you wanna go deep on backend, till grasping some DevOps skills for deployment and packaging, I recommend you python or nestjs, it's more easy to deploy on free PaaS/hosting sites with python or nestjs if your goal is to develop your portfolio with hosted projects, if you wanna go more industrial, then you have java and c#, but most of the time to deploy apps in java or c# you have to pay for the PaaS/hosting services
Rust is in an entirely different category as far as I understand it. Rust, C, C++, possibly go and zig, etc. C and C++ are the only languages I use nowadays..tried rust. Didn't like it.
I really like C# as a language and have been using it professionally for almost 6 years (also a bit of nodejs). I'm not too much a fan of the gigantic .NET ecosystem, it just has so so many abstractions, quite a bit of magic (finding out how something actually works under the hood sometimes can be a pain), and a fair amount of bloat... it is a beast! So while I really respect it, it is often a bit much to handle I find. For big large projects with many teams of people it is good I'm sure as having an ecosystem where you generally do things a specific way, can have benefits such as having a solid foundation and conventions. You will find a general tie-in with Azure too if working with it professionally though. This is why I'm kind of looking at nodejs and might pivot to it.... It has its issues I know like npm, dealing with typescript sometimes due to missing types or incorrect configurations, or dealing with the different module versions, but for smaller/mid size projects and speed of development it has always seemed really nice to me. But what I do like is that you don't have any tie-in to specific things and there isn't a billion levels of abstraction ontop of everything already, feels a bit more free (which can be good and bad).
ChatGPT Top 10 Languages Thought for 1m 38s I love Rust for its safety, speed, and great community support. It prevents a lot of common programming errors, especially around memory management, and it’s just really well designed. Here’s a quick personal ranking (best to lower, but all are great in their own way): Rust C# Python Go JavaScript TypeScript Java Kotlin Ruby C++ ChatGPT Pro thinks C# is #2 overall best 🤔
The java ecosystem sucks big time. Ever tried using Eclipse for large java projects... yeah, it's diaboltical. And that's just one crappy tool of the many.
I hope you realize C#, Kotlin and 10-15 more programming "languages" are just Java derivates? Kotlin especially is a Java parasite that is 100% dependent on the Java runtime system (JRE) to function as it is just syntactic sugar instead of Java, right? Kotlin produces bytecode that MUST have a Java Runtime to work.
@@ZeryusXD C# came many years after Java and took many of the features from Java ... hence, he calls it a derivative. Technically, you are right; it is not derivative since C# is not based on Java, but I am sure you knew what he meant.
Do you know why you hate Java? Because you worked with it and couldn't handle its twists and turns, dear uncle. Do you know why you like C#? Because either you never worked with it, or at least you haven't worked with it professionally. if you had worked with C# as much as you worked with Java, in the end, you would have said : PHP is better than both ، and I totally agreed with this opinion.
my uninformed opinion: Java is ahead of C# when it comes to web. C# is more versatile, better aesthetics and thus more user friendly. It makes development lot easier as compared to Java. Take my opinion with loads of salt. I am inexperienced developer working towards becoming competent developer.
"C# is more versatile." C# can't make cross-platform GUI applications on Linux. C# gains game development with Unity or Godot C# and loses Linux GUI applications. Otherwise, both C# and Java can do GUI applications on Windows, macOS, Android, and iOS, web applications on Linux, macOS, or Windows, and embedded GUI applications. C# is a bit slower and has worse tooling than Java (.NET with EF Core versus Spring Boot with Spring Data JPA) and is much less secure than any language running on the JVM. It's pretty much a wash, in general. Most people will benefit from choosing Java over C#, because there are more Java positions out there than C# positions, but both are viable languages with professional opportunities.
Just so you know, when I started writing Java, I had all my hair. After years of writing Java code ... well, you can see what happened.
😂😂
Hey Uncle Stef, I am a self-taught with a background in Law. So I am not like a super super nerd, however, I want have been playing around with JavaScript for about 2 years and I want to try my hands on another language. My intention is to build Enterprise application(Banks and Financial institutions). I am at a crossroad picking between Java and C# as they are the chosen twins in my market(Nigeria). in terms of availability of Job, both goes head in head.
So I have the following question:
1. Can I get a remote job in USA, Europe and Asia working with either of this language as someone living in Nigeria as these areas are my 2nd target market.
2. What learning path would you suggest, I mean, for instance, with web dev and front-end, I need to learn HTML, CSS(maybe tailwind or any other shinny framework), JavaScript then React || Svelte || Angular etc. what will be your suggested learning path bear in mind my intention to develop for Banks and financial institution.
Thank you very for sharing these knowledge for free!!
Yeah, I'd been trying to get my head around the java ecosystem, and now my hair is thinning rapidly :(
Lol.
As a .Net Developer, I approve Uncle Stef.
As a . Net developer Ms is probably trying to get rid of you. Current by making everything about ai.
As a .Net developer couldn't care less because I can change tech stack. You should be an engineer instead of a framework developer.
@@Throllfinn MS tech stack is so "MS" that switching is not an easy task. Currently Visual Studio is starting to resemble scratch programming where you only drag and drop. That is situation because Delphi architect is also .Net architect.
@@radosmirkovic8371 I understand your concerns and seems pretty valid but as I said it is still doable even if it is hard. Best of luck.
Hi there, I have a question. I've learned REST api in the past 2 months, and I'm wondering what to do next. Do I need to have familiarity with web langs (html, css, js) or can I just go to other more back-end specialized niches (like: grpc, microservices, etc). I already know sql and ef but I'm just asking you for the job market.
I love the C# Blazor WASM hybrid model. Having web, IOS, Android off of one code base with little to no code changes needed is such a cool solution.
I know people don't seem to care anymore about this but how about performance? Does it run well? Does it manage memory in a good way? Is the cpu usage low? I know hardware is getting stronger but it doesn't mean we shouldn't be mindful of that. If you compare C# and Objective C what will the answer to these questions be?
@@Ragnar452 between C# and objective c the choice is simple C# but between c# and c or c++ then its situation or C# vs Swift for ios then swift
Good timing, Uncle Stef. I was thinking about this today. Thanks for the insight.
You're welcome!
Thinking about? I hear pros and cons but what's really the bottom line? Personally I think C# is a clever compromise but for green field projects I wouldn't use either.
@@StefanMischook
Anyway I really love ❤️ you
Keep up the great content
Literally just been googling and researching this, and i enter the subscriptions tab and i see this video. Interesting.
Let me know what you think!
I'm also liking the flexibility of C# too, maybe i should just try switching, the only boring part is learning unique stuff about C#, most of other syntax is similar or identical to Java's.
C# is an improved and better version of Java.
Plus .NET is also open source these days, what more can you ask for!
Also, F# is an improved and better version of C#.
Claiming that C# is better than Java is like claiming that Windows is better than Linux.
@@krystian725 they dream bro
@@laurentpayot3464 Virtually no F# jobs and C# has already adopted many F# features.
Features C# adopted from F#:
Pattern matching (C# 7.0+)
Records (C# 9.0)
Discriminated unions (upcoming in C# 12 as "choice types")
Expression-bodied members
Local functions
Tuple types and deconstruction
The "with" expression for immutable object updates
Switch expressions
Top-level statements
@@krystian725 arent they?
I work with both languages in webdev.; not much difference, well, Java is bit more verbose but with Lombok in Spring they reduced it a little... so overall, it depends on the environment and usecase.
micahelastl what languages are more used frequently for web dev backend at startups? I know that at enterprise level C# and Java are preferred, but I don't know at startups. You seem to be a professional web dev, that's why I'm asking.
@@adrian-4767 define "startup" ? There are so many technologies out there these days and most of them are very powerful. As a developer you might want to specialize in some languange and framework until you reach an expert level. But honestly, If you know how to code in Java and use Spring Boot, C# .NET is no match for you. But back to your question: I would say C# .NET is more used for SME, simply because it is more modern language.
@@michaelastl yes, by startup I meant "SME". But I wasn't specifically asking between C# or JAVA in SME, I was talking about in general of all programming languages which ones are the most frequently used at SME. JS? Python? Ruby? PHP? TypeScript? I do know at enterprise C#/JAVA are king, but I don't know at SME.
@@adrian-4767 It depends the business of the startup. AI - Data - Academic, science or learning ? python and a bit of js
All the rest (Ecommerce , Finance, and more) js /c# / php
Some industrial startup might go with c++ /python
@@adrian-4767 for startups mostly the fastApi (python) or nestJs, both of them are similar on structure and architecture that can be used in spring-boot as well if your startup wants to migrate to some more powerful
Perfectly timed video. I'm about to embark on learning C# for my job actually. I'm developing a Microsoft word integration.
I've used a lot of .NET in my college, but I've never had a job where to use it... now I'm a Java developer for some years, and 100%, at every hour, every day, I can say that .NET and the Microsoft ecosystem is a better place, focused on actually development and not on a lot of configuration and shit... I will go with .NET even if I have a -20% decrease in my salary.
The big problem: Companies fear Microsoft
That's true. Unfortunately here in Europe .NET positions and salaries are smaller than Java..
Like python but my heart wants c# was the very first programming language i was introduced to in college. Will learn it well this year
I code in C#, and actually every time I try a new language, going back to C# just feels right. It gives you all the tools you ever need - GC, reflections, source generators (THEY ARE A GAME CHANGER), native compilation, low level memory management (it even has borrow checker if you drop down low enough), hot reload. It's all there.
With every release it just gets better and faster. EF Core is still king of ORMs, no question about it. And discriminated unions are coming!
The awnser is whatever gives you a job and god damn many companies use Java for backend
Microsoft pushes a technology hard then drops it, look at Silverlight and recently Xamarin
For backend, Java will continue to dominate with framework like Spring for Enterprise system, unless Microsoft demonstrate a stable and long term technology stack, large scale projects will continue to be a Java space
It is not the language itself but the framework for enterprise development, unless you have a framework like Spring that have been tested for years or decades already - C#, Python, Javascript, etc. will have a hard time dislodging Java at the backend
Both are great programming languages. You can learn fundamental concepts with both.
IMO you can increase your knowledge and make your professional life even better using both. You should learn both.
Java is just pain awful. I've used it a little, but I would rather quit than use java full time. Not for me... ever.
C# was always fav language.
This sounds more like a comparison of the ecosystems. How many already established frameworks and platforms each language has. The languages themselves might be on an equal level, it's just that C# has Microsoft behind it developing all these frameworks and platforms that you use the language with and that sets it apart. You listed so many for C# here but all I hear for Java these days is Spring. That's about it.
In my learning I recently switched from C# to Java just because there is so many more learning resources for Java. They are both so similar I can easily switch to c# at a later point.
Meh, in 2014-2018 maybe was easier to juggle between them, but right now .NET and C# have more features and an accelerated speed of adding new things, while compared to the Java + Spring world that are slow af... I don't say this is actually bad ("slowly but surely"), but on the short term (first 5-8 yrs) of your career it will be much harder to go from Java to C#.
@@Bobita25 To me (as a beginner programmer) it seems like Java is somewhat of a subset of C#. So my thinking is if I can learning Java first with it's more limited feature set, in great online courses like Hyperskill or CodeGym then I can move over to C# in 12 months having a good foundation in Java. With C# there are no equivilants to HyperSkill or CodeGym, also Java seems to have alot of more open source packages.
@@Dismanameboi You can do everything in both in the end. I think is a good idea to start with Java because of its lack of syntactic sugar. Is important to choose also depending on your country/region, I still think there are a lot more Java opportunities because of the companies fearing Microsoft.
But the most important thing is to do what you like, you need to enjoy what you are doing. I tell you that as a java dev at my day to day job, but with 0 enjoy on that, I always preferred to use C# and .NET outside my job. More quality resources (written/media) than Java in my opinion, where I see a lot of fanatics.
I've been a C++ Windows application developer for 28 years. All Windows desktop stuff. Never touched the web. Barely ever touched C# or java, but enough to form a massive java "hatred". I loathe it with a passion. I basically quit because of it. The stress is too high.
I had that with C++ win32 API and MFC back in the day, so I can understand you feeling the oposite and totally loving it.
Salute to you man ... I stuck in windows.h thing
I don't bias but, I have used java for kind of backend with spring boot. What I saw is java is too much boilerplate code :((.
I decided to use Ruby, Uncle Stef 😂 Thanks for the video ✌
😂
😂
Wtf
Rails is seeing a come back, so some people might use Ruby :-)
If you feel you have too much hair, then Ruby might be your answer!
in the begining thought you would say java since your from a java background but you surprised me
Stef is agnostic . He just picks the right tool for the job.
Uncle Stef, do you think PHP will still be popular in 2025 with the upcoming major release of the Laravel Cloud Platform?
100%
Any work project experience with a cross platform framework like Flutter? What's your take on cross platform options?
I’ve used Flutter for a pet project and think it is awesome. Dart is easy to learn and has a lot of similarities to C# (though some differences too). Unfortunately I haven’t seen much of a job market for it.
Desktop applications are easy in Java with Swing or JavaFX, you can set up Gradle to bundle a custom JVM with very little code. I write them all the time.
C# would be even easier. Probably use Visual Studio as is without spending days/weeks frigging around with java tools..
@@toby9999 I have used C# with Forms. The part that is easier is using the Visual Studio UI to build the UI in C#, but that is only easier for newbs. Handwriting UI code is my personal preference. The JavaFX UI is my favorite because it has amazing reactive tools and is much snappier than forms to the user. Setting up your application to be a self contained application can be done with ChatGPT in about 5 minutes. Also you can use Kotlin instead of Java for the same result with a more modern language. This isn't to dog on C# or anything, I simply do not think it is better.
Learn BOTH..
I think that C# is a duck lang, do everything but nothing shine.
Java it's backend King 👑
Is Java good for backend?
It's really your only option in enterprise, its great on private cloud, especially with Spring. There are many resources out there that do support Spring/Java back ends. So many frameworks that work together well to deliver quickly. .NET is also great though too - I think either would be a win but your handing you balls to Microsoft which is a negative he doesn't even mention. I like that there's a lot of COTS products that you can leverage with .NET but .NET also has more churn in its products which causes great pain. Stefan really paints himself into a corner today by forcing himself to look at the over all picture and choose one. I'd never use either for a web app, even in enterprise these days. Same with mobile development, not sure desktop apps are even relevant these days. Finally, I'd also say that while you get a leg up with knowing the syntax for game development the type of programs you're writing for Unity are so different to other bits of work I'd suggest it's a fairly low priority consideration. I do both Unity and java development, they both have their place. I'd also argue that Kotlin is java, close enough anyway. Just dont do javascript backends for the love of god.
If you are or want to be a huge Enterprise that has software spanning decades and teams with people that come and go over that timescale the only choice between the two is Java. C# has to change too often to be as useful in this regard (the old mantra applies, "In order for Microsoft to win, the customer must lose", they need to force change so you will be forced to pay for updates, but changing enormous enterprise systems at that rate is not feasible - which is why Java is still everywhere as good architects understand this).
Is frontend still actual hot stuff or switch to backend?
switching to backend is better
go for backend, if sanity and dignity mean anything to you. Frontend means saying hello to the mad mad world of the javascript ecosystem where a gazillion frameworks come and go each day, even established frameworks like react produce breaking changes, and this has driven frontend devs nuts, there is no such thing as a happy frontend dev. You can thank me later for telling this to you. However, for freelance, you will still need to know vanilla javascript, and maybe an easier framework like vue.
Three thumbs up for uncle Stef! 😄
Ok, this is a nice video, but to be honest, these days with all this AI stuff, the most important thing is the job and career. I know C# is used in a lot of different places, but still, for gaming, there are other options. Even for desktop, there are a lot of other options, and most of the C# jobs I’ve seen in my area are for backend, not game dev or desktop applications, etc.
Based on backend jobs, which one do you think is better for career goals?
Hi Stefan, can you make a video about your views on docker and dockerization?
Java is such a rigid verbose mess. It isn't even fully OOP for something that clings to that paradigm. They had one of the best Lisp hackers ever join the language project and yet they still don't have true first class functions in 2024.
Hey, nice video! Regarding MAUI, are you guys already using it? I mean, is it mature enough to be used in production?
I haven't yet.
C# gang here 💪
Few are talking about how bloated and even unreliable has become software. C# looks appealing to me, in a Java-dominated location, but Microsoft is not that much more worthy of trust.
can c# work for macOS too or cross platform desktop applications
I think this could be done with MAUI.
@TomRaf what's that?
I thought .NET can be used for cross platform
@ellyeroms-qy1ym Have you seen to while video? Uncle mentioned it in it. It's called .NET MAUI, the successor of Xamarin.Forms that is deprecated already.
I haven't used either (C# or java) a whole lot, but I hate java with a vengence. The whole thing... the language, tools, ecosystem, and overly engineered OOP codebases.
MS Visual Studio is an awesome IDE, and it supports C#, and the whole thing integrates well with Windows, whereas the whole java thing feels like a hack. If I had to choose one instead of C++ for Windows application development, I'd choose C# every time. Being language agnostic is a nice goal, but grinding out code in an environment one hates isn't a good goal.
Happy New Year, Uncle Curly. I know it's about choosing the correct tech for the task, but, be honest, what do you like working with best? My guess is PHP - or Ruby 🙂
Definitely Ruby!
Probably PHP. But I am kinda agnostic; depends on the gig.
C#
Reasons: (1) It's FAST! (2) Fairly light weight (3) Runs practically anywhere. Win/Linux/Mac, Mobile, Web, IoT Firmware (that's right!).
Prism.Avalonia framework for the win on cross-platform desktop development
Yea it takes around 25gb to download visual studio and development setup.
Learn Both. I like Java because it's open source and good for "creative programming" (i.e. you can learn about its workings under the hood with a decent amount of effort and, potentially, expand on it in ways that you can only imaginge).
I use C# on a case-by-case basis (example: game programming, etc). It has more abstractions and is only grounded in reality by the fact that it's based on Java. Just my 0.0000000001 bitcoin cents.
Hi Uncle Stef. What about Golang?
so Javas demand is decresing! in web you have dominant player like js, c#, php you just mention game in AI its python
Is java demand really decreasing ?
@HatchettTheGreat Java is still the king in Enterprise
@@journeytothedream6127 oh okay. Yeah I'm trying to land a bank job I've spent 4 months grinding c# and angular hard
Hey Uncle Stef, I am a self-taught with a background in Law. So I am not like a super super nerd, however, I want have been playing around with JavaScript for about 2 years and I want to try my hands on another language. My intention is to build Enterprise application(Banks and Financial institutions). I am at a crossroad picking between Java and C# as they are the chosen twins in my market(Nigeria). in terms of availability of Job, both goes head in head.
So I have the following question:
1. Can I get a remote job in USA, Europe and Asia working with either of this language as someone living in Nigeria as these areas are my 2nd target market.
2. What learning path would you suggest, I mean, for instance, with web dev and front-end, I need to learn HTML, CSS(maybe tailwind or any other shinny framework), JavaScript then React || Svelte || Angular etc. what will be your suggested learning path bear in mind my intention to develop for Banks and financial institution.
Thank you very for sharing these knowledge for free!!
All these have to do with your social presence, skills and portfolio. It is not easy but not impossible.
if you're interested on fintech, then java is the way, more resources and libraries than c#, in terms of enterprise level for finance industries
For European banks its Java and Angular. But even within any big institution you can find a department that used a different framework and frontend tool.
Most of the legacy code was written in java using EJB, JSP and struts so Java is very ingrained to many organisations. A newer department or company would have equal choice between Java and C#
my top choice would be rust mostly than c#, would go for c# if i cant do it in rust
would working on an m3 macbook pose any sorts of challenges or restrictions with development in c#?
You should be fine. There are some limits working on .NET since it is Windows first ... if you will. But generally you'll be fine. You could leverage VMware Fusion ... if you really need to work with Windows on your M3. The M3 has more than enough power to run it all BTW.
.net is fully cross platform. Ive been using .net on my macbook m1 pro for years and never had an issue
What do you think about Tech Lead's latest video?
Steph where we going here? Jet Brains makes Kotlin. In fact some people make web apps with Kotlin .kt and .java files in the source code build (don't ask why).
But Java 23 Graal native is a game changer. And no one is writing a game in C# they are using C.
If you want to get a job in the corporate world Java and Kafka is ubiquitous. Same with ERP and CRM API apps. Java rules.
With that being said if you are doing financial software for corporate environments C# is a must.
unity games use C#
How about c++
Problem with C++ is that it is very difficult to NOT make mistakes. And the language itself is big and complex (like since 2011 you have move semantics, difficult to explain to an absolute beginner or even a Python guy, lambdas are very versatile but perhaps too versatile). And I even havent mentioned advanced meta programming, co routines. Even for me after 30 years of C++ and mainly using C++ 17 and after, I cannot say I am an expert. Unless it is for real use cases, like Unreal Engine (5.5 is vastly superiour to Unity), I would not directly advice C++. Resumé what I mean is that most C++ bugs tend to be trivial things (like resource (de)allocation) that other languages do not have. Example search for linux system programs like haproxy release-notes and code and you would be amazed by the amount of trivial bug fixes and bad quality all over the place.
I would pick Java for higher salaries and C# for everything else.
C# offers much better dev experience and has a brighter future.
Java is gradually becoming the new Cobol.
I would pick C# even if the salary was less. Yeah, COBOL is horrid, as is java.
@@toby9999
Me too.
Java as a language has improved.
The problem with Java IMO is the ecosystem: lots of poorly maintained and cumbersome old tech.
The thing I hate the most in C# is SQL Server.
IMO SQL Server is overly complicated.
Java has many SQL Servers, if you get what I mean.
C# is probably the most elegant and expressive language out there, but the new "HOT RELOAD" in Visual Studio is really getting on my nerves.
It gets to the point when I have to rebuild the whole project when changing some HTML or layouts
I’d like to think we might have chosen C wires..? From the simplest possible example
I want to be a back end developer python or c#?
Go to a job board that have backend jobs in your region, look for backend jobs and what they require the most.
It depends if you want to be a freelancer or a professional developer, C# is more for enterprises or more established companies. On the other hand Python (and other languages like PHP, Javascript, etc) are more nimble (quoting Uncle Steph) and can be used to rapidly put together a minimum viable product which makes them more useful for small businesses...
@@amirmahdi9958 to add big companies like nasa. National geographics Instagram and a few others use django. But c# for exomerse or enterprise django for startups and ecomerse
if you wanna go deep on backend, till grasping some DevOps skills for deployment and packaging, I recommend you python or nestjs, it's more easy to deploy on free PaaS/hosting sites with python or nestjs if your goal is to develop your portfolio with hosted projects, if you wanna go more industrial, then you have java and c#, but most of the time to deploy apps in java or c# you have to pay for the PaaS/hosting services
Ruby
How about Rust?
Rust is in an entirely different category as far as I understand it. Rust, C, C++, possibly go and zig, etc. C and C++ are the only languages I use nowadays..tried rust. Didn't like it.
Please post something about Julia. Curious to know your opinion on that.
I don't know if I should talk about Julia ... we had a bad breakup.
@@StefanMischookWho tf is Julia?
Some programming language??
i choose rust and elixir but none of them gonna pay my bills, ts/golang do
You're right...but I like java over c# 😂
C# of course
but c# is a little bit bloated
you're an architect steph
My working name is Art Vandelay.
@@StefanMischook I remember asking my pops about c# and being shutdown hahahaha
C# is better..but enterprise companies wont choose Microsoft..
I wouldn't be so sure about that. The java vs. C# market share is similar, as are salaries, as far as I can tell.
@toby9999 in some regions countries .net has good traction..overall java is chosen more cause of microsoft
I really like C# as a language and have been using it professionally for almost 6 years (also a bit of nodejs). I'm not too much a fan of the gigantic .NET ecosystem, it just has so so many abstractions, quite a bit of magic (finding out how something actually works under the hood sometimes can be a pain), and a fair amount of bloat... it is a beast! So while I really respect it, it is often a bit much to handle I find. For big large projects with many teams of people it is good I'm sure as having an ecosystem where you generally do things a specific way, can have benefits such as having a solid foundation and conventions. You will find a general tie-in with Azure too if working with it professionally though. This is why I'm kind of looking at nodejs and might pivot to it.... It has its issues I know like npm, dealing with typescript sometimes due to missing types or incorrect configurations, or dealing with the different module versions, but for smaller/mid size projects and speed of development it has always seemed really nice to me. But what I do like is that you don't have any tie-in to specific things and there isn't a billion levels of abstraction ontop of everything already, feels a bit more free (which can be good and bad).
that is cool
whatever you choose in the end, a jump over the fence should be easy. Many critiicisms of java are outdated too btw, not advocating here, just sayin.
As a 6 time 52 yr old dev learni g and failing IT guy 7th time will be c# again 😊
ChatGPT
Top 10 Languages
Thought for 1m 38s
I love Rust for its safety, speed, and great community support. It prevents a lot of common programming errors, especially around memory management, and it’s just really well designed.
Here’s a quick personal ranking (best to lower, but all are great in their own way):
Rust
C#
Python
Go
JavaScript
TypeScript
Java
Kotlin
Ruby
C++
ChatGPT Pro thinks C# is #2 overall best 🤔
Anti Spiral
Dai-Gurren uses Java
simply only one is open source
❤
Golang!
Hey!
The thumbnail! I though Putin was going to explain the video🤫
The language? Probably C#.
But you can't beat the java ecosystem.
The java ecosystem sucks big time. Ever tried using Eclipse for large java projects... yeah, it's diaboltical. And that's just one crappy tool of the many.
@@toby9999 Now try one of the good IDEs, there's plenty to choose from.
Now with AI available Its easier to work with Java.
Java
I hope you realize C#, Kotlin and 10-15 more programming "languages" are just Java derivates? Kotlin especially is a Java parasite that is 100% dependent on the Java runtime system (JRE) to function as it is just syntactic sugar instead of Java, right? Kotlin produces bytecode that MUST have a Java Runtime to work.
С# doesn't run on JRE, it has its own runtime. It was heavily influenced by Java and, in more ways, is better than Java.
C# isn't a Java derivative. It's its own language made to compete with Java. Both Java and C# are derivatives of the C language
Your point being... ?
@@ZeryusXD C# came many years after Java and took many of the features from Java ... hence, he calls it a derivative. Technically, you are right; it is not derivative since C# is not based on Java, but I am sure you knew what he meant.
@@ZeryusXD C# is a clone of Java. Microsoft could not believe Sun didn't sue them at the time.
Scala
Kotlin is better than both
👍
sponsor microsoft
So you mean Java ain't that decisive-wise for many hiring recruiters?
Do you know why you hate Java? Because you worked with it and couldn't handle its twists and turns, dear uncle.
Do you know why you like C#? Because either you never worked with it, or at least you haven't worked with it professionally.
if you had worked with C# as much as you worked with Java, in the end, you would have said :
PHP is better than both ، and I totally agreed with this opinion.
java is the best
Best at what?
Kotlin
my uninformed opinion: Java is ahead of C# when it comes to web. C# is more versatile, better aesthetics and thus more user friendly. It makes development lot easier as compared to Java. Take my opinion with loads of salt. I am inexperienced developer working towards becoming competent developer.
PHP forever
Ruby for never
Both are a waste of time, I do android development in python kivy. Learn python and call it a day.
Hey Stefan, I think you need to level up your thumbnails. Reply to this comment so we can do some samples!
"C# is more versatile." C# can't make cross-platform GUI applications on Linux. C# gains game development with Unity or Godot C# and loses Linux GUI applications. Otherwise, both C# and Java can do GUI applications on Windows, macOS, Android, and iOS, web applications on Linux, macOS, or Windows, and embedded GUI applications. C# is a bit slower and has worse tooling than Java (.NET with EF Core versus Spring Boot with Spring Data JPA) and is much less secure than any language running on the JVM. It's pretty much a wash, in general. Most people will benefit from choosing Java over C#, because there are more Java positions out there than C# positions, but both are viable languages with professional opportunities.
no
The U.S. Government wants less C# because of safety & security concerns.
The U.S. Government doesn’t pay my bills 😂
They meant C and C++ iirc
The US government wants you to stop lying.
.NET - Azure ftw!