by goronbjorn on 4/14/14, 2:53 AM with 130 comments
by fauigerzigerk on 4/14/14, 6:44 AM
I doubt that there will be much progress on this in the foreseeable future. Not for general purpose programming anyway. It's not true that there hasn't been a lot of work in these areas since Visual Basic. Not a week goes by without news about some tool that finally allows everyone to create UIs easily, wire up some logic and one-click-deploy everything on the web and mobile devices all at the same time.
But the bottleneck is somewhere else entirely. It's thinking in terms of models. Formalizing and abstracting what we know intuitively about the world and about the things we want to automate.
In my opinion, there have only been two inventions that really "democratized" access to thinking in models: Spreadsheets and SQL. Both are from the 1970s. There has been no progress since then, perhaps with the exception of some of the visual things you can do with modern game engines. Maybe R and Matlab deserve mentioning but they are for people who know exactly what they're doing.
I think the next step has to be abstracting away some of the intelligence required to analyse data and make all the tedious micro decisions about how to transform it into something fit for the task. What we need to make progress is some kind of AI enhanced version of Excel.
by wpietri on 4/14/14, 3:22 AM
Ever since, I've seen people selling similar notions. Whether or not they work, I expect we'll see a number of similar tools on the market. As things like magnetic healing bracelets demonstrate, not actually working is no barrier to selling a product.
by pcurve on 4/14/14, 4:00 AM
by AdrianRossouw on 4/14/14, 3:29 AM
Anything built for "non-programmers" as you say, is also many orders of magnitude more complex, and at some point that complexity will grow to a point where it is cheaper to replace the whole system entirely rather than upgrade.
API's and stuff are easier on some level, but distributed systems are also much more complex. Upstream API's change, or get EOL'd or change license.
actually, instead of listing all the reasons : every point you made is just going to end up with more software being developed. it all feeds into itself. endlessly.
by bobbygoodlatte on 4/14/14, 3:46 AM
A lot of the engineering work needed to build the next Instagram/WhatsApp/etc has become commoditized. Design is what's left.
by beat on 4/14/14, 5:57 AM
Software complexity expands to exceed available tools.
This is a Big Truth. No matter how fast hardware gets, we'll beat on it until it's burning up. Give us better tools, and we'll just write more and more complex software until the tools break down under the complexity. Give us better processes, and we'll make bigger projects.
Better tools don't make it any easier to write software, never have, never will. They just change the kind of software we can write. You don't buy a Porsche to drive 55 more effectively, and you don't use better software development tools in order to work less.
by venomsnake on 4/14/14, 7:04 AM
Circa 2010 enterprise java managed to take all benefits from freeing memory management and waste them on absurd abstractions and xml permutations (you throw some settings in xml and see what happens)
The universe is conspiring against us shipping real code.
by tim333 on 4/14/14, 5:01 AM
by netcan on 4/14/14, 10:23 AM
We can do with less. The first two points are especially relevant to this side of things. The most "talented" can be extremely productive. What if Google search & Gmail could be built and run by 14 talented individuals? Duckduckgo seems(ed) like an experiment in this direction. Doing with less is not necessarily painful or revolutionary though. Often, it's smooth. The answer to a lot of "how did people do ___ before computers" questions is "secretaries."
We can do more. That has been the overwhelming result of technological change up to now. Better tools -> More stuff gets made. Most of the resources freed by "doing with less" go into doing more. Agricultural machinery frees peasants to work in factories. Industrial robots free laborers to work as social marketing content creators. Progress.
by nmrm on 4/14/14, 3:32 AM
If this happens, then APIs and libraries that make development easy and intuitive for end-users could easily become as in-demand as well-designed websites and mobile apps are today.
by 31reasons on 4/14/14, 4:52 AM
by CmonDev on 4/14/14, 8:06 AM
Downwards in terms of language design though, you can add JavaScript to the end of that sequence to make it even more obvious. Otherwise we would've been using a some sort of sane syntax version of Haskell by now. If software is "eating" 'whatever' then computers should be doing more for you not less, hence even more pre-runtime checking, not less.
"... allowed hundreds of millions of semi-technical people to become software developers. ... these tools act as a force multiplier for the software industry."
Multiplying the code mess professional developers will then have to maintain? Example: converting Excel and Access spaghetti into sane programming models in finance.
by AKora on 4/14/14, 3:13 PM
by yason on 4/14/14, 7:17 AM
by mbesto on 4/14/14, 3:37 AM
Really? Loads of examples. One just off the top of my head is Scratch: http://scratch.mit.edu/
by rubiquity on 4/14/14, 3:42 AM
Since when does being a dynamic language and not having to have a main() function make you a "scripting language?" I didn't know people still said those words.
by alphydan on 4/14/14, 12:36 PM
"Computer, search google's rss news for arduino articles. Sort them by lenght, in the top 100 results search for the world circuit. Copy paste the paragraphs containing those results into a text file. Send it to Jane".
Is it really that far? Wouldn't such a program enable some kind of programming for non-coders (of course assuming one would need to learn some rules, and have a clear idea of what one was looking for).
by fredgrott on 4/14/14, 12:24 PM
If so, than are we facing the same exact problem just in a different field?
My take on it, is that we never fully mastered teaching how to come up with abstractions and new models..tangential proof is the large number of religions created to come up with new models of explaining how the =universe works.
by just2n on 4/14/14, 8:25 AM
While this is true, I'm coming to realize more and more that a lot of would-be highly needed disruption is just not feasible because laws and monopolies are standing in the way, much of it due to lobbying and sometimes patents. It's sad.
by DannoHung on 4/14/14, 5:12 AM
by illumen on 4/14/14, 8:56 AM
"Deploying a commercial website ten years ago required significant upfront capital"
Actually... you could get a very large website up 10 years ago on almost nothing. $30/month dedicated servers were available that could do 10,000 connections at once. Which means you could serve millions of people cheaply. You could also get lots of virtual shared hosts for $5/month or less.
Heck, even 15 years ago you could do that. Maybe not everyone realised it till later, but it's not a new thing at all.
"Startups created simple APIs that abstract away complex back ends. Examples: Stripe (payments), Twilio (communications), Firebase (databases), Sift Science (fraud)."
There were plenty of services around on the internet 15 years ago with APIs too. Including payments, communications, databases, and fraud. I know because I developed some of them.
"Open Source. Open source dominates every level of the software stack, including operating systems (Linux), databases (MySql), web servers (Apache), and programming languages (Python, Ruby). These are not only free but generally also far higher quality than their commercial counterparts."
Guess what? Open source was around 10 years ago.
"Programming languages. Developers have steadily marched upwards from Assembly to C to Java to, today, scripting languages like Ruby and Python. Moore’s Law gave us excess computing resources. We spent it making developers more effective."
Ruby and Python were both around ten years ago. The same as perl, php, and haskell amongst others.
"Special-purpose tools for non-programmers. These tools let non-programmers create software in certain pre-defined categories, thereby lowering costs and reducing the demand for developers. Examples: Shopify (e-commerce), WordPress (blogging), and Weebly (small business websites)."
um... blogging, e-commerce, and lots of other non-programmer tools were around in the 90s.
"General-purpose tools for non-programmers. In the pre-Internet era, tools like Hypercard and Visual Basic allowed hundreds of millions of semi-technical people to become software developers. Since then, there hasn’t been much work in these areas, but from what I’ve seen that might change soon. By allowing more people to program, these tools act as a force multiplier for the software industry."
Have you heard of the internet? Seen the reams of cut and paste code out there from semi-technical people? Whole industries are centered around letting less skilled people make software. This hasn't decreased, but increased. There's a whole "everyone should code" movement hitting us.
Is this the quality of article we want on this website? Please delete my account!? I'm done.
by applecore on 4/14/14, 12:28 PM
What startups might he be referring to?
by nahname on 4/14/14, 12:35 PM
Neither side is ever content.
by michaelochurch on 4/14/14, 12:33 PM
Take a look at the manner in which so many companies use project management software like Jira: to create a Big Brother system. Developer's velocity drops below 15 "story points" per week? There's your bad guy! Some companies use time-tracking software (designed to help an individual manage her own time better, and certainly not to abuse workers) to take micromanagement to a new level. Then there's LinkedIn, which may have been started with good intent but makes it astronomically more difficult for people to reinvent themselves (giving even more power to corporate management, which is thus empowered to fuck with peoples' careers long after they leave).
The real bad guys have been using us (programmers) for decades to wage their war on the workers. That's most of what they want us to do. Our effective purpose is not build flying cars or cure cancer, but to vaporize jobs for the poor and deliver the proceeds, efficiently, to the rich. Since we are also workers (we're the upper-working class) it's not surprising that we'd see our own weapons used on us.