Ostatnio mam okazję zajmować się oprogramowaniem o wdzięcznej nazwie Talend. W największym skrócie jest to program do tworzenia procesów przetwarzania danych – z mnóstwem pluginów i komponentów – dane mogą pochodzić z właściwie dowolnego źródła i do równie dowolnego trafiać. Z bazy do pliku CSV, z Twittera do systemu CRM, co kto lubi. Dodatkowo wszystko (czy znakomitą większość) tworzy się wizualnie, dodając komponenty, łącząc je liniami, a jak ktoś lubi to wpisze fragment Javowego kodu. Edytor oparty na Eclipse, eksport do aplikacji webowej, słowem – pełna, toporna Javowa aplikacja z milionem funkcji używanych raz na dwa lata przez testerów jak im smutno. Oczywiście by być pełnoprawną aplikacją działa w wolnym tempie, ma sporo bugów które wychwyciłoby dziecko po 3 minutach zabawy i podcina się równie często, a zmiana pierdoły wymaga grzebania w 30 warstwach istniejących tylko po to, by część komponentów mogła pracować w Afryce na serwerach Amigowych. To nie jest jednak głównym problem.
Problem polega na tym, że znowu, znowu nie ma opisanej filozofii programu. Masz komponenty, łączysz je i…i nie masz pojęcia czym tak naprawdę jest to połączenie, nie masz pojęcia co ono oznacza, komponenty – domyslasz się, że wejściem wchodzi, a wyjściem wychodzi – natomiast nie rozumiesz i nie zrozumiesz (a przynajmniej nie będziesz pewny swojego zrozumienia) dopóki nie zostanie to gdzieś napisane. Jest to bolączką która moim zdaniem dotyka strasznie wielu rozwiązań technologicznych w ogóle – brak ścisłego opisu, co jest czym. Gdy jesteś twórcą – wiesz wszystko i wszystko jest oczywiste, to oczywiste. W innym przypadky zbyt często użytkownik staje przed kobyłą która działa na zasadzie magii i prowizorki, a speszony wspomniany człowieczek cieszy się, jak coś się uda zrobić i czym prędzej znika wypychając przygodę z pamięci. (I swojej i komputera). Developerzy…napiszcie 3 słowa, co jest czym, krótko, bez technikaliów. To naprawdę się opłaci..
