AKTUALIZACJA: Tapestry 5.2 jest już niedostępny, więc nie jest porzucony, jak się wcześniej wydawało. Moje doświadczenie dotyczy Tapestry 4, a nie 5, więc Twój przebieg może się różnić. Moja opinia o Tapestry zmieniła się na przestrzeni lat; Zmodyfikowałem ten post, aby to odzwierciedlić.
Nie mogę już polecać Tapestry, tak jak wcześniej. Tapestry 5 wydaje się być znaczącym ulepszeniem, ale mój główny problem z Tapestry nie dotyczy samej platformy; jest z ludźmi, którzy za tym stoją.
Historycznie rzecz biorąc, każda większa aktualizacja Tapestry łamała wsteczną kompatybilność ze skrajnymi uprzedzeniami, znacznie bardziej niż można by się spodziewać. Wydaje się, że jest to spowodowane włączeniem nowych technik lub technologii kodowania, które wymagają znacznych przeróbek.
Howard Lewis Ship (główny autor Tapestry) jest z pewnością genialnym deweloperem, ale nie mogę powiedzieć, że zależy mi na jego zarządzaniu projektem Tapestry. Rozwój Tapestry 5 rozpoczął się niemal natychmiast po wysłaniu Tapestry 4. Z tego, co wiem, Ship poświęcił się temu, pozostawiając Tapestry 4 w rękach innych autorów, którzy moim zdaniem nie są tak zdolni jak Ship. Po bolesnym przejściu z Tapestry 3 na Tapestry 4 poczułem, że prawie natychmiast zostałem porzucony.
Oczywiście, wraz z wydaniem Tapestry 5, Tapestry 4 stał się starszym produktem. Nie miałbym z tym problemu, gdyby ścieżka aktualizacji nie była znowu tak brutalna . Więc teraz nasz zespół programistów jest w raczej nie do pozazdroszczenia sytuacji: moglibyśmy nadal korzystać z zasadniczo porzuconej platformy internetowej (Tapestry 4), dokonać ohydnej aktualizacji do Tapestry 5 lub całkowicie zrezygnować z Tapestry i przepisać naszą aplikację przy użyciu innej platformy. Żadna z tych opcji nie jest zbyt atrakcyjna.
Tapestry 5 jest podobno napisany tak, aby zmniejszyć prawdopodobieństwo zerwania aktualizacji od tego momentu. Dobrym przykładem są klasy stron: w poprzednich wcieleniach klasy stron wywodziły się z klasy bazowej dostarczonej przez Tapestry; niezgodne zmiany API w tej klasie były przyczyną dużej liczby problemów ze zgodnością wsteczną. W Tapestry 5 strony są POJO, które w czasie wykonywania są ulepszane za pomocą „magicznego czarodziejskiego pyłu Tapestry” poprzez adnotacje. Tak długo, jak zachowana jest umowa dotycząca adnotacji, zmiany w Tapestry nie wpłyną na klasy stron.
Jeśli tak jest, to napisanie nowej aplikacji przy użyciu Tapestry 5 może się dobrze zakończyć. Ale osobiście nie mam ochoty ponownie położyć ręki na palniku.