Hacker News new | ask | show | jobs
by TeMPOraL 3063 days ago
That's comparing writing longhand to using Microsoft Word. The latter helps, but doesn't make writing novels fundamentally easier; in the same way, an IDE doesn't make programming fundamentally easier.
1 comments

If by "fundamentally" you mean "devoid of any practicalities that may affect the actual task of doing it", I agree.

However, there may ''also'' exist tools that help in the fundamental task. In the example of writing a novel, professional writers use spreadsheets that help them keep track of the general picture, and follow the details of each character, scene and plotline. It doesn't help with the task of being creative and artistry, but hell if they don't help the writer keep track of every detail that's important to the final result.

Yes. Programming obviously has such tools too, and in both cases their ultimate goal is to help you with all complexity that's incidental to the core of the work you're doing. Sometimes the overall reduction in complexity will allow you, as Bret Victor puts it, to "think new thoughts" - but in the end, you eventually hit the core of essential complexity of the task, and you can't be more accessible than that.

What you can do, though, is cheat with the scope. Not all writing is novels, and not all programming is large distributed systems. Writing a semi-structured limerick, or a half-assed bash script, is much easier. Ultimately, I feel that the goal of programming literacy should be to let people use computation to solve their own specific problem. That is much simpler than general programming. For instance, plenty of people program in Excel. Or in Tasker (an Android automation app). There is lots of uncharted space in designing better interfaces and paradigms for such small-scale programming (unfortunately, this goes completely against modern UI/UX "wisdom", that is all about removing user's agency from the equation).

> What you can do, though, is cheat with the scope. Not all writing is novels, and not all programming is large distributed systems. Writing a semi-structured limerick, or a half-assed bash script, is much easier. Ultimately, I feel that the goal of programming literacy should be to let people use computation to solve their own specific problem. That is much simpler than general programming.

There, that's where most programmers miss the picture. I'm glad that you get it, and I couldn't agree more. There's the whole discipline of End-User Development dedicated to explore that area. General programming is like general nuclear physics; not everyone ''needs'' to know the details, but everyone may benefit of plugging a device to the wall and use the power, without a "priest of electricity" who creates a six-months agile project to do the wiring for them.

> There's the whole discipline of End-User Development dedicated to explore that area.

Thanks for the name, I didn't know there was a field for that.

> General programming is like general nuclear physics; not everyone ''needs'' to know the details, but everyone may benefit of plugging a device to the wall and use the power, without a "priest of electricity" who creates a six-months agile project to do the wiring for them.

Great analogy!

If you didn't know EUD, you may enjoy the seminal works Watch what I do [1] which is available online (mostly; some figures are missing) and Your Wish is My Command [2]. These books are compilations of early articles which explore very interesting approaches to building software artifacts, which look nothing like programming in a general language (though some of them resemble what Bret Victor is making popular nowadays).

BTW, spreadsheets are considered the most successful End-User Development tool; it's not coincidence that modern web languages resemble more and more its reactive programming model.

[1] http://acypher.com/wwid/

[2] http://web.media.mit.edu/~lieber/PBE/Your-Wish/

Thank you! Haven't heard of those books; putting them on my reading list straight away!