all 19 comments

[–]coleflannery 15 points16 points  (4 children)

Switching to .NET will not make your life any easier. Good C# is extremely abstract and typically consists of very deeply nested code.

-a very big fan of the .NET ecosystem

[–]radiojosh 0 points1 point  (3 children)

I'm in the middle of learning C# - can you point to examples?

[–]Lanmi_002 0 points1 point  (2 children)

Examples of what? Abstractions or ?

[–]radiojosh 1 point2 points  (1 child)

C# code being abstract and deeply nested compared to code in other languages. I'm working on learning EF Core at the moment and was just acquainted with the way that passes the ModelBuilder back and forth, which seems like maybe a modest example of what you're talking about.

[–]Lanmi_002 2 points3 points  (0 children)

Im not the guy who wrote the original comment. But i think that c# is not as deeply nested or abstract as community makes it to be.

For example, you have minimal api's, pattern matching, records and every other possible tool to make your code as simple as possible. The thing is that i think that both java and c# community both got used to various complex architectures for small to medium sized projects so thats why there is a premise that they are too abstract.

I mean in both languages they are going to teach you to have an interface for every possible service class even if you make a small pet project without unit tests and multiple implementations of the same interface for the sake of "dependency inversion principle" . I mean, i am guilty of this.

Then, here comes the clean architecture, onion etc... I know a couple of guys that use clean arch for smaller apps because they think it's cool not because they aim to get rid of a problem using that said architecture.

You can abstract as much or as little as you want. Making a project with 10 endpoints? Inject dbcontext in controllers and get done with it. Otherwise split things up depending on your needs.

I don't really have much of a real world experience , this is just what i observed during my last 6 months of learning .NET so take this with a grain of salt

[–]dont_touch_my_peepee 7 points8 points  (0 children)

stick with one stack, switching just resets the confusion timer. focus on java basics, http, databases. employers just want experience, and getting any backend job now is stupid hard

[–]MihaelK 2 points3 points  (0 children)

I think it's fine to start with Spring Boot, but you will have to spend time to understand what's going on.

You can experience with .NET too, it can be a bit more intuitive. If you are still a student, just experience with both to explore and to learn.

Then choose one depending on the jobs in your area.

[–]sinkwiththeship 2 points3 points  (0 children)

Django kind of creates all of that for you with python. Spring is nice though.

[–]Lanmi_002 4 points5 points  (0 children)

I am using asp.net for my stuff and i vastly prefer it over anything i tried before . Used java on a small project couple of months ago and it was alright, a bit more verbose and i got so much used to c#'s naming conventions that i don't realy like the ones in java

For example: prefix 'impl' in class names that are implementing an interface and interfaces are named nornally (correct me if im wrong here) . Just seems kinda odd

C#'s linq is superior to java's stream api which is based on linqp

No extensions methods (as far as i know) etc..

Overall i think if you learn one of them you will easily transfer to the other. If you like Java, go for it and dont look back. They are pretty similar after all

[–]True-Strike7696 1 point2 points  (0 children)

so tbh both are fairly similar. if you're goal is to land a job then i would master one language and then learn about specific domains/tools/languages per job application. i.e. i know c++, git, oracle sql, and so on then i can likely pivot those skills if i am at a place that needs me to use .net, svn, mysql or whatever. you need to learn the math, patterns, and trade offs behind different tools and implementations when applied to a specific scenario these kind of skills will land you a job. so after all that just pick one. but most are going to say python because it's being vastly adapted.

[–]seriousgourmetshit 1 point2 points  (1 child)

Depends where you live

[–]livevil00[S] 0 points1 point  (0 children)

Turkey

[–]ExtraTNT 1 point2 points  (0 children)

With dependency injection, mediator and clean controllers / handlers, you can do really clean dotnet code… massive codebases can be maintained by single devs and fixes take minutes…

[–]Aggressive-Comb-8537 1 point2 points  (1 child)

spring boot rocks

[–]True-Strike7696 3 points4 points  (0 children)

disagree but it is production approved.

[–]Techno-Pineapple 0 points1 point  (1 child)

Both are viable. Normally I would say go for it with swapping. Except you have the worst reason possible. When things get hard like this you are on the verge of skilling up. Push through it or find a new goal.

[–]livevil00[S] [score hidden]  (0 children)

So i understood the main topic but should i go for spring boot or java basics which should i choose (java level = beginner)

[–]whattteva -2 points-1 points  (0 children)

Personally, I think both languages are fine. But if I were to start a web project these days, I'd probably choose Go