3 ms·
My first ever programming job was a Tapestry 3 project. I had just finished computer school and had a strong understanding of Java but no field experience. We w
by lsh 14y ago
My first ever programming job was a Tapestry 3 project. I had just finished computer school and had a strong understanding of Java but no field experience. We were using Tapestry and Cayenne (an ORM) and this whole, molasses-slow catastophe in the making, was my first introduction to the life of a professional coder. I still have strong paranoia and anxiety about any magical behaviour. But then the project went from v3 to v4 and everything broke. Zero backwards compatibility. Well - a bit dramatic. Nothing could be _trusted_ to work properly.
Tapestry is a reimagined WebObjects framework, and the company I worked for originally specialised in these systems, so it was natural for them to pick Tapestry. I also did a lot of translating/transplanting code from a WebObjects system to a Tapestry 4 system and everything the parent says was true for me. Work on a single component is spread across a minimum of three files, sometimes four, and there is a lot of magic which makes debugging (something you'll have to do a lot) a nightmare. I suspect Tap5 is incompatible and a wholly different beast to Tap4, but to this day I never want to work on a Java based web framework. Give me a pile of rotten php spaghetti any day of the week.
That said, I'm loving Clojure and might investigate Noir at some point in the future.
- lmm 14y ago>I suspect Tap5 is incompatible and a wholly different beast to Tap4, but to this day I never want to work on a Java based web framework. Give me a pile of rotten php spaghetti any day of the week. I might be getting a bit too evangelical here, but Wicket will change that. It actually uses the Java type system the way it's meant to be used (it's the only library I've ever seen that uses final classes and final methods effectively), and as a result its backwards-compatibility record is superb. It's so good that when writing wicket I don't even miss python.