Microsoft mówi NIE AJAX-owi; Microsoft mówi TAK ARAX-owi

Microsoft, twórca AJAX-u (Asynchronicznego JavaSciptu i XML), postanowił ułatwić programistom Ruby życie i zamierza stworzyć technologię ARAX (Asynchroniczny Ruby i XML).

John Lam, twórca IronRuby dla platformy .NET, podczas konferencji RailsConf ogłosił, że Microsoft będzie starał się ułatwić programistom języka Ruby życie poprzez łatwiejszy dostęp do AJAX-u bez potrzeby pisania kodu w języku JavaScript.

Nowa koncepcje – ARAX – ma umożliwić twórcom aplikacji internetowych korzystanie bezpośrednio z dobrodziejstwa AJAX-u. By używać AJAX-u programiści Ruby’ego nie będą zmuszeniu do używania RJS i podobnych narzędzi. ARAX ma się pojawić w najbliższej przyszłości w frameworku Silverlight. ARAX ma również pozwolić na tworzenie aplikacji Ruby’ego działających po stronie klienta.

Nieco podobne rozwiązanie z powodzeniem wykorzystuje od lat firma Google. Mowa o Google Web Toolkit, gdzie interfejs użytkownika aplikacji ajaxowych pisze się w Javie, a tak napisany kod kompilowany jest do zoptymalizowanego JavaScripta.

