Comments 13
А на чём писать?
Даже если вот просто сравнивать с языками из смежных областей:
Плюсы - недружелюбный синтаксис, отсутсвие вменяемой системы загрузки, сборки модулей
Раст - недружелюбный синтаксис, многодневные попытки переместить переменную из одной функции в две другие для каждого такого кейса
Java - абстрактная фабрика абстрактных фабрик
C# - абстрактная фабрика абстрактных фабрик поприятнее, но с сомнительной поддержкой linux
JS - бесконечная загрузка нод-модулей и сомнительная производительность
Лично я пока присматриваюсь к zig, но там пока больше вопросов чем ответов обьективно говоря
Так он же про ошибки, и самая первая ошибка - не писать на Go) (осуждаю, выбираем инструмент по необходимости)
Есть еще вариант - любой язык, компилируемый в WASM, а дальше уже работать с модулями (или как они там называются). Тут, например, появляется вариант с Котлином или Питоном (если очень хочется, почему нет)
отсутсвие вменяемой системы загрузки
Что это значит?
многодневные попытки переместить переменную из одной функции в две другие для каждого такого кейса
Для каждого какого кейса?.. Безусловно, у раста порог входа выше, чем у го, но кажется конкретно про эту проблему "Рабинович напел".
Java — абстрактная фабрика абстрактных фабрик
Современная джава уже не так страшна плюс есть котлин.
Что это значит?
Нет удобного универсального способа скачать и начать использовать зависимости. Для каждой либы приходится искать индивидуальный подход.
В Go, например, это делается одной командой: go get. К сожалению, есть и обратная сторона - Go очень плохо дружит с либами, которые написаны на не-Go. Настолько плохо, что есть и реально используются тулзы, которые транслируют код из C на Go. Например, для того же SQLite.
Я же написал "загрузки, сборки модулей".
Ну вот у меня была задача на расте сделать простое прокси - два соединения читаем из обоих пишем в оба. В го это две гоурутины в каждую из которых я передаю оба этих соединения и поехали. В расте - а, ой, извините, вы не можете передать соединение в два потока токио, только в один, я дня два искал как это сделать, ни одного человеческого варианта. В итоге оказалось быстрее убедить клиента сменить раст на го, работает без единого подвоха вот уже больше полугода.
Современная java реально неплоха, проблема не в самом языке а в тех кто на нём пишет и считает антипаттерны придуманные чуть ли не 20 лет назад основами языка.
Java - абстрактная фабрика абстрактных фабрик
Просто не надо гнаться за модными тенденциями и модными фреймворками и жизнь заиграет новыми красками, всё в ваших руках.
Try Crystal.
C# из коробки работает с линуксом уже лет 10, если речь не про UWP и WPF
С рунами и конкатенацией столкнулся на собственном опыте. Правда, опыт работы со старой джавой подсказывал "Наверное, тут должен быть и свой string builder"
Книга «100 ошибок Go и как их избежать»