TL;DR: Development is moving client side. Java/.NET are primarily backend, or will be soon and as such won't be as relevant, that's why.NET has been on the decline not Java. Get friendly with Javascript and : AngularJS or Backbone or Knockout and HTML/CSS.
Here's my thoughts... for what it's worth. I've written apps in pretty much everything. I created a fairly large site in PHP, have been writing primarily.NET apps, but have had to aid with the development of middleware in Java. I've also released an iOS/Android app or two. So I've been around the block and don't have a preference really. The geographical area that I'm in right now is in heavy demand for.NET... so that's what I do for the most part because I'm greedy and like money, if you pay me more to write Java... then I'll be singing its praises.
I see these discussions of.NET vs Java vs. all as pretty much pointless, both platforms will cost you just as much since your cost is development/maintenance, both have advantages and disadvantages. The fact is that most development is moving client side. This methodology has several advantages, the most notable in my opinion is the distribution of load. So... take something like ASP.NET MVC or RoR, if your app generates a giant HTML response server side and mails that back via XHR you have just crapped on yourself and your client. First, you had to pay the cost of generating said payload, and second, the client has to wait for that bastard to be downloaded/displayed. ( All of this does not matter if you can't write an efficient query to save your life or spend a ton of time waiting on disk I/O or some vendor service call ) <- This is where NodeJS really shines...
Anyway, it would be much more ideal to just mail back a model and allow the client side to worry about binding/display, etc. This is why you're seeing frameworks like AngularJS, Knockout, Backbone, etc. take off. They provide a better experience for the user and they have the added benefit of relieving some of the processing that takes place server side. The downside being that not all JS engines are created equal Chrome V8 > whatever the hell IE has. ( yes I know you have to consider user device, etc. and not reveal business logic/secrets in the front end, validate server side, bla bla bla ) I don't think that there is much argument that most development is moving to mobile/web... there are still inhouse apps for giant corporations and you could make a living at that... but a majority of the industry is moving away from that model. Even the inhouse apps are starting to be primarily webby. The project I'm on currently... I've written far more JS than C#... which is weird... lol
SO! That being said... You can safely consider Java or.NET a "back-end" platform, and even those two giants can be replaced by PHP, Ruby, NodeJS, etc. I would argue that its Google handing Microsoft their ass on a platter and not Oracle.... I suggest you concentrate on front end stuffs like Javascript and whatever frameworks are out there for that. Sharpen your UX/UI and people skills so you communicate with designers and BAs. I could code back-end stuff blindfolded, there's only so many ways to architect middleware, but making something that is usable and user friendly is an effing challenge. I've grown to have more respect for UX/UI folks than most, because a good designer is worth her/his weight in gold.
TL;DR: Development is moving client side. Java/.NET are primarily backend, or will be soon and as such won't be as relevant, that's why .NET has been on the decline not Java. Get friendly with Javascript and : AngularJS or Backbone or Knockout and HTML/CSS.
.NET apps, but have had to aid with the development of middleware in Java. I've also released an iOS/Android app or two. So I've been around the block and don't have a preference really. The geographical area that I'm in right now is in heavy demand for .NET... so that's what I do for the most part because I'm greedy and like money, if you pay me more to write Java ... then I'll be singing its praises.
.NET vs Java vs. all as pretty much pointless, both platforms will cost you just as much since your cost is development/maintenance, both have advantages and disadvantages. The fact is that most development is moving client side. This methodology has several advantages, the most notable in my opinion is the distribution of load. So... take something like ASP.NET MVC or RoR, if your app generates a giant HTML response server side and mails that back via XHR you have just crapped on yourself and your client. First, you had to pay the cost of generating said payload, and second, the client has to wait for that bastard to be downloaded/displayed. ( All of this does not matter if you can't write an efficient query to save your life or spend a ton of time waiting on disk I/O or some vendor service call ) <- This is where NodeJS really shines...
... I've written far more JS than C# ... which is weird... lol
.NET a "back-end" platform, and even those two giants can be replaced by PHP, Ruby, NodeJS, etc. I would argue that its Google handing Microsoft their ass on a platter and not Oracle.... I suggest you concentrate on front end stuffs like Javascript and whatever frameworks are out there for that. Sharpen your UX/UI and people skills so you communicate with designers and BAs. I could code back-end stuff blindfolded, there's only so many ways to architect middleware, but making something that is usable and user friendly is an effing challenge. I've grown to have more respect for UX/UI folks than most, because a good designer is worth her/his weight in gold.
Here's my thoughts... for what it's worth. I've written apps in pretty much everything. I created a fairly large site in PHP, have been writing primarily
I see these discussions of
Anyway, it would be much more ideal to just mail back a model and allow the client side to worry about binding/display, etc. This is why you're seeing frameworks like AngularJS, Knockout, Backbone, etc. take off. They provide a better experience for the user and they have the added benefit of relieving some of the processing that takes place server side. The downside being that not all JS engines are created equal Chrome V8 > whatever the hell IE has. ( yes I know you have to consider user device, etc. and not reveal business logic/secrets in the front end, validate server side, bla bla bla ) I don't think that there is much argument that most development is moving to mobile/web... there are still inhouse apps for giant corporations and you could make a living at that... but a majority of the industry is moving away from that model. Even the inhouse apps are starting to be primarily webby. The project I'm on currently
SO! That being said... You can safely consider Java or