Сообщение Re[5]: Почему GO нишевый? Будущее за zig? Ошибаюсь? от 11.07.2023 7:46
Изменено 11.07.2023 7:47 korvin_
Re[5]: Почему GO нишевый? Будущее за zig? Ошибаюсь?
Здравствуйте, so5team, Вы писали:
S>Не Pzz, но перечислю аргументы, с которыми мне приходилось сталкиваться (в основном по сравнению с Си, C++ и Java):
S>* сборка мусора. Не нужно думать о памяти;
В Java тоже. Но думать иногда всё равно надо, что в Java, что в Go. См. "утечка горутин", например.
S>* проверки в run-time, выход за пределы массива не приводит к порче памяти и вот это вот все;
В Java тоже.
S>* defer. Удобно прибирать за собой без goto end, finally и RAII;
Чем defer удобней try-with-resources и RAII?
S>* простая и понятная обработка ошибок, нет исключений, не нужно думать о том, может ли что-то вылететь из функции/метода (при этом, есть ощущение, что на паники всем пофиг);
Очень удобно, да.
S>* нет исключений, не нужно думать о том, может ли что-то вылететь из функции/метода (при этом, есть ощущение, что на паники всем пофиг);
Не всем. А кому пофиг на паники, тому и на исключения пофиг. В чём разница?
S>* простое и удобное ООП без многоэтажных иерархий классов;
В Go нет ООП. А довольно простое и удобное, например, в OCaml.
S>* очень быстрая компиляция и удобная кросскомпиляция;
У Object Pascal / Delphi тоже быстрая компиляция.
S>* маленький объем результирующих бинарников и нет необходимости таскать за собой многомегабайтные JRE.
Но по сравнению с C -- не такой маленький.
S>Не Pzz, но перечислю аргументы, с которыми мне приходилось сталкиваться (в основном по сравнению с Си, C++ и Java):
S>* сборка мусора. Не нужно думать о памяти;
В Java тоже. Но думать иногда всё равно надо, что в Java, что в Go. См. "утечка горутин", например.
S>* проверки в run-time, выход за пределы массива не приводит к порче памяти и вот это вот все;
В Java тоже.
S>* defer. Удобно прибирать за собой без goto end, finally и RAII;
Чем defer удобней try-with-resources и RAII?
S>* простая и понятная обработка ошибок, нет исключений, не нужно думать о том, может ли что-то вылететь из функции/метода (при этом, есть ощущение, что на паники всем пофиг);
if err := func1() {
return err
}
if err := func2() {
return err
}
if err := func3() {
return err
}
...Очень удобно, да.
S>* нет исключений, не нужно думать о том, может ли что-то вылететь из функции/метода (при этом, есть ощущение, что на паники всем пофиг);
Не всем. А кому пофиг на паники, тому и на исключения пофиг. В чём разница?
S>* простое и удобное ООП без многоэтажных иерархий классов;
В Go нет ООП. А довольно простое и удобное, например, в OCaml.
S>* очень быстрая компиляция и удобная кросскомпиляция;
У Object Pascal / Delphi тоже быстрая компиляция.
S>* маленький объем результирующих бинарников и нет необходимости таскать за собой многомегабайтные JRE.
Но по сравнению с C -- не такой маленький.
Re[5]: Почему GO нишевый? Будущее за zig? Ошибаюсь?
Здравствуйте, so5team, Вы писали:
S>Не Pzz, но перечислю аргументы, с которыми мне приходилось сталкиваться (в основном по сравнению с Си, C++ и Java):
S>* сборка мусора. Не нужно думать о памяти;
В Java тоже. Но думать иногда всё равно надо, что в Java, что в Go. См. "утечка горутин", например.
S>* проверки в run-time, выход за пределы массива не приводит к порче памяти и вот это вот все;
В Java тоже.
S>* defer. Удобно прибирать за собой без goto end, finally и RAII;
Чем defer удобней try-with-resources и RAII?
S>* простая и понятная обработка ошибок
Очень удобно, да.
S>* нет исключений, не нужно думать о том, может ли что-то вылететь из функции/метода (при этом, есть ощущение, что на паники всем пофиг);
Не всем. А кому пофиг на паники, тому и на исключения пофиг. В чём разница?
S>* простое и удобное ООП без многоэтажных иерархий классов;
В Go нет ООП. А довольно простое и удобное, например, в OCaml.
S>* очень быстрая компиляция и удобная кросскомпиляция;
У Object Pascal / Delphi тоже быстрая компиляция.
S>* маленький объем результирующих бинарников и нет необходимости таскать за собой многомегабайтные JRE.
Но по сравнению с C -- не такой маленький.
S>Не Pzz, но перечислю аргументы, с которыми мне приходилось сталкиваться (в основном по сравнению с Си, C++ и Java):
S>* сборка мусора. Не нужно думать о памяти;
В Java тоже. Но думать иногда всё равно надо, что в Java, что в Go. См. "утечка горутин", например.
S>* проверки в run-time, выход за пределы массива не приводит к порче памяти и вот это вот все;
В Java тоже.
S>* defer. Удобно прибирать за собой без goto end, finally и RAII;
Чем defer удобней try-with-resources и RAII?
S>* простая и понятная обработка ошибок
if err := func1() {
return err
}
if err := func2() {
return err
}
if err := func3() {
return err
}
...Очень удобно, да.
S>* нет исключений, не нужно думать о том, может ли что-то вылететь из функции/метода (при этом, есть ощущение, что на паники всем пофиг);
Не всем. А кому пофиг на паники, тому и на исключения пофиг. В чём разница?
S>* простое и удобное ООП без многоэтажных иерархий классов;
В Go нет ООП. А довольно простое и удобное, например, в OCaml.
S>* очень быстрая компиляция и удобная кросскомпиляция;
У Object Pascal / Delphi тоже быстрая компиляция.
S>* маленький объем результирующих бинарников и нет необходимости таскать за собой многомегабайтные JRE.
Но по сравнению с C -- не такой маленький.