Czego jak czego, ale języków programowania nie brakuje na tym świecie – od tak popularnych jak Java czy Python po tak niszowe jak R. Po co więc kolejny język? Tym razem po to, by uwolnić nas od zbędnej złożoności, z którą wiąże się dziś programowanie. Tak przynajmniej twierdzą twórcy języka Dark, którego twórcy właśnie publicznie debiutują ze swoim „bezwdrożeniowym” modelem produkcji software.
Przez kilka ostatnich lat od początkowej zapowiedzi dla inwestorów, Dark pozostawał w ukryciu. Startup budował w tym czasie swoją unikalną platformę programistyczną, zaprojektowaną tak, aby realizować założenie „bezwdrożeniowości”: pisząc swoją aplikację w języku Dark wewnątrz edytora Dark, automatycznie wdrażasz ją na infrastrukturze Dark, postawionej na chmurze Google’a. Nie musisz nic wiedzieć o tych wszystkich nowoczesnych mechanizmach wdrożeniowych, specjaliści od devopsów mogą umrzeć z głodu.
Programowanie bez przypadkowej złożoności
Z założenia Dark ma być bowiem Dark „holistycznym” językiem programowania, ustrukturyzowanym edytorem i infrastrukturą – za pomocą której można budować wszelkiego rodzaju backendy usług i aplikacji. Twórcy języka adresują go głównie do programistów zajmujących się frontendem, backendem i aplikacjami mobilnymi, twierdząc, że uczynią programowanie sto razy łatwiejszym niż dziś.
Problem bowiem w tym, że budowanie aplikacji stało się dziś niezwykle złożonym procesem, a duża część tej złożoności jest przypadkowa, w niczym nie związana z rozwiązywaniem problemu biznesowego, jaki zaadresować ma aplikacja. Jak wyjaśniają twórcy Darka, pisanie oprogramowania to po prostu wprowadzanie danych, manipulowanie nimi, przechowywanie ich i wysyłanie ich gdzieś dalej. Te proste koncepcje możliwe są do nauczenia się z samouczków programowania.
Dzisiaj jednak, aby zbudować biznesową aplikację, ta czysta wiedza programistyczna nie wystarczy. Trzeba znać się na takich rzeczach jak Kubernetes, Docker, Git, SQL, NoSQL, GraphQL, npm, DNS, memcached, JWT, Nginx, czy co tam jeszcze – dziesiątkach konkretnych rozwiązań technicznych, bez których oprogramowanie po prostu by nie mogło działać. O uniksowej filozofii „Keep it simple, stupid” nikt już nie pamięta, każde nowe narzędzie dla programistów jest lepsze od poprzedniego, ale zarazem dokłada swoją warstwę złożoności, bez usunięcia złożoności poprzednika.
Rozwiązać ma to połączenie języka programowania, środowiska programistycznego (IDE) oraz infrastruktury w jedno. Jako język holistyczny (ale nie uniwersalny), Dark został zaprojektowany tak, aby każdy element współpracował z innymi elementami, eliminując tyle ile się da z tej przypadkowej złożoności infrastruktury, wdrożenia, API i kodu.
Weźmy przykładowo infrastrukturę: programista tworząc aplikację w Dark nie będzie musiał się zastanawiać nad wyborem maszyn wirtualnych, orkiestracji, pamięci masowej czy baz danych. Wybory podjęte w tle przez Dark mają przy tym świetnie skalować, tworzyć „idealną infrastrukturę” dla aplikacji.
Dark w świetle reflektorów?
Firma wyszła w tym tygodniu z utajonego etapu i ogłosiła, że w 2017 roku otrzymała 3,5 miliona dolarów finansowania w rundzie zalążkowej od Cervin Ventures i kilku innych funduszy.
Ellen Chisa, dyrektor generalny i współzałożycielka Dark, przyznała, że przyjęte podejście wymaga nauki nowego języka i nowych własnościowych przecież narzędzi, ale poświęcenie to ma być tego warte, ponieważ wszystko zostało starannie zaprojektowane, aby pracować w tandemie.
Edytor najlepiej wie, jak działa język, więc programista dostaje świetne autouzupełnianie, niemożliwe ma być popełnienie błędów składniowych. Infrastruktura jest zaś ustawiana pod projekt jak tylko napisane zostaną pierwsze wiersze kodu – ponieważ jej menedżer dokładnie wie, co tu będzie działało najlepiej. Nie trzeba więc martwić się o hosting, każdy kod napisany w Dark jest automatycznie hostowany.
Sama koncepcja brzmi ciekawie, a argumentom związanym z przyrostem przypadkowej złożoności trudno odmówić racji. Czy jednak programiści przyzwyczajeni do swoich języków i narzędzi zechcą korzystać z rozwiązania, z którego już nie będą mogli za bardzo wyjść? W pewnym sensie Dark zwiąże ich jeszcze bardziej, niż narzędzia i języki Microsoftu.
Więcej na temat języka Dark pojawiać się będzie na stronie projektu – Darklang.com.