Archive for 8th June 2006

Syncing OneNote over Multiple Machines

Killer post by Chris Pratley on setting up OneNote 12 so that it stays synchronized across multiple machines. I love OneNote and this makes me love it a little more.

Oh, and something else I just discovered that makes me love it a little more: they’ve added “section groups” so now you can have Notebooks | [Section Group]* | Section | Page. So, for instance, I have a Work notebook, a Section Group for a specific Client, a Section Group for each project, and then a Section for, say, Requirements, or Meetings, or Research, etc. Perfect!

Oh, and another another thing that makes me love it a little more: you can now hook an Outlook item directly to a OneNote page. So, for instance, you can schedule, say, a “Weekly Review” in Outlook for Fridays at 1PM and then when it pops up, *click* and up comes OneNote, all linked back and forth. You could use this as an alternative to the Daily Journal PowerToy.

Teachability Important to Programming Language Success

Eric Gunnerson, discussing “Why so many languages?” makes the key point that “Compactness and simplicity have big benefits as well in programming languages.”

Once upon a time, I made a good living teaching Java. Sometimes I taught it to C and C++ developers, sometimes I taught it to COBOL developers. One way or the other, in a week you could really deliver value: if people understood imperative structured code, you could really move them towards an understanding of object-oriented programming in just a week. Same for C# 1.0.

Even so, you had to talk about “well, not everything’s an object,” and deal with function-call semantics and equivalence and so forth. Personally, I think that the inclusion of native types was a critically beneficial language-design decision for Java, but it does complicate teaching. In .NET, it’s even harder to teach, because you can’t say that value types are limited exceptions.

About a year ago, I had a friendly debate with my colleague Allen Holub about the changes in the then-new C# 2.0 and Java 5 languages. One disagreement we have is that Allen doesn’t like generics, I do. I tend to like explicit typing, my feeling is that 99% percent of the time you have a type intent that you can memorialize with a few finger strokes and gain Intellisense and better comprehension. But Allen cleverly didn’t argue the finger-typing issue, he said that what he disagrees with is that generics are not OO, thereby making the language harder to learn.

He’s right. Once upon a time, C was relatively easy to learn; learning how pointers work was the big issue. Now, I can’t imagine someone “picking up” C++ and not being absurdly non-productive. Never mind the STL, how many freaking ways are there just to represent a string? John Montgomery recently posted the surprising factoid that the most commonly used languages by non-professional programmers are HTML, JavaScript, and C++, more than VB or Java or Perl. One wonders what perception these people gain of the task of professional programming.

This is why, when thinking about trends in language syntax, I think there’s a possibility, although not necessarily a likelihood, of a collapse towards simplicity and the widespread embrace of a LISP-like or Smalltalk-like language.

Non-Professionals Using C++

John Montgomery’s revelation that the most commonly used languages of non-professional programmers are HTML, JavaScript, and C++ is worth reflecting on.

First, let’s just state the obvious: HTML without JavaScript isn’t a programming language, and few people are using Rhino or what-have-you to explore JavaScript as a standalone language, so the first “two slots” in the list mean “I put together Web pages.”

The commentors on his blog entry seem to primarily attribute the popularity of C++ to its use in academics. I suspect that, at least as important, is its primacy in game development. The window for being an academic-but-not-professional programmer is only a few years, while the window for harboring a fantasy of being a game programmer extends from age 12 to age I-dunno’.

Modding a game probably provides one of the bigger “bangs for the buck” for a non-pro developer and I think that it remains true that modding generally is done with a C/C++-derived syntax.

Elicit Blogging Client Schedules Posts

This post is written using the “Elicit” blogging client. I somehow stumbled across it this morning and it does the one thing I’ve been missing in a dedicated blogging client: it allows posts to be scheduled. So I can write this at noon, set its post time for 6PM this evening, and the client will take the appropriate steps at the appropriate time.

I like this because I tend to post in flurries, and when I do that, I’d like to spread such things out over a few days. Or, sometimes I write something that I would like to be the only piece that goes out that day. Or, sometimes I think about something associated with a day or date in the future. I just installed the program, but I imagine that I’m going to register it.