Re[6]: Таки Go вытеснит Python?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 08.01.19 01:10
Оценка: 2 (1)
Здравствуйте, Kswapd, Вы писали:

K>Не совсем так. Go — обычный язык программирования, который может быть реализован несколькими компиляторами и даже интерпретаторами. FAQ на оф. сайте говорит, что на данный момент развивается и поддерживается три "официальных" компилятора: gc (основной), gccgo (использующий бэкенд от gcc) и gollvm (использующий соответственно LLVM). Видимо, вопрос того, какой подход победит, остаётся открытым.


Официальный и реально годный для использования в продуктовой разработки только gc, остальные не более чем игрушки небольшого количества энтузиастов.

K>Хотя лично мне нравится идея трансляции Go в промежуточный абстрактный ассемблер. Есть в этом безуминка гения .


Это есть в официальном Go, просто "правильное", с играми и девочками, а не какой-то там LLVM.

the compiler operates on a kind of semi-abstract instruction set, and instruction selection occurs partly after code generation


Авторы Go большие поклонники Plan 9 и не могли себе позволить такую ересь как использование готового бекэнда для компиляторя:

Although the assembler takes its guidance from the Plan 9 assemblers, it is a distinct program, so there are some differences.

Re[7]: Таки Go вытеснит Python?
От: Cyberax Марс  
Дата: 08.01.19 09:35
Оценка: 11 (2)
Здравствуйте, kaa.python, Вы писали:

KP>Официальный и реально годный для использования в продуктовой разработки только gc, остальные не более чем игрушки небольшого количества энтузиастов.

gccgo — полноценно работающий. Я его использую для финальной сборки, код существенно быстрее получается.
Sapienti sat!
Re[3]: Таки Go вытеснит Python?
От: Cyberax Марс  
Дата: 08.01.19 09:36
Оценка: +1
Здравствуйте, Kswapd, Вы писали:

K>Раз уж упомянули Rust, будет нелишне вспомнить заметку Эрика Рэймонда, широко известного как ESR

Он банальный дилетант в обоих языках. Можно почитать его посты на golang-dev и rust-internals.
Sapienti sat!
Re[7]: Таки Go вытеснит Python?
От: Cyberax Марс  
Дата: 08.01.19 09:40
Оценка: 2 (1)
Здравствуйте, kaa.python, Вы писали:

KP>В основном из за очень-очень плохого оптимизатора. В Go можно понять всё, кроме религиозных заморочек авторов не позволивших им взять LLVM.

В требованиях к Go, когда он проектировался в 2006-м году, была скорость компилятора. В то время LLVM была ещё маленькой и clang только-только появлялся. Так что Go сделали свой кодогенератор и альтернативную полноценную реализацию для gcc (которая и сейчас развивается). Получилось очень неплохо — скорость компиляции в первой версии зашкаливала.
Sapienti sat!
Re[8]: Таки Go вытеснит Python?
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 08.01.19 10:13
Оценка: :)
Здравствуйте, Cyberax, Вы писали:

C> Получилось очень неплохо — скорость компиляции в первой версии зашкаливала.


А потом компилятор переписали на Го, и скорость просела безвозвратно.
Re[8]: Таки Go вытеснит Python?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 08.01.19 13:09
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, kaa.python, Вы писали:


KP>>Официальный и реально годный для использования в продуктовой разработки только gc, остальные не более чем игрушки небольшого количества энтузиастов.

C>gccgo — полноценно работающий. Я его использую для финальной сборки, код существенно быстрее получается.

Похоже что, gccgo решение, но он отстает от основной ветки:

The GCC 7 releases include a complete implementation of the Go 1.8.1 user libraries


что при модели развития библиотек Go — основной акцент на последнюю версию языка, иногда может быть неприятно. Но в целом да, лучше чем я думал.
Re[7]: Таки Go вытеснит Python?
От: ct0r  
Дата: 08.01.19 15:17
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Шумиха вокруг Go вызвана тем, что он позволяет использовать откровенных жопоруков, коих в огромных корпорациях очень много. Так что я бы сильно не радовался соскочив с C++ на Go, так как Go — язык для мартышек и по насыщению рынка их ждёт судьба PHP программистов.


После того, как в проекте заменил C++ на Go (95%) и Rust (5%), появилось куда больше времени на прокачку навыков помимо "C++ граблеобходитель". Наконец-то можно плотно заняться расширением кругозора, архитектурой и софт скиллами
А если у кого-то профессионализм измеряется исключительно языком — это его печаль и беда
Re[8]: Таки Go вытеснит Python?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 08.01.19 23:52
Оценка:
Здравствуйте, ct0r, Вы писали:

