Associate Software Engineer at Intech Process Automation·
Needs advice
Spring BootSpring Boot

For context, I currently use JavaScript (React) and Python (Flask) in my daily routine.

I need your help in choosing either Spring Boot or ASP.NET Core. Both frameworks seem to have mature ecosystems. I would like to hear your thoughts on the following points:

  • Difficulty level of both frameworks
  • Level of community support
  • Career prospects i.e do Spring based jobs pay more or vice versa
  • which one will be helpful if I decide to transition towards a more specialized field like data engineering.

I am asking this because it is something that I am also exploring in parallel. I know that Python and #SQL play a huge role in big data.

5 upvotes·345.1K views
Replies (4)
Staff Software Engineer at SailPoint Technologies ·

I’ll echo what others have said here with a few twists.

I have experience with both platforms including Micronaut, a relatively new kid on the block. It all depends on your near term goal. If it is to make money, sure Java jobs pay more generally because there is more hassles when dealing with the entire ecosystem. Like someone said earlier, you have to make a decision at almost every stage of the development cycle from the IDE, dependency resolution framework, logging, serialization, microservice framework etc. There is just too much choice which some may argue is an advantage while others may argue is a distraction and productivity killer. At the end of the day you can build solid systems with both frameworks.

Coming to ASP Core, yes I also agree that options are more streamlined. You’ll be using Visual Studio or Visual Studio code. For dependency management, you’ll be using Nuget. But I disagree with one of the comments above about the lack of choice. In some aspects .NET actually has more choice believe it or not for example choice of ORM. There is entity framework, nhibernate, dapper etc. For J2ee, hibernate reigns supreme although you have JPA. For dependency injection you have many IoC containers like unity, castle Windsor in .NET while you have Guice and maybe a Spring based implementation.

Also C# is technically a better language that Java. That’s not questionable as has also been stated above. Many things are done right obviously by avoiding some of the mistakes made in the underlying architecture surrounding the Java programming language. That’s why Microsoft created c# to begin with. The language is a lot cleaner and allows you to focus on learning core principles and nail down fundamental OO with emphasis on good design. I find too many distractions in the Java ecosystem which takes me away from understanding the core problem I am trying to solve.

So as you can this is not an easy decision and as someone has stated there’s work to do regardless of what technology choice you make.

If your sole purpose is to make a higher base salary, sure pick Spring Boot. If you want to quickly deliver something and iterate, pick ASP Core. I personally use c# for all private projects and proving concepts even though my employer is a Java shop. It allows me to stay focused on solving the problem and not constantly wrestle with issues such as Gradle dependency resolution glitches in IntelliJ.

Given that you can transfer skills from .NET to J2ee I recommend guys to pick up ASP get a couple of services to get a feel web development as you can still get jobs in Java even with that experience. Companies don’t care these days. In fact a lot of companies are going to Go so there’s that too.

Depends on your immediate term goal.

3 upvotes·1 comment·218.5K views
Keegan Witt
Keegan Witt
July 31st 2020 at 1:08AM

I gotta disagree a bit with the statement "you can still get jobs in Java even with that experience". I'd agree that the concepts are transferable, but in my experience, companies often want experience with specific technologies.

For example, maybe you used EclipseLink, but they want Hibernate. I've seen companies turn people down for stupid shit like that. If it's a job as an FTE, I think this is incredibly dumb (the specific tech used will change over your career at the company), but it happens all the time. And of course, For contracting jobs, it's not unreasonable to demand that. They don't want to wait for you to get up to speed on technologies, they're not investing in you. You're a hired gun to do a job. And often you're sold as an "expert" of some sort or other by the contracting company even if that isn't totally accurate.

I guess I'd amend the statement by saying "GOOD companies don't care these days". But whether that is applicable to your situation depends on the market of the specific city you live in.

On the issue of "choice", both frameworks have choices, and for both there's mostly 1 de facto standard. That's just more the case for .NET than Java, and I think .NET guys tend to use fewer community projects that aren't part of the standard framework. I do think this is changing, however.

Spring Boot

Spring boot helps you creating microservices in hours, not days and there is a very active community around it with amazing integrations. Check one of the tutorials maybe. At least here in Germany, the job market will be better for Spring Boot as well, there are a lot more companies using Java then C#.

5 upvotes·228.6K views
View all (4)
Avatar of Klaus Nji

Klaus Nji

Staff Software Engineer at SailPoint Technologies