Здравствуйте, so5team, Вы писали:
Pzz>>Похоже, под нетривиальностью ты имеешь ввиду размер программы.
S>Нет. Но в вас я вижу человека, которому думать, скажем так, тяжело.
Трудно разговаривать с человеком, который через слово дураком обзывается.
Сам дурак!
Pzz>>Я вижу что за Go стоят люди, которые подарили миру UNIX и Си — проекты, определившие направление развития индустрии на десятилетия.
S>Т.е. для вас важнее авторитеты? Ну OK.
Нет. Культурный контекст.
Pzz>>С учётом всего этого, Go — это такой C 2.0, прямое продолжение цепочки C -> Alef/Limbo -> Go. Созданный с учётом всего этого опыта и со многими исправленными ошибками Си.
S>Вы так говорите, как будто это что-то хорошее.
Я не вижу большого смысла комментировать оценочные суждения.
S>Вообще странно, когда Go сравнивают с Си. Но, в вашем случае опять же нужно делать скидку на, скажем так, особенности мышления.
S>Безопасный язык со сборкой мусора сравнивать с Си, в геноме которого полная свобода программиста с минимумом контроля. Внушаить, да.
В 70-е Си воспринимался, как лютое ограничение свободы, по сравнению с ассемблером, на котором тогда нормальные люди и писали операционные системы. Примерно как сейчас Go.
S>А может быть и нет. Языки программирования эволюционировали в сторону усложнения не просто так. Например, Ada сразу создавалась как сложный язык, а потом еще и обрастала возможностями. Аналогично и Eiffel. Аналогично и Java c C#. Про С++ и говорить не приходится. И это мне еще не приходилось сталкиваться с миром функциональщины (Scala, OCaml, Haskell и вот это вот всё).
То же самое, наверное, можно сказать и про операционные системы.
Сколько там системных вызовов в венде? Последний раз, когда я интересовался, я слышал число 3500. Сейчас, наверное, уже 5000. Линукс как-то обходится 350-ми, и это прям много, но по историческим причинам разросся, увы.
Кучерявость интерфейса не говорит о его "выразительной мощности". А скорее говорит о его плохой продуманности. Простые интерфейсы с ясной и лаконичной метафорой, стоящей за ними, проектировать сложнее, чем вытащить все кишки наружу, пусть пользователь сам разбирается.
S>Только вот зачем это нужно, если язык и так достаточно выразительный, чтобы сделать тоже самое посредством библиотек?
S>И что делать в языках вроде Go, когда потребуется что-то, что авторы языка не удосужились туда упихнуть?
Затем, чтобы люди охотно пользовались каналами и гороутинами. Люди предпочитают те механизмы, которые синтаксически выглядят легковесно, а не те, которые на самом деле просто устроены под капотом.
Вот арифметику указателей специально сделали синтаксически тяжеловесной.
S>В то время как для технически продвинутых языков это не проблема.
S>Поэтому нетривиальные задачи на C++, C# или каком-нибудь Haskell решаются. Как будет с Go... Есть сомнения.
Смешно.
Уж насколько Go прост, Haskell проще его в разы. За Haskell-ем стоят непростые идеи, но сам язык очень простой.
Очень странный список для сравнения. Примерно, как и ваш предыдущий список "нетривиальных" проектов. Не потому ли вам так сложно задать нетривиальные проекты их свойствами, а не перечислением, что вы сами не очень понимаете, что имеете ввиду?
Pzz>>Что в этоге получится? Ну, видимо, LibreOffice, переписанных на Go
S>Только вот вопрос будет как в цене разработки, так и в тормознутости и ресурсоемкости результата.
Говорят, гошный библиотечный http-сервер по производительности сравним с nginx. При этом nginx очень гордится своей производительностью. А гошный библиотечный сервер написан довольно-таки в лоб (и мог бы быть существенно ускорен за счёт уменьшения числа аллокаций, приходящихся на запрос, но ценой усложнения API).
Это к вопросу о производительности...
S>PS. Дяденька, судя по тому, что и как вы пишете, вы лет на 5-10 постарше меня. Неудобно такие вещи говорить старшим, но складывается ощущение, что голова у вас для того, чтобы в нее есть. А не думать.
Голова у меня, чтобы на дураков ругаться.