C>После того, как в проекте заменил C++ на Go (95%) и Rust (5%), появилось куда больше времени на прокачку навыков помимо "C++ граблеобходитель". Наконец-то можно плотно заняться расширением кругозора, архитектурой и софт скиллами


Я уверен что ты тут сильно недоговариваешь, так как вместо грабель C++ (каких, кстати?) ты получаешь модель памяти Rust, которая те же грабли, но вид с боку. А вот Go, да, это как раз то, о чем я говорил. Любой посредственный разработчик не сумевших осилить более сложный и выразительный инструмент превращается в обезьянку способную если не Войну и мир написать, но что-то не сразу падающее точно. Правда потом более опытным дядям всяко приходится смотреть на поделие осиливших хотя бы Go и продумывать как это расчищать

C>А если у кого-то профессионализм измеряется исключительно языком — это его печаль и беда


Одна из составляющих профессионализма — знание своего рабочего инструмента. Язык программирования — один из основных рабочих инструментов. Так что разработчик не осиливший языка не может считаться профессионалом. Вторым сопоставимым по важности элементом будет домeнная область.
Отредактировано 08.01.2019 23:57 kaa.python . Предыдущая версия .
Re[9]: Таки Go вытеснит Python?
От: Cyberax Марс  
Дата: 09.01.19 03:44
Оценка: 9 (1)
Здравствуйте, kaa.python, Вы писали:

C>>gccgo — полноценно работающий. Я его использую для финальной сборки, код существенно быстрее получается.

KP>Похоже что, gccgo решение, но он отстает от основной ветки:
KP>

The GCC 7 releases include a complete implementation of the Go 1.8.1 user libraries

В GCC 8 образца лета прошлого года — уже версия 1.10.

Тут основная проблема с тем, что циклы релиза и стабилизации у gcc слишком долгие. Гопники портируют всё в GCC всё достаточно быстро, а потом оно там год лежит.
Sapienti sat!
Re[10]: Таки Go вытеснит Python?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 09.01.19 03:46
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>В GCC 8 образца лета прошлого года — уже версия 1.10.


C>Тут основная проблема с тем, что циклы релиза и стабилизации у gcc слишком долгие. Гопники портируют всё в GCC всё достаточно быстро, а потом оно там год лежит.


Понял, спасибо. Для моих текущих задач это не вариант, но в целом отрадно знать что есть компилятор с нормальным бекэндом
Re[9]: Таки Go вытеснит Python?
От: Cyberax Марс  
Дата: 09.01.19 07:29
Оценка:
Здравствуйте, D. Mon, Вы писали:

C>> Получилось очень неплохо — скорость компиляции в первой версии зашкаливала.

DM>А потом компилятор переписали на Го, и скорость просела безвозвратно.
Зато компьютеры побыстрее стали Они его сейчас немного параллелизуют, а тут ещё generic'и подтянутся. Глядишь, и догонит по скорости.
Sapienti sat!
Re[9]: Таки Go вытеснит Python?
От: gardener  
Дата: 09.01.19 22:06
Оценка:
KP>Одна из составляющих профессионализма — знание своего рабочего инструмента. Язык программирования — один из основных рабочих инструментов. Так что разработчик не осиливший языка не может считаться профессионалом. Вторым сопоставимым по важности элементом будет домeнная область.

Доменная область это главное. И голова и время не бесконечно, чем меньше тратится усилий на инструменты тем лучше.
Re[10]: Таки Go вытеснит Python?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 09.01.19 23:58
Оценка:
Здравствуйте, gardener, Вы писали:

G>Доменная область это главное. И голова и время не бесконечно, чем меньше тратится усилий на инструменты тем лучше.


Тут есть один тонкий момент. Разные инструменты за счет разной базовой сложности могут давать различные результаты в плане скорости разработки и простоты поддержки решения.
Re[11]: Таки Go вытеснит Python?
От: gardener  
Дата: 10.01.19 01:13
Оценка:
G>>Доменная область это главное. И голова и время не бесконечно, чем меньше тратится усилий на инструменты тем лучше.

KP>Тут есть один тонкий момент. Разные инструменты за счет разной базовой сложности могут давать различные результаты в плане скорости разработки и простоты поддержки решения.


