Здравствуйте, Pzz, Вы писали:
S>>Хотелось бы видеть что-то в качестве демонстрации возможностей Go.
Pzz>Похоже, под нетривиальностью ты имеешь ввиду размер программы.
Нет. Но в вас я вижу человека, которому думать, скажем так, тяжело.
Pzz>Ядро Linux, правда, на сишечке написано.
Это не от хорошей жизни.
Pzz>Тогда тебе за примерами куда-то сюда: https://blog.kowalczyk.info/article/9afe3485f2204f1bb43217d70f7b87d4/big-projects-written-in-go.html
Ну хоть что-то.
S>>Пока что со стороны кажется, что Go делали для людей, для которых даже Java -- это "слишкам сложно". И, вероятно, людьми, которые даже Java в силу своего "крутого" бэкграунда не освоили.
Pzz>Ты видишь в Go язык, созданный идиотами для идиотов.
Для идиотов -- да. Про умственный уровень создателей я не говорил.
Pzz>Я вижу что за Go стоят люди, которые подарили миру UNIX и Си — проекты, определившие направление развития индустрии на десятилетия.
Т.е. для вас важнее авторитеты? Ну OK.
Pzz>С учётом всего этого, Go — это такой C 2.0, прямое продолжение цепочки C -> Alef/Limbo -> Go. Созданный с учётом всего этого опыта и со многими исправленными ошибками Си.
Вы так говорите, как будто это что-то хорошее.
Вообще странно, когда Go сравнивают с Си. Но, в вашем случае опять же нужно делать скидку на, скажем так, особенности мышления.
Безопасный язык со сборкой мусора сравнивать с Си, в геноме которого полная свобода программиста с минимумом контроля. Внушаить, да.
Pzz>Детский какой-то вопрос. А можно ли переписать LibreOffice с нуля на Go? Ну можно, наверное.
А может быть и нет. Языки программирования эволюционировали в сторону усложнения не просто так. Например, Ada сразу создавалась как сложный язык, а потом еще и обрастала возможностями. Аналогично и Eiffel. Аналогично и Java c C#. Про С++ и говорить не приходится. И это мне еще не приходилось сталкиваться с миром функциональщины (Scala, OCaml, Haskell и вот это вот всё).
Ряд вещей, от которых некоторые отмахиваются (вроде const-ов или даже пространств имен) как раз предназначались для борьбы со сложностью, которая возникает из-за размера проекта. И это даже не беря в расчет сложность самой предметной области.
При этом вышеозначенные языки в большей или меньшей степени позволяют разработчику создавать недостающие инструменты под задачу.
В Go, например, каналы сделали частью языка. Сомнительно, но окай.
Только вот зачем это нужно, если язык и так достаточно выразительный, чтобы сделать тоже самое посредством библиотек?
И что делать в языках вроде Go, когда потребуется что-то, что авторы языка не удосужились туда упихнуть?
В то время как для технически продвинутых языков это не проблема.
Поэтому нетривиальные задачи на C++, C# или каком-нибудь Haskell решаются. Как будет с Go... Есть сомнения.
Pzz>Что в этоге получится? Ну, видимо, LibreOffice, переписанных на Go
Только вот вопрос будет как в цене разработки, так и в тормознутости и ресурсоемкости результата.
PS. Дяденька, судя по тому, что и как вы пишете, вы лет на 5-10 постарше меня. Неудобно такие вещи говорить старшим, но складывается ощущение, что голова у вас для того, чтобы в нее есть. А не думать.