RE: .NET vs JAVA
March 14, 2015 at 7:01 pm
(This post was last modified: March 14, 2015 at 7:02 pm by I_am_not_mafia.)
I voted Java but only because it is open. It was a close thing as I don't like the way Java is developing and Mono exists now.
My job currently involves Java and Spring. I have been programming Java on and off since 1999. My last job was C#, which I had never used before and it certainly has some nice features. The job before that was Java and exposed me to Spring for the first time. I considered Spring a con. Programming became a matter of writing XML config files yet the config files never changed. Direct Inject / Inversion of Control was nice in theory but useless in practice.
But what I really hate is how magic is becoming more prevalent. Not just Java but C# as well. I understand the temptation to cut down on boilerplate code and to have things happen as if by magic, it does make development much faster. But in practice 90% of software engineering is maintenance of existing software and eventually all that magic more often than not needs to be removed to find out why it is messing up. The first three months of my current job has required me to take deprecated Java / Spring code and remove most of the old XML to make it auto-magical with annotations. It's certainly made the code simpler, but I'm sceptical as to whether it's actually the right way to go. I can't shift the suspicion that the correct way to do it is to dump Spring (and Java and C#) and do something new from scratch.
My programming language of choice is C++. I love code to be explicit.
My job currently involves Java and Spring. I have been programming Java on and off since 1999. My last job was C#, which I had never used before and it certainly has some nice features. The job before that was Java and exposed me to Spring for the first time. I considered Spring a con. Programming became a matter of writing XML config files yet the config files never changed. Direct Inject / Inversion of Control was nice in theory but useless in practice.
But what I really hate is how magic is becoming more prevalent. Not just Java but C# as well. I understand the temptation to cut down on boilerplate code and to have things happen as if by magic, it does make development much faster. But in practice 90% of software engineering is maintenance of existing software and eventually all that magic more often than not needs to be removed to find out why it is messing up. The first three months of my current job has required me to take deprecated Java / Spring code and remove most of the old XML to make it auto-magical with annotations. It's certainly made the code simpler, but I'm sceptical as to whether it's actually the right way to go. I can't shift the suspicion that the correct way to do it is to dump Spring (and Java and C#) and do something new from scratch.
My programming language of choice is C++. I love code to be explicit.