Ostatnio mam projekt do zrealizowania, ale nie mam narzuconych ograniczeń na język i framework. Sęk w tym, że zleceniodawca jest sceptyczny odnośnie Linuxa, więc prawdopodobnie aplikacja musiałby dać się uruchomić pod Windowsem (prawdopodobnie na wielu niezależnych serwerach). Jako że potrzebne są mi pewne dynamiczne właściwości języka programowania (np. możliwość generowania klas w czasie wykonania) skłaniam się ku Ruby. Niestety obawiam się, że MRI nie jest najprzyjemniejszy w deploymencie pod Windows, więc przypomniałem sobie o JRuby. Wykonałem pierwsze testy i udało się uruchomić Rails 4 na Tomcacie, w zasadzie bez większych problemów (łącznie z wielowątkowością i wykorzystaniem wszystkich rdzeni procesora). I teraz pytanie: warto iść w tym kierunku? Tzn. na ile JRuby jest dojrzałą implementacją, by można było zaprząc go do pracy na serwerze produkcyjnym? No i pytanie sakramentalne: jak z wydajnością?
JRuby jest dojrzałym projektem, warto iść w tym kierunku. Jest używany w wielu miejscach od kilku lat na produkcji. Jeśli chodzi o wydajność to z reguły bije na głowę wszystkie inne implementacje Ruby. To jedyne sensowne rozwiązanie jeśli chodzi o Ruby pod Windows.
Ja mogę tylko poradzić żeby przekonać klienta by ujrzał światło i postawił na linuksa. Nie wiadomo jaki FUD tam zadziałał, ale zwykle jak ktoś policzy 5 serwrów * 600 PLN licencji per sztuka kontra darmowy debian to zwykle 2 razy się faktom przyjrzy.
Generalnie Windows to badziewna platforma do deploymentu projektów opartych na Ruby. Z wielu powodów ale efekty są takie że: Brakuje dokumentacji, Ciężka konfiguracja IIS (no chyba że odpalisz apache pod windowsem). Dużo dziwnych błędów. Wiele gemów nie jest nawet testowanych pod windowsem.
Dzięki, potrzebowałem opinii kogoś, kto zna temat z praktyki, bo obawiałem się czy nie ładuję się w jakieś kłopoty.
Niestety zleceniodawca jest nietechniczny i raczej posługuje się stereotypami oraz emocjami, więc trudno będzie przekonać go do linuksów. Choć przyznam, że argument ekonomiczny wywarł na nim jakieś wrażenie. Tym bardziej, że aplikacja miałaby być hostowana na VPS-ach, a w takim przypadku koszty dla obu platform są nieporównywalne.
Co do IIS-a, to nie brałem go w ogóle pod uwagę - raczej Tomcata albo jakiś inny kontener.
ano argument ekonomiczny zawsze przemawia
Na temat to popieram jRuby jest to zdecydowanie projekt dostatecznie dojrzały zeby go uzywać, ma dobre wstparcie dla serwerów javowych więc była by to też świetna opcja do deploymentu na windowsach (jeżeli przy tym zostaniecie).