Friday, January 30, 2009

Code organisation...

There's a Law floating around somewhere about how compilers will have as many passes as the organisation that is creating it has groups. In short, the construction of the software is based on the communication fault lines of it's creator.

Traditional web apps have similar break downs, there are the sysadmins who wear metal shirts and have long hair, the database admins who are uptight and wear business shirts and demand respect for their models, the webapp tier guys who wear business shirts badly, and the web devs who wear jeans and indie tshirts, and frequently don't make it in on mondays.

These groups hate each other with a passion, and it shows in the application.

With the upcoming change of pushing the database out into the web client, and the back end becoming nothing but a persistent change notification hub, all the skills these current groups have in isolation need to be all brought to bear in the front end client.

By now I'm resigned to the fact that we are going to lose a generation of developers over this. We have on each other major change or technology. It's funny, but it took talking about all this at length with Dad to realise that we have seen all this before, and we will see it again.

Monday, January 5, 2009

A generated future

One of the things I like about Lisp is the fact that having a powerful macro capability in the language allows for concision in the code base that isn't available any other way. Unfortunately this leads to programmers minds exploding - powerful macros take time and patience to grok.

Near as I can tell, the other option for handling complexity also leads to programmer minds to explode. Instead of having an in language macro capability, I'm winding up generating code. The generated code, given it's weight in LoC has a similar mind bending capacity as Lisp macros, but the generated code is what is checked into revision control.

Is there a way out of this?