Tuesday 21 April 2009

Malfunctioning file handling in Seaside

Today I wanted to teach my Seaside application to supply files from hard disk and to use what I had read yesterday on the mailing list. It took me the whole day and it's still not working.

The normal assumption in Seaside is that JavaScript, CSS and image files are supplied by code. This is why one needs a programmer just to change the name of a file.

Therefore, this assumption of Seaside is quite unrealistic.

The class WAExternalFileLibrary looks promising. It provides just one protocol different to its super class WAFileLibrary.

Again not one word of documentation!

Aha I thought, finally a good implementation! I was badly disappointed within minutes.

I had to read and understand the whole code in order to assume what I would have to do to make it work. I did that but it still does not work.

Now, I have to admit, I am not a genius, I'm just an average experienced Smalltalker with >10 years of Smalltalk practice. That's probably too little to master Seaside.

Georg Heeg calls it a bug

I then used the search engine to try to find out what's going on and one of the first hits was a comment on the website of Georg Heeg in Dortmund. To those who don't know the name, Heeg is worldwide among the handful of most experienced Smalltalk companies with the very best technical reputation. They have been the representative of Park Place for the German language countries ever since I got to know Smalltalk and that was in the mid 1980-ies. So they should really know!

In a very friendly and polite way it says there that the file handling of Seaside is buggy and was constructed under misleading conceptual assumptions.

In my plain words: It's a crap!

But read yourself!

In the meantime I have succeeded to supply at a least file name to the response object but for some reason the supplied code does not read the file. I have to go very deep inside the low-level code to find out why and to fix this bug.

This lousy implementation of Seaside is costing us weeks and months! Be prepared for many adventures when you choose Seaside. It's a pity because many concepts are really good.

Addition at 23:00: It finally works! But only after digging deep into the internals and then refactoring much of this crap code.

No comments:

Post a Comment