Wielu dzisiaj Programiści – Przepraszamy, programowanie InżynierowieCi ludzie uważają się za „twórczych”. Są swego rodzaju artystami. Mają tendencję do odwiedzania wystawnych osobistych witryn internetowych ze sprytnie ukrytymi pisankami, nadawania sobie wielu semantycznych tytułów zawodowych („były inżynier Amazon, inwestor, autor”) i przyklejania winylowych naklejek na swoich laptopach, które wskazują, kim są. Niektórzy z nich uważają się za intelektualistów literackich. Weź pod uwagę odniesienia dodane do nazw niektórych produktów: Apache Kafka, ScyllaDB i Cloud 3.5 Sonnet.
Przyznam, że wiele z tego dotyczy mnie. Różnica jest taka, że nie mam talentu do wyrażania swoich myśli, a moje małe projekty – o nazwach takich jak „Nabokov” (wiem, wiem) – lepiej zostawić na laptopie. Wkroczyłem w ten świat w momencie, gdy inżynieria oprogramowania wyprzedziła bankowość jako najbardziej pogardzany zawód. Jest we mnie mnóstwo nienawiści i wstrętu do samego siebie, z którymi muszę się uporać.
Być może dlatego postrzegam etykę leżącą u podstaw języka programowania Go jako naganę i potencjalną korektę dla naszego pokolenia sumiennych ludzi. Jego twórcy dorastali w czasach, gdy programiści byli mniej aroganccy i mniej ambitni pod względem komercyjnym, i uważam, że jest to pierwszy język ogólnego przeznaczenia nowego tysiąclecia – nie najlepszy we wszystkim, ale najlepszy prawie we wszystkim. To wzór na naszą olśniewającą epokę.
Gdybym był Gdybyśmy zaliczyli języki programowania do ruchów artystycznych, znaleźlibyśmy tendencję utylitarną połowy XX wieku (Fortran i COBOL), wysoce teoretyczną tendencję formalną (Haskell i Agda), tendencję realistyczną w amerykańskich firmach (C# i Java), a także popularną tendencję wspólnotową (Python i Ruby) oraz wewnętrzny hedonizm (Bei Vuong i Brainfack). Powiedziałbym, że Go, często określane jako „C XXI wieku”, to nowy klasyk: to nie tyle rewolucja, co powrót do przeszłości.
W 2007 roku trzech programistów w Google zebrało się wokół wspólnego wrażenia, że standardowe języki, takie jak C++ i Java, stają się trudne w użyciu i nieodpowiednie dla dzisiejszego, bardziej zorientowanego na chmurę środowiska obliczeniowego. Jednym z nich był Ken Thompson, który wcześniej pracował w Bell Labs i zdobył nagrodę Turinga za pracę nad Uniksem, systemem operacyjnym Mitochondrial Eve. (Obecnie ludzie zajmujący się systemami operacyjnymi nie bawią się językami programowania — robienie obu jest jak posiadanie olimpijskiego skoczka wzwyż, który również zakwalifikuje się do maratonu.) Dołączył do niego Rob Pike, kolejny absolwent Bell Labs, który wraz z Thompsonem stworzył standard kodowania Unicode UTF-8. Możesz im podziękować za pomocą emoji.
Obserwowanie, jak pionierzy programowania tworzą grę Go, było jak ponowne spotkanie Scorsese, De Niro i Pesci. Irlandzki. Można wybaczyć nawet nazwę niepasującą do wyszukiwarek. To znaczy, bardzo niegrzeczny. To krok, na który odważyłby się tylko król wyszukiwarek.
Język szybko zyskał popularność. Prestiż Google musiał pomóc, ale przypuszczam, że istnieje niezaspokojony głód nowości. W roku 2009, roku debiutu Go, był to w większości najnowszy język głównego nurtu z roku 1995 – roku, w którym pojawiły się Ruby, PHP, Java i JavaScript.
To nie jest tak, że postęp w projektowaniu języków programowania się zatrzymał. Projektanci języków to bardzo mądra grupa i wielu z nich ma reformatorski zapał do zakłócania status quo. Ale to, co ostatecznie zbudują, może czasami przypominać wysokiej klasy cud projektu wybitnego architekta, który okazuje się mieć problemy z drenażem. Większość nowych języków nie rozwiązuje podstawowych problemów z wydajnością.
Ale od początku program Joego był (niestety) gotowy do realizacji. Kiedyś napisałem małą wyszukiwarkę w Pythonie, aby przeglądać moje notatki i dokumenty, ale działała bardzo wolno. Po przepisaniu tego w Go nieszczęsnemu wężowi urosły skrzydła i wzbił się w powietrze, biegnąc trzydzieści razy szybciej. Jak niektórzy wnikliwi czytelnicy mogą sobie wyobrazić, ten program był dla mnie Nabokovem.