Temat może dość luźno związany z tematyką forum, ale mniejsza o to;)
Ostatnio rozmawiałem ze znajomym (zapalony javoviec) właśnie dość luźno na temat języków programowania.
W większości przypadków stwierdziliśmy, że racja jest jak dupa, i dla jednego dynamiczne typowanie zmiennych to wada, dla mnie ogromna zaleta. On uważa, że nie ma nic lepszego niż spring, dla mnie ror jest super. No ale mniejsza o to.
To, co jednak troszkę wytrąciło mi argumenty, to możliwości. Nie chodzi mi tutaj o szerokość zastosowań, bo tu jest jasne, że java(jako język) może być dużo szerzej wykorzystywana, z racji samej architektury tego języka oraz dużo bardziej rozwiniętego ekosystemu.
Mnie jednak bardzo zainteresowało, co tak naprawdę można w rubym napisać.
Tak, wiem, jest (RoR|Merb|Sinatra|…),można pisać skrypty konsolowe, do aplikacji webowych, jest RubyCocoa, Macruby do pisania okienkowych aplikacji dla maka… zapewne da się też coś pod linuksa napisać, może i pod windowsa.
Chodzi mi jednak o coś innego - kumpel odpalił napisany przez siebie program do rozpoznawania ruchu z kamery - napisany w javie - i padło hasło “napisz to w rubym”.
Tak wiem, jest Jruby, i mogę tworzyć aplikację w rubym i korzystać ze wstawek javowych, ale mi chodzi o możliwości czystego rubego.
Poza tym z tego co wiem, to tworzenie aplikacji okienkowych w rubym wymaga zaimplementowania w niej całego rubego(czyli kilkadziesiąt mb w plecy) -ale tu mogę się mylić.
Krótko mówiąc- czy to nie jest przypadkiem tak, że ruby stał się popularny dzięki RoRowi(i nikt mi nie powie, że tak nie jest), ale nie bardzo ma możliwości, żeby go wykorzystać w innych zastosowaniach? Php też kiedyś próbował stać się językiem do wszystkiego(PHP-GTK), a jak to się skończyło… chyba każdy wie.
Nie traktujcie tego posta jako flame - sam napisałem program w macruby (Co prawda tylko niewiele bardziej skomplikowaną od hello worlda) - ale pisało się całkiem przyjemnie. Poprostu zastanawia mnie do czego tak naprawdę można wykorzystać ten język(może jakieś ciekawe, nietypowe programy napisane w rubym? )
Z góry dzięki za odpowiediz
Jezu, tyle tego już zostało przelane w ciągu ostatnich lat na forach we wszystkich językach… nie prościej guglnąć?
Wszyscy wiedzą, że rails can’t scale, a to wszystko dlatego, że ruby can’t scale.
A tak na serio to sam podałeś przykłady.
- dla sieci RoR i sinatra
- implementacja algorytmów i prototypowanie
- na desktop jruby + swing, macruby + cocoa albo ironruby dla windowsa. tak jak powiedział headius na rupy: z jruby nawet API swinga wydaje się spoko
- na serwerze skrypty jak ktoś nie przepada za bashem
- ludzie od django używają capistrano do deploymentu (do innych języków też się na pewno nada)
- jak masz dużo serwerów w chmurce, to jest dużo nowatorskich i fajnych rozwiązań, na przykład Nanite albo CloudCrowd - genialne narzędzia, bawiłem się Nanitem i jest niesamowity, w 10 minut masz narzędzie do komunikacji między serwerami
- chef do zarządzania konfiguracją serwerów (polecam prezentację ezry w temacie zarządzania aplikacjami w chmurze: http://www.opscode.com/blog/2009/06/26/adam-jacob-ezra-zygmuntowicz-demo-chef-nanite-at-velocity-2009/)
- sporo narzędzi do różnego rodzaju API, parsowania itp. itd.
- rak
(niezastąpione narzędzie w przeszukiwaniu plików w konsoli)
- adhearsion do pisania “voice-enabled applications”
I można tak wymieniać dalej…
Wiadomo, że to co opisałeś powyżej, czyli rozpoznawanie obrazów z kamery raczej nie jest najlepszym przykładem dla rubiego. Tak samo prawdopodobnie nie znajdziesz odpowiedników powyższych aplikacji dla javy, które będą tak sexy jak te w ruby
Podsumowując: jeżeli nie jesteś idiotą, to i tak wybierzesz narzędzie, które będzie pasowało do danego zadania, a nie język, który jest fajniejszy. Dlatego jak ktoś mi pokaże jakąś aplikację, która rozpoznaje ruch na video, i powie: napisz to w ruby, to zapytam: po kiego wała?
Nie to że korzystałem, ale tak poszukałem chwilkę i znalazłem:
które jest nakładką na LinuxMCE, a to z kolei posiada możliwość obsługi kamerek IP:
"If you run IP Camera under moton you get all features motion has (motion detection,recording,etc…) "
Nie wiem jak i czy to działa, ale takie coś jest i teraz pytanie: ile kumpel pisał ten program?
pozdrawiam