Ну тут сложно возразить.
Re[9]: Таки Go вытеснит Python?
От: ct0r  
Дата: 10.01.19 19:44
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>грабель C++ (каких, кстати?)

Мы будем вести дискуссию на тему того, есть ли в С++ грабли? Серьезно?

KP>модель памяти Rust, которая те же грабли, но вид с боку.

А шаблоны С++ — те же interface{} в Go, только сбоку. Ну и так далее.

KP>Любой посредственный разработчик не сумевших осилить более сложный и выразительный инструмент превращается в обезьянку способную если не Войну и мир написать, но что-то не сразу падающее точно.

Отлично. Что плохого? И что плохого в том, если хороший разработчик начнет на Go писать?

KP>Правда потом более опытным дядям всяко приходится смотреть на поделие осиливших хотя бы Go и продумывать как это расчищать

А теперь давай подумаем о количестве тех, кто не осилил C++, но пишет на нем. И подумаем, за кем именно опытным дядям будет проще расчищать.

KP>Одна из составляющих профессионализма — знание своего рабочего инструмента. Язык программирования — один из основных рабочих инструментов. Так что разработчик не осиливший языка не может считаться профессионалом. Вторым сопоставимым по важности элементом будет домeнная область.

Основных элементов чем выше по карьерной лестнице, тем больше. Далее, это не противоречит ничему из того, что я сказал. Если человек перестал писать на C++, но начал на Go, то что, он становится от этого менее профессионалом? Конечно нет.
Re[11]: Таки Go вытеснит Python?
От: ct0r  
Дата: 10.01.19 19:51
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Тут есть один тонкий момент. Разные инструменты за счет разной базовой сложности могут давать различные результаты в плане скорости разработки и простоты поддержки решения.

Согласен, в моем проекте лучший результат — это когда в одних местах вместо C++ — Go, а в других вместо C++ — Rust.
Re[3]: Таки Go вытеснит Python?
От: Ops Россия  
Дата: 11.01.19 02:28
Оценка:
Здравствуйте, iZEN, Вы писали:

ZEN>Go используется примерно в 300 различных проектаов, связанных с разработкой ПО:

ZEN>https://www.freshports.org/lang/go/

Там половина либы для него самого.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[7]: Таки Go вытеснит Python?
От: Kswapd Россия  
Дата: 13.01.19 08:49
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>С генераторами жить скорее приходится, особого удовольствия это не доставляет.


Нет, ничего, получается довольно изящно, выглядит немногим хуже плюсовых шаблонов. И можно сразу писать generic-тесты:

//go:generate genny -in=queue.go -out=intqueue.go gen "<T>=int"
//go:generate genny -in=queue.go -out=stringqueue.go gen "<T>=string"

import "github.com/cheekybits/genny/generic"

type <T> generic.Type

type <T>Queue []<T>

func New<T>Queue() *<T>Queue {
    return &<T>Queue{}
}

func (q *<T>Queue) Put(val <T>) {
    q = append(q, val)
}

...

func Test<T>Queue(t *testing.T) {
    ...
}


Здесь угловые скобки — юникодные символы с похожим начертанием, можно вместо <T> взять любое другое валидное имя.

Обобщённый код пишется в своём файле (queue.go), после go generate появляется столько дополнительных файлов, сколько было заказано типов. Конечный эффект точно такой же, как от шаблонов, оверхед — три-четыре строки и дополнительный этап трансляции.
Re[8]: Таки Go вытеснит Python?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 13.01.19 10:31
Оценка:
Здравствуйте, Kswapd, Вы писали:

K>Нет, ничего, получается довольно изящно, выглядит немногим хуже плюсовых шаблонов. И можно сразу писать generic-тесты:


Да, если нет ноги — протез довольно изящное решение, так как с ним однозначно лучше чем без него. Но вцелом такое решение мне нравится меньше, так как оно не решает главной проблемы — отсутствия обобщенных алгоритмов и коллекций. Собственно мне проблема видится не в том, что нет возможности писать обобщенный код как таковой, а в наполнении стандартной библиотеки.
Re: Таки Go вытеснит Python?
От: kov_serg Россия  
Дата: 13.01.19 11:52
Оценка:
Здравствуйте, e.thrash, Вы писали:

ET>Казалось, что Python пришел надолго.

ET>Но вот что-то стал часто слышать, что Go вытеснит Питон.
ET>Что думаете?
А вы как думаете?
Пока у go не будет PSF (grants, infrastructure, annual gathering support)
Врядли он кого вытеснит.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.