Си, поскольку логичное продолжение фундаментальной ошибки - это фундаментальная ошибка. Примером тому может служить язык 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 своего рода. Что какбэ лучше всего остального говорит об отсутствии потенциала у Го: если ему нужны подпорки в виде авторитетов для того, чтобы выглядеть перспективным, то... нахрен он такой нужен?"
Идея go - csp в стандартной библиотеке. По-моему это вполне инновационно, ни у одного мейнстрим языка такого не было
Обсуждают сегодня