Sometimes I really wonder about myself (that’s not an excuse for you to comment). Today, Saturday, I am flying home from Oslo via London and Chicago. My flight from Norway was at 7:50 AM, and so I got up at 4 AM in order to catch the ‘FLYBUSSEN‘ (bus) to the airport. As I stood in front of the hotel at 4:30 AM, I looked across the street and noticed some people sitting in a restaurant. My, I thought, Norwegians certainly go out for breakfast early. Then I noticed a woman in a black evening dress. My, I thought, Norwegians certainly dress formally for breakfast on the weekends. Then, of course, I realized that while I was dealing with what I had to do on Saturday, these people were still working on their Friday night.
Incidentally, the FLYBUSSEN is a thoroughly pleasant, fast, and inexpensive way to get between the airport and downtown Oslo. I naively took a cab when I arrived on Wednesday night, and it cost six times more than the bus. There is also an express train, but I didn’t want to deal with that so early in the morning. The airport is 25 or 30 miles northeast of the Oslo city center, so allow 45 minutes to an hour to get there, more if it is snowing.
Let me say that I really resisted buying any book on the topic. There is so much good information as well as code fragments on the web, that you can probably get by with online sources if you are an experienced coder. In my case, I’m not always online (at the moment I’m calling British Airways seat 4A home), and I also don’t always want to be reading things on a computer. Over a period of a couple of weeks, I browsed the computer sections at our local Barnes & Nobles and Borders book stores looking for something appropriate, typically in the more advanced books. I learned a lot of odds and ends from this process, but I didn’t feel any of the books I read had enough of the type of information I wanted.
I kept skipping over Learning PHP 5 because I assumed it was too basic. Finally, after I had exhausted all the books with the more sophisticated titles, I took a look at this one. It’s a great book! It systematically goes through what you need to know to get started doing serious work. Even if you skip over the more basic material, as I did, there is a lot of good information, and a lot that you can return to when you need a reference. If I were to do some heavy database or security programming with PHP I would grab an additional, more specialized book, but I’m really glad to have this in my library.
Of the modern “scripting” languages, I’m most enamored with PHP and Python. I am not what you call an enterprise programmer, and so I personally don’t need everything that a J2EE provides. I have nothing against Java, and would certainly use it if it matched my needs, but I also feel that I personally have done enough in that general family of programming languages. C# is not for me, since I’m not going to restrict myself to Windows, I don’t want to go the Mono route, and a few other reasons. Perl just doesn’t do it for me from a language design perspective.
The object oriented features in Python are good enough for most of what I usually want to do. I really like the seamless bignum (arbitrarily large integer) support. If we had had Python twenty years ago when I was working on symbolic computational math systems, I think the math and education world would be a lot different today. Back then a lot of the systems were LISP-based because of the bignums and garbage collection.
Though I truthfully have no information on this, I wouldn’t be surprised to eventually see a highly functional, Python-based open source math system with great user interface features that can rival the commercial Mathematica and Maple products. Those products have had a tremendous amount of work put into them, but I think academics and educators might really gravitate toward an open source system, even if it was developed over a long time. I’m aware that there are some freely available math systems of more or less capability, but sooner or later we’ll see a whole new generation that will aim to be complete and easy to use.