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


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….
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]
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.
Cóż, kampanię "Any browser" czas będzie odkopać…
P.S. Znowu Mobile Theme…
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.
Ciekawe czasy nastały – Google psuje standardy, a Microsoft na nich buduje… 😀
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
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…
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 😀
@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.
a js i polowa technologii html5 jak canvas, webGL, css3 to co? dziala moze na serwerze?
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?
Jest nawet dłuższy art dlaczego nie bytecode:
Why Not a Bytecode VM?
Krótko mówiąc, nie umieli zrobić więc naśmiecili.
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
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.
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.
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.
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.
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)
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ę.
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).
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.
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.
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.
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
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ł.
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
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.
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
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
Count is normally completed in competition. To control your emotions to give people warning. After that, the competition begins preventing simultaneously.company formation
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.
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
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
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
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
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
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.
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.