My name is Ken Mazaika and I’m the CTO & Co-founder of The Firehose Project.
I’m a strong believer in the idea that the software development environment is evolving at such a fast pace that it’s far more practical to learn the fundamentals instead of the next group of cutting edge technologies.
However, beginners will often ask about the future of web development. And it makes sense. With programming, as with any topic, it’s fun to talk about the next big thing. It might not be the most productive conversation in the world, but at times, it can’t hurt to look ahead and make bold predictions for the future. So that’s what we’re going to do here.
It’s never been a more exciting time to be a developer. As a self sufficient developer, who is capable of learning new technologies as they evolve, there is a limitless amount of new, remarkable technologies that are coming out on a regular basis.
In 1969, the Apollo Guidance Computer could process 41.6 instructions/second. An iPhone 6 processes about 3.36 billion instructions/second. This means that the technology in your pocket has the computing power to guide 120 million Apollo rockets to the moon at the same time in 1969.
It would be an understatement to say that technology is evolving rapidly. It’s far crazier that. New technologies are emerging that have the potential to revolutionize how we code.
In this post, we’ll talk about some of these new cutting edge technologies. Keep in mind that there are very few open positions for developers working with these technologies. That’s because they’re so new and so popular with senior developers, who want to live on the cutting edge. As a junior dev, it’s much safer to learn more established technologies because there are more jobs to land and more resources to learn them from. And should always make sure that you master the fundamentals of programming before diving in. But it can be fun to look ahead and explore the cutting edge. In fact, these technologies can clue us into the future of programming.
So let’s rewind a little bit.
It’s pretty clear that ES6 is the future of the Internet, and it supports a lot of features that make it a really enjoyable programming language to use. It includes a lot of forward-thinking ideas, in addition to concepts that are easy to understand from a traditional object oriented programming background.
ES6 is clearly the future of web development. And while the cutting edge has some risks associated with it, its future in 2017 and beyond looks very bright.
ES6’s Success Will Also Change Other Technologies’ Usage Rate
TypeScript’s future is tied tightly to how Angular 2 is received and it’s a little too early to tell how it will be adopted.
ReactJS is a technology that everyone is talking about these days.
original via codepen.io
Personally, I learned React because of the fancy buzzwords I encountered in presentations like Virtual DOM, and the ability to build isomorphic apps (really crazy buzzwords I barely understood, but sounded cool). I like how React deals with the state through something called a Flux, which developers can switch out to use in different implementations.
React and Flux can lock you down and prevent you from doing certain things. But since you need to work within the confines of React and Flux, it actually makes your applications easy to reason about (once you get a handle on how it works, which can take a while).
The current flux implementation that I think is most interesting is Redux. Although, if you really think about it, the implementation that will be most widespread in 2018 probably doesn’t exist yet.
Other tools that React developers are using are exciting too. Technologies like Webpack optimize page loads for an enjoyable user experience. AirBnB’s enzyme technology makes TDD possible (and even enjoyable) in React.
In 2016, learning React is possible but incredibly frustrating. The ecosystem is still learning the right way to do things, and it’s evolving very quickly. But some would say that it might be evolving too quickly at this point in time.
It’s possible that a different framework could prevail
In 2016, the other web frameworks are reinventing themselves. Angular is coming out with Angular 2. Angular 2 is far more than an upgrade to Angular. It’s a complete re-write, and essentially an entirely new framework. Ember 2 is also making a lot of changes.
Both Angular 2 and Ember 2 are taking cues from React.
Web Developers are slowly starting to converge onto the idea of components, or small reusable widgets of web applications that are easy to build out. In the next couple years, developers will experiment with a few different ways to accomplish this componentization, and even if nobody uses React in 2018, the discussions that it catalyzed will have already made a long-term impact.
What are WebSockets?
Web Browsers make it easy to trigger custom code when users perform certain actions on the page. For example, you can trigger your custom code for when someone clicks on an item, or when a user starts dragging an HTML element.
But traditional web browsers don’t do other things well, such as handle situations in which the triggered event happens someplace else.
WebSockets allow very cool real-time updates to the content of the page. A cool example of WebSockets in action takes place within your Twitter stream. As soon as a new tweet is available in the stream, it prompts you to load the new tweets, then loads them seamlessly once you press the button.
WebSockets are definitely going to be more pervasive, and will go from only exceptionally responsive web applications to the norm. It’s probably the reason why DHH (Ruby on Rails’ creator) is betting on it so heavily with ActionCable. If you’re curious, you can see DHH’s announcement of ActionCable in the RailsConf 2015 keynote, which is one of the core features of Rails’ next generation (Rails 5).
Elixir & Erlang are really exciting technologies. I’ve been bullish on the Elixir programming language, since it takes the scalability of the Erlang virtual machine and readability of the ruby language. The language’s creator, Jose Valim, has a proven track record of building open source that is used.
In 2016, jobs in Elixir are scarce. Senior devs eager to get on the ground floor of Elixir compete against each other for a small number of positions. And because it’s so far from being ready for the mainstream, today’s Elixir developers need to build the infrastructure, packages, libraries, and open source that future developers will take for granted. This is much like today’s ruby developers, who tend to take for granted the wealth of amazing open source projects that make their lives easier than their predecessors’.
I’m only getting more and more bullish on the programming language since I wrote this article.
It’s possible that I’m completely wrong.
There are some really exciting changes coming in the future, but it’s important to stay focused on programming in 2016.
Rather than try to jump ahead of the curve and work with a more cutting edge programming language or paradigm, focus your energy on what matters most if you’re trying to break into the industry.
First, become a Self Sufficient Developer, who can learn new things as they arise. Technology will constantly evolve, but the higher level skill of mastering the art of how to learn new technologies will prepare you for that. Learning the tools that are currently being used will always be easier to do than learning the cool new thing.
Second, there are some principles in programming that don’t change ever. Learn these timeless programming ideas.
Third, while you’re at it, work on a project you’re genuinely passionate about.
If you follow that pattern, it won’t matter what cool new technology comes around. You’ll be prepared even if the market moves in a drastically different direction. Nobody has all the answers, and predictions in the market are exactly that predictions (or someone’s guesses). So when learning to code, focus on learning what really matters.
For all we know, the future hip new technology that everyone will bet on is some crazy programming concept, like coding virtual reality experiences with the Oculus Rift. You should understand that as a developer, there are really cool things coming in the next few years. But don’t let that overwhelm you. Instead, let it inspire you to keep learning, keep building, and keep getting better.