170 похожих чатов

"Ни один нормальный язык программирования не может быть логичным продолжением

Си, поскольку логичное продолжение фундаментальной ошибки - это фундаментальная ошибка. Примером тому может служить язык Go - желание сделать его нормальным привело к тому, что от Си там мало что осталось. Напомню, одним из авторов Go является Кен Томпсон - автор языка Би, а, следовательно, соавтор Си. И как тогда появилась книга Кернигана и Ричи для С, так и теперь появилась книга Кернигана и Донована о Go. В отличии от многочисленных неофитов, корифеи хорошо понимают цену своему поделию, создаваемое ими под конкретные задачи в 70-х, а не на века.
Сколько убийц Си всего было? Десятки, ведь. И не взлетели.
Потому что они методологически создавались неверно, всякими возомнившими из себя невесть что.

Страуструп создал C++, и назвал его C++. Не D, не E и не Z, а C++. Умные люди посмотрели на C++, и поняли, почему время для D ещё не пришло. Глупые не поняли, и застолбили букву D, под какую-то фигню, которая не несла в себе ничего нового, они просто слили в один флакон, всё что они в детстве слышали о языках программирования от бабушки, не имея никакой другой объединяющей идеи. Они даже не подумали о том, что Страуструп, скорее всего, знал всё, что они знают о программировании, но почему-то не включил это в язык. Им в голову не пришёл вопрос "почему так". Они просто взяли и создали язык программирования потому, что могли создать язык программирования.

И все последующие "убийцы" C, включая и Go тоже, точно так же не имели никакой идеи заложенной в них. Кроме, быть может, идеи "убить C", но это деструктивная идея и потому провальная. Отсутствие конструктивной идеи — практически наверняка провал. Бывали в истории языков программирования безыдейные исключения, добившиеся популярности, но их не так уж и много.

Сегодня же время пришло. C++ долго вынашивал идеи. Сильно разные идеи, которые рождались и развивались в нём: Страуструп запилил достаточно богатый на возможности язык, чтобы там можно было дрочить вприсядку так, как это описывал Александреску. И сегодня эти идеи доросли до уровня, когда они имеют самостоятельную ценность. Rust взял одну из них, и построил вокруг неё идеологию, подчинив всё развитие языка автоматическому управлению памятью в compile-time. И именно поэтому Rust имеет шансы убить Си, в то время как Go — нет.

Никакие миллиарды гугла не помогут Go, потому что Go безыдеен. В силу этих миллиардов, Go, может быть, отъест себе какую-нибудь нишу, типа как это случилось с Java, но на что-либо большее ему надеятся не приходится. Rust же как раз имеет все шансы подвинуть и C, и C++. Вытеснить их не удастся в обозримом будущем, но подвинуть их — вполне. Единственное, что может ему помешать — это кривая обучения: там реально может быть сложно въехать, если не понимать что, зачем и как сделано. А без этого понимания будет невозможно написать код, который компилятор сочтёт правильным. Собственно, если посмотреть вопросы, которые задают ньюфаги, то они неплохо демонстрируют.

И бесполезно сегодня ссылаться на корифеев, которые облизывают Го. Корифеи остались в прошлом, их область экспертизы где-то там. Что Керниган, что Александреску — они слишком много интеллектуальных усилий вложили в те задачи, на которых они стали известными, и судя по всему, они уже ни на что новое больше не годны. Ну, или может быть дело в том, что просто гугл им приплачивает, чтобы Го ассоциировался с их именами. PR своего рода. Что какбэ лучше всего остального говорит об отсутствии потенциала у Го: если ему нужны подпорки в виде авторитетов для того, чтобы выглядеть перспективным, то... нахрен он такой нужен?"

1 ответов

9 просмотров

Идея go - csp в стандартной библиотеке. По-моему это вполне инновационно, ни у одного мейнстрим языка такого не было

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
Кибер Бомж
8
Карта сайта