I'm a Java developer. I hate it. I really want to get back into .NET, but I don't have enough experience on paper in .NET to get a high enough paying job. So I'm kinda stuck here, you could say.
My main gripes with Java are that there are 13986139821 ways to do one thing and that the tooling just sucks. Choice is good, but too much choice leads to dilution. It's kind of like going to a restaurant and having 300 items on the menu; it's kind of hard to sift through the crap. Microsoft's menu is much smaller, but most of it is delicious and nutritious. I'm a huge fan of Visual Studio and Microsoft products in general; everything tends to "just work" and I spend more time developing rather than configuring environments.
Also, this whole notion that Java is cheaper to operate due to Microsoft's licensing fees is total BS. Actual operational costs, including personell and support contracts, tend to be equally or more expensive with a Java based stack. Most big companies use one of (or a combination thereof) the big 3 databases: Oracle, MS SQL, and DB2. Guess which one's the cheapest, by far?
Agreed.
I actually wish my work used more Java. Most of the work is done in C. Not C++, just C. Embedded systems, open source software, and low level stuff seems to love plain old C, even though in lots of cases something higher level could easily be used. I try to squeeze Python in whenever I can, but it's more useful for quick one-offs than good solutions.
Your job sounds fun. I'd love to work with you. My favorite language is C. Not C++, just C. I almost took a job doing image processing and machine learning in embedded control systems, but I really didn't like the location and their benefits sucked. Paid more than I make now, though. So now, once in a blue moon, I get a gig like this on the side.