ż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.

  1. Awatar Moarc
    Moarc

    MS nie stworzył AJAX-a, tylko XmlHttpRequest. Inna sprawa, że na XHR-rze opiera się AJAX.

    1. Awatar Kelt
      Kelt

      Stworzył, stworzył. Gdyż to nie XmlHttpRequest opiera się na AJAXie tylko AJAX opiera się na XmlHttpRequest. Widać, że MS też czasem może zrobić coś dobrego.

      1. Awatar Moarc
        Moarc

        Przecież napisałem, że AJAX opiera się na XHR-rze. A MS i tak nie zrobił AJAX-a, tylko XHR.

  2. Awatar clondike
    clondike

    "łatwiejszy dostęp do AJAX-u bez potrzeby pisania kody w języku JavaScript"

    Ale już dziś można większość efektów ajaxowych uzyskać bez pisania ani linijki JavaScript, używając gotowych komponentów. Chodzi po prostu o wciśnięcie Silverlight?

    1. Awatar trasz
      trasz

      Zakladajac, ze masz pod reka gotowy komponent, ktory costam robi.

      1. Awatar clondike
        clondike

        Ale ja mówię o wbudowanych elementach Railsów, gotowych helperach. Zresztą darmowych dodatków też trochę jest.

        1. Awatar trasz
          trasz

          A ja mowie o tym, ze nie do wszystkiego masz gotowca. W takiej sytuacji lepiej jest pisac w jezyku, ktory sie zna – czyli w tym przypadku w Rubym – niz w JS.

          Inna sprawa, ze JS jako jezyk ssie niebotycznie. Sytuacje pogarsza jeszcze brak sensownych narzedzi – pojawil sie juz jakis uzywalny debugger do JavaScriptu?

        2. Awatar Zbigniew Braniecki
          Zbigniew Braniecki

          fajnie by bylo jakbys przestal laczyc okreslenie "ja czegos nie umiem" z "to jest slabe" – JS jest poteznym jezykiem, jednym z najelastyczniejszych jakie istnieja. Problem w tym, ze wiekszosc zna go z tandentnych skrypcikow na happystupidscripts.com.

          Jesli interesuje Cie jak rozwija sie JS, poczytaj o JS2.0, ktore jest w tym momencie implementowane dla platformy Mozilla 2.

          Co do debuggera: Venkman? Firebug?

        3. Awatar bies
          bies

          Właśnie, właśnie — bo JS to rzeczywiście ciekawy język. Ale wszystkie dostępne VM kuleją (ta z Flasha najmniej). Zatem, jak Wam idzie projekt Tamarin?

        4. Awatar trasz
          trasz

          @Zbigniew Braniecki: Nie twierdze, ze JS nie jest elastyczny – dziedziczenie bezposrednio po obiektach zamiast po klasach i bog wie co jeszcze. Twierdze natomiast, ze jest do kitu – z praktycznego punktu widzenia. Na przyklad dlatego, ze nie ma zadnego mechanizmu ochrony przed literowkami. Wydawaloby sie, ze czterdziesci lat po Fortranie tworcy jezykow programowania przestana popelniac te same bledy. Nie przestali.

          Oczywiscie "bycie slabym" mozna stopniowac. Nie twierdze, ze JS jest tak slaby jak, dajmy na to, PHP, ktorego autorom udalo sie zrobic tak idiotyczne bledy, ze mozna zwatpic w ich nieuctwo – bo czegos takiego jak traktowanie stringa "0" jako false nie mozna zrobic z czystej glupoty, po prostu nie da sie – to celowe, dyskordianskie dzialanie. 😉

          Co do debuggerow – aktualnie JS nie jest mi do niczego potrzebny, wiec nie spojrze; zamiast tego zadam jedno pytanie, co by sie upewnic – maja breakpointy, backtrace i wygodny podglad zawartosci zmiennych?

        5. Awatar PACH
          PACH

          @Zbigniew Braniecki

          zapomniałeś Opera Dragonfly standardowo dostepna w Operze 9.5 😉

        6. Awatar genobis
          genobis

          A ja się w pewnym stopniu zgadzam z traszem. JS jest potężny i niby trudno mu odmówić obiektowości, jednak trudno jest korzystać ze wszystkich jej zalet. Każdy dodawał od siebie co mu się podobało i wskutek tego brakuje mu spójności.

          Można się ze mną nie zgadzać, ale coś w tym chyba jest, skoro plany dla JS 2.0 są takie, jakie są (czyli, jak dla mnie, wspaniałe 😉 ).

          Swoją drogą, to jest właśnie myśl która stoi za wspomnianym GWT; po co używać JS, jeśli pracuje się w języku znanym sobie lepiej? Może i najlepiej by było, gdyby przeglądarki obsługiwały bytecode,do którego kompiluje się wiele różnych języków… ale to już taki bełkot, bo już ze standaryzacją JS były niezłe przeboje…

        7. Awatar bies
          bies

          genobis: nie potrzeba. Jeśli masz już jakąś reprezentację pośrednią (wszystkie lub większość znanych mi kompilatorów za taką przyjmuje drzewo SSA) to wygenerowanie z tego kodu JS jest równie łatwe jak bajtkodu. Ten JS będzie przypominał assembler — ale to nie ma znaczenia.

          Ważne jest aby przeglądarka potrafiła szybko i na wydajny kod maszynowy taki JS przetłumaczyć. I z tym aktualnie jest największy problem.

          Trasz: weź sobie wpisz w google ,,venkman walkthrough''.

        8. Awatar bies
          bies

          Już nie mówiąc o ,,dynamic programming languages'', a w szczególności ,,weakly typed'' — przez 40 lat teoria języków programowania zrobiła jednak trochę postępów. Może warto nadrobić zaległości…

        9. Awatar genobis
          genobis

          bies: ciekawe co piszesz, bardzo ciekawe. Przyznaję się, że nie wiedziałem – trzeba poczytać. "Ten JS będzie przypominał assembler — ale to nie ma znaczenia." – oczywiście, że nie ma, właśnie o to chodzi, by go nie oglądać 🙂 Dzięki za rzeczową odp.

          No ale właśnie, tym bardziej jestem ciekaw, czy ostatecznie to wszystko w tę stronę będzie szło (że surowy JS z czasem trochę wyjdzie z użycia). Niby niekoniecznie, ale trend zaczyna się rysować.

        10. Awatar bies
          bies

          genobis: to polecam dwa źródła do poczytania:

          1) LLVM, działa min. jako kompilator dowolnego kodu do którego jest frontend do C (jak popatrzysz na wyjściowy kod C to zrozumiesz to przyrównanie do asemblera).

          2) KoKogut — kompilator Koguta, bardzo ciekawego języka Marcina 'Qrczak' Kowalczyka. Również na wyjściu daje C.

          Co do samego odchodzenia od JS. Niekoniecznie. Cały czas, używając Gwt, zdarza mi się używać funkcji native czyli bezpośrednio kodu JS. W małych kawałkach — to fakt, ale jest to przydatne. Przypomina to właśnie wstawki asemblera w np. C++.

        11. Awatar bies
          bies

          Ech, ,,Marcina ‘Qrczaka’ Kowalczyka'' — sorry Marcin.

        12. Awatar genobis
          genobis

          Dzięki raz jeszcze 🙂

          Pracujesz w GWT? Hmmm, a powiedziałbyś mi może, jak się w tym robi? Tzn. pewnie dobrze, skoro z tego korzystasz 😉 Chodzi mi w szczególności o to, jak jest z dostosowywaniem komponentów do własnych potrzeb, czy ewentualnie pisaniem własnych? Duży problem? To mnie strasznie zniechęciło do JSF w pewnym momencie (wiem, że to zupełnie różne technologie, ale przecież ogólna zasada – korzystania z gotowych komponentów – jest podobna). Jak jest z integracją tego z kodem po stronie serwera?

          Zaznaczam, że nie chodzi mi o to, jak coś zrobić, ale raczej na ile to kłopotliwe w Twej subiektywnej opinii 😉

        13. Awatar bies
          bies

          Gwt: od przypadku, do przypadku — zajmuję się wieloma rzeczami.

          Dostosowanie komponentów: wygląd to CSS, zachowanie to mechanizm zdarzeń podobny do zdarzeń Swinga (listenery).

          Budowanie własnych z podstawowych: żaden problem, tworzysz sobie albo złożony komponent układając podstawowe na jakimś panelu albo piszesz klasę od zera w Javie. Jedno i drugie jest prościutkie (w porównaniu np. do programowania mikrokontrolerów z 3kB RAM 😉 ). Chcesz poczytać (wierz mi, chcesz 😉 ) dokument ,,Building User Interfaces'' w dokumentacji Gwt. Ogólnie polecam Gwt (jak jeszcze google dopisze biblioteki serwerowe dla innych języków niż Java to w ogóle będzie fajnie).

          Poza tym sprawdź bibliotekę Ext GWT.

        14. Awatar genobis
          genobis

          Rozumiem, że można też sobie rozszerzać podstawowe (i przesłaniać co się nie podoba ;-)). Widzę, że zachęcają do zaglądania do źródeł podstawowych komponentów, zobaczymy – w J. już trochę sobie piszę, więc jakoś to może będzie. Dokument widziałem chyba mniej więcej właśnie wtedy jak pisałeś posta, bo byłem ciekaw, jak wygląda API.

          Podoba mi się możliwość użycia CSS (niby detal, ale to wcale nie takie oczywiste w przypadku zbiorów widgetów do JS).

          Ext GWT prezentuje się bardzo ciekawie, bogactwo komponentów zrobiło na mnie niesamowite wrażenie. O tym też wcześniej nie słyszałem…

          Dzięki raz jeszcze za wszystkie informacje, dowiedziałem się od Ciebie paru bardzo ciekawych rzeczy 🙂 O nic już nie pytam, pora na czytanie :]

        15. Awatar bies
          bies

          To jeszcze dodam, że oprócz Ext GWT warto obejrzeć gwt-ext (to 2 różne biblioteki). 😉

        16. Awatar genobis
          genobis

          To ja jeszcze dodam, że widziałem właśnie gwt-ext i myślałem, że to o niej mówisz 😉 No ale tym lepiej, że jest pewna różnorodność.

          Któraś fajniejsza (bogatsza/lepiej dopracowana/lepiej udokumentowana) ?

        17. Awatar bies
          bies

          Obie są podobne, bo gwt-ext to fork Ext GWT (części JS — Ext) z dopisanym wrapperem GWT rozwijany na LGPL (gdzie tymczasem Ext GWT przeszła na GPLv3 + licencja komercyjna). Jeśli potrzebujesz supportu za który chcesz zapłacić to polecam Ext GWT, jeśli wolisz pogrzebać za friko to gwt-ext.

        18. Awatar tomlee
          tomlee

          @trasz: czy istnieją tematy na jakie nie trollujesz? Co do debugingu- tak, można ustawiać breakpointy i podglądać zmienne. Można też używać watcherów, przechwytywania błędów/wyjątków.

          Acha- ten nieistniejący tools, to drugi link w google "javascript debbuger", więc kompromitujesz się coraz bardziej.

        19. Awatar trasz
          trasz

          @tomlee: Tak, istnieja. 😉

          Co do debuggera – zauwaz, ze pytanie o debugger bylo pytaniem wlasnie, nie stwierdzeniem. Ostatni raz bylo mi to potrzebne bodajze trzy lata temu, i wtedy jedynym dostepnym narzedziem byl Firebug, ktory nie nadawal sie do uzytku.

        20. Awatar tomlee
          tomlee

          @trasz: 3 lata temu? Najstarsza znana mi wersja FireBuga jest z stycznia 2006. Ten wskazany debugger (Valkman) istniał już w kwietniu 2005, a powstawał od 2001 roku (jak piszą na stronce).

          Tak więc… sory stary- jak się nie orientujesz to nie udawaj eksperta, a potem wałęsowsko tłumacz co miałeś na myśli. A jak wyrażasz tylko swoje zdanie, niepoparte doświadczeniem to zaznaczaj to w wypowiedzi.

        21. Awatar bies
          bies

          Ekhem, 3 lata temu Venkman już istniał (istniał na długo przed Firefoksem i Firebugiem). Na dodatek działał… Ale od tego czasu nauczyłeś się korzystać z wyszukiwarki, prawda? ;P

        22. Awatar bies
          bies

          tomlee: ja bym jednak proponował, aby zaznaczał zdanie podparte doświadczeniem — taka optymalizacja — będzie miał mniej do zaznaczania. 😉

        23. Awatar trasz
          trasz

          @tomlee: A moze i dwa. Webmasterka to nie byl specjalnie istotny epizod w mojej karierze. 😉 Natomiast o Valkmanie autentycznie wtedy nie slyszalem.

        24. Awatar Marek
          Marek

          @Zbigniew Braniecki. A powiedź mi czym się to PHP tak różni od perla (od którego w końcu się wywodzi) że tyle osób go krytykuje a przychodzi do porównania obu języków nagle kończą się argumenty (już miałem kilka takich dyskusji)?

          perl -e "print 'prawda' if 0==false"

          perl -e "print 'prawda' if 0==true"

          Co do JS masz jak najbardziej rację 🙂

  3. Awatar bies
    bies

    Ok, no to ile lat za Google i ich Gwt?

  4. Awatar Husio
    Husio

    Ale PO CO?! Jak ktoś się nie zna na JavaScript to nie zabiera się za AJAX. Oni na siłę traktują programistów jak niedouczonych kretynów żeby im takie 'dobrodziejstwa' wciskać? To chyba ucieszy tylko dzieciaki które znają jedynie Ruby.

    Kolejny przykład użycia niewłaściwego narzędzia.

    1. Awatar michuk
      michuk

      Rozumiem, że uważasz, że w Google i Microsofcie pracują sami niedouczeni programiści, skoro ta pierwsza firma rozwija swoje ajaxowe aplikacje w Javie przy użyciu Google Web Toolkit, a ta druga właśnie przygotowuje podobne rozwiązanie w Ruby?

      A może to jednak coś nie tak jest z JavaScript?

      1. Awatar Husio
        Husio

        Z tego co przeczytałem na stronie Google Web Toolkit:

        You write your front end in the Java programming language and GWT compiles your source into highly optimized JavaScript

        Czyli pewnie klasyczne helpery. Takie coś istnieje już w wielu językach w tym w Ruby. I nijak ma się to do zastąpienia JavaScript przez Javą.

        Skoro ARAX ma być nową technologią (a nie np biblioteka) to znaczy że zamierzają całkowicie zastąpić JavaScript przez Ruby. Nie parser kodu czy generatory, ale zastąpić całkowicie język, poprzez dodanie kolejnej wtyczki do przeglądarki.

        JavaScript to odpowiednio stworzone narzędzie do konkretnego celu. Nie jest językiem do wszystkiego, ale tam gdzie jest potrzebny działa bardzo dobrze.

        1. Awatar jellonek
          jellonek

          czytac widze umiesz, ale juz ze zrozumieniem gorzej bywa…

          w GWT piszesz w javie, ale nie aplikacje po stronie serwera, a aplikacje uruchamiana po stronie klienta, ktora tez z javy kompilowana jest do formy .js + .css. widze ze najwyrazniej zaczales swoja edukacje od railsow lub im podobnych frameworkow, skoro miast sprawdzic jak to w rzeczywistosci sie ma, przyjmujesz zalozenie ze "pewnie klasyczne helpery" (wcale takie klasyczne nie sa, bo railsy to relatywnie mlody projekt, no chyba ze sie ma nascie lat 😉 ).

        2. Awatar jellonek
          jellonek

          btw.

          Skoro ARAX ma być nową technologią (a nie np biblioteka) to znaczy że zamierzają całkowicie zastąpić JavaScript przez Ruby. Nie parser kodu czy generatory, ale zastąpić całkowicie język, poprzez dodanie kolejnej wtyczki do przeglądarki.

          znowu domysly zamiast zaczac od doczytania…

          silverlight, jako vm dotnetowy, za sprawa wspomnianego na poczatku artykulu pana, bedzie mogl "natywnie" uruchamiac kod, kompilowany pod ironruby. tak wiec tym kolejnym pluginem do przegladarki jest wlasnie silverlight…

  5. Awatar tom
    tom

    Niestety większość programistów to delikatnie mówiąc prochu nie wymyślą . Nawet nie wiecie jak słabych maja największe Polskie firmy. Inną sprawą jest to że nie chcą im płacić tyle co za granicą.

    1. Awatar bies
      bies

      Skąd wiesz, że nie wiemy. Zdziwiłbyś się jak wiele wiemy… Prawda, mój ssskarbie. Wiele wiemy ssskarbie. 😉

  6. Awatar riklaunim
    riklaunim

    czas na APAX (Php, Python, Perl), po tym na AJAAX (Java), nie zapominając o ADAX (D), ACAX (C), AJAAAAAAAAAAAAAAAAAAAAX (dla programistycznych spartan) itd. Wszystko fajnie jeżeli te "ułatwienia" znajdują się wyłącznie po stronie server side bez mieszania silverlight czy flasha 😉

    1. Awatar michuk
      michuk

      AJAAX już jest. Nazywa się Google Web Toolkit.

    2. Awatar Budyń
      Budyń

      Bo tak po prawdzie, to w AJAX to [J] powinno w zasadzie być wymienialne na dowolny jezyk programowania (jak w CGI), podobnie jak sam XML powinien być zamienialny na binary XML. I wtedy można by szaleć…

      1. Awatar mario
        mario

        taki XML w formie binarnej to ASN.1 😉

    3. Awatar jellonek
      jellonek

      sila ajaxa to to, ze czesc aplikacji lezy po stronie klienta, dziki czemu nie musisz odswierzac calej strony, aby zmienic jakies pole, albo np. z serwera sciagasz "formatke", po czym ona za pomoca ajaxa napelnia sie danymi (zmniejszajac koszt przesylania informacji)

  7. Awatar michug
    michug

    Zapowiada się ciekawie, oby tylko to nie byl kolejny "standard" tylko MS, coś jak ActiveX..

  8. Awatar mario
    mario

    Ciekawa jest tylko jedna rzecz: ruby nie jest językiem natywnie wspieranym przez przeglądarki internetowe, więc jak miało by wyglądać wspieranie tego rozwiązania?

    1. Awatar slepiec
      slepiec

      no przecież jest napisane że to będzie obsługiwane przez ms silverlight(coś ale ActiveX, ale nie dokońca), coś czym ms chce wyprzeć flasha jak i javę i pewnie nie przewidują wersji na inne systemy i tylko IE z tym działać będzie. na mono i pochodne je go liczyć nie można raczej, a w każdym bądź razie nie szybko.

Dodaj komentarz

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