Jaki jest obecny stan języka programowania Google Dart? [Zamknięte]

15

Dart jest dostępny od wieków (w latach internetowych), ale sądząc po Google Trends , nie zyskał dużego szumu, a fakt, że działa tylko w Chrome, również nie pomaga. Mimo to Chrome zyskuje udział w rynku każdego dnia, co zapewnia lepszy widok na Dart.

Jaki jest teraz duży obraz? W jakim stanie jest język? Czy ludzie wysoko go oceniają? Udział w rynku? Prezentacja aplikacji sieci Web? Niektóre implementacje funkcji, które sprawiają, że go „ja mam go użyć”?

Mihalis Bagos
źródło
2
To pytanie może zostać uznane za zbyt zlokalizowane w czasie i nie jestem pewien, jak je zmniejszyć, nie pytając o opinię na temat samego języka.
Matthieu,
1
@Matthieu: Zbyt zlokalizowany? Poważnie?
Jim G.
1
@JimG. : W przypadku języka, który jest w wersji 0.06 i który jest aktualizowany co miesiąc , myślę, że można uczciwie powiedzieć, że ten język może nie być taki sam w ciągu najbliższych 6 miesięcy i że każdy wyrok wydany dzisiaj będzie bezużyteczny.
Matthieu,
1
Dart działa w nowoczesnych przeglądarkach, kompilując go w JavaScript.
Seth Ladd
2
Naprawdę nie rozumiem, dlaczego został zamknięty. Wymaga faktów (udział w rynku / wykorzystanie), referencji (przykłady online itp.), Stanu, w jakim znajduje się język (podgląd techniczny, jak podano w odpowiedziach), implementacji funkcji (fakt / referencja / wiedza specjalistyczna). Post zawiera nawet informacje podobne do tych, których się spodziewa, które są zwięzłe i na temat
Mihalis Bagos

Odpowiedzi:

27

Krótka odpowiedź na pytanie „Jaki jest stan Dart?” jest: jest w Przegląd technologii. Jest to szczególny sposób powiedzenia: „uruchomiliśmy program wcześniej, abyśmy mogli otworzyć wszystko na zasadach open source i pracować na otwartej przestrzeni”. „Podgląd technologii” oznacza również „nie jesteśmy jeszcze w wersji Alfa, mamy dużo pracy do wykonania, ale jest wystarczająco dużo miejsca do zabawy i wyrażania opinii”.

Czas w Internecie może być przydatny w przypadku wiadomości lub iteracji produktów konsumenckich, ale prawdopodobnie nie w przypadku czegoś tak ambitnego i szerokiego jak wysiłek Dart. Pamiętaj, że Dart to coś więcej niż język. Jest to także zestaw bibliotek, lepszy interfejs DOM, maszyna wirtualna, edytor i integracja z Chrome. Zespół bardzo ciężko pracuje nad wieloma równoległymi wątkami, ale osobiście spodziewam się, że minie sześć miesięcy, zanim będziemy mieli większość elementów.

To nieprawda, że ​​Dart działa tylko w Chrome. Dart kompiluje do JavaScript i celuje w nowoczesne przeglądarki. Jasne, Chrome będzie pierwszym, który uruchomi się z natywną obsługą Dart, ale zapewnienie kompilacji Dart do wydajnego i skutecznego JavaScript jest głównym ograniczeniem i cechą projektu.

Ogólny obraz jest taki, że Dart stanie się środowiskiem programistycznym obejmującym baterie dla nowoczesnych aplikacji internetowych. Celem firmy Dart jest zapewnienie, że sieć pozostanie produktywną i przyjemną platformą do opracowywania i wdrażania aplikacji. Oznacza to, że trzeba wprowadzić wiele elementów: język, biblioteki, edytory, maszyny wirtualne i integrację z przeglądarką. Podsumowując, uważamy, że Dart będzie atrakcyjną opcją dla współczesnych twórców aplikacji internetowych.

Duży duży WIELKI obraz polega na tym, że chcemy wprowadzić twórców aplikacji do Internetu i chcemy, aby twórcy stron internetowych pisali bardziej złożone aplikacje internetowe. Jeśli używają Dart, to świetnie. Ale pod koniec dnia język nie ma znaczenia. Liczy się tylko to, że budowane są złożone, po stronie klienta, wysoka wierność, małe opóźnienia, piękne nowoczesne aplikacje internetowe.

Język jest w fazie rozwoju. Nowe wersje specyfikacji widzimy mniej więcej raz w miesiącu. Brakuje głównych funkcji, takich jak odbicie, ale ciągle się powtarzamy. Właśnie dodaliśmy na przykład obsługę map () do Collection. Gilad Bracha, facet, który zna swoje języki (stworzył NewSpeak i pracował nad Java Lang Spec) i Josh Bloch, facet, który zna swoje biblioteki (napisał Effective Java i pracował nad bibliotekami Java Collection) pracuje nad językiem i biblioteki wraz z większym zespołem.

Czy ludzie bardzo wysoko oceniają Dart, trudno go uogólnić i prawdopodobnie nie ma to dla ciebie większego znaczenia. Powinieneś wyciągnąć własne wnioski po grze w Dart. Z mojego doświadczenia wynika, że ​​twórcy aplikacji z innych platform, takich jak Java, C # lub Flex, uważają Dart za atrakcyjną i znaną. Moje doświadczenia z programistami JavaScript są podzielone. Jeśli ten programista JavaScript stworzył również aplikacje na innych platformach, jest ostrożnie optymistycznie nastawiony do Dart (lub przynajmniej rozwiązania, które stara się zapewnić). Jeśli ten programista JavaScript wyrósł na JavaScript i programował tylko w JavaScript, jest więcej wątpliwości. Może to być podstawowa obawa dotycząca języka lub wahanie się w opuszczeniu strefy komfortu, lub po prostu brak napotkanych problemów z JavaScript. To tylko uogólnienie, ale ja ”

Jeśli chodzi o udział w rynku, jest to bardzo wcześnie w grze. Prawdopodobnie nie jest to właściwe pytanie, ponieważ Dart nie jest nawet wysyłką. Bardziej interesującym pytaniem byłoby: „Jaki jest udział w rynku aplikacji w Internecie?” a następnie wymyśl, jak możemy rozwiązać ten problem.

Jeśli chodzi o prezentację aplikacji sieci Web, zespół Dart zbudował Swarm, zręczny czytnik wiadomości. Niestety, mamy go teraz tylko w kodzie źródłowym: http://www.dartlang.org/samples/index.html

Jeśli chodzi o niektóre funkcje „zabójców”, powiedziałbym, że jest kilka całkiem interesujących:

  • typy opcjonalne są zręczne, dodają adnotacje i dokumentacje dla ludzi i maszyn.
  • Isolates to świetny sposób na osiągnięcie współbieżności w bezpieczny sposób.
  • Biblioteki (modułowość) są bardzo potrzebne dla stosu WWW, a Dart ma biblioteki i klasy.
  • Migawki pozwolą na wyjątkowo szybkie uruchomienie
  • Dołączone biblioteki (takie jak kolekcje, stoper itp.) Ujednolicą podstawy kodu i zmniejszą kod wysyłany
  • Ładny nowy interfejs DOM, który sprawia, że ​​praca z DOM jest znacznie przyjemniejsza. To przypomina natywny kod Dart.

Mam nadzieję, że odpowiedziałem na twoje pytania. Wydaje mi się, że jedynym pytaniem, które się liczy, jest: „Czy mój język pomaga mi tworzyć złożone, wierne, o niskim opóźnieniu modularne i nowoczesne aplikacje internetowe?” Ostatecznym stanem tego wszystkiego jest po prostu pomoc większej liczbie twórców aplikacji w dostarczaniu skuteczniejszych aplikacji do nowoczesnej sieci.

Seth Ladd
źródło
przyszedł do tego wątku podczas oglądania Twojego filmu Introduction to Dart. Gotowy na praktyczne ćwiczenia Dart. :)
SachinGutte
8

Nie można mierzyć wieku języka programowania w „latach Internetu”. W rzeczywistości nie można zmierzyć żadnej rzeczywistej technologii w latach internetowych. Wszystko, co można naprawdę zmierzyć w latach internetowych, to hipnotyzery, ale nie odzwierciedlają rzeczywistości.

Dart jest publiczna od 3 miesięcy. Porównaj to z „świeżymi” i „gorącymi” technikami w tej dziedzinie, takimi jak CoffeeScript lub Node.js, które są dostępne publicznie odpowiednio od 2 lat i prawie 3 lat. Warto również zauważyć, że oba są stosunkowo małymi krokami w porównaniu do Dart. Zasadniczo CoffeeScript oznaczał podłączenie generatora JavaScript do parsera opartego na Ruby, a Node.js oznaczało wiązanie nieblokujących operacji we / wy z Google V8.

Dart jest próbą przeprojektowania programowania WWW na wszystkich poziomach, tj. Składni, funkcjach językowych, środowisku uruchomieniowym, interfejsach API. Na przykład porównanie Dart z CoffeeScript przypomina porównanie prototypu osobistego samolotu z napędem na energię słoneczną, z samokontrolą i Shelby GT z 1968 roku. Jasne, ta pierwsza ma znacznie większy potencjał, ale inwestowanie w nią, nie mówiąc już o jej wejściu na pokład, wymaga dużej śmiałości. Te ostatnie mają wiele znanych braków, ale są one znane, co sprawia, że ​​całość jest przewidywalna i niezawodna.

Oczywiście to tylko spekulacje, ale myślę, że Dart to ślepy zaułek, który ostatecznie zostanie uratowany za posuwanie się naprzód w JavaScript lub inne rozwiązania. Jeśli chcesz dynamicznego języka, CoffeeScript i Parenscript już robią to, co obiecuje Dart. Jeśli wolisz język o typie statycznym, haXe i Opa załatwią sprawę. Wszystkie cztery mają przewagę w Dart. Wszystkie są zaprojektowane do domyślnej kompilacji do JavaScript, a nie tylko jako rezerwy.

back2dos
źródło
3
Myślę, że chociaż Dart jest nowy jako język, nie widziałem w nim niczego szczególnie innowacyjnego . O ile wiem, składa się głównie z funkcji starszych języków. Więc tak naprawdę nie jest to bardzo podobny do „prototypu samotnego, napędzanego energią, samokierującego samolotu osobistego”.
Tikhon Jelvis
@ back2dos +1 „Nie można zmierzyć wieku języka programowania w„ latach Internetu ”. W rzeczywistości nie można zmierzyć żadnej rzeczywistej technologii w latach Internetu”. To otworzyło dla mnie nowy wgląd. Dlaczego nie można i jak można mierzyć technologię w epokach przed i po Internecie?
Ubermensch
@TikhonJelvis: Porównanie dotyczyło raczej dojrzałości. Mimo to istnieje energia słoneczna, autopilot i lotnictwo, więc pojazd, który opisałem, jest podobny do Dart, „po prostu” rekombinacja istniejących pomysłów. Wyzwanie inżynieryjne nie polega na rekombinacji, ale na lataniu;)
back2dos
Porównanie Dart do innych języków jest wyłączone z tej dyskusji i, o ile mogę sobie wyobrazić, do jakiejkolwiek dyskusji, ponieważ i tak są to różne rzeczy. Dart jest czymś więcej niż preprocesorem i na pewno nie jest zorientowany na serwer. Zgadzam się jednak ze spekulacjami na temat przyszłości rzutek i to była jedna z rzeczy, na którą nie mogłem się doczekać
Mihalis Bagos
@MihalisBagos: Cóż, ponieważ Dart można skompilować do JS, możesz go już uruchomić na Node.js, więc można go używać po stronie serwera. Również czas jest trudny do zmierzenia, więc aby zrozumieć, jak daleko Dart może posunąć się w jakim czasie, porównanie z danym językiem na dalszym etapie ze zrozumiałą liczbą funkcji jest właściwie najlepszą ramą odniesienia, jaką możesz uzyskać.
back2dos
5

Dart jest nadal w wersji technicznej. W chwili, gdy specyfikacja języka ma wersję 0.0.6, w tym tygodniu spodziewana jest wersja 0.0.7. Jest daleki od „pełnego”. W repozytorium znajduje się kilka przykładów: http://www.dartlang.org/samples/index.html

Oto jedno spojrzenie na to, co jest lepsze pod względem składniowym niż w JavaScript: http://www.grobmeier.de/10-reasons-hy-dart-is-cooler-than-javascript-03012012.html Uwaga: to mój post . Muszę powiedzieć tutaj, że lubię JavaScript, ale w niektórych momentach ma dziwactwa, których bardzo nie lubię.

Wokół jest także rosnąca społeczność: http://www.dartosphere.org

Niektórym udało się przenieść Box2D do Dart, innego faceta podłączonego do CouchDB. W każdym razie nie ma nic, czego powinieneś używać w produkcji.

Przed chwilą Josh Blochua dołączył do zespołu, aby pracować nad refaktoryzacją interfejsu API. Możesz spodziewać się pewnych zmian nawet w Core API.

Obsługa przeglądarki: możesz przekompilować Dart do JavaScript, najlepiej za pomocą Frog (nie DartC, kompiluje się do ogromnych plików javascript). Dartium to jedna z przeglądarek obsługujących rodzimą Dart, gdzieś kontrowersyjna gałąź Webkit.

Moim osobistym oczekiwaniem jest uzyskanie czegoś bardziej konkretnego w połowie przyszłego roku. Z mojego doświadczenia Google Devs robi wiele, aby język był odpowiedni i dobry, zapożyczając nie tylko z Java, ale także z Erlang i JavaScript.

Oto przykład gry przeniesionej z JavaScript: http://blog.sethladd.com/2011/12/10-lessons-from-porting-javascript-to.html

Można oczekiwać, że Dart pojawi się na Androidzie, może nawet jako „główny język”. Ludzie mówią, że przyjdzie na AppEngine.

Osobiście uważam, że Dart jest bardzo elegancki i już całkiem ładny. Ponadto myślę, że po zakończeniu będzie on miał udział w rynku.

Odpowiedzi na wiele pytań znajdziesz w tym FAQ: http://www.dartlang.org/support/faq.html#compare-to-coffeescript

chrześcijanin
źródło
Dzięki za praktyczną odpowiedź, bardzo interesujące linki!
Mihalis Bagos
0

Dart jest dostępny od wieków (w latach internetowych)

Nie jest nawet szeroko stosowany i jest niedojrzały. Technologie gotowe do produkcji istnieją od 10-15 lat ... dla Dart nie można nawet powiedzieć, że to pre-alpha. Nowe technologie zawsze dobrze wyglądają na papierze, gdy nikt ich nie używa.

nie ma dużo szumu

Myślę, że jest odwrotnie. Szkoda, że ​​tak zły, zacofany język otrzymał tak pozytywne recenzje. Wraca od pięknego OOP Ecma / Java Script z pasożytniczym dziedzictwem, zamknięciami i wywołaniami zwrotnymi do jakiegoś drewnianego, dziesięcioletniego OOP pobranego z Javy ze wszystkimi okropnymi praktykami programistycznymi, z którymi Java się wiąże.

Niektóre implementacje funkcji, które sprawiają, że mówisz „muszę go używać”?

Żaden. Jeśli znasz Javę i masz nietolerancję wiedzy, aby poprawnie uczyć się Ecma / JavaScript, Dart jest prawdopodobnie jedyną rzeczą, która zadziała.

Wiesz, jak działa Google. Często używają Javy, więc prawdopodobnie dlatego stworzyli tak okropny język ... są po prostu przyzwyczajeni.

Poza tym dalej fragmentuje sieć i mogę mieć tylko nadzieję, że Mozilla i Opera nigdy tego nie zaimplementują (ponieważ MS na pewno nie doda obsługi niektórych języków takich jak Google Java). Poza tym cała koncepcja jest przestarzała, powinniśmy pozbyć się języków takich jak C ++ lub Java, przynajmniej podczas kodowania interfejsów użytkownika, ponieważ są one bardzo nieskuteczne. To tak, jakby zastąpić C ++ Asemblerem, ponieważ koderzy pod koniec lat 50. nie chcą uczyć się nowych rzeczy.

Sławek
źródło
2
Możesz nieco stonować swoje uprzedzenia językowe; twój pierwszy akapit stanowi dobre podsumowanie i kończysz na miłej obserwacji, ale gubią się we wszystkich „okropnych”.
Patrick Hughes,
+1 po stonowaniu, c ++ jest nadal bardzo żywy (podobnie jak asembler) dla określonych aplikacji. To może nie być najlepsze narzędzie do każdej pracy, ale w wielu okolicznościach jest niesamowite. Asembler jest wykorzystywany na przykład w silnikach gier.
Paul Hiemstra
Nie powiedziałem, że Java lub C ++ jest zły ... oba są złe dla interfejsów użytkownika, a JS jest używany (przede wszystkim) do programowania. Oba są dobre w innych obszarach. Dart jest po prostu naiwnym podejściem przez ludzi, którzy programują tylko w Javie, więc prawdopodobnie myślą, że Java jest dobra na wszystko. Poza tym pracowałem z MFC i Javą w interfejsach użytkownika, więc myślę, że mam prawo tak powiedzieć :) To tak, jakby powiedzieć, że Asembler jest bardziej zaawansowany niż C, ponieważ ASM jest wszystkim, co wiesz :)
Sławek
Pracowałem z Javą i JavaScript i mogę powiedzieć, że twój post jest okropny i naiwny. Języki programowania nie są religią, a Dart ma całkiem dobre podejście. Nie sądzę, że możemy lub powinniśmy się pozbyć języków takich jak Java. To jest po prostu mowa hakera bez żadnego uzasadnienia.
Christian
Rozumowanie? Możesz zrobić to samo w JS, co w Javie ... tylko kilka CZASÓW szybciej + kod jest znacznie łatwiejszy do zarządzania i zmiany, jeśli mówimy o interfejsach użytkownika. Czas = pieniądze. Było wystarczająco źle, gdy mieliśmy VBScript i ECma w przeglądarkach razem ... po co wracać do lat 90-tych? JS to specyficzny język dla bardzo konkretnego przypadku, dlaczego zastąpić go czymś ogólnym i gównianym?
Sławek
0

Dart to błędna koncepcja podążająca śladami Javascript. Google powinien współpracować przy tworzeniu standardowego środowiska wykonawczego dla przeglądarek internetowych (coś w rodzaju HTML 6). Podobne do kodu bajtu Java lub IL firmy Microsoft.

Nie powinniśmy standaryzować określonych języków, ale środowiska wykonawczego. „Przeglądarka to system operacyjny”. Dobrze? WTF Google? Podążaj za własną wizją !!!

Lord Tydus
źródło
2
Kod bajtowy Java jest określonym językiem. Podobnie jak CIL.
Jörg W Mittag