Comments 5
Согласно данным портала OpenNET, синтаксис Go основан на привычных элементах языка C, включая отдельные заимствования из языка «Оберон».
Ну допустим. Однако, это точно имеет отношение к факту релиза?
Проект Go изначально разрабатывается с оглядкой на многопоточное программирование и эффективную работу на многоядерных системах, в том числе предоставляя реализованные на уровне операторов средства для организации параллельных вычислений и взаимодействия между параллельно выполняемыми методами.
Это похоже на правду, но разработчики иначе колятся когда прижмёт. Например, когда надо объясниться за дженерики. И их версия ещё больше похожа на правду - язык Go делался так, чтобы обеспечить три быстро одновременно - читать код, компилировать и выполнять программу. А всё остальное LLM подобрали из трудов маркетологов. Типа чушь собачью про многопоточность (кстати, "многопоточное программирование" - уже бред с точки зрения носителя русского языка) как главное отличие от других языков или низкий порог входа.
Вообще то нет, горутины это одна из ключевых фичей языка.
Планировщик для горутин на мой взгляд у них довольно неплохой, одна из идей состоит в том, что необязательно выделять отдельный системный поток[тред] всякий раз, когда хочешь запускать конкурентный код, можно редко выделять новые потоки, и по ним распределять по очереди выполнение конкурентных задач(которые выполняются в горутинах), чередовать задачки, если какая-то из них слишком уж долго выполняется, супер удобно что логикой того как именно оптимально перемещать задачи по потокам занимается сам Go через свой планировщик, а не программист вручную пишет логику выделения потоков.
Горутины в go действительно сделаны очень хорошо и вполне себе тянут на киллер фичу языка.
разработчики иначе колятся когда прижмёт. Например, когда надо объясниться за дженерики
С самого начала в FAQ go было написано, что они не имеют ничего против дженериков, просто сейчас есть задачи поважнее
Горутины в go действительно сделаны очень хорошо и вполне себе тянут на киллер фичу языка.
Для маркетолуха - несомненно тянут ибо понятны широким (ergo тупым и безграмотным) массам. Как по мне, те же интерфейсы с дженериками - интереснее. В частности потому, что горутины - про реализацию многопоточности, причём в принципе переносимую в любой другой язык, а интерфейсы с дженериками - про выразительность языка.
Кстати, поведение горутин зависит от окружения, на десктопе и в WebAssembly, например, оно разное. Что заставляет задуматься в какой степени горутины являются фичей именно языка.
С самого начала в FAQ go было написано, что они не имеют ничего против дженериков, просто сейчас есть задачи поважнее.
Про ничего против - это была правда, про поважнее - отчасти правда с высокой долей лукавства. На самом деле разработчики не видели способа реализовать дженерики так, чтобы одновременно удовлетворить все три фундаментальные «быстро». Ни один из способов, использованных в других языках, их не удовлетворил. А потом, по мере развития языка, тех же интерфейсов, они догадались как можно.
Вышел Go 1.25