Scooby Ruby do (on Rails) kontra Java
05.27.2006Najpierw będzie przydługi wstęp, w którym popastwię się nad Rubim, a na końcu będzie interesujące porównanie wydajności czasu tworzenia aplikacji w Javie i Rubim na Rejlasach.
Ostatnio sporo szumu pojawiło się w związku z językiem programowania Ruby, a zwłaszcza frejmłorkiem do tworzenia dynamicznych stron WWW Ruby on Rails. Przypomina to bardzo przedostatni szum związany z językiem Python i serwerem Zope – te ostatnie dwie technologie jakoś popadły w niełaskę ostatnio u “trend seterów”.
Przyjrzałem się ciepło Rubiemu, bardzo przyjemny język, bardzo obiektowy i można w nim bardzo dziki kod tworzyć. Na przykład dodawanie 2 + 3 można zapisać w postaci 2.+(3) itp. sztuczki. Kod można pisać w dowolnie niedbały sposób, co ma swoje wady i zalety.
Tak na serio, Ruby jest na prawdę fajny, tylko co z tego.
Grzebiąc w sieci na jego temat (zwłaszcza Ruby on Rails) znalazłem to . I własnym oczom nie mogłem uwierzyć. Tam jest napisane: “Please note that right now Rails basically knows nothing about Unicode and pretends everything is just bytes”. Co? Cooo? Ten ficzer Rubiego faktycznie znakomicie ułatwia tworzenie aplikacji, które mają pecha i używają czegoś więcej niż US-ASCII.
Zwolennicy Rubiego, np. Bruce Tate, autor książki “Beyond Java” twierdzą, że podstawową zaletą Rubiego i Ruby on Rails jest dziesięciokrotne przyspieszenie czasu tworzenia aplikacji w stosunku do Javy.
10 razy robi wrażenie.
Jest nawet w sieci tutorial pokazujący jak szybko można w Rubym on Rails utworzyć aplikację WWW opartą o bazę danych z szybkością 10. Przetrawiłem ten tutorial i rzeczywiście, jedna godzina i prosta aplikacja dodająca i modyfikująca dane w bazie jest gotowa.
Tyle, że to samo w Javie można zrobić szybciej i przyjemniej, nie tracąc tego wszystkiego, co nam daje technologia Java EE: deklarowalną politykę bezpieczeństwa, deklarowalną transakcyjność, komponenty EJB, z którymi może rozmawiać klient GUI i wiele innych. Potrzebujemy do tego Netbeans 5.5 (narazie jest beta) i to w zasadzie wszystko. Demo we flashu jest tutaj.
Parę kliknięć i prosty CRUD w EJB 3.0 i JSF jest gotowy.
Wpis umieszczony na portalu JDN [link]