Dart – nowy język programowania od Google w wersji M1

  • Home
  • /
  • Blog
  • /
  • Dart – nowy język programowania od Google w wersji M1

Data: 17 października, 2012

W ostatnich latach silniki javascript znacząco przyspieszyły. Mimo to trudno jest w tym języku pisać duże aplikacje ze względu na jego dynamiczną naturę. W odpowiedzi na ten problem w ostatnich latach pojawiło się wiele języków kompilowanych do javascriptu. Jednym z nich jest Dart od Google, który właśnie osiągnął wersję M1.

Dart to nowa otwarto-źródłowa technologia która wg jej twórców ułatwia tworzyć aplikacje webowe dzięki: nowemu opcjonalnie typowanemu językowi, zestawowi bibliotek i edytorowi. Można go używać zarówno po stronie przeglądarki gdzie jest kompilowany do javascript lub w maszynie wirtualnej Darta wbudowanej w Chromium, jak i po stronie serwera.

Rok temu Google upubliczniło Darta jako pokaz możliwości technologii (ang. technology preview). Od tego czasu nastąpiło sporo zmian.

Składnia języka jest bardziej zwartą wersję popularnych języków programowania java i c#, ograniczoną jednym z głównych celów Darta jakim jest kompilacja do efektywnego javascriptu.

Dart ma dwie bardzo ciekawe cechy. Pierwsza z nich to możliwość serializacji stanu aplikacji (poprzez serializację sterty) na poziomie maszyny wirtualnej (ang. vm snapshotting), dzięki czemu programy Dart mogą uruchamiać się nawet do 10 razy szybciej w porównaniu do wersji skompilowanej do javascript. Druga ciekawa własność, to mechanizm przetwarzania równoległego (ang. concurrency) isolates, którego koncepcję zaczerpnięto z Erlanga.

Dart ma bardzo aktywną listę dyskusyjną i bogatą dokumentację. Edytor i SDK (wersje linux, mac, windows) można pobrać stąd.

Zachęcam do przeczytania dokumentu FAQ, obejrzenia wstępu do Darta, jak również do czytania artykułów, przeglądania API i obejrzenia materiałów wideo dotyczących Darta na stronie samego Darta

