Ruby, aplikacje desktopowe

Cześć.

Możecie podać przykłady aplikacji desktopowych napisanych w Rubym na Windę?

Programuje się w ogóle w Rubym jakieś duże aplikacje desktopowe? Czy raczej ciężko w porównaniu z C, czy Javą?

Pozdrawiam

Nie da się, dwa techniczne powody dla których nikt tego nie próbuje to:

  • Brak odpowiedniego frameworka
  • GIL na wątkach
    Pierwszy wynika z drugiego.

A teraz flametopic:
Żyjemy w czasach SaaS, ogólnego cloud computing a desktop to powoli ślepa uliczka i przeżytek, mam nadzieje że ktoś wyczuwa ironie, ale jeśli przejrzeć prase branżową to właśnie takie rzeczy można tam wyczytać :wink:

Imho narazie jeszcze nie, ale jeszcze 4-6 lata i samo HTML/CSS/JS API przeglądarek będzie dawało ci więcej możliwości niż jakikolwiek framework interoperacyjny, aktualnie to już są miesiące gdy google, apple albo mozilla wypuszcza jakiś nowy proposal api, websockets, webworkers, canvas 3d, location awerness, device orientation, na dniach pojawiło się HTML Speech Input. Można mieć sporo zastrzeżeń co do podstaw technologi HTML albo JS ale jak dlamnie kierunek jest jasny, przeglądarki internetowe to write once run anywhere lat 90 dla przyszłej dekady :wink:

Let the flames begin ? :>

Prawdopodobnie najlepszym rozwiązaniem jest JRuby + Swing, ewentualnie z wykorzystaniem któregoś fameworka do pakowania tego, na przykład https://github.com/monkeybars/monkeybars-core ale dość dawno nie zaglądałem do tego.

ZTCP Sketchup od wersji 4 udostępnia Ruby API, konsole i możliwość pisania pluginów w Ruby ale całość nie jest napisana w Ruby.

@hubertlepicki
tak lekko offtopując: masz jakieś doświadczenie z tandemem JRuby + Swing ?
Swego czasu miałem właśnie problem z tym, że tworząc aplikację w JRuby, nijak nie mogłem podpiąć swinga i tworzyć gui w nim, a całej reszty w ruby. Masz może jakieś przemyślenia dot. tego tandemu, albo materiały pomocne?:slight_smile:

[quote=krzyzak]@hubertlepicki
tak lekko offtopując: masz jakieś doświadczenie z tandemem JRuby + Swing ?
Swego czasu miałem właśnie problem z tym, że tworząc aplikację w JRuby, nijak nie mogłem podpiąć swinga i tworzyć gui w nim, a całej reszty w ruby. Masz może jakieś przemyślenia dot. tego tandemu, albo materiały pomocne?:)[/quote]
Na jakieś demo na lokalnej grupie Javy robiłem coś takiego https://github.com/hubertlepicki/Swing-JRuby-Twitter-client-example

http://redcareditor.com

w czystym ruby i gtk coś kiedyś się bawiłem ale bardzie proof no concept niż żeby to miało sens. Ale się da i działa.

Nikt nie próbuje? :slight_smile:

Kiedyś to już linkowałem na forum: http://spin.atomicobject.com/2009/01/30/ruby-for-desktop-applications-yes-we-can

Tak samo nie raz już ludzie pokazywali, że bardzo fajne rzeczy można zrobić pod MacRuby. Prawdopodobnie IronRuby (o ile projekt jeszcze żyje, nie interesuję się tym za bardzo) pozwoli również na budowanie windowsowych aplikacji.

No bez przesady :wink: MRI ma oczywiście GIL i nie zanosi się na to, żeby to się zmieniło, ale jruby, macruby i rubinius nie cierpią na tą przypadłość.

Też jestem zdania, że HTML to przyszłość i całkiem niedługo nie będzie już na przykład większego sensu w pisaniu natywnych aplikacji np. na smartphone’y (po co pisać kilka wersji aplikacji, jak można to zrobić tylko raz?), ale jeżeli jest taka potrzeba, to fajnie jak jest możliwość zrobienia tego w ruby.

Jak chodzi o MacRuby - można, ale wątpię, czy warto. I tak trzeba poznać API, w dodatku spora część Cocoa nadal nie jest dostępna z poziomu MacRuby.

Robiłem kiedyś warsztaty na temat pisania aplikacji desktopowych. Generalnie polecam QTRuby / korundum. Sam framework jest świetny, bindingi też bardzo wysokiej jakości. Całość jest bardzo portowalna i powinna działać zarówno pod windows, linux jak i maciem. Wiec jak już w czymś pisać aplikacje desktopowe to w tym.

