Car-tech

Google Executive sfrustrowany przez Javę, złożoność C ++

Hamburg Ania Tomek Ania

Hamburg Ania Tomek Ania
Anonim

Dzisiejsze komercyjne języki programowania - - W szczególności C ++ i Java - są zbyt skomplikowane i niedostatecznie dopasowane do dzisiejszych środowisk komputerowych, wyróżniony inżynier Google, Rob Pike, argumentował podczas czwartkowego wykładu na konferencji open source O'Reilly.

Pike przedstawił swoją sprawę przeciwko "języki programowania przemysłowego" podczas jego przemówienia na konferencji w Portland w Oregonie.

"Myślę, że te języki są zbyt trudne w użyciu, zbyt subtelne, zbyt skomplikowane, są zbyt szczegółowe i ich subtelność, zawiłość i gadatliwość wydają się z czasem rośnie ", powiedział Pike. "Są wyprzedane i używane zbyt szeroko."

Szczupak opisał braki w tych językach jako sposób na opisanie celów, jakie on i inni inżynierowie Google opracowali dla nowego języka programowania, który opracowali pod nazwą Go.

Jako ilustrację złożoności takich języków, Pike pokazał kilka przykładów kodu C ++. Jednym z przykładów była deklaracja zmiennej, która rozciągała się prawie na całej linii ekranu.

"Jak mamy takie standardowe [obliczenia], które są nauczane w szkołach i używane w przemyśle? " zapytał retorycznie. Tego rodzaju programowanie "jest bardzo zbiurokratyzowane, każdy krok musi być uzasadniony dla kompilatora", powiedział.

Podczas gdy Pike przyznał, że był nieco żartobliwy, zapewnił, że takie pytania nadal powinny być zadawane. C ++ powstało z powodu frustracji ludzi pracą z niskopoziomowym językiem C, a Java powstała jako sposób na uproszczenie C ++. Z biegiem czasu jednak nowe funkcje zostały dodane do obu języków, przez co stają się coraz bardziej złożone.

"Hałas jest wyrafinowany", powiedział.

Pike dodał także, że takie języki zostały opracowane przed nadejściem przetwarzania wielordzeniowego i rozpowszechnione sieci, więc niełatwo przystosowują się do tych nowych środowisk.

Pike nie jest samotnym pracownikiem Google wyrażającym niezadowolenie z tradycyjnych języków komercyjnych.

Na dorocznej konferencji USENIX w zeszłym miesiącu, inżynier Gmail Adam de Boor zaskoczył publiczność, zauważając, że usługa Gmaila firmy została napisana w całości w języku JavaScript, a cały jej kod, o wartości około 443 000 linii, został napisany ręcznie.

Zauważył, że podczas gdy Java jest bardziej ekspresyjna, jest również bardziej gadatliwa. "W tym momencie jest kwestią wyboru, jakiego języka używasz" - powiedział de Boor.

JavaScript jest jedną z wielu wersji językowych - inne to Ruby i Python - które zostały opracowane w ciągu ostatnich 10 lat lat w odpowiedzi na rosnącą złożoność C ++ i Java. Ale chociaż ma prostszą składnię, takie języki również mają swoje wady, argumentował.

Te nowe języki są wolniejsze, nie skalują się i mogą zawierać więcej błędów, opracowane przez Pike.

Języki są raczej interpretowane, a nie kompilowane, co oznacza, że ​​programy napisane w takich językach nie są kompilowane przed uruchomieniem, więc w rezultacie działają wolniej. Mają też tendencję do pisania dynamicznego, co oznacza, że ​​programiści nie muszą określać, jaki rodzaj danych będą przechowywać ich zmienne.

"Dynamiczne pisanie nie zawsze jest dobre.Będziesz otrzymywać statyczne błędy w czasie wykonywania, które naprawdę powinny być w stanie Łap w czasie kompilacji ", powiedział.

Mając to wszystko na uwadze, Pike opisał Go jako próbę połączenia najlepszych atrybutów obu zestawów języków.

" Go to próba połączenia bezpieczeństwa i wydajności ze statycznie napisanych języków z wygodą i zabawą z dynamicznie typowanych języków interpretacyjnych "- powiedział, zanim dodał -" do tego stopnia, że ​​się powiedzie, musisz sam osądzić ".

Jeden z widzów, Larry Augustin, CEO dostawcy oprogramowania do zarządzania relacjami z klientami SugarCRM, zgodził się z oceną Pike'a, że ​​C ++ i Java stały się zbyt skomplikowane, chociaż zauważył, że dzieje się tak zwykle w przypadku wszystkich języków, w miarę jak rosną, aby sprostać szerszemu zakresowi zastosowań.

"Powodem, dla którego języki te stały się bardziej skomplikowane, jest fakt, że im częściej są używane, tym więcej błędów i niejednoznaczności odkryliśmy, a próby usunięcia tych niejasności i błędów stworzyły coś bardziej złożonego" - powiedział Augustin, który ma tło w inżynierii oprogramowania i projektowaniu języków programowania.

"Doceniam jego cel," powiedział o wysiłkach Pike'a. "Pytanie brzmi: czy uda mu się osiągnąć swój cel? Czy Go [staje się bardziej złożony], ponieważ coraz więcej osób go używa" - powiedział Augustin.

Joab Jackson opisuje oprogramowanie dla przedsiębiorstw i ogólne nowości technologiczne dla IDG News Service. Śledź Joaba na Twitterze na @Joab_Jackson. Adres e-mail Joaba to [email protected]