• About
  • Projects
  • Sources
  • Tools

Oliver Steele

Languages of the real and artificial

Home ::

Why Write Open Source Libraries

By oliver - Posted on January 25th, 2008
Tagged:  
  • Programming

1. Exploration. I can sample platforms and sample stretch languages without sinking my stakeholders if I fail. Also, it’s easier to try something radical in a small, green field project than in a big one.

2. Altitude training (link TBD). I can make myself jump through hoops that I wouldn’t feel ethical asking someone to pay me to jump through. I did this recently with Sequentially the next time I needed to simulate concurrent processes in a more serious context, it was a lot easier.  read more »

  • oliver's blog
  • Add new comment

The Programmer’s Food Pyramid

By oliver - Posted on January 17th, 2008
Tagged:  
  • Illustrations
  • Programming

Programmer's Food Pyramid

Update: (1) There’s a discussion (at the moment) on reddit. (2) Thanks to FusionGyro for suggesting the name change to “revising”.

  • oliver's blog
  • 20 comments

“Stretch” Languages, or, 28 years of programming

By oliver - Posted on February 6th, 2006
Tagged:  
  • Essays
  • Programming
  • Visualizations

Recently I reviewed the programming languages I’ve used over the 28 years1 of my programming career. The result is shown in the chart below. (Click on the image to see it full size.)

There are some obvious trends here2. The languages are mostly getting higher level. There are a few “survivors”: languages that I’ve used over the the course of a decade, although discontiguously: C/C++, Common Lisp, and Java. Java has replaced C (except for a stint around 2000 where I went back to low-level graphics programming at Alphamask), and the scripting languages have taken over from Common Lisp —- they’re slower, but they’re terse, have better libraries, and are easier to deploy.  read more »

  • oliver's blog
  • 9 comments

Refactoring for Fifth Graders

By oliver - Posted on September 9th, 2004
Tagged:  
  • Family
  • Programming

I gave Miles a set of Logo programming problems:

  • sv 3 draws a square divided vertically into three columns
  • sh 4 draws a square divided horizontally into four rows
  • svn 3 4 draws a square with three columns and four rows

(These are going to build towards some work with fractions, but he won’t know that unless he reads my web site. Hi, Miles!)

The first thing he did was place a slider and a button on the screen. The slider ranges from 1 to 10, and the button calls sv with the value of the slider. He used these to test the program while he wrote sv, to quickly try it on different arguments without typing. When he added sh he added another button, and so on for svn.  read more »

  • oliver's blog
  • Add new comment

Aspect-Oriented Programming with mod_rewrite

By oliver - Posted on August 17th, 2004
Tagged:  
  • Essays
  • Programming

I spent part of my vacation last month working on my web site. One change I wanted to make was to put a banner on every page, and a directory-specific column on the left. Nothing fancy by web design standards, but an adventure for a hobbiest without a CMS.

The first time I had to make a number of pages with a common template was in 1995, and I wrote a Lisp program to generate them. The next time I made a web site, I used Barry Warsaw’s Python program to create some pages. (I still didn’t have access to a server with server-side includes.)

Last year when I moved my site to a modern server, I used PHP include to add navigation elements to some of the pages. But this time I didn’t relish editing a number of HTML files, and, more to the point, I was ready to try something new.

The Problem

Let’s say that software/index.html looks like this:

This is my software page


Welcome to my software page  read more »

  • oliver's blog
  • 1 comment

Instance-First Development

By oliver - Posted on March 28th, 2004
Tagged:  
  • OpenLaszlo
  • Programming
  • Software Development

LZX is a prototype-based language: any attribute that can be attached to a class definition, can be attached to an instance of that class instead. This is handy in UI programming, where there are a number of objects with one-off behaviors. It’s also handy in prototyping and incremental program development, where it creates the possibility for a novel kind of refactoring.

The following two XML documents are complete LZX applications . Each defines a view named myview, that contains a method named f. Evaluating myview.f() in either application will result in 100.  read more »

  • oliver's blog
  • 3 comments

A Taxonomy of Comments

By oliver - Posted on August 31st, 2003
Tagged:  
  • Essays
  • Programming

Christian Sepulveda writes about comments in source code:

Not all comments are bad. But they are generally deodorant; they cover up mistakes in the code. Each time a comment is written to explain what the code is doing, the code should be re-written to be more clean and self explanatory.

This statement is provocative and interesting, but wrong. There are more good uses for comments than bad ones. (The rest of Sepulveda’s posting is more nuanced, and much of what I write here expands on points he makes.)

Comments are an escape hatch for expressing everything about a program that the programming language can’t. Comments therefore don’t fall into a single natural category.  read more »

  • oliver's blog
  • 5 comments

Recent

  • Smiley Socket
  • Commit Policies
  • My Git Workflow
  • Pneumococoa
  • My No TV
  • The Biofuel Economy
  • Ambimation
  • jQuery Profile Plugin
  • The Shadow of a Legacy
  • Minimizing Code Paths in Asychronous Code
more

Categories

  • Amusements (10)
  • Essays (20)
  • Family (8)
  • General (9)
  • Health (1)
  • Illustrations (10)
  • Inventions (2)
  • JavaScript (24)
  • Libraries (21)
  • Math Education (9)
  • OpenLaszlo (31)
  • Programming (7)
  • Programming Languages (6)
  • Projects (23)
  • Python (3)
  • Ruby (7)
  • Software (3)
  • Open Source (4)
  • XML (6)
  • Software Development (8)
  • Systems Thinking (6)
  • Technology (7)
  • Tips (5)
  • Visualizations (13)
  • Words (8)

Navigation

  • Recent posts
  • Tools

Syndicate

Syndicate content

About

Oliver Steele lives in Western Massachusetts and commutes to downtown LA, where he is bringing an operating system from handwaving to reality. He was the architect of OpenLaszlo, the author of PyWordNet and other open source projects. His interests include programming languages, knowledge representation, information visualization, and math education. [more]

Tools

  • reAnimator
  • reWork

Amusements

  • Aargh
  • foldr
  • WideURL.com

Popular

  • Functional JavaScript
  • JavaScript Memoization
  • Overloading Semicolon
  • reAnimator
  • The IDE Divide
  • Visualizing Basic Algebra
Copyright 1995-2008 by Oliver Steele. All rights reserved.