Podobne wpisy

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone


  1. adios pisze:

    M1 .. znajac googla to jeszcze wiele tam zmieni – tak jak bylo to z go …. Co sprawia ze jeszcze ten jezyk nie nadaje sie pod katem biznesowym…. trzeba poczekac przynajmniej do RC
    Ale jesli ktos ma wolny czas – to warto poswiecic swoj czas…. bo na pewno bedzie wygodniejszy niz java czy js….

    1. tomaszkubacki pisze:

      Gilad Bracha (jeden ze współtwórców Darta) twierdzi że raczej już nie powinno być zmian które zmieniają diametralnie Darta [youtube r6jG2cSocME&t=41m12s http://www.youtube.com/watch?v=r6jG2cSocME&t=41m12s youtube]

  2. mikolajs pisze:

    No to zacznie się wojna na technologie. Microsoft ma TypeScript, a Google Dart, każdy będzie chciał przepchnąć swoje rozwiązanie. Chyba nadchodzą trudne czasy dla deweloperów webowych.

    1. Cóż, kampanię "Any browser" czas będzie odkopać…

      P.S. Znowu Mobile Theme…

    2. Tomasz Kubacki pisze:

      Darta i Typescript dzieli filozofia rozwiązania problemu pisania dużych aplikacji webowych. Typescript to puder na javascript a Dart to nowy język + framework + edytor na wszystkie platformy.

      TypeScript to nadzbiór javascript (ze wszystkimi jego wydajnościowymi pułapkami). Jego główną wadą
      jest to że nie broni programisty przed legalnymi konstrukcjami JS które są bardzo niewydajne dla VM javascript.

      Dart to jednak nowy język, który jest szybki w wersji kompilowanej do js i może być wydajny jak c# czy java jeśli będzie używał VM. Już teraz Dart jest szybszy w niektórych benchmarkach niż aktualnie najszybszy silnik javascript: V8 z Chrome (VM Darta jest robiony przez tych samych ludzi którzy robili V8 co mu dobrze wróży na przyszłość).

      Na korzyść Typescript przemawia to że firmy preferują rozwiązania Microsoftu.

      1. Budyń pisze:

        Ciekawe czasy nastały – Google psuje standardy, a Microsoft na nich buduje… 😀

        1. Tomasz Kubacki pisze:

          To jest jakiś argument ale:
          a) Google twierdzi że javascript jest nie do uratowania do taniego pisania dużych aplikacji
          (znają temat z pierwszej ręki w końcu robią gmaila google documents)
          b) Dart jest open source tak samo jak TypeScript a Google nie ma przeszłości 'standardu VBScript' w przeglądarkach który był zamknięty

  3. Budyń pisze:

    Ciekaw jestem, kiedy świat się wyleczy z zaczadzenia koncepcją zaajebistości "aplikacji webowych" (w.t.f) ?
    Z natury powolne, niekompatybilne, trudne w rozbudowie.. mamy tel. komórkowe mocniejsze od niektórych desktopów, przeciętny PCet zabija wydajnością high-endowy serwer sprzed 6 lat i cały ten power przerabiamy na co ? Na "thin client" dla technologii słabszych niż Java w momencie wprowadzenia…. smutek i żal po prostu.
    W dodatku, to beznadziejnie i niespójnie rozwalone przetwarzanie między klientem a serwerem….
    … niech sobie każdy pisze co chce, tylko niech to to przeglądarka dostaje w postaci z której będzie mogła wygenerować bytecode CLR / JVM i tyle…

    1. DeBill pisze:

      Może właśnie do tego zmierzamy? Albo raczej wracamy :P. Do cienkich klientów, więc niepotrzebne okażą się potężne komputery pod biurkiem zjadające setki watów. Wystarczą słabe wynalazki jak Raspberry Pi.

      Oczywiście nie wszędzie musi się to sprawdzić, ale większość moich znajomych (część 'nieinformatyczna' :P) spokojnie obejdzie się bez superkomputera pod biurkiem. Muzyka, fotki, filmy, (video)czat, jakieś tam fejsbuki – spokojnie wystarczy do tego sieć. Poza tym zauważ, że cała masa programów nie wymaga cudów. Programy księgowe, magazynowe, pakiety biurowe itp. często działałyby sprawniej w chmurze niż na niektórych pecetach jakie przewinęły mi się przez ręce 😀

      1. Budyń pisze:

        @DeBill
        Widzisz, ale ciężar zostanie przerzucony na serwery – po co ?
        Wreszcie, niektórzy nadal wolą mieć wszystko u siebie, a nie w enigmatycznej "chmurze". Moje dane, ba nawet moja chmura, moja sieć – moją twierdzą.
        Przytomnie napisana aplikacja zawsze będzie szybsza działając lokalnie, niż w dalekim DC.

        1. adios pisze:

          a js i polowa technologii html5 jak canvas, webGL, css3 to co? dziala moze na serwerze?

    2. Tomasz Kubacki pisze:

      Jeśli by użyć vm Darta (jest open source) aplikacje będą mogły być równie szybkie jak javy czy .net a przy tym, będą startować szybciej (wspomniany vm snapshotting)

      Dlaczego nie bytecode jest w FAQ:

      Q. Why didn't Google build a bytecode VM targetable by multiple languages including Dart?

      1. Tomasz Kubacki pisze:

        Jest nawet dłuższy art dlaczego nie bytecode:

        Why Not a Bytecode VM?

        1. Budyń pisze:

          Krótko mówiąc, nie umieli zrobić więc naśmiecili.

          1. Tomasz Kubacki pisze:

            krótko mówiąc jak będziesz miał autorytet kogoś kto ma 26 lat doświadczenia pisania VM i udokumentowane osiągniecia (v8 Lars Bak) to możesz ferrować tak zdecydowane sądy – inaczej wychodzisz na @Budynia

          2. wladca_kodu pisze:

            Zbytnie zawierzanie autorytetom i dużemu doświadczeniu nazbyt często prowadzi na manowce. Jak V8 dorówna wydajnością choćby Javie, to zobaczymy. Na razie się mocno napinają a i tak w wielu benchmarkach dostają bęcki 4-10x. Podobnie jest z Google Go, które niby miało być natywne i szybkie, a i tak jest mocno w tyle z wydajnością za C, Javą i Scalą i to w benchmarkach robionych przez samego Google.

          3. Tomasz Kubacki pisze:

            Problem w tym że NIE DA się zrobić szybszej od jvm maszyny dla javascriptu (choćby z powodu takich kwiatków jak tworzenie propertów w locie). Nie ma szybszego silnika js niż V8 – nawet MS jest daleko w tyle.

          4. Budyń pisze:

            No, póki co ten autorytet przyznał wprost, że nie umiał. I kto tu go podważa ?
            Fascynuje mnie, doprawdy, naiwność ludzi którzy sądzą że problemy rozwiąże "silver bullet" w postaci nowego egzotycznego języka programowania.

          5. Tomasz Kubacki pisze:

            Ty niczego nie podważasz – po prostu konfabulujesz, że wiesz że "nie umieli".

            Dart ma szansę rozwiązać problem dużych aplikacji webowych, jeśli będzie w tym dobry to się przyjmie a jak nie, to znaczy że nie jest dość dobry. Sam język jest mocno podobny do javy i c# (jest jeszcze bardziej zwarty od c#) i możesz go opanować w godzinę więc nie jest egzotyczny.

          6. mikolajs pisze:

            Aby język się przyjął musi być wiele lepszy niż poprzednie. Zobaczymy czy Dart taki się okaże. Nie łatwo będzie zachęcić do przenoszenia aplikacji w JS na Darta. Może się okazać że Dart będzie używany tylko w zamkniętych aplikacjach dla Googla (Chrome itp)

        2. wladca_kodu pisze:

          Argument z koniecznością weryfikacji bajtkodu jest faktycznie istotny. Natomiast wszystkie pozostałe problemy nie stają się wcale łatwiejsze przy source-code VM, a dochodzi jeszcze problem konieczności analizy syntaktycznej i semantycznej źródła, co zwykle wymaga większego nakładu pracy niż weryfikacja bajtkodu. W skrajnym przypadku dla języka, który ma bardzo rozbudowany system typów (np. Scala), kompilacja nawet bez optymalizacji jest bardzo, bardzo złożonym procesem i w porównaniu z uruchamianiem bajtkodu trwa całe wieki.

          Poza tym problemy z bajtkodem, które przedstawili w artykule wynikają głównie z tego, że bajtkod JVM nie był projektowany z myślą o innych językach. W przypadku CLR nie ma już tylu problemów, no a wykorzystując tę wiedzę można było zaprojektować coś lepszego.

          Czyli krótko mówiąc – nie umieli zrobić porządnie, więc dorobili sobie teorię.

          1. Tomasz Kubacki pisze:

            O ile trudno mi się odnieść do tego czy "nie umieli" (i szczerze mówiąc wątpie że masz więdzę, aby to oceniać) to w sekcji: "The case for a language VM" piszą o tym że dla nich kluczowe jest skrócenie iteracji dla finalnego programisty (w domyślnie usuwasz krok kompilacji do bytecodu i masz szybciej działający kod wynikowy).

          2. wladca_kodu pisze:

            No, już bez przesady. Mogliby zrobić hybrydę jak w Pythonie. VM, który opcjonalnie kompiluje źródło do bajtkodu w locie.

            Nie wiem, czy nie umieli, czy nie mieli czasu, ale zaprojektowanie porządnego bajtkodu jest znacznie trudniejsze niż "language VM" – jest znacznie mniej swobody i więcej pułapek. Natomiast kompilowanie do języka wysokopoziomowego jest znacznie trudniejsze niż kompilowanie do bajtkodu (i zwykle robi się to tak, że kompiluje się do bajtkodu np. LLVM, a następnie dekompiluje do pożądanego języka, a nie wprost). Czyli zaoszczędzili sobie dużo pracy kosztem twórców innych języków, którzy później będą musieli tę żabę przełknąć i jakoś do Darta kompilować. No chyba, że Dart okaże się tak rewelacyjny, że wszyscy będą w nim pisać bezpośrednio.

          3. Tomasz Kubacki pisze:

            Z mojej perspektywy: niech zrobią cokolwiek co będzie wydajne i usunie nidomagania javascriptu.
            Dziwię się że Microsoft nie podchodzi do js agresywniej i nie próbuje zrobić .NET dla sieci jako otwarty standard – wtedy przy rozsądnej licencji nawet Google by tego używał.

            Gdyby Silverlight był w pełni opensource – bylibśmy dzisiaj znacznie dalej.

          4. melon pisze:

            JS Harmony już niebawem, kolejny krok milowy a nie "hopsnięcia" typescriptów czy innych badziewi. Google zamiast pomóc udoskonalać Harmony to próbuje ratować Javę wrzucając ją do weba, ale nudne i drewnianie programowanie w Javie niech zostanie w czterech ścianach nudnych pokoi, w nudnych korporacjach gdzie pracują nudni ludzie.

  4. Tomasz Kubacki pisze:

    Jeszcze jeden link z konferencji Strange Loop Lars Bak odpowiedzialny za Darta o wydajność V8 i Darta Pushing The Limits of Web Browsers … or Why Speed Matters

  5. Virtual Terminal pisze:

    Dziwię się że Microsoft nie podchodzi do js agresywniej i nie próbuje zrobić .NET dla sieci jako otwarty standard – wtedy przy rozsądnej licencji nawet Google by tego używał.

  6. coldymilligan pisze:

    Grāmata nav plaši lasīt daudzi cilvēki šajās dienās. Ikvienam būs ļoti apmierināti ar daudz veidu šo nozīmīgo grāmatu. Bet nav daudz cilvēku, kuri saprot arī grūtības, padarot grāmatu.
    highadventureair

  7. box-n-go pisze:

    Un error en este caso no es encontrar a las personas adecuadas para ayudarle en este sentido. Todos los problemas se pueden resolver, siempre y cuando buscó y encontró a la persona adecuada.

  8. kenairiverbend pisze:

    Si se yon sèl okipe, konpayi yo ki lòt yo ka rekòmande, ak vis vèrsa. Si youn ap kouri soti nan matyè premyè, lòt la ka ede w. Yo te kapab dakò tou sou fwontyè a, ak kliyan an se sib la nan chak konpayi.
    kenairiverbend

  9. Cold Laser pisze:

    Ja Jums ir ballēties un jautri, kā jūs varat sagaidīt, lai iegūtu labus rezultātus no jūsu mārketinga? Tur nekad nebūs labs laiks to darīt brīvdienu, varbūt tāpēc, ka jums ir pārāk aizņemts, nekādi līdzekļi vai nē aprūpes uzņēmējdarbības, ja jūs atrodaties vietā, tālu prom.
    Cold Laser

  10. ReynaMoon pisze:

    Count is normally completed in competition. To control your emotions to give people warning. After that, the competition begins preventing simultaneously.company formation

  11. forex forecast pisze:

    Nie ma z pewnością zajmie znacznego budżetu. Musi obsługiwane przez wiele osób, ponieważ nie istnieje wiele rzeczy można zrobić samemu w celach turystycznych.

  12. KennethGrace pisze:

    Training strategy at times changes from one time and energy to some various different. After that, the particular principle from the coach will influence. The typical strategy could be the very similar yet, the particular training will change.beste digitale camera kopen

  13. erickgoyder pisze:

    Ako ste poslati narudžbu putem e-maila, naručiti isti dan dolaska. Oni su virtualni dućan na internetu, a vi samo izgledati i gdje ga kupiti sa kreditnom karticom.
    Axis Deer Hunting in Texas

  14. DennisLohan pisze:

    Wszystkie obiekty, które będą stosowane w systemie będzie to bardzo ważne, aby być stosowane zgodnie z ich funkcją. Możesz zrobić wiele zmian zgodnie z potrzebami systemu. Orlando Investment Property

  15. salmon fishing pisze:

    Inițiative de marketing , cum ar fi acestea pot fi utilizate pe scară mai largă de către medici și bănci . Veți primi o notificare de conduită sau orice altceva , cu un preaviz politicos .
    salmon fishing

  16. meltowndenise pisze:

    Guidelines for making an account is important. It helps the author to stick towards the goal. Then, the storyline will not talk about illogical feel. <a href="http://www.seattlebankruptcylawyers.net” target=”_blank”>www.seattlebankruptcylawyers.net

  17. Minnesota Bankruptcy pisze:

    There are many ways that can be used by parents to be able to make her gain knowledge. Everyone will be able to choose which events are good and do not.

  18. probate attorneys pisze:

    These gloves have a very funny color. There are so many people who have a desire to be able to have the gloves of the same color with his son.

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}

Newsletter OSnews raz w tygodniu. Bez reklam.