Vivek Singh
2 min readSep 23, 2022

--

To be very honest, this article doesn't make sense at all. The first thing - you were hinting at how c# is better than Java. If I was doing that, I would go ahead pick a point - and then describe how Java is bad and C# handles it better(or any other language does it differently). It would help learners, and readers to better understand your thought process behind it.

To highlight more about a few points which you made -

Dependency management - There's Spring which is a framework(similar to .net core which people use for C#). Spring revolves around this dependency injection problem. I personally love the inversion of control feature. Also, SpringBoot has made life simpler by managing those transitive dependecies which you spoke about. So there's a library called Spring Starter which comes up with all library depedencies well managed so that the developer can just get started with building applications in a minute.

https://start.spring.io/

Yes, Spring could be slow at times to bootstrap and could take more meomory. There are new features in springboot like actively loading the in built classes/third party classes while building. The base classes goes inside base classloader and it is never touched until needed. Classes that are being developed goes inside restart classloader. So only restart classloader is monitored while building or restarting the application.

Link explaining the same :

https://docs.spring.io/spring-boot/docs/1.5.16.RELEASE/reference/html/using-boot-devtools.html

If this is a problem, you can use DropWizard, Play and many other frameworks available.

Operator overloading - It's just the creators choice. I got a chance to work on C++ during college days, and opeator overloading is just something which

is complex and increases the probability of error rate in the application, because not everyone can grasp those concepts. So it just makes the langauge simpler.

Method overloading or lambdas (more clear and easy to implement) can always be used where you may fancy using operator overloading.

Declaring Exceptions - Yes. If we have 10 nested method calls, then we do need to handle the exception in all those methods.

There are Exception Handling libraries

in Spring which could be used. Use controlleradvice for example - https://www.baeldung.com/exception-handling-for-rest-with-spring

Getters/Setters -There are editors like intellij/eclipse which let's you create those getter/setter on the fly using 2 clicks. There's also a library called Lombok - just use @Data and that would do the job of creating getter/setter/hashcode/equals/constructors.

However - I appreciate your choice of topic and writing - a difficult topic to write on. Because developers would have their own views based on their experience - like I had :D

--

--

Vivek Singh

Software Developer. I write about Full Stack, NLP and Blockchain. Buy me a coffee - buymeacoffee.com/viveksinless