For a while now, the debate has gone something like this: Should you learn to code? Yes, definitely, the tech world says–except when it doesn’t. If you do want to learn to code, we’ll people will give you lots of guides to getting started. But be warned: It’s terrible. Like, really bad. But it’s also the future of the economy and everything, so you may need to suck it up and force yourself to learn. Did we mention there’s a new programming language that’s better than the one you already learned?
It’s all very confusing.
But perhaps we’re asking the wrong question. Maybe we should be looking for something better than code. Maybe there could be an end to programming as we know it, where people just make software without special skills. The Death of Code: Dramatic, isn’t it? Well, it’s also necessary and inevitable, argues Alan Trefler, CEO of Pegasystems, and something of a quixotic thinker on the way software has been built for the last 50 years.
“I think one of the huge failures in business is that we have continued to run at the level of abstraction of the machine,” says Trefler. “When you have a business problem you want to solve, you have a customer you want to service, you have this collection of data that you want to review, too much of it ends up getting translated into machine instructions by these voodoo priests of programming as opposed to figuring out how to create abstractions that make sense for the business people.”
Those voodoo priests are developers, whom Trefler believes act as a troublesome buffer between development and management, who knows what they need. Business leaders need to leverage tech in order to innovate, but the necessity of programmers to serve as intermediaries are a frustration at best and an inefficiency at worst. His company has built their business on a hyper-modular approach toward development–but more on that later.
So, instead of teaching the world to code, should we be telling coders to adapt to the world?
Yes and no. Programming is necessary because computers can only understand binary input–and programming languages exist because no one is physically capable of “reading” an endless stream of ones and zeros. Programming languages are a small step from the binary language of machines to something more like a native language we use every day. But it’s still foreign to the uninitiated–including some business leaders who are dependent on technology for their company’s success.
The ideal, says Chris Kelly, a software developer that works closely with the GitHub development community, is a programming language that resembles a language that we already speak. But there are huge problems keeping us from implementing that–namely, in making a programming language easier for humans to understand, computers have to work harder. That means more servers, more electricity, more money, more complexity built into the computer. But that shouldn’t keep us from giving it a shot.
“If you can develop a programming language that gets closer and closer to native language,” says Kelly, “then people that are unskilled in actual programming techniques can make long language statements about what the computer is supposed to do to solve real-world business problems [or] real future problems. [Managers] understand the real-world problems, they just don’t know how to implement it into software.”
According to Kelly, such a thing is possible, but only after a large amount of mental gymnastics. First, we’d need a theoretical programming language that’s comparable to one of our native languages. Then we’d need a massive dataset to control for the variations in how we speak–nothing crazy, just every program ever written by any developer on the planet. And finally, an algorithm that takes both your plain-language instructions and analyzes this massive dataset in order to construct the most efficient lines of code for what the user desires.
It’s a lot of work.
But languages, programming or otherwise, are large, abstract constructs that are used to fulfill a variety of needs. A small startup will likely have–and need–leadership with programming knowledge, as there is a world of difference between building an app and finding an efficient solution for a corporate software infrastructure. Trefler’s solution is highly abstracted.
“We created a set of series of metaphors that have enabled us now to basically capture even some very, very sophisticated complicated processes very, very close to the whole model,” says Trefler. “You can build even a very, very complicated, sophisticated system and 95% of the code is written automatically from the model and can be directed by business people. Very little has to be programmed the old-fashioned way.”
But Trefler isn’t entirely trying to rid the world of programmers entirely. “There are certain things for which programming is just fine,” Trefler admits. “[But] for things that need to change rapidly, for things that should be able to be done by business people we think it’s absurd that it’s still all being done by hand.”