Wednesday, December 23, 2009

How Many Languages Can I Learn At Once?

How Many Languages Can I Learn At Once?

The first week on the new job I ended not writing in Java, but writing a Javascript application that runs in a database transformation package called Spoon. Think of Javascript as being like somewhat object-oriented BASIC that some warped person decided to make look like Java. (At least, it is in the implementation of Javascript that Spoon supports.)

Anyway, I went from knowing nothing of Javascript to writing and debugging 890 lines of to normalize a date field in an existing database in about a week. In the existing database, this date field was a 10 character wide string--and there was no checking by any of the existing programs that accepted this field! As you might expect, every possible variant of date format appears, including truly unique spellings of months, odd combinations of punctuation, months you've never heard of, like 0CT (yes, that's a zero, not an "O"), numeric dates with "O" instead of zero, dates many centuries in the future, and dates so far back that I suspect that Idaho's prisons must have had a few inmates who were part of Eric the Red's expedition to Vinland.

And then there were those clever employees who thought that even though this was a single date field--why not enter a range of dates on which the offenses took place? And how do you distinguish a range of dates within one month, and a range of months and years? Disambiguating 7/06-9/08 is harder than it looks--because 7/6 through 7/9/08 is perilously close to 7/06 through 9/08. Loads of fun! By the time I was done, I had a mass of regular expressions and gobs of tools for processing strings.

Today I started learning 4GL (which I had never seen before), so that I can convert existing code to SQL stored procedures (which I have only limited experience doing). And next week? They'll probably have me translate APL procedures to Snobol. Or perhaps I'll find myself coding FORTRAN II again. Anything's possible at the State of Idaho!

No comments:

Post a Comment