Every time I decide to stop searching for a Lightroom replacement and really learn how to take advantage of the program, I find something that gets me to think “I can’t get rid of Lightroom fast enough”


Should everybody learn to program?

Being a teacher in Computer Science I’ve taught many students how to program (actually I view it as I helped them learn themselves how to program). Most of these were studying Computer Science and usually either knew how to program (or at least they thought they knew how to program :) ) or were motivated to learn programming. But I’ve also taught students that did not study Computer Science and but were required to take a programming course - many of these students see no reason for learning how to program. They are interested in whatever subject they are learning not CS/programming and think that it would be better use of their time to take another course.

I’ve also seen/heard people say that “you have to be a genius to learn to program”, “nerds don’t have a life”, “I’m too stupid to learn programming”, “I have no use for programming”, etc. But they rarely know what programming is or what a programmer do! So why do they have this image of CS and programming?

I think we can blame ourselves, we being programmers and CS people in general. We tend to talk about programming/CS in a jargon that leaves all non-programmers (and several programmers) with that “dazed” look of total confusion. It’s like listening to some aliens that have learned to use human language but use words and expressions in a way no normal person would. We have failed showing people the usefulness of programming and that it does not need to be complicated.

One group that should take special responsibility for this is the one I belong to myself: the CS teachers. We have completely failed to take into consideration who we are teaching. We have been teaching programming and problem solving from a CS perspective, using “boring” examples from math or other typical CS examples, giving little thought to the fact that most people have no interest in CS or programming per se. Most people want to solve their problems, not some abstract problem that a CS Professor dreamed up in the office. We have failed in showing them the usefulness of programming!

But there are other problems also: why should people know programming? Because they can solve small specific problems they have in their daily life. But there is an important part missing here: in what environment should they do this? Should they use Eclipse, NetBeans, or XCode? I don’t think so. Or should they use environments like Scratch, Alice, or Agentsheets. No, I don’t think these are the right tools either. In fact I think of any environment today that lets me easily solve simple problems programmatically, one that is ubiquitous to the general public.

The only environment I’ve seen/tried that was aimed a bit in this direction was HyperCard. It was in no means perfect but it allowed me to quickly put together a ‘stack’ to solve a specific problem, it was not fast, it was not beautiful but it got the job done and it was not something you passed on to others (not a problems since it was my problems I as solving). I don’t know of any such tool today (yes, I know about LiveCode/RunRev and SuperCard but haven’t tried them for years).

Back to the original question: Should everybody learn to program?

Yes, I think that programming knowledge can be useful to a lot of people. No, I don’t think people should learn to program Java/Python/Perl/C/C++/Haskell/etc (we want people to learn to problem solve, not learn syntax). Yes, I think learning how to solve problems is useful to anyone (which is actually what programming is all about). No, I don’t think there is a way today for people to take advantage of programming in their daily life.

I think that an interesting twist to the question is the idea of Computational Thinking which has gained some following in the research community. As I understand it this is not about programming per se but about the methodology of problem solving used within Computer Science. I don’t know if this is what people refer to when they say that everybody should learn to program: learning how to solve problems. If so, I’m all for it.

And as soon as that ubiquitous programming environment becomes available then the answer is “Yes, everybody should learn to program”


iDisk - the speed demon (NOT)

One thing that MobileMe account includes is an iDisk, a “cloud”-based disk that conveniently can be mounted on your desktop. You can use it to store various files, etc. Once in while I hear the advice that “use your iDisk to backup your critical documents” and it does sound very tempting.

But, then I start to wonder where these people live. Because iDisk is too slow to be of any practical use whatsoever. A few hours ago I started an incremental backup that took more than 2.5 hours to complete - although the complete size of the files is just 385MB.

Despite knowing the answer I decided to do a quick test. I opened the iDisk in the Finder and dragged the 385MB folder to it, leaned back and waited, and waited, and waited, and then … waited a bit more. Finally, the first pixels on the progress bar were colored to show that something had been transferred. So I continued working for a while, then I looked at the estimate time remaining and decided that I didn’t want to wait 10+ hours to see this copy operation complete. So I quit the copy operation and did some calculations based on the “time remaining” value and got a transfer speed of:

9 kilobyte per second. YES, kilobyte !!!

And this number is actually better than the incremental backup I did (1.9) but that might have involved other operations than just copy … but it’s in the same region. This is just plain silly.

I used sftp to copy the same data to a server in town (can’t really be compared to sending the data to Apples servers but still … ) and got a transfer speed of:

1.2 megabyte per second

Once again, it’s not fair to compare a local copy like this to using Apples WebDAV server but it’s at least an indication that someone at Apple need to do something to improve this.

And no, it’s not just me - there are a lot of people here in Sweden with similar experiences. And it’s not a temporary thing, it’s been like this since I first started to use MobileMe (Mac.com, whatever).