Świstak, a jak z zabezpieczeniem kodu wygląda to w QTRuby ?

Bo o ile rozumiem, że pod linuksa wiekszosc programow jest open-source, to pisząc komercyjne oprogramowanie pod windowsa dobrze by było zabezpieczyć jakoś kod (w przypadku jezykow kompilowalnych przewaznie wystarcza kompilacja)

Nie rozumiem Twojego problemu. Sprzedajesz oprogramowanie z określoną licencją, np. taką, która pozwala na modyfikowanie kodu we własnym zakresie, bez prawa do dystrybucji i już.

Bragi, gdyby to było takie proste to nie byłoby tylu róznych zabezpieczen antypirackich w aplikacjach :wink:

Problem jest taki, żeby ustrzec się przed możliwością usunięcia zabezpieczeń, które będą pilnowały aby jedna licencja była używana maksymalnie na jednym komputerze + przed usunięciem zabezpieczeń aby uruchamiac program bez licencji.

Poprostu zastanawiam się czy jest jakaś możliwość “kompilacji” kodu rubiego czy np upchniecia go w plik wykonywalny razem z interpreterem rubiego

Jakiś czas temu przymierzałem się do Windowsowego desktopu właśnie z QtRuby.
Najlepsze co mi się udało znaleźć z kompilatorów to ocra - http://ocra.rubyforge.org/
Alternatywą dla kompilacji jest RubyEncoder http://www.rubyencoder.com/ - płatne ale za to crossplatformowe.

jest, był kiedyś projekt który to pakował ze wszystkimi gemami itp ale nie pamiętam jak się nazywał. Teraz już chyba nieaktywny, no ale jest jruby, czy też http://rubysfera.pl/2011/02/ruby-z-napedem-odrzutowym-o-kompilacji-slow-kilka/ i tak dalej.

No ale jak ktoś będzie chciał i się prze to i tak znajdzie pewnie sposób na zpiratowanie twojego softu, łamią super zabezpieczenia od Sony itp firm które wydają miliony na nie, złamią i twoje jak ktoś będzie na tyle zdeterminowany jak dla mnie.

Więc jak zostało już wspomniane, równie dobrze możesz dostarczyć kod źródłowy z jakąś licencją.

Jest tyle zabezpieczeń antypirackich bo ludziom chciwość dyktuje głupie pomysły. Żadne z tych zabezpieczeń nie jest skuteczne.

Problem jest taki, żeby umieć zarobić dość na sprzedaży i nie traktować każdego człowieka jak potencjalnego złodzieja. Jeśli chcesz mieć pełną kontrolę nad tym kto używa Twojej aplikacji to zrób z niej aplikację webową. W przeciwnym wypadku wydasz majątek na kompletnie nieskuteczne zabezpieczenia.

Skup się na realizowaniu potrzeb ludzi oraz na dopasowaniu ceny do ich możliwości. W ten sposób spokojnie zwróci Ci się inwestycja, z niezłym zyskiem.

Bawi mnie podejście “jeszcze nie zacząłem pisać aplikacji a już zakładam, że ją ktoś ukradnie”. Świadczy to o braku wiedzy na temat tworzenia i sprzedaży oprogramowania. Ale to dyskusja na Hydepark. O wróć, właśnie tu jesteśmy :slight_smile:

P.S. Interesujące źródło informacji o tym, że DRM to zło: http://blogs.oreilly.com/cgi-bin/mt/mt-search.cgi?tag=drm-free&blog_id=40 Dzięki Bogu świat zmienia się na lepsze.

Myślę, że to nie chciwość a realia rynku - przynajmniej polskiego. I chyba nie takie aż głupie te pomysły. Z mojego skromnego doświadczenia wynika, że zabezpieczenie produktu (aplikacji desktopowej) daje realne szanse sprzedaży 2-3 krotnie większej ilości licencji. Dodatkowo - utrzymanie ceny na poziomie dostępności i/lub poniżej kosztów crackowania czyni zabezpieczenie bardziej skutecznym;) Oczywiście inna sprawa to koszt i upierdliwość obsługi takiego zabezpieczenia. Trzeba to sobie zawsze przekalkulować i być świadomym tego co się robi.

Rozumiem, że nie zamykasz swojego auta i domu?:wink: Nie powinienneś też chyba używać Textmate’a, skoro jego twórcy dając Ci wersję trial uważają Cię za potencjalnego złodzieja?
Poza tym czy naprawdę uważasz, że wszystko da się obecnie wykonać w webie?

+1