An interesting approach of what’s hot and what’s not in today’s programming is being presented in 15 hot programming trends — and 15 going cold. The 15 new trends of programming are presented in short:
1) Hot: Preprocessors – Not: Full language stacks
Programmers nowadays do not create a new programming language. They prefer to just write a preprocessor that translates the new code into something old with a rich set of libraries and APIs. For example Groovy was created as a simpler version of Java without the overly insistent punctuation.
CoffeeScript was created to fix
Clojure are examples of run on the JVM, but there’s only one JVM.
Web apps and pages have become so easy to create, since there are plenty of frameworks like
HTML AJAX apps can do it for you.
3) Hot: CSS frameworks – Not: Generic Cascading Style Sheets
CSS frameworks like
Compass encourage programmers to literate, stable coding by offering programming constructs such as real variables, nesting blocks, and mix-ins, thus making design layer much easier. For example, a tweak to a color is enough to change the stype of a Web page, instead of opening the CSS file and including a new command to it.
Flash use seems to come to an end, since now web developers tend to prefer
DOM layer coming from new formats like
SVG (Scalable Vector Graphics). There are also APIs that offer elaborate drawing on the Canvas object, often with the help of video cards.
5) 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. Companies like Google or Yahoo do 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. So Big data may be used in cases that demand the fast response times of dozens of machines in a Hadoop cloud running in parallel, but in other cases on a single machine without the hassles of coordination or communication may be fine.
6) Hot: Game frameworks – Not: Native game development
Nowadays game developers do not have to create everything from scratch in
C. They can use libraries like
LibGDX to build their systems. All they have to do is write instructions for the libraries. This is quite a relief for them since now they don’t have to deal with the details, they can concentrate on the game play, narrative arc, characters, and art.
7) Hot: Single-page Web apps – Not: Websites
Web apps are now front ends to large databases that are filled with content. All information a Web app needs is pulled from the database and poured into the local mold. There’s no need to mark up the data with all the Web extras needed to build a Web page. Thus, the data layer is completely separate from the presentation and formatting layer. The rise of mobile computing is another factor: a single, responsive-designed Web page that works like an app.
8)Hot: Mobile Web apps – Not: Native mobile apps
HTML can reduce all the hard work when having a new idea for mobile content. Instead of writing code in different programming language for iOS, Android, Windows 8, and maybe even BlackBerry OS, you can just build an
HTML app and put it on a website to run on all the platforms. 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 apps.
9) Hot: Android- Not: iOS
While iPhone and iPad continue to have dedicated fans who love their rich, sophisticated UI, Android seems to excel in sales. An the reason is quite simple: the price. The Android world produces products for as low as one-fifth the price of iPhones, thus conquering the market.
Another reason may be the effect of open source. There are big Android tablets and little ones, Android cameras and even Android refrigerators.
10) Hot: GPU – Not: CPU
Since video games have become full of extensive graphical routines that can run in parallel, video cards have also changed to do all the heavy work. Gamers may spend more than $500 or $600 to buy a GPU card. But apart from gamers also computer scientists are now converting many parallel applications to run hundreds of times faster on the GPU.
11) Hot: GitHub – Not: Résumés
Reading someone’s code is so much richer and more instructive than reading his resume. It is much easier to check for example if they write good comments or if they waste too much time breaking things into tiny classes that do little. So participating in open source projects is becoming more and more important for finding a job.
12) Hot: Renting – Not: Buying
Companies used to open 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. It seems like a good idea, at least until the website goes viral and you realize you’re paying for everything by the click. Renting seems to be a new trend.
13) Hot: Web interfaces – Not: IDEs
IDEs seem to be replaced by browser-based tools that let you edit the code, often of a working system. For example, if you don’t like how
WordPress works, it comes with a built-in editor that lets you change the code right then and there. Microsoft’s
Azure lets you write
14) Hot: Node.js – Not: JavaEE, Ruby on Rails, PHP
Node.js has came along with the
The Node.js world also offers harmony between browser and server. The same code runs on both making it easier for developers to move around features and duplicate functionality.
15) Hot: Hackerspaces -Not: College
Hackerspaces are stepping up to nurture innovation without the outrageous overhead of the college industrial complex. Courses don’t need to last an entire semester. Students don’t need to start campaigning for admission a year before starting to learn. The ad-hoc nature is fast proving better suited for the rapidly moving world of technology.Related Whitepaper:
This guide will introduce you to the world of Software Architecture!
This 162 page guide will cover topics within the field of software architecture including: software architecture as a solution balancing the concerns of different stakeholders, quality assurance, methods to describe and evaluate architectures, the influence of architecture on reuse, and the life cycle of a system and its architecture. This guide concludes with a comparison between the professions of software architect and software engineer.