Programmers love to sneer at the world of fashion where trends blow through like breezes. Skirt lengths rise and fall, pigments come and go, ties get fatter, then thinner. But in the world of technology, rigor, science, math, and precision rule over fad.
That's not to say programming is a profession devoid of trends. The difference is that programming trends are driven by greater efficiency, increased customization, and ease-of-use. The new technologies that deliver one or more of these eclipse the previous generation. It's a meritocracy, not a whimsy-ocracy.
What follows is a list of what's hot -- and what's not -- among today's programmers. Not everyone will agree with what's A-listed, what's D-listed, and what's been left out. But that's what makes programming an endlessly fascinating profession: rapid change, passionate debate, sudden comebacks.
Not: Full language stacks
It wasn't long ago that people who created a new programming language had to build everything that turned code into the bits fed to the silicon. Then someone figured out they could piggyback on the work that came before. Now people with a clever idea just write a preprocessor that translates the new code into something old with a rich set of libraries and APIs.
Hot: CSS frameworks
Not: Generic Cascading Style Sheets
Once upon a time, adding a bit of pizzazz to a Web page meant opening the CSS file and including a new command like font-style:italic. Then you saved the file and went to lunch after a hard morning's work. Now Web pages are so sophisticated that it's impossible to fill a file with such simple commands. One tweak to a color and everything goes out of whack. It's like they say about conspiracies and ecologies: Everything is connected.
That's where CSS frameworks like SASS and its cousins Compass have found solid footing. They encourage literate, stable coding by offering programming constructs such as real variables, nesting blocks, and mix-ins. It may not sound like much newness in the programming layer, but it's a big leap forward for the design layer.
Flash has been driving people crazy for years, but the artists have always loved the results. The antialiased rendering looks great and many talented artists have built a deep stack of Flash code to offer sophisticated transitions and animations.
Hot: Almost big data (analysis without Hadoop)
Not: Big data (with Hadoop)
Everyone likes to feel like the Big Man on Campus, and if they aren't, they're looking for a campus of the appropriate size where they can stand out. So it's no surprise that when the words "big data" started flowing through the executive suite, the suits started asking for the biggest, most powerful big data systems as if they were purchasing a yacht or a skyscraper.
The funny thing is, many problems aren't big enough to use the fanciest big data solutions. Sure, companies like Google or Yahoo track all of our Web browsing; they have data files measured in petabytes or yottabytes. But most companies have data sets that can easily fit in the RAM of a basic PC. I'm writing this on a PC with 16GB of RAM -- enough for a billion events with a handful of bytes. In most algorithms, the data doesn't need to be read into memory because streaming it from an SSD is fine.
There will be instances that demand the fast response times of dozens of machines in a Hadoop cloud running in parallel, but many will do just fine plugging along on a single machine without the hassles of coordination or communication.
Hot: Game frameworks
Not: Native game development
Once upon a time, game development meant hiring plenty of developers who wrote everything in C from scratch. Sure it cost a bazillion dollars, but it looked great. Now, no one can afford the luxury of custom code. Most games developers gave up their pride years ago and use libraries like Unity, Corona, or LibGDX to build their systems. They don't write C code as much as instructions for the libraries. Is it a shame that our games aren't handcrafted with pride but stamped out using the same engine? Most of the developers are relieved -- because they don't have to deal with the details, they can concentrate on the game play, narrative arc, characters, and art.