4 ms·
A Manifesto for Mediocrity. Every few years someone comes up with the idea of making programming so simple that anyone can do it. This is not new; the concept
by SomeCallMeTim 12y ago
A Manifesto for Mediocrity.
Every few years someone comes up with the idea of making programming so simple that anyone can do it. This is not new; the concept has been around at least since the '60s. Look at some COBOL history:
"They agreed unanimously that more people should be able to program and that the new language should not be restricted by the limitations of contemporary technology. A majority agreed that the language should make maximum use of English, be capable of change, be machine-independent and be easy to use, even at the expense of power." [1]
Many attempts have been made to achieve this Silver Bullet. The examples that get closest are things like GameMaker:Studio [2] or
Unity 3d [3], which are extremely domain-specific (for certain classes of 2d and 3d games, respectively).
So you CAN create a domain-specific language that anyone can use. But every attempt to create a completely general purpose language that anyone can use to do anything has failed -- or has ultimately (accidentally?) produced a domain-specific language that solves the specific problems that the authors are most familiar with.
[1] http://en.wikipedia.org/wiki/COBOL http://en.wikipedia.org/wiki/COBOL
[2] http://en.wikipedia.org/wiki/Game_Maker:_Studio http://en.wikipedia.org/wiki/Game_Maker:_Studio
[3] http://en.wikipedia.org/wiki/Unity_%28game_engine%29 http://en.wikipedia.org/wiki/Unity_%28game_engine%29
- swannodette 12y agoReally now? Smalltalk the precursor to much of modern Object Oriented programming languages and development environments started off as a language project for children http://www.atariarchives.org/bcc1/showpage.php?page=61 http://www.atariarchives.org/bcc1/showpage.php?page=61. If that's the end result of mediocrity, our programming culture could use a whole lot more of that please.
- teamonkey 12y agoGame Maker and Unity are trying to make the full stack as easy and accessible as possible. The programming languages they use are part of that, but their chose of language is mostly a pragmatic balance between speed, power, familiarity for existing programmers and learning curve for newbies. I mean, Unity3D uses C# on top of .Net, which isn't at all what is described in the OP.
- SomeCallMeTim 12y ago>Game Maker and Unity are trying to make the full stack as easy and accessible as possible. That's pretty much my point. What people need is a full stack to solve their problem, but they need the stack to be able to be customized to their particular variant of the problem. That full stack will have a lot of code that is beyond 95% of people's ability to create. But even though Unity uses C#, artists and designers I know who are absolutely not programmers (by their own insistence!) can and do successfully create games on top of Unity. And that is the future of making programming more accessible. Not creating a better language, which is what the original manifesto was about.
- jamii 12y ago> But every attempt to create a completely general purpose language that anyone can use to do anything has failed Excel is used by millions of people and powers large swathes of the worlds economy. VB6 is still in use today and powers multi-million dollar companies (http://msdn.microsoft.com/en-us/magazine/jj133828.aspx http://msdn.microsoft.com/en-us/magazine/jj133828.aspx). COBOL still lurks in the heart of many banks. These systems have problems that cause untold economic damage. Instead of improving the tools to help people avoid these problems we sit around being smug about our uber-programming skills and declaring that programming is too complex for those people anyway. What many people here don't seem to realise is that the choice is not between the crappy VB6 app and a nicely architected system built by a 'real' programmer, the choice is between the crappy VB6 app and the same people doing the job manually. Empirically speaking, given tools with an approachable learning curve many people are capable of producing simple programs that make them more effective at their jobs. Rather than lamenting that these people produce bad code we should be improving the tools to lead them down the correct path.
- the_af 12y agoI agree with some of what you say about the damage these tools have done (but please note Excel is not a general purpose language, which the parent post was talking about, though it can be used to make pretty cool and surprising things). However, I don't think anyone is arguing that nothing should be done about it. Some of us would argue that something must be done, but that the answer is not necessarily simplification, especially simplification of the "make it easy" kind. Especially since, for many programmers, "simple" & "easy to learn" are actually synonyms for "similar to something I'm already familiar with".
- jamii 12y agoWhat most people seem to be arguing is either that the people currently using Excel and VB6 should suck it up and learn a real language or that they shouldn't be programming at all (I'm not saying you are, but this is the general sentiment I encounter in eg http://developers.slashdot.org/story/14/07/09/131243/normal-humans-effectively-excluded-from-developing-software http://developers.slashdot.org/story/14/07/09/131243/normal-...). There are number of different spheres of programming with different requirements. For the sphere of end-user programming (which Jonathan Edwards explicitly calls out in this post) there are a huge number of people who have to choose between simple tools which don't work well or complex tools that they don't have the time to learn. This sphere has seen little change since the start of the millennium (Excel is still the best option by far, for all its limitations). The OP is arguing for efforts to close the gap and produce simple tools for their simple needs.