Тё>Ну вот duck-type интерфейсы, Управление памятью с помощью сборщика мусора, который заточен на минимизацию latency (в отличие от большинства остальных сборщиков мусора, которые заточены на минимизацию общего времени сборки), Generics так и не добавили. — это от питона.
Сборка памяти питона организована абсолютно другим способом — через счетчик указателей и глобальный мьютекс GIL (у CPython). GIL, кстати, превращает Python в однопоточный язык, что опять же противоречит идеологии Go. Никаких duck-type интерфейсов у питона нет, он просто динамический язык и проверка существования той или иной операции производится в рантайме.
Тё> Та же википедия явно указывает на питон. Типа go- соревнуется с питоном по скорости разработки и выразительности, при этом лишён его фатального недостатка- глобального лока, поэтому рвёт питон по скорости исполнения в сценариях с многопоточностью.
Скорость разработки и выразительность не означает "происхождение от". По выразительности Go до питона как до Луны. Попробуйте написать на Go функцию, которая развораичвает массив элементов произвольных типов.
Go is mostly in the C family (basic syntax), with significant input from the Pascal/Modula/Oberon family (declarations, packages), plus some ideas from languages inspired by Tony Hoare's CSP, such as Newsqueak and Limbo (concurrency)
Здравствуйте, benvenuto, Вы писали:
B>В подавляющем большинстве случаем C++ используют не там, где выжимают такты. А если реально надо выжимать такты — лучше не использовать С++, так как многие конструкции языка высокоуровневые и трудно предугадать во что они скомпилируются. Притом это зависит не только от компилятора (gcc/clang/whatever), но и от версии компилятора.
Ты тут забыл сказать, на чём же надо писать это самое битовыжимательство. Я посмотрел у себя на компе: Eigen — на С++, Intel IPP — С++ и ассемблер, Caffe и Tensorflow — С++, OpenCV — С++. Шаг в сторону видеокарт и ПО, написанное под них на CUDA — это тоже расширение языка С++.
С другой стороны, пожилые библиотеки типа ffmpeg — это С, но ffmpeg трудно назвать хорошей библиотекой, это жуткая смесь goto и файлов в тысячи строк. Есть также пожилые библиотеки линейной алгебры на Фортране.
Получается, что всё таки С++.
Здравствуйте, benvenuto, Вы писали:
b> В подавляющем большинстве случаем C++ используют не там, где выжимают такты. А если реально надо выжимать такты — лучше не использовать С++, так как многие конструкции языка высокоуровневые и трудно предугадать во что они скомпилируются. Притом это зависит не только от компилятора (gcc/clang/whatever), но и от версии компилятора.
(тут должна быть картинка про "Мои вкусы очень специфичны") Если кому-то перестало хватать плюсов в области веба (а тут речь больше про него все же), то его можно или поздравить с успехом или посочувствовать.
Здравствуйте, Тёмчик, Вы писали:
Тё>Что вообще происходит? Node с typescript уже стух и надо учить Go?
Go прёт в основном в около-юниксовых кругах. Люди в тех местах настолько испуганны бинарной несовместимостью, что бинарная всеядность и стабильность Go для них стала целым базисом. Поэтому и сентименты в духе "как С".
В основном это касается тех компаний, которые продают свои продукты "в коробке", а не только как сервисы. Для них Go это настоящее чудо.
Здравствуйте, TimurSPB, Вы писали:
TSP>Меня как то не прёт язык Go. Паскально так.
Наоборот же. Школьные годы чудесные, скупая ностальгическая слеза. А го — хороший, когда надо много потоков наплодить, делающих всего понемногу. Показал недавно "облачной" команде пару примеров, теперь они прутся и активно избавляются от питона.
Здравствуйте, Serginio1, Вы писали:
S> Угу. Тое есть фронтом никто не занимается?
Я видел фронт-енд команды в нескольких компаниях. Они по количеству были не очень большими. Буквально, один синьор-тимлид и один-два джуниора.
S>Даже занимаясь бэкэндом ты обязан!!! знать JS, даже если ты возвращаешь только json.
Здравствуйте, benvenuto, Вы писали:
B>А если реально надо выжимать такты — лучше не использовать С++,
B>так как многие конструкции языка высокоуровневые и трудно предугадать во что они скомпилируются. Притом это зависит не только от компилятора (gcc/clang/whatever), но и от версии компилятора.
Конструкции, не смотря на то что высокоуровневые, предельно предсказуемые, но для этого внезапно нужно знать язык и его отображение на машину
Глядя на код ясно во что он скомпилируется с выключенными оптимизациями и во что он может скомпилироваться с максимальными настройками оптимизации (и в mainstream компиляторах он в это действительно компилируется с некоторой разумной и даже предсказуемой дисперсией).
Вот конкретный пример
— навернули абстракций в виде EDSL запросов, а результирующий ассемблерный код получился идентичен рукопашному бойлерлейту, причём ещё до начала реализации было понимание что результат если и не будет вдруг идентичным в несущественных деталях, по смыслу будет порождать подобный код.
Здравствуйте, El Camino Real, Вы писали:
ECR>Наоборот же. Школьные годы чудесные, скупая ностальгическая слеза. А го — хороший, когда надо много потоков наплодить, делающих всего понемногу. Показал недавно "облачной" команде пару примеров, теперь они прутся и активно избавляются от питона.
Здравствуйте, Nuzhny, Вы писали:
N>Самая популярная платформа — Линукс! Почти половина разработчиков пишет под него. А, нет, больше! Там ещё есть такие платформы, как AWS, WordPress, Raspberry Pi, что надо тоже понимать, как Линукс. Что в сумме ещё процентов 50 собирает. Вендекапец наступил!
Здравствуйте, Evgeny.Panasyuk, Вы писали:
EP>В Python 3 и C# async/await — это stackless. EP>Питоновский gevent, Boost.Coroutine- stackful. EP>Goroutines в go — stackful.
EP>Одна из отличительных особенностей stackful от stackless — возможность прозрачно yield'ануть/await'нуть через несколько уровней стороннего кода.
У дотнета есть TaskCompletionSource для ентих целей. Вполне прозрачно, кмк. Если я правильно понял суть вопроса.
Здравствуйте, Artem Korneev, Вы писали:
AK>Здравствуйте, Serginio1, Вы писали:
S>> Угу. Тое есть фронтом никто не занимается?
AK>Я видел фронт-енд команды в нескольких компаниях. Они по количеству были не очень большими. Буквально, один синьор-тимлид и один-два джуниора.
S>>Даже занимаясь бэкэндом ты обязан!!! знать JS, даже если ты возвращаешь только json.
AK>Зачем?
Тебе так или иначе приходится возвращать код для динамичеких элементов, которые могут варьироваться от условий.
Другое дело SPA. Там тебе действительно не нужно знать JS.
А по поводу "фронт-енд команды" смотрим на развитие Ангулара, и у меня большие сомнения в твоих утверждениях.
и солнце б утром не вставало, когда бы не было меня
Здравствуйте, Serginio1, Вы писали:
S>>>Даже занимаясь бэкэндом ты обязан!!! знать JS, даже если ты возвращаешь только json. AK>>Зачем? S> Тебе так или иначе приходится возвращать код для динамичеких элементов, которые могут варьироваться от условий.
За много лет — ни разу не приходилось.
Если вы возвращаете какой-то JS-код из REST API-сервисов, то у вас что-то фундаментально не так с архитектурой.
S>Другое дело SPA. Там тебе действительно не нужно знать JS.
REST бэк-енду вообще все равно, что там на фронт-енде. Там может быть SPA, там может быть мобильное приложение, или какой-то другой сервис, который запросил эти данные.
Если у вас бэкенд зависит от фронтенда, то вы на ровном месте нашли себе грабли.
AK>>Я видел фронт-енд команды в нескольких компаниях. Они по количеству были не очень большими. Буквально, один синьор-тимлид и один-два джуниора. S> А по поводу "фронт-енд команды" смотрим на развитие Ангулара, и у меня большие сомнения в твоих утверждениях.
А что с Angular такого специфического? Он вроде упрощает разработку, а не усложняет ее. Код на TypeScript хотя бы можно читать без поллитры.
Я таки как раз говорил про команды, пилящие фронтенд на Angular. Моя выборка не очень велика, но что есть, то есть. Но я согласен, что рейтинг и правда какой-то наркоманский. 8-е место для JavaScript выглядит очень странно. По меньше мере, я бы оценил долю JS больше, чем VB, PHP и Python.
It is important to note that the TIOBE index is not about the best programming language or the language in which most lines of code have been written.
Ну т.е. они оценивают как-то непонятно. Это не по количеству написанного кода.
Здравствуйте, Тёмчик, Вы писали:
Тё>Одна крупная (австралийская) контора заявила, что все копромонолиты на жаве распиливают и переписывают на микросервисы на Go. Причём я всегда думал, что Go — это как Python, только гугловский с блекджеком и девушками. Чел заявил, что это как C. Что вообще происходит? Node с typescript уже стух и надо учить Go?
О востребованности языка нужно судить с позиции, насколько хорошо он решает насущные задачи, под которые заточен, а не с позиции синтаксиса и удобства написания на нем.
Например, сейчас нужен язык для параллельных вычислений, который бы полностью освободил программиста от семафоров, барьеров, ..., чтоб не нужно было даже о них задумываться. Даже понятия о потоках не должно быть. Создал цикл, а он по возможности сам в отделом потоке работает. Естественно синтаксис изменится, это будет текст в несколько столбцов или графическое что-то, типа labview, но более компактное и читабельное.
Аналогично и для нейроних сетей и машинного обучения.