4 ms·
I agree wholeheartedly with the premise presented in this essay. And I hope that sometime in the future we collectively all realize the benefits and figure out
by NobleLie 10y ago
I agree wholeheartedly with the premise presented in this essay. And I hope that sometime in the future we collectively all realize the benefits and figure out the implementation.
Being nit picky but:
> I still can't get Gmail to do even simple tasks like schedule an email to be sent later or batch up all incoming emails containing a certain phrase into a weekly digest!
You can do the latter with labels in gmail.
- quanticle 10y agoThat's interesting because I completely disagree with the premise of the essay. The simple fact is, we've tried repeatedly to make programming environments that were accessible to non-programmers. Cobol. SQL. LabView. Visual Basic. The end result of every single one of those efforts has been exactly the same: a tool that the intended users do not use, and one that the programmers they hire hate to use. There is a fair amount of accidental complexity with programming, but there is even more inherent complexity. Thinking about problems using strict formal logic is hard. It's not something that everyone has the time, patience or inclination to do. I am 100% in Bob's camp in that argument; I think it's utterly and completely unrealistic to expect the average person to know how to patch together APIs in order to deliver functionality. Moreover, I don't even think it's a bad thing. Most people call a plumber when their pipe springs a leak. Most people call a mechanic when their car starts spewing smoke. I think it's fair that most people would call a programmer when they need an application made.
- zyxley 10y agoBut there's a programming environment out there that a lot of "non-programmers" use all the time and use to make some very complex applications. It's called Excel.
- quanticle 10y agoYou want to be very careful where you're going with that. I've had to convert ad-hoc financial models written in Excel VBA into C#. The existing code was so bad, it was largely useless for actually learning what the system was supposed to do. I had to go back to the original analysts and ask them what they wanted their model to do. It was not a fun experience, and it's largely the reason I think that there should be a level of specialization with regards to programming. I felt like an electrician coming in to help with a homeowner's ad-hoc project, and finding that the entire house has been wired by the same (underqualified) homeowner, and now the building is a major fire hazard. Yes, people use Excel to make complex applications. But it's the same as people jerry-rigging their own wiring, or attempting to use heavy machinery without the proper qualifications. It can work, but a lot of the time, it leads to collapse, disaster, and thousands of dollars in damage.
- jghn 10y agoI saw the Eve folks talk at StrangeLoop last year and they made this point, citing it as inspiration for some of the design choices they've made
- thisrod 10y agoPeople have also been trying to make programs composable for a long time. By 1990, they succeeded: Smalltalk, Oberon and Plan 9 all worked, though in very different ways. Plan 9 even dispensed with the head application, because you save typing a character when you implement it in AWK as NR<. And no one used these systems. At this point it's clear that the average programmer, let alone the average user, actually likes getting paid to write mindless glue code and copy data from one spreadsheet cell to another. I've been teaching physics and maths for years, long enough to learn that normal people have a strong aversion to the sort of abstract thinking that these systems demand of them.
- quanticle 10y ago>At this point it's clear that the average programmer, let alone the average user, actually likes getting paid to write mindless glue code and copy data Agreed. This is the point I was trying to make, but I think you said it better than I did.
- bsder 10y ago> ... Visual Basic. The end result of every single one of those efforts has been exactly the same: a tool that the intended users do not use, and one that the programmers they hire hate to use. Visual Basic 6 is the exception to your list. A LOT of laypeople used VB6 to create really useful programs. It is hard for people who weren't alive then to understand just how gigantic VB6 was (partially because VB6 predates the web). Unfortunately, Microsoft killed VB6 with the transition to VB.net.
- NobleLie 10y agoCorrect me if im wrong but the argument in the post is that currently, we do have unwilling and untrained world citizens, unable to compose useful programs/functions from baser functions and APIs. But he/she takes the utopian viewpoint; they can and will have a reason to learn. And those who dont will suffer or be at some minor or massive disadvantage. It was stated that at some point citizens of the world, on average didnt know basic maths. And on average, that changed or is at least changing... So why not be hopeful that the modern laziness of the human who wishes to scroll through a twitter stream of Facebook feed slowly dissolves and is replaced by people who wish to make computation more useful to them? More personal to their needs, and more able to help them accomplish their goals of obtaining amd organizing knowledge and their life? I agree with the premise, not that, currently, all of us are ready for such an implementation. It'll require a reboot of our education system, and what we think is important to teach in schools. > Most people call a mechanic when their car starts spewing smoke. I think it's fair that most people would call a programmer when they need an application made. The major difference between the mechanics world and programmers world is that one is 100% symbolic, the parts are (potentially) free, reusable, and non-degradable. Given someone knows functional math, and is provided with these free, reusable and non degradable parts, surely, itd be a much easier task than learning everything about cars and the ways they can fail. This futuristic building block programming world still maintains professional programmers who create abstractions that are easily composed. After all, thats the hard part, right? (Beyond scaling and centralizing, which as the article points out, may be a problem caused by the need for centralization in the first place) > I think it's utterly and completely unrealistic to expect the average person to know how to patch together APIs in order to deliver functionality. I feel like you are making this sound harder than it really is. Again, its the easiest part of programming, and yes non programmers dont know how to do it, but is it any different (or difficult) than forcing or suggesting them to learn calculus (or pre-calculus) in high school?