7 ms·
> I have been teaching programming to designers and artists for nearly a decade, and I find the largest concern for learners to be not with the conceptual hurdl
by tolmasky 12y ago
> I have been teaching programming to designers and artists for nearly a decade, and I find the largest concern for learners to be not with the conceptual hurdles involved in writing a program, but with obscure and confusing syntax requirements.
Confusing syntax is certainly a problem, don't get me wrong, but I have found that the above is not entirely true (in my limited experience). A lot of times once you want to commit an idea you have to a program, you discover that the idea in your head is actually quite ambiguous and difficult to describe, regardless the language.
When I think about the difficulties of programming, I separate the problems into "real" and "fake". Understanding truthy values in Javascript falls decidedly in the "fake" category. On the other hand, "find all the birds in this picture" is legitimately hard. I believe that a lot of the things "normal people" would want to do would require some genuine patience, thinking, and time to figure out (which I think is the real hurdle of programming). This is why we see a lot more success in programming systems that tackle incredibly specific problems, and why these systems are often even more appealing to programmers:
1. Arithmetic and equation solvers (Calculator.app).
2. Drawing programs that just describe and manage a non destructive image-processing pipeline (Photoshop.app/Illustrator).
3. Sound mixing applications (Garage Band)
In each of these examples, the system has given up a lot of flexibility in order to make that specific task so much easier. As a trivial example, most calculators are nicer to use, and look nicer, than typing math in a language console.
Perhaps all of these tasks could theoretically be possible in some "perfect" language, but I find it very suspect that they'd be better at it. It's just hard to make a tool thats good for everything also be better at everything. Its certainly the case that I'd rather use PaintCode or PhotoShop to take an existing image and mutate it today, and I'm a programmer: we haven't even solved making our core audience prefer programming in a lot of cases.
Separately, I'm not entirely convinced that the world is perfectly split into "typing programmers" and "connect the noodles" quartz-composer programmers. I think many of the visual systems we've developed end up having just as many quirks as the language ones. Certainly different quirks, but if in a parallel universe HyperCard and QuartzComposer-style programming had won, we'd maybe have just as many programmers as today and those guys would be wondering "how do we get people who think in terms of text to program?".
- technomancy 12y agoThere are so many things to admire about the vision of HyperCard and computing for the people. But HyperTalk is not one of those things. HyperTalk deserves to be forgotten, though the greater vision needs to live on.
- hugs 12y agoWell, you're entitled to your opinion. I learned to program in HyperTalk as a kid and loved it. I still miss it. AppleScript, on the other hand, I can't stand. I think the difference is that HyperTalk can be considered a DSL for the HyperCard environment and I think it succeeded there.
- TelmoMenezes 12y agoOk, but there is no reason per se why Photoshop.app or Garage Band could not be easily connectable to other stuff through programming. We could have the best of both worlds if it were not for social/business issues. The disgusting thing is that we seem to be moving in the opposite direction -- more walled gardens, more dumbing down of the interfaces for its own sake, more incidental complexity on the development tools side for its own sake.
- tolmasky 12y agoI absolutely agree with this point. I think there might be incredible potential in just getting the different existing tools playing nicer together. When I was working in gaming I was blown away that the native formats the game engines used were the same as the 3d graphics tools. It was great, a modeler would make nodes and animations in his world, and I'd have access to them in mine -- we were speaking the same language but each of us interoperating with our specific piece the way we wanted to. Compare this to "2D" programming where there is often incredible friction going from PhotoShop to what we use. Exporting to the right format, slicing, (dealing with different resolutions). Everyone wants to somehow magically take the PSD file and just use it as their UI (and many companies have been trying to do this admittedly), its the dream.
- matthewmacleod 12y ago