Lasso: Hang Yourself With It

This current project has been one challenge after another. This is the case with every project, which is why I love developing software…never-ending challenges. However, the challenges in this project do not come from needing to find better/faster/cooler ways of accomplishing goals. No, the challenges come from the searing incompetence of the programmer who started the project but was fired before he could complete it.

Here’s a short list of grievances:

  1. No functions. The entire website, which contains some very complex functionality, is one gigantic if/then/else statement.
  2. No comments. Not a single one in what has to be 30,000 lines of very sloppy code.
  3. No foreign keys. He referenced discrete fields, like a user’s name, to create a relationship with another table.
  4. Three SQL datatypes were employed: integers (for the unused primary keys), datetime (for the odd occurrence when he actually decided to timestamp something) and varchars with a length of 255 for everything else, and I mean everything.
  5. Fulltext indexing on every single varchar field. Every. Single. One.
  6. Goofy character based flags. After all, why use a boolean or an tinyint 0/1 pattern when you can have flags like “enabled/disabled/Enabled” or “yes/no/NO.”

On top of it all, the legacy code is written in an absolute abortion of a language known as Lasso. Lasso is this…idiosyncratic, we’ll call it…language favored by “programmers” who favor Macs. Here are a few of the neat “features” of Lasso:

  1. Rather than following that boring old void function myFunc(args) pattern that every other language on the planet uses, Lasso eschews “functions” for “custom tags” with this sweet prototype syntax: define_tag: -myFunc, -required=’arg’;
  2. Passing variables to functions…I’m sorry, custom tags…by value as the default behavior must be passe to Lasso; variables are passed to functions (custom tags) by reference by default . You’ll need to root pretty deep into the language guide to discover documentation on this little gem of reality.
  3. It has its own middleware server and site administration tool that sits between the web server and the code. Every web language out there has a parser or JIT compiler that sits in the same place, but Lasso does it differently. Admins have to create sites, then create database connection entries, designate which tables can be accessed by which users, decide which filetypes can be accessed, etc. etc. ad naseum. It’s no wonder my predecessor was the worst coder in the galaxy: he didn’t have time to learn anything as he was to busy trying to get a new website set up in Lasso’s SiteAdmin tool so he could actually then start writing the damn thing.
  4. Nobody uses it outside of seven people in England. Therefore if you are looking for community help…you’re screwed, unless you’re willing to wait for someone to answer a question on the one Lasso forum that exists on the entire internet at Nabble.com.
  5. You can’t buy a book on it, since, you know, publishers exist to make money and you can’t make money selling books about a language that seven people use. Well, there is one book published on Lasso 5 (current rev is 8.5).

I need a gun with one bullet.

1 Comment so far »

  1. Relativity | The Compulsive Coder said,

    Wrote on August 14, 2008 @ 8:56 am

    [...] jimmynash: it was built in lasso [...]

Comment RSS · TrackBack URI

Leave a Comment

You must be logged in to post a comment.