The Importance of Abstraction for the Future of Software Development

Do you ever ask yourself: how is my computer doing what it’s doing?

Adam LaGreca
November 13, 2015 • 4 minute read
The Importance of Abstraction for the Future of Software Development

Do you ever ask yourself: how is my computer doing what it’s doing?

I mean most of the time, I don’t really know the answer to that question. I know enough to have a good sense of what I don’t know. I know there are a lot of layers of abstraction so that I can actually do what I need to get done (or, ya know, procrastinate).

It’s insane, the power at our fingertips. Most of us probably still take for granted what Microsoft and Apple have done with the Graphical User Interface. We click with a mouse and type with a keyboard, while a whole bunch of complicated things are happening behind the scenes.

It’s inevitable that the same sort of progress happens when it comes to creating software [applications].

We should stop resisting next generation programming languages like Bubble that strive to abstract away more code from the end user. These are steps in the right direction towards simplifying software creation. In today’s day and age, building apps should begin to look more like putting together a powerpoint presentation than coding.

Let’s Abstract Further!

I’m breaking the “know your audience” rule a bit here by trying to address both non-technical and technical entrepreneurs. But I believe those of us who are “non-technical” should feel empowered to innovate online, and I want engineers and developers to lead the way to better code and better abstraction.

It’s worth noting that template website-builders like Squarespace and Weebly already make it possible to create a website or start an online business with minimal technical resources. And I don’t know anyone who would look down on turning to Medium or Ghost for a blogging platform. So the real need for engineers, the current argument goes, is for building more complicated applications — because there’s a big difference between launching your blog and building AirBnB or Twitter.

That’s true, yes. We need engineers to continue developing better and more particular software. But what we don’t need them to do is continue to reinvent the wheel for people who don’t have the skill set to code their own solutions. Because what’s happening in Silicon Valley is engineers are becoming an elite class — they are in control over which apps are built and what they look like.

I’d like to believe that the majority of engineers would be happy to work on new problems; and would be happy to integrate their code into Platforms-as-a-Service like Bubble that empower more people to visually build their own solutions.

[A certain level of skepticism is warranted. Past attempts to abstract code for broad use cases have failed. But we know it’s possible. We need more engineers getting onboard.]

The Law Of Leaky Abstractions

The main counter-argument to platforms like Bubble is what Joel Spolsky calls “leaky abstractions”. If you’re not super technical, let me try and break down the main argument:

Abstractions are attempting to “hide” all the problems underneath, but they never fully do. This is why it’s necessary to understand how everything is actually working.

Great! We agree. When the abstraction doesn’t work (i.e. leaky abstraction), someone needs to know what’s wrong. Where we disagree is who needs to know. Not everyone creating things on the internet needs to know — this should be the role of engineers.

No one is saying that abstractions are always perfect. But Spolsky’s claim that you’d be better off learning everything from the ground up, because someone will inevitably have to understand how things work “underneath the hood” when something breaks, is a problematic one. Yet we see this argument everywhere.

Bubble currently abstracts: Where the code runs | Where data lives and how to efficiently search for it | How pages are drawn and refreshed | How to talk to other services e.g. Facebook, LinkedIn | etc.

Steve Blank, listed as one of the 30 most influential people in tech by Forbes, titled a piece Why Founders Should Know How To Code and goes on to write, “A startup is not just about the idea, it’s about testing and then implementing the idea. A founding team without these skills is likely dead on arrival.”

It’s only in the world of internets that this argument makes sense and is such a widely held belief (I challenge you to read the story of Tara Reed, non-technical founder of Kollecto, and claim she didn’t test and iterate on her ideas). Yes, if you want to be a great engineer, you need to know how to code. But not everyone who wants to innovate online should have to be an engineer! That’s the point.

Engineers Should Be “Code Mechanics”

In spite of Spolsky’s claim that people should learn software from the bottom-up, many of us learn better top-down. For example, the only reason I know how to fix anything on my car is because at some point a light went off telling me something was wrong, so then I researched how to fix it. And if I can’t figure it out myself, I hire a professional (i.e. mechanic).

That process is actually pretty standard.

When it comes to programming the app, understanding the code underneath mostly won’t be necessary in the near future. Just like you don’t have to be a mechanic in order to commute to work, visit a friend, take a road trip, etc.

If you take away one thing about the future of software development from this post, then let it be this: it’s inevitable and necessary that in the near future practically everyone will be able do it.

Power to the People

Software is infiltrating and disrupting every market, and the popular response to this — from concerned mothers all the way up to the POTUS — is to put in place more initiatives that teach people how to code. And that’s great. Computer science should be part of school curriculum just like Math, Literature, Music and other sciences.

But being extremely proficient in coding is simply not for everyone. So these same people should also be champions for platforms like Bubble (that’s including you, Barack!) because it puts the power of software creation in more people’s hands. It allow people to focus on their ideas and their passions more than the code itself.

Start building with a free account

Build your app on Bubble's Free plan. No need to upgrade until you're ready to launch your app.

Join Bubble

LATEST STORIES

blog-thumbnail

Top 2025 Web Design Trends to Know: Parallax Scrolling, Micro-animations, and More

Web designers are moving away from flat, minimalist aesthetics. Learn how they’re leaning into bolder, personality-packed experiences with the use of AI, non-traditional scrolling, bold colors and typography, and more.

Bubble
December 13, 2024 • 10 minute read
blog-thumbnail

Bubble Wrapped 2024: Our Top Moments, Your Best Builds, and More

That’s a (Bubble) wrap on 2024! Check out our collective year in review, including all the highlights of our community’s biggest accomplishments — from new product improvements to no-code topics you couldn’t stop talking about.

Bubble
December 13, 2024 • 5 minute read
blog-thumbnail

27+ SaaS Stats on Market Growth, Usage, Launching a SaaS Startup, and More

SaaS spend and growth is up in 2024, even though growth rates have cooled slightly from previous years. Get the details on why, the state of the SaaS market, and more in this roundup of stats you should know.

Bubble
December 11, 2024 • 11 minute read
blog-thumbnail

Bubble vs. Glide: Comparing the Top No-Code Platforms

Glide is great for a quick, out-of-the-box, no-code solution when you need less customization. However, Bubble offers much stronger customization, community, and versatility. Here’s our comparison of both platforms.

Bubble
December 11, 2024 • 24 minute read

IT Process Automation: The Definitive Guide

November 13, 2024 • 13 minute read

The Basics of Visual Programming: What to Know, Who It’s For, and More

September 30, 2024 • 13 minute read

Low-Code Development: What It Is and How It Works

August 13, 2024 • 10 minute read

How to Create a Web App: A Step-by-Step Guide (2024)

May 17, 2024 • 22 minute read

How to Test a Prototype Effectively in 2024

March 07, 2024 • 12 minute read

Build the next big thing with Bubble

Start building for free