wtorek, października 11, 2011

Wyważanie otwartych drzwi

Po tym jak Google pokazało Darta zaczęło się najeżdżanie na Darta. Głównym zarzutem jest jak zauważyłem to, że Dart jest podobny do Java'y, bo Java to teraz zło....

Nie do końca wiem skąd takie przekonanie, bo wydaje mi się, że siłę języka powinno się mierzyć przy pomocy tego co w nim powstało. W przypadku Java'y jest tego trochę, a są nawet spektakularne "zdrady" w językach w stylu Ruby i powrót do brzydkiej Java'y [i nie jest to jako przytyk do Ruby, bo Ruby on Rails jest świetne do szybkiego developowania, ale jak pokazuje przykład Twittera w pewnym momencie istotniejsze staje się to by mieć architekturę która się ładnie skaluje, a tutaj RoR tak fajne nie jest, ale tu trzeba pamiętać, że dla większości projektów nigdy nie dochodzi do tego etapu gdy wydajność RoR jest zbyt mała, dla miłośników opowieści o technical debt to używając RoR czy innych "sexy" języków też się go zaciąga tylko spłacanie przychodzi w innym momencie].
Tak samo PHP ma za sobą dużo rzeczy, z najsłynniejszych chyba Facebooka.
C ma Uniksy, a teraz np. Linuksa i tak dalej.

Składnia C-like którą ma Dart wcale nie jest najlepsza, bo w przypadku składni języków programowania trudno mówić o "lepszości", ale jest bardziej "naturalna". Większość wiodących języków programowania to języki C-like i głupio by był wybierać inną składnię, która odrzucałaby developerów.
Tutaj trzeba zaznaczyć, że większość developerów na świecie jest "cicha", nie marnują czasu i energii na prowadzenie blogów czy udzielanie się na forach, oni po prostu używają języków by tworzyć oprogramowanie. Z obserwacji mogę wnosić, że wiele z tych osób lubi składnię C-like. Po co więc Google miałoby wywarzać otwarte drzwi i tworzyć nową składnię?
Google kocha Pythona, ale Python przez to, że nie "wygląda" jak C-like ma poważne problemy z przebiciem się przez pancerz ochronny wielu developerów.

Z tego co widać w Darcie poszli śladem Java'y (najpopularniejszego nadal języka wg. Tiobe) z wyrzuceniem z niego pewnych "ciężarów", np. do main nie przekazuje się niczego, nie ma statycznych rzeczy (chyba), private i public zostały wyrzucone z języka, i wszystko jest domyślnie publiczne, za wyjątkiem tego co zaczyna się od podkreślenie _, do tego deklaracje funkcji trochę pozwolili skrócić i np. nie trzeba pisać:

class Point {
var x, y;
Point(var x, var y) {
this.x = x;
this.y = y;
}
}

A wystarczy napisać:

class Point {
var x, y;
Point(this.x, this.y);
}

Niby nic, a ułatwi pisanie wielu rzeczy.
Do tego dodali wyrażenia lambda, jak się wydaje w składni podobnej do tego co ma być w Java 8 (czyli jest już w C#). I tak dalej.

Zamiast wyważać otwarte drzwi postanowili pójść znanym szlakiem i stworzyć język, który ułatwi i da trochę radości masom programistów, którzy znają języki takie jak Java czy C#.
I to jest wg. mnie dobra droga.

Co prawda Dart ma nikłe szanse na to by wejść do wszystkich przeglądarek, ale zrobienie go językiem "ewolucyjnym", a nie "rewolucyjnym" zwiększa jego szanse na to by ludzie go wybierali (czyli też na to by trafiał do przeglądarek). Po prostu może być tańszy w użyciu.


Podobne postybeta
Go dla Java'owca ;-) odcinek 1 "klasy"
IDE dla Go
Całkujący Dart ;-)
Nigdy nie zapominaj o FSM! ;-)
Java, JavaScript, Python, C++, C#? co ma przyszłość? 7 lat później ;-)