Здравствуйте, diez_p, Вы писали:
_>Отсуствие исключений, многословоность, вывернутый наизнанку ООП, более слабые инструменты для диагностики по сравнению с jre например, еще скорее всего меньшие возможности в аннотациях/атрибутах, нет нормальной ide.
Здравствуйте, mrTwister, Вы писали:
T>Не скажи. jvm и dotnet — это переусложненное энтерпрайз дерьмо, создававшееся для уже неактуального варианта ооп с огромной кучей легаси в языках, библеотеках и платформе.
Почему тебя занимает сложность vm? А если речь о языках, то давай конкретней. И там и там есть не только ООП языки.
Здравствуйте, Pzz, Вы писали:
Pzz>Насчет исключений, я не понимаю, чем они тебе так дороги.
Тем, что, что можно разрушить контекст, без отлова всяких ошибок в промежуточных состояниях.
Pzz>Про многословность я бы поспорил. Программа на C++ получается более длинной, чем на Си. Программа на Go получается раза в два-три короче,
Если сравнивать с java/С#/Kotlin про С++ — ничего не скажу.
Pzz>Гошный ООП хорош тем, что он не разрастается. На Го неудобно писать развернутую иерархию классов, и это хорошо.
В ООП надо уметь, но какой либо фреймворк на го интересно посмотреть как был бы сделан.
Pzz>Про аннотации, я не очень понял, что имеется ввиду.
Это метадата для обработки в рантайм или compile тайм, а ля если надо написать свой, узко специализированный спринг, хибернейт, рест контроллер и т.д.
Вообще языки я бы не особо сравнивал, т.к. сравнивать надо экосистемы, тут пожалуй только Си и С++ выбиваются, потому что в первых вообще все вручную делается во вторых — зависит, но тоже думать надо, в остальном плюс минус, а вот экосистемы это да.
Здравствуйте, mrTwister, Вы писали:
T>Здравствуйте, novitk, Вы писали:
N>>Ценность в нем ровно одна — АОТ. Все остальное плохо или очень плохо по сравнению с jvm и dotnet.
T>Не скажи. jvm и dotnet — это переусложненное энтерпрайз дерьмо, создававшееся для уже неактуального варианта ооп с огромной кучей легаси в языках, библеотеках и платформе.
Мне кажется вы просто такое готовить не умеете, на java и .net можно за день склепать ынтрепрайз приложение, которое будет ходить в базы, авторизации, с рестом и прочей хренью, накидав только конфигов/аннотаций и это все будет работать, огромное комьюнити для всего и вся.
Я не говорю про узкоспециализированный, нагруженный софт, там свои заморочки, хоть на джаве, хоть на .NET. очень много всего из коробки.
на .NET мощнейший linq, TPL и т.д.
Вот например на джаве хочу FTPS клиент с хождением через https прокси — пожалста, хочешь какую-то другую либу — пожалста.
тот же jmx — пожалста, какой-то ремоут дебаг — пожалста.
Если брать что-то абстрактно стоящее, типа гейтвей или что-то подобное, то го вполне уместен.
Здравствуйте, mrTwister, Вы писали:
T>Здравствуйте, novitk, Вы писали:
N>>Почему тебя занимает сложность vm?
T>Я тут не сколько саму vm имел ввиду, сколько всю экосистему
офигенная экосистема. есть абсолютно все
и да, вода у тебя течет в кране и чатгпт отвечает тоже благодаря энтерпрайзу. и скажи спасибо что он не написан на с++
и да, ghidra написана на java
N>>А если речь о языках, то давай конкретней. И там и там есть не только ООП языки.
T>Нестандартные языки на платформе — это маргинальная эзотерика, разве что кроме котлина (это лучшее, что случалось с джавой)
D>Подсунул мне ютуб видео про Go разработу. Собственно, насколько реалистично описаны в видосе работа разработчиком и доход?
За чистый Го никто не будет платить такие деньги. D>Понятно, что это для опытных инженеров. Но опыт можно будет наработать.
Меньше смотри ютуберов.
Здравствуйте, diez_p, Вы писали:
Pzz>>Насчет исключений, я не понимаю, чем они тебе так дороги.
_>Тем, что, что можно разрушить контекст, без отлова всяких ошибок в промежуточных состояниях.
Так это тебе не исключения дороги, а то, что с помощью деструкторов можно сделать контекст саморазрушающимся. В Go аналогичнпго результата можно добиться с помощью слова defer.
Pzz>>Гошный ООП хорош тем, что он не разрастается. На Го неудобно писать развернутую иерархию классов, и это хорошо. _>В ООП надо уметь, но какой либо фреймворк на го интересно посмотреть как был бы сделан.
Я как-то даже не могу припомнить навскидку какой-то гошный фреймворк. Фрейворки ведь претендуют, в отличии от библиотек, организовать по-своему всю жизнь программы, в довесок к тому, что что-то полезное делают. В Го обычно пишут библиотеки, а не фреймворки. Жизнь при этом организует язык и его стандартная библиотека, и как-то всех это устраивает.
Pzz>>Про аннотации, я не очень понял, что имеется ввиду. _>Это метадата для обработки в рантайм или compile тайм, а ля если надо написать свой, узко специализированный спринг, хибернейт, рест контроллер и т.д.
В Го можно приписать метадату к полям структур, но это довольно простой, прямолинейных механизм.
_>Вообще языки я бы не особо сравнивал, т.к. сравнивать надо экосистемы, тут пожалуй только Си и С++ выбиваются, потому что в первых вообще все вручную делается во вторых — зависит, но тоже думать надо, в остальном плюс минус, а вот экосистемы это да.
Здравствуйте, mrTwister, Вы писали:
T>Не скажи. jvm и dotnet — это переусложненное энтерпрайз дерьмо, создававшееся для уже неактуального варианта ооп с огромной кучей легаси в языках, библеотеках и платформе. T>Я тут не сколько саму vm имел ввиду, сколько всю экосистему T>Нестандартные языки на платформе — это маргинальная эзотерика, разве что кроме котлина (это лучшее, что случалось с джавой)
Притив таких аргументов мне нечего возразить. Ты победил и я сдаюсь. Идите все на ГО!
Здравствуйте, diez_p, Вы писали:
_>Я не говорю про узкоспециализированный, нагруженный софт, там свои заморочки, хоть на джаве, хоть на .NET. очень много всего из коробки.
А я говорю.
"узкоспециализированный, нагруженный софт" на jvm/dotnet писать быстрее, надежней и легче чем на GoLang. А в случае последних версий dotnet он еще будет быстрее работать и лучше использовать память.
_>Если брать что-то абстрактно стоящее, типа гейтвей или что-то подобное, то го вполне уместен.
На сегодняшний день после появления в jvm/dotnet АОT для Go нет уместного сценария для новых проектов, только legacy.
Здравствуйте, novitk, Вы писали:
N>Здравствуйте, diez_p, Вы писали:
_>>Я не говорю про узкоспециализированный, нагруженный софт, там свои заморочки, хоть на джаве, хоть на .NET. очень много всего из коробки. N>А я говорю. N>"узкоспециализированный, нагруженный софт" на jvm/dotnet писать быстрее, надежней и легче чем на GoLang. А в случае последних версий dotnet он еще будет быстрее работать и лучше использовать память.
_>>Если брать что-то абстрактно стоящее, типа гейтвей или что-то подобное, то го вполне уместен. N>На сегодняшний день после появления в jvm/dotnet АОT для Go нет уместного сценария для новых проектов, только legacy.
Вот видите, даже тут мои предположения могут быть подставлены под сомнения. Я .NET последний не особо смотрел, но там чет микрософт и для векторных операций добавил, и с памятью тож какие-то заморочки были, что можно все руками сделать.
Здравствуйте, diez_p, Вы писали:
_>Я .NET последний не особо смотрел, но там чет микрософт и для векторных операций добавил, и с памятью тож какие-то заморочки были, что можно все руками сделать. https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-8/
Но устанешь читать, хотя и занимательно, как "война и мир".
Если говорить о том, что прямо сейчас в коробке, то dotnet рулит понедетски. Я со Скалы в него окунулся и офигел. Просто как в магазине игрушек...
Число-дробилки летают, на яве и плюсах поседеешь пока до такого доберешься. Компилятор раз в 10 быстрее Скалы. Инструментарий просто на порядок удобней, особенно если JebBrains добавить.
Библиотеки... Где начать??? Хочешь веб с wasm и шлюхами? Есть. Хочешь богатый UI для любой платформы? Есть, даже два. Хочешь мега фрэймворк для compute grid/cloud с актерами? Есть, даже два. До Cuda пока не добрался.
В C#, как языке, мне не хватает ровно одной вещи для полной нирваны — discriminating unions. В F# оно есть, но там не хватает typeclasses и популярности. В CLR надо бы добавить зеленые потоки, но async/await помогает жить без них.