Is "The Cloud" going to overrun offline developers?

     

NOTE: This post was originally published as an answer to a question on Quora.

There are few different things to untangle here!

Cloud.jpgIs the Cloud as prominent in the future of software as I make it out to be?

Yep. Sorry, it's a done deal. The way we build, deploy, distribute and maintain software has changed, forever. What does "offline" mean in a world where a growing proportion of the worlds population are almost permanently online, where cars receive software upgrades over the air, bright-eyed developers are busy sticking computers into every conceivable appliance and a good many which are almost inconceivable (see this twitter feed of the worst excesses of the "Internet of Things" craze for examples), and most software developers have come to feel that deploying changes as rapidly as possible is the best way to deal with the dual issues of fixing bugs and adding features?

There are still isolated pockets in which software is truly offline, but these are increasingly rare; we are sending firmware updates to spacecraft which left this planet years ago, and telecommunications providers are doing their best to make it easier to communicate cheaply with smaller and smaller devices out in the field.

"The Cloud" is many things–I'm still fond of the explanation that "The Cloud is just Somebody Else's Computers"–but what it means for software developers of every kind is that you at least need to think about how your software exists in a world of ubiquitous communication. Even if you never write networking code yourself, understanding how the internet works is critical if you want to ensure you're not going to expect it to do something impractical or inefficient down the track.

If I want to pursue a future in software development, I must first learn web dev concepts? Should I just suck it up?

Yes, I'm sorry to report that you should suck it up. I'm not suggesting you have to resign yourself to web development as a career, but whatever path your career in software development takes those will have been useful skills to learn. Modern web development encompasses a staggering range of approaches, languages and infrastructure by virtue of the fact that the web is the internet in most people's minds.

This doesn't mean you have to write your own web server, or take up Linux sysadmin, or learn everything from scratch. At Engine Yard, for just one example, we provide a platform for Ruby on Rails developers who just want to deploy their apps without having to deal with all that stuff and instead leave it to the experts. Rails is a good starting place for getting a foundation in modern web concepts, as are many other frameworks and technologies such as Django, React and so on. If you've tried these and still hate web development, then think about why and how you can make it suck less.

You might be fortunate enough to land a job that lets you avoid dealing with the web straight out of college, but at some point I'm willing to bet you'll brush up against it somehow. When that happens, having a sound understanding of where the pain points are and why people do things the way they do will be very helpful in allowing you to avoid repeating the mistakes of previous generations of developers.

The Cloud is not The Web.

There is so much more going on in "The Cloud" than just web development. Take a look at the list of products provided by Amazon Web Services, for example. I work in this space, and every time I look there's something new. It's not just Amazon either; look at what Google and Azure provide and you'll quickly see that developing in the cloud does not necessarily mean doing web development. There are complex challenges involved in making all of these very rapidly moving pieces play nicely together, and there are endless opportunities to roll up your sleeves and get to work without writing web apps. Go out there and make the most of it!

Free Ebook:
Top 10 Advantages of PaaS

Looking to develop, deploy, and manage applications in the cloud? Learn how PaaS empowers you to innovate faster, more cost-effectively, and with less risk

John Dalton

 
John Dalton is a Database Administrator for Engine Yard, where he's been working remotely from his home office in Tasmania to support developers around the world for the past six years. Most of his career has been spent as a *nix sysadmin since shortly after he first fell in love with Unix in the mid 90s. When not fixing Linux boxes and databases in the cloud John enjoys being a dad to his four boys, video and tabletop gaming, cooking and decorating cakes. As far as he knows he is the only person to have ever interrupted a birthday party to comply with the terms of a CC-BY-SA license before cutting the cake.
Find me on:

Comments

Subscribe Here!