this might be an odd post but I am just wondering what other jobs are there related to Java programming (or programming in general) that does not involve web programming? 90% of programming jobs I look for are all to do with the web in some shape or fashion. Have we become so integrated with the web that it is the only real target now in terms of programming jobs? My curiousity was brought up when I read an interview with James Gosling (Javas creator) where he said that there is so much focus on web development when it is really only a fraction of what programming is useful for. The only other thing I can think of is gaming. I am trying to open my mind a bit to programming because I have only really come to grips with Java in the last six months and all I have been learning is web programming. I have started to write simple games lately to branch into other ways of programming. The game programming is a lot tougher in my opinion because of the amount of logic it involves! Anybody else have any suggestions?
You may or may not have noticed that the standalone computer is becoming obsolete, at least as far as the general public is concerned. Instead, people are starting to use smartphones to satisfy their computational needs.
So that means that programming which is done for corporations will target web applications, and programming which is done for individuals will target smartphones.
I'm not saying that standalone computers are already obsolete -- obviously they aren't. I'm just pointing out what I perceive to be a trend, and describing its consequences in general terms.
Paul Clapham wrote:So that means that programming which is done for corporations will target web applications, and programming which is done for individuals will target smartphones.
How does that data get to the smartphone? :)
We have a group of Java/Scala developers who are entirely focused on a Data Access Layer and getting information out via simple web services. So while web technologies are involved (it's HTTP after all) it really has very little to do with the traditional web and everything to do with transferring data to a variety of different endpoints. HTTP is just one transport mechanism.
The term "web programming" may be collectively overused or not applicable in certain situations. Today's computing appications are not all "web" based with a GUI. As a matter of fact, not all computing applications have GUI or any human interface. If we define "web application" as a software application accessible via Internet with a HTML-based GUI, no all applications are not web applications. Examples might include financial data processing applications, XML document processing systems, publishing systems, commercial software, etc. Microscoft Excel is not a web application, NetBeans is not a web application, the software that monitors and controls air traffic is not a web application.
You could specialize in integration side. For example, SOA, Trading systems using FIX, etc. Some organizations do have specialized development teams for client side development and server side development. In server side development you normally build services.
There's lot of work been done in Java that is based on Grid computing frameworks. You have several well established grid computing frameworks, including but not limited to GridGain, Hadoop, Gigaspaces, Coherence. Recently these frameworks are expanding to support clouds. I suspect eventually a lot of processing will move to cloud frameworks, so there is definite growth in this area
Software for machine control. I am doing that at the moment, (though not in java). Partly this is done in firmware (or PLC), partly in software that uses the firmware. We are developing very specific 'clean room' industrial machines, robots. It's for medical stuff. Lot's of multi-threading and synchronization challenges and/or problems.