Gratka dla dewelopera. Opa językiem nowej generacji!

Odwiecznym problemem towarzyszącym deweloperom aplikacji sieciowych, jest ich złożoność. Stworzenie nawet najprostszej z nich, wymaga znajomości kilku języków i technologii. Nowy język programistyczny – Opa – ma być rozwiązaniem tego problemu.

Opa jest językiem kompletnym. Za jego pomocą możesz stworzyć UI, zaprogramować logikę biznesową, nawiązać połączenia z bazą danych itp. Łączy on w sobie zalety m.in. HTML i CSS (UI), JavaScript (client-side), języków z rodziny SQL (bazy danych), a nawet PHP, Java czy .Net (server-side). Kod języka Opa, działający po stronie klienta, jest automatycznie konwertowany do JavaScript.
Pozostałe części naszego kodu działają po stronie serwera. Również i tutaj, Opa okazuje się zaskakującym rozwiązaniem. Platforma Opa zapewnia nam wszystko, czego potrzebujemy do prawidłowego działania naszych aplikacji, zaczynając od serwera sieci WWW, poprzez serwer baz danych, aż po odpowiednie biblioteki.

Jak każdy język programowania, Opa posiada pewne wady. Jest to całkowicie nowa technologia, której największym minusem jest brak wsparcia ze strony programistycznej społeczności. Opa łączy w sobie zalety wielu technologii, sprowadzając je do jednego modelu bazowego. Jednak nie zwalnia to programisty z obowiązku zapoznania się ze sposobem ich działania. Ponadto, należy wspomnieć, że generowany automatycznie client-side kod, nie jest tak uniwersalny jak kod pisany ręcznie. Korzystający z tego rozwiązania programiści tracą możliwość „odręcznej” optymalizacji kodu.

Język Opa jest open-source’owym projektem, rozpowszechnianym na zasadach GNU Affero Genereal Public Licence, a jego kod źródłowy dostępny jest na serwerach Github. Nad rozwojem języka może pracować każdy z nas. Jednakże pewnym problemem może być fakt, że silnik Opa został napisany przy użyciu języka OCaml. Chcąc rozwijać projekt, programiści muszą nauczyć się zatem nie jednego, lecz dwóch mało znanych języków programowania.

Mimo wszystko uważamy, że Opa jest wartym uwagi rozwiązaniem. Nawet jeśli język nie zyska popularności wśród doświadczonych programistów, to jest on wręcz idealnym narzędziem do szkolenia nowych pokoleń specjalistów.

żadnych reklam, sama wiedza.

Zarejestruj się na BEZPŁATNY NEWSLETTER i raz w tygodniu otrzymuj najważniejsze wiadmości
ze świata IT, nowych technologii i kryptowalut.

Bez reklam.

35 odpowiedzi na „Gratka dla dewelopera. Opa językiem nowej generacji!”
  1. Awatar Berlinki
    Berlinki

    Na ile konieczna będzie znajomość technik programowania by skorzystać z tego języka. Domyślam się, że amator raczej sobie z tym nie poradzi.

    1. Awatar adi
      adi

      Amator sobie z niczym nie poradzi, nawet z prostym CMS'em.
      Tworzenie nawet najprostszych projektow klient-serwer w necie trzeba znać trochę technologii.

      A Opa prawdopodobnie umożliwia napisanie wszystkiego w jednym języku… Ale i tak nie zwalnia ze znajomości technik programowania i zarządzania projektem, jego ułatwieniem jest pewnie to że umożliwia też składanie projektu z już gotowych klocków (wtyczek) itd
      Cos podobnego w sensie kompilacji do Java script umożliwia GWT googla, czy JQuery lub inne. Ale gwt sie nie nadaje za bardzo do pisania serwisow web tylko do zagniezdzanych na stronach aplikacji… Wiec trzeba czekac na Dart od googla, ktory mam nadzieje tez bedzie open source.

  2. Awatar Draqun_
    Draqun_

    @Nawet jeśli język nie zyska popularności wśród doświadczonych programistów, to jest on wręcz idealnym narzędziem do szkolenia nowych pokoleń specjalistów.

    Zanim to się stanie to trochę minie. Zachód pewnie znowu nas wyprzedzi a np. już dziś można by wprowadzić taki język programowania do nauczania co dałoby już w najbliższej przyszłości spore efekty jeśli tylko język ten by się przyjął. Oczywiście uczelnie obok Opa mogłyby uczyć również OCaml budując społeczność, która mogłaby potencjalnie dalej rozwijać Opa.

    A teraz skończyłem marzyć 😉

    PS. IntenseDebate ssie.

  3. Awatar mikolajs
    mikolajs

    Na razie poczekamy na Dart 🙂

  4. Awatar Rsh
    Rsh

    AGPL? czyli praktycznie nie da się w tym pisać komercyjnych (w mojej definicji zakniętych) stron.

    1. Awatar Lunar
      Lunar

      Dokładnie… jest to kolejny atak nawiedzonych, apodyktycznych, wręcz faszystowskich społeczności uważających, że najważniejszy jest wolny wybór wolnego oprogramowania. Wszystko powinno być Open, darmowe i najlepiej by programiści tworzyli strony za darmo a gry były rozdawane na ulicy….

      1. Awatar adi
        adi

        Po 1. Jest wybór między różnymi technologiami, nikt nie narzuca siłą używania tylko i wyłącznie licencji AGPL. Chodzi tylko o to żeby była alternatywa.
        2. Nie mówiąc już w ogóle o open source, na GPL i AGPL też da się przyzwoicie zarabiać.

      2. Awatar cutugno
        cutugno

        "Wszystko powinno być Open, darmowe i najlepiej by programiści tworzyli strony za darmo a gry były rozdawane na ulicy…."

        Powiem tak: moje prokomercyjne poglądy są tu bardzo dobrze znane, ale gdyby mi kiedykolwiek przyszła ochota i czas pisać cokolwiek za darmo, to na pewno będzie to na licencji AGPL (no chyba że jakiś zupełny duperel to wtedy się nie będę z licencją wygłupiał).

    2. Awatar mikolajs
      mikolajs

      >AGPL? czyli praktycznie nie da się w tym pisać komercyjnych (w mojej definicji zakniętych) stron.

      A dlaczego nie? A używając gimpa nie możesz sprzedawać grafiki, tylko musisz udostępnić na licencji GPL?
      AGPL dotyczy tylko rozwijania samego języka.

      1. Awatar cutugno
        cutugno

        "AGPL dotyczy tylko rozwijania samego języka."

        Nie, nieprawda. Na AGPL nie są tylko parser/kompilator/interpreter języka, ale też podstawowe biblioteki, których musisz używać w swojej aplikacji. Więc AGPL dotyczy też aplikacji.

        1. Awatar mikolajs
          mikolajs

          Masz rację, biblioteki też są na licencji AGPL. Jeżeli ktoś chce pisać aplikację komercyjną to musi wykupić płatną licencję komercyjną na Opa.

          1. Awatar Adam Koprowski
            Adam Koprowski

            Tak, ale płatna licencja jest w tej chwili dostępna za… 0$ :). http://blog.opalang.org/2011/09/opa-license-strik…
            [Disclaimer: jestem pracownikiem MLstate, twórcy Opa'y]

          2. Awatar cutugno
            cutugno

            "Tak, ale płatna licencja jest w tej chwili dostępna za… 0$ :)."

            OK – ale nic na temat tej licencji nie piszecie (albo chowacie to za siedmioma linkami, nie chce mi się grzebać) – więc nie wiem jaka jest ta darmowa własnościowa licencja. Chociażby czy ma ograniczenie czasowe, albo jakieś inne dziwne warunki. Na przykład – jak się przekonacie czy już nie mam tej zielonej bańki przychodów od której trzeba płacić (serio serio, widziałem firmy, które żądały prawa audytu), dalej – nie wiem nic na jakich warunkach byłaby ta płatna licencja jakbym już tą bańkę wyrobił a to też przecież istotne jakbym chciał jakiś biznes planować.

            Ogólnie – wybacz, ale biorąc pod uwagę, że wybór platformy jest właściwie nieodwracalny (a przynajmniej jej zmiana to często kolosalny koszt), nie uważam propozycji Opa za poważną.

  5. Awatar Adik
    Adik

    *GPL* jest dobre tylko dla dużych korporacji. Małe firemki muszą mieć możliwość zamknięcia kodu. Przykładowo wykonuję czarną robotę i tworzę sobie podsystem obsługi formularzy z dynamicznymi kontrolkami. I tu zaczynają się problemy: na *GPL* muszę udostępnić kod , który ktoś sobie weźmie i skopiuje a kasa zamiast płynąć do mnie popłynie do niego. Twór na *GPL* nie posiada żadnej wartości handlowej. Nie sprzedam tego nikomu, kto byłby zainteresowany bo może sobie on po prostu skopiować.

    Rozumiem licencje MIT, BSD czy Apache, ale dla mnie *GPL* to wrzód i hamulec rozwoju. Właśnie przez GPL Linux się w ogóle nie rozwija i do swojej śmierci w zapomnieniu nie będzie miał więcej niż ten 1%.

    1. Awatar John
      John

      Bardzo śmieszne 🙂

    2. Awatar mikolajs
      mikolajs

      > Nie sprzedam tego nikomu, kto byłby zainteresowany bo może sobie on po prostu skopiować

      Ale ten co skopiuje też nie sprzeda. A jeszcze gorzej gdy jest na BSD wtedy może wziąć Twój kod i sprzedać jako zamknięte rozwiązanie.
      Gdyby Linux używał licencji bardziej liberalnej to byłby na poziomie FreeBSD. Są narzędzia które lepiej byłoby wydawać na BSD, ale w wielu innych szczególnie aplikacjach użytkowych dla Linuksa lepiej sprawdza się GPL.

      1. Awatar Adik
        Adik

        Znając polską rzeczywistość to skopiuje i przerobi tak, że nie poznasz, że to twoje. Pisanie kodu to max 10% pracy włożonej w program. Tyle samo góra (10$) potrzeba temu kto będzie chciał skopiować i pozmieniać.

        1. Awatar mikolajs
          mikolajs

          Czasem przerabianie cudzego kodu jest bardziej czasochłonne niż napisanie od początku własnego.

  6. Awatar jacek2v
    jacek2v

    Pooglądałem tutoriala tego języka i jakoś mnie nie przekonał. Jakieś wsparcie jest, ale takie trochę kulawe. Np. mam wrażenie, że po stronie serwera głównym elementem jest rezygnacja z cudzysłowów 🙂
    Generowanie kodu JS też mi jakoś nie leży – problemy z testowaniem, debugowaniem i jeszcze jeden pośredni "kompilator". Bardziej podoba mi się podejście Google z DART – zobaczymy co to będzie 🙂

  7. Awatar Piotr
    Piotr

    to samo i wiecej od dawna posiada HaXe (+ biblioteki wydawane na BSD)

    1. Awatar adik
      adik

      z tego co widze haxe to jakis konwerter kodu + biedna dokumentacja i chaos

  8. Awatar Jan
    Jan

    Po co nowy język programowania, skoro wszystko da się zrobić w Javie (z biblioteką GWT)?

    1. Awatar jacek2v
      jacek2v

      Nie wszystko.

      1. Awatar wladca_kodu
        wladca_kodu

        Jan zapewne miał na myśli, że wszystko co da się zrobić w OPA da się zrobić w Javie + GWT, w jednym języku. Czyli podsumowując – to już było, i faktycznie nie wiadomo po co nowy język.

        1. Awatar Adam Koprowski
          Adam Koprowski

          Z całym szacunkiem, ale to że "wszystko da się zrobić" w Javie to jeszcze nie jest argument przeciwko nowemu językowi :). Gdyby tak było to nie powinno istnieć nic poza Javą bo faktycznie da się w niej zrobić praktycznie wszystko. Różnorodność języków i możliwość wyboru to jednak dobra rzecz — nie każdy żyje Javą, a poza tym w wielu zastosowaniach inne języki po prostu sprawdzają się lepiej.

          Co do Opa'y: nie zgadzam się, że to już było. Opa to unikalny język w tym sensie, że daje jednolite podejście do wszystkich warstw aplikacji webowych (baza danych, kod po stronie klienta, kod po stronie serwera). Programista pisze tylko w Opa'ie która zajmuje się dystrybycją kodu klient/serwer i automatycznie generuje cały kod do komunikacji klient-serwer. W tym sensie można Opę porównywać z Node.js albo Ur/web, ale nie zgadzam się na porównanie z Javą i mówienie że Opa nie ma nic nowego do zaoferowania w porównaniu z nią :).

        2. Awatar adi
          adi

          Javie + GWT.
          Imo to rozwiazanie jest troche na siłę. W Javie tez trzeba znac mase bibliotek zeby sensownie w niej pisac apliakacje WEB.
          GWT jest dobre ale nie nadaje sie do wszystkiego. Zeby sensownie pisac nalezalo by do tego duetu załączyć jeszcze inne technologie jak Spring moze Hibernate, moze Velocity czy inne Apacha.
          A do tego trzeba jeszcze poznac JPA, w tym dosc dobrze GAE.
          JEdnak troche tego jest sporo zeby poruszac sie sprawnie w MVC. Dla mnie za duzo mimo ze to zbudowane w okoł 1 javy. To jednak w dalszym ciagu za duzo bibliotek . Wiec pod tym wzgledem OPA chyba jest lepsza. Ale ja poczekam na Dart….

        3. Awatar jacek2v
          jacek2v

          Tak też zrozumiałem, ale np. oprogramować przeglądarek mobilnych się nie da – przynajmniej tak by dało się tego używać 🙂

          1. Awatar adi
            adi

            Akurat GWT się świetnie do tego nadaje. 😉 kompiluje JS rowniez do mobilnych przegladarek.

          2. Awatar jacek2v
            jacek2v

            A jednak sam Google w swoim "dziecku" (GWT), też widzi niedostatki myśląc o DART 🙂

    2. Awatar mikolajs
      mikolajs

      W assemblerze też da się wszystko zrobić 😉
      Spróbuj kiedyś napisać coś webowego w Scali to zobaczysz na czym polega wartość nowych języków programowania.
      Jednak pod jednym względem się zgadzam. Nowy język musi oferować coś naprawdę extra, żeby warto było się na niego przestawiać. A tu jeszcze patrząc na licencję ten język musiałby chyba sam pisać programy 😉

      1. Awatar Adam Koprowski
        Adam Koprowski

        Sam programów jeszcze (niestety) nie pisze :).
        To co ma do zaoferowania to: jeden język do wszystkich warstw aplikacji (baza danych, kod po stronie serwera, kod po stronie klienta), silny system typów, zaawansowany distributed engine, silny system typów… Poza tym język został od początku stworzony z myślą o aplikacjach webowych i w tej dziedzinie świetnie się sprawdza.
        Jak wspomniałem wyżej w tej chwili komercjalna licencja Opa'y jest dostępna za darmo, więc proszę nie skreślajcie języka przez licencję :).

        1. Awatar wladca_kodu
          wladca_kodu

          – jeden język do wszystkich warstw aplikacji (baza danych, kod po stronie serwera, kod po stronie klienta): było np. Java + GWT, Scala + Lift, ASP.NET
          – silny system typów: to ma większość języków
          – zaawansowany distributed engine: na pewno trudno będzie pobić zabawki jakie ma Erlang i Scala pod tym względem

  9. Opa(lang) | webbricks

    […] język, ciekawe podejście do tematu (nieco inne niż node.js): Opa. Jestem ciekaw: co o tym […]

  10. Awatar Adik
    Adik

    23.09.2011 twórcy Opa wydali darmową wersję dla zastosować komercyjnych. Nie potrzeba już otwierać własnego kodu.

  11. Awatar Adik
    Adik

    Według mnie Eclipse RAP/RCP ma większe możliwości, do tego WindowBuilder Pro, system raportów BIRT, etc. Po co klepać koła od zera jak już ktoś to zrobił? Dodatkowo w przeciwieństwie do Opa nie tyka się HTML Pure Java. Nawet .NET takiego czegoś nie posiada.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *