wave of tool hype?
I'm trying to get off of this period's wave at the moment, actually,
and get into a long haul stream.
I'm working as a Java programmer
right now, but am just getting fed up with scurrying around, trying to
use the newest thing (which is a re-packaged old thing, as you
referenced) to make my supervisor or the customer happy. Or, my project
lead decides what we use, and he currently is jumping from one thing to
the next, and never stops on one thing to master it or to use it in a
second project. We used jsp and javascript for one project, then Struts
for the next, and now we're skipping Java Server Faces (because we
missed that loop) and going right into Spring (some other redesigned
thing that sits on top of Struts I believe). At my prior company, it
was as bad if not worse because they kept using the newer JDK as soon
as it went beta (not too smart). They even threw out their Swing/AWT
GUI and implemented Eclipse's SWT GUI instead just because someone
mentioned it.
Personally, I'm annoyed at learning new words for the same old thing,
or repackaged libraries that are still based on the same thing, or
libraries that someone wrote as an alternative (not necessarily better)
to an older tech. As you said. . . .
I would love to work in a calm environment where the tools were
stabilized and I could focus all of my time on algorithms and
architectural design. That's why I'd like to migrate over to C++,
actually.
There are certainly groups of developers that fit more closely
with your desires. The C, C++, Forth, COBOL, FORTRAN, assembler,
and possibly even Java languages (to name a few) all have groups
that don't embrace new tools simply because they are new. As you
have also observed, there are also groups that thrive in that
environment. Perhaps part of your exploration should also include
moving to some other industry.
I suspect that your current focus is on web-based or at least
web-delivered applications that embrace a marketplace that tends
to buy what looks new and improved. There are those that do enjoy
exploring all the new gadgets out there. Personally, I don't like
or trust loading dozens of new add-ons or plug-ins to view a new
site that I may visit.
So what might be a stark contrast to the fast moving web
clientel? Consider some everyday products that use computers.
What does an ipod have inside it? Would they embrace a brand
new technology or go for some proven technologies? If you have a
car or have ridden in a plane and it had computers used to operate
and make it do you think that the latest version of technology
would be in there? Would you even want it to be? Perhaps you
have seen the cartoon where an airline passenger opens their
laptop during a flight and the ever helpful bluetooth agent
helps you aquire control of a nearby device -- the airplane!
The automobile and especially the airline industry is highly
focused on goals like cost cutting, safety, and reliability.
Another area group that might interest you is the medical
industry. While there are groups that use the new tools for
exploring molecular relationships, would unproven tools be
embraced for creating the next pacemaker? Not likely.
The entertainment industry also has groups that focus on
cheap, effective, reliable devices. Consider your television's
set-top box, TiVo, or a similar gadget. There are also groups
that will challenge even these careful folks. How about
the military and space agencies? Java was part of some recent
devices sent to Mars. So were some very reliable operating
systems and interpreted languages. You might like to read up
on the Mars Rover and its technologies.
I've worked in education, military, telecommunications,
internet, and medical groups over the years. Sometimes I'm
at the leading edge and other times at the trailing edge of
technology. It is always a great challenge to restructure
a system, build something reliable and valuable, and be able
to say that you contributed to some part of something that you
can point out to people. You will probably want to enjoy
your work environment and what you are working on. Perhaps
some of these areas will also interest you.
There are many other news groups you could also hang out in
that could help you explore other ideas. comp.arch.embedded
is a good one. The focus there is naturally embedded devices,
but that can mean many things. They explore reliability and
testability more than say a web developer group would.
Some of the above areas are likely not to be something you
want to do. I've applied for and been turned down for certain
radio and airline industry positions. The complaint was that
I wouldn't be happy making one of two changes every couple years
and filling out mountains of paperwork to justify and specify
every change. The medical device industry (implantable devices,
scanners, and diagnostic equipment) can also be kind of different.
What other interests do you have besides the obvious interest
in computers? Say that you are interested in medical technology.
While you may not be a leading expert on some facet of technology
or contribute at some doctoral level, there may be areas that
can be very rewarding. I've worked on several medical and
technical problems where there were terrific scientists that knew
how to do something like image recognition, however they weren't
professional programmers and wrote garbage for prototypes. Usually
they didn't even do the recognition tasks in an unlimited time,
let alone be able to repeat it for the next image. That is where
it is best to create a team of several professions of which you
may be just a small part.
Teams of developers come in all sizes and organizations. What
is comfortable for you? Would being part of a team of 20 people
writing some large business application for some company be
a good or bad experience? Would it even matter?
You are obviously a bit dissatisfied with a few aspects of your
current position. It is but one small step in a long career if
you would like it to be. I hope it is a satisfying one for you.
David