Sign up now to get free exclusive access to reports, research and invitation only events.
Hot or not? From the Web to the motherboard to the training ground, get the scoop on what's in and what's out in app dev
15 hot programming trends -- and 15 going cold
In the world of technology, rigor, science, math, and precision rule over fad. But that's not to say programming is a profession devoid of trends. Driven by greater efficiency, increased customization, and ease-of-use, new technologies are continuously rising in hopes of eclipsing previous generations.
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.
Hot: Preprocessors | Not: Full language stacks
Not long ago creating a new programming language meant building 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
Adding pizzazz to a Web page once meant opening the CSS file and including a new command, like font-style:italic. 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 what 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 love the results. The antialiased rendering looks great, and artists have built deep stacks of Flash code to offer sophisticated transitions and animations.
Hot: Almost big data (analysis without Hadoop) | Not: Big data (with Hadoop)
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 yottabytes. But most companies have data sets that can fit in the RAM of a basic PC -- 16GB of RAM is 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 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.
Hot: Single-page Web apps | Not: Websites
Remember when URLs pointed to Web pages filled with static text and images? How simple and quaint to put all information in a network of separate Web pages called a website!
New Web apps are front ends to large databases filled with content. When the Web app wants information, it pulls it from the database and pours it into the local mold. There's no need to mark up the data with all the Web extras needed to build a Web page. The data layer is completely separate from the presentation and formatting layer. Here, the rise of mobile computing is another factor: a single, responsive-designed Web page that work like an app -- all the better to avoid the turmoil of the app stores.
Hot: Mobile Web apps | Not: Native mobile apps
Let's say you have a great idea for some mobile content. You could rush off and write separate versions for iOS, Android, Windows Phone 8, and so on. Each requires a separate team speaking a different programming language. Then each platform's app store exerts its own pound of flesh before the app can be delivered to users.
Or you could just build one HTML app and put it on a website to run on all the platforms. If there's a change, you don't need to return to the app store, begging for a quick review of a bug fix. Now that the HTML layer is getting faster and running on faster chips, this approach can compete with native apps better on even more complicated and interactive...
Hot: Android | Not: iOS
While the iPhone and iPad continue to have dedicated fans who love their rich, sophisticated UI, the raw sales numbers favor Android more and more. The reason may be as simple as price. While iOS devices maintain a hefty price, the Android world is flooded with plenty of competition that's producing tablets for as low as one-fifth the price. Saving money is always a temptation.
But another factor may be the effect of open source. Anyone can compete in the marketplace -- and they do. There are big Android tablets and little ones. There are Android cameras and even Android refrigerators. No one has to say, "Mother, may I?" to Google to innovate. If they have an idea, they follow their mind.
Hot: GPU | Not: CPU
When software was simple and the instructions were arranged in a nice line, the CPU was king of the computer because it did all of the heavy lifting. Now that video games are filled with extensive graphical routines that can run in parallel, the video card runs the show. It's easy to spend $500, $600, or more on a fancy video card, and some serious gamers use more than one. That's more than double the price of many basic desktops.
Gamers aren't the only ones bragging about their GPU cards. Computer scientists are now converting many parallel applications to run hundreds of times faster on the GPU.
Hot: GitHub | Not: Résumés
Sure, you could learn something by reading a puffed-up list of accomplishments that include vice president of the junior high chess club. But reading someone's actual code is so much richer and more instructive. Do they write good comments? Do they waste too much time breaking elements into tiny classes that do little? Is there a real architecture with room for expansion? All these questions can be answered by a glimpse at some code.
This is why participating in open source projects is becoming more and more important for finding a job. Sharing the code from a proprietary project is hard, but open source code can go everywhere.
Hot: Renting | Not: Buying
When Amazon rolled out its sales for computers and other electronics on Black Friday, the company forgot to include hype-worthy deals for its cloud. Give it time.
Not so long ago, companies opened their own data center and hired their own staff to run the computers they purchased outright. Now they rent the computers, the data center, the staff, and even the software by the hour. No one wants the hassles of owning anything. It's all a good idea, at least until the website goes viral and you realize you're paying for everything by the click. Now if only Amazon finds a way to deliver the cloud with its drones, the trends will converge.
Hot: Web interfaces | Not: IDEs
A long time ago, people used a command-line compiler. Then someone integrated that with an editor and other tools to create the IDE. Now it's time for the IDE to be eclipsed (ha) by browser-based tools that let you edit the code, often of a working system.
Hot: Node.js | Not: JavaEE, Ruby on Rails, PHP
The server world has always thrived on the threaded model. Foolish loops, wasteful computations, wayward and inefficient coding -- the OS could balance performance by switching between threads.
Then Node.js came along with its callback model of programming, and the code ran faster than anyone expected was possible from a "toy language." Suddenly the overhead of creating new threads became obvious and Node.js took off. Problems arise when programmers don't behave well, but the responsibility has largely been good for them. Making resource constraints obvious to programmers usually produces faster code.
The Node.js world also benefits from offering harmony between browser and server. The same code runs on both making it easier for developers to move around features and duplicate functionality.
Hot: Hackerspaces | Not: College
One costs $250,000 for four years. The other charges about $50 a month, with big discounts for paying in advance. One uses the money to buy football stadiums, fancy houses for the president, flashy dorms, and four-color magazines. The other buys 3D printers, oscilloscopes, and soldering irons.
Hackerspaces are nurturing innovation without the outrageous overhead of the college industrial complex. They are creating the social networks that spawn startups and build wealth but without the bureaucracy and foolish consistencies Emerson called the "hobgoblin of little minds." Courses don't need to last an entire semester. Students don't need to start campaigning for admission a year before starting to learn.