Стоит ли изучать golang и его будущее

1,475 views
Skip to first unread message

Николай Измайлов

unread,
Oct 4, 2013, 3:20:13 PM10/4/13
to gola...@googlegroups.com
Всем привет, сразу же глупых вопросов.
1) Каково будущее Go не пропадет ли он ?
2) И чтовы скажите вообще про него ? Ваши отзывы как сложно поддерживать код и т.д
3) Какие ide используете
4) Еще неплохо бы сравнение с erlang

ftrvxmtrx

unread,
Oct 4, 2013, 5:14:44 PM10/4/13
to gola...@googlegroups.com
1) уже настоящее -- хайп-язык, не пропадёт
2) простой, быстрый, надёжный, разработчик рад той мощи, которую он получает после установки go
4) сравнение чего и для чего? это разные языки

Konstantin Cherkasoff

unread,
Oct 4, 2013, 6:45:28 PM10/4/13
to gola...@googlegroups.com
Привет!

> 1) Каково будущее Go не пропадет ли он ?
Вряд ли пропадет. Вполне возможно, он очень даже "выстрелит" в
ближайшее время - аналогов-то нету.

> 2) И что вы скажите вообще про него ? Ваши отзывы как сложно поддерживать код и т.д
Go очень простой. Его может освоить любой вменяемый программист с
опытом python/ruby/javascript/perl за несколько недель. Ну и быстрый
он, по сравнению с интерпретаторами.
Первосортная стандартная библиотека. Всем известно, что у Python
"батарейки в комплекте". Ну, в таком случае, Go поставляется с
топливными элементами от Терминатора.
В Go нет никакой неявной магии. Ты почти всегда знаешь, что "под
капотом" у той или иной конструкции языка.
Причем, это узнается без особых умственных усилий.

> 3) Какие ide используете
Не IDE, но Sublime Text + GoSublime - очень рекомендую. Code
completion, подсветка синтаксиса и статический анализ в реальном
времени (подсвечивает то, что точно не скомпилится) - все работает
коробки и довольно круто.
Последнее время активизировался LiteIDE (см.
https://github.com/visualfc/liteide и
http://www.goinggo.net/2013/06/installing-go-gocode-gdb-and-liteide.html)
- возможно, стоит его посмотреть. Там есть визуальный отладчик.

> 4) Еще неплохо бы сравнение с erlang

На мой вкус, Erlang - штука крутая, но специфическая. И сам язык и
рантайм - не для любой задачи.
Еще Erlang - интерпретатор, JIT на уровне экспериментов.
Как язык Go проще (разумеется, imo). И универсальнее. Хочешь - сетевые
сервисы пиши (и очень удобно), хочешь - логи парсь, хочешь - цифирки
считай.

--
Konstantin Cherkasoff

Konstantin Cherkasoff

unread,
Oct 4, 2013, 6:57:42 PM10/4/13
to gola...@googlegroups.com
Привет!

> 4) сравнение чего и для чего? это разные языки

Не согласен.
Хотя, сами языки очень разные, сравнивать их очень даже можно.
Их роднит встроенная в сам язык и рантайм поддержка легковесных
акторов и средств взаимодействия между ними. Даже Роб Пайк, объясняя
что такое go-рутины, упоминал Erlang.
В плане решаемых задач тоже можно сравнивать: Go подойдет почти везде,
где подойдет Erlang.

--
Konstantin Cherkasoff

ftrvxmtrx

unread,
Oct 4, 2013, 11:41:59 PM10/4/13
to gola...@googlegroups.com
On Saturday, October 5, 2013 12:57:42 AM UTC+2, Konstantin Cherkasoff wrote:
Привет!

> 4) сравнение чего и для чего? это разные языки

Не согласен.
Хотя, сами языки очень разные, сравнивать их очень даже можно.
Их роднит встроенная в сам язык и рантайм поддержка легковесных
акторов и средств взаимодействия между ними. Даже Роб Пайк, объясняя
что такое go-рутины, упоминал Erlang.

В таком случае не роднит, а наоборот. Если в Erlang процессы -- акторы, то в Go самый что ни на есть CSP. Не в курсе, что там конкретно говорил Роб Пайк, но это разные вещи. Именованные процессы с анонимными мэйлбоксами vs анонимные процессы с именованнами каналами.

В плане решаемых задач тоже можно сравнивать: Go подойдет почти везде,
где подойдет Erlang.

Go не подойдёт, пожалуй, там, где хочется апдейтиться нагорячую (хотя и в go можно упороться передачей стейтов и дескрипторов на другой процесс, но это много сложнее Erlang hot code upgrade). Или где хочется в рантайме заниматься дебагом, иметь к нему встроенный shell и т.п. Erlang прекрасно подходит для построения distributed систем, в отличии от Go.
 

--
Konstantin Cherkasoff

Igor Yurchenko

unread,
Oct 5, 2013, 12:56:42 PM10/5/13
to gola...@googlegroups.com
Сравнивать с эрлангом - это откровенный вброс... )) В чем сравнивать? 
Go будет жить ровно столько же сколько будут жить приложения написанные на нём...
Что говорить про него? Пишите код, тогда сами поймёте что к чему... С поддержкой проблем нет. Благо как уже тут писали в Go  почти нет никакой магии. все конструкции однозначны по смыслу. Понятия иерархии классов в Go нет, поэтому не приходится лазать туда-обратно по всем исходникам, пытаясь понять что делает конкретный кусок кода и откуда взялась та или иная функция и ли метод...

суббота, 5 октября 2013 г., 3:20:13 UTC+8 пользователь Николай Измайлов написал:

Igor Yurchenko

unread,
Oct 5, 2013, 1:16:20 PM10/5/13
to gola...@googlegroups.com


суббота, 5 октября 2013 г., 6:57:42 UTC+8 пользователь Konstantin Cherkasoff написал:
Привет!

> 4) сравнение чего и для чего? это разные языки

В плане решаемых задач тоже можно сравнивать: Go подойдет почти везде,
где подойдет Erlang.
 
Ох, какое спорное утвреждение, учитывая размер этого "почти"... Erlang силен прежде всего своим паттернматчингом. Это позволяет эффективно разрабатывать задачи связанные с базовым анализом и рассортировкой данных. В вычислительных задачах он заметно слабее.

Go ниже уровнем (относительно Erlang'а) язык. Тот же функционал реализуется либами... Но в нем другие прелести...
 
--
Konstantin Cherkasoff

Konstantin Cherkasoff

unread,
Oct 5, 2013, 4:16:40 PM10/5/13
to gola...@googlegroups.com
Привет!

>> В плане решаемых задач тоже можно сравнивать: Go подойдет почти везде,
>> где подойдет Erlang.
>
> Ох, какое спорное утвреждение, учитывая размер этого "почти"... Erlang силен
> прежде всего своим паттернматчингом. Это позволяет эффективно разрабатывать
> задачи связанные с базовым анализом и рассортировкой данных. В
> вычислительных задачах он заметно слабее.

Я не собирался наводить тень на плетень, и уж тем более, на Erlang.
Идея о том, что Go подойдет почти везде, где используется Erlang,
основана на обычном наблюдении:

Trending Erlang repositories on GitHub this month
https://github.com/trending?l=erlang&since=monthly

Сплошные WebSocket/Comet-фреймворки...
Что еще на слуху? RabbitMQ, Riak, Ejabberd, CouchDB...
Мне казалось, что Erlang выбирают не за паттерн-матчинг, а когда нужно
что-то такое конкурентное, сетевое и распределенное...


--
Konstantin Cherkasoff

Igor Yurchenko

unread,
Oct 6, 2013, 5:46:17 AM10/6/13
to gola...@googlegroups.com


воскресенье, 6 октября 2013 г., 4:16:40 UTC+8 пользователь Konstantin Cherkasoff написал:
Сплошные WebSocket/Comet-фреймворки...
Что еще на слуху? RabbitMQ, Riak, Ejabberd, CouchDB...
Мне казалось, что Erlang выбирают не за паттерн-матчинг, а когда нужно
что-то такое конкурентное, сетевое и распределенное...

Потому что сеть в Erlang'е изначально вживлена в скелет языка. Вспомните его происхождение. Поэтому он эффективней обычных языков программирования.

На тяжёлых задачах с Еrlang'ом всё равно возникают проблемы. Впрочем, с другими языками тоже... )) Что лишний раз доказывает, что Еrlang обычный язык, со своими недостатками.
Все приложения, что вы называли (из тех что на слуху), таки и есть базовый анализ и рассортировка. Единственно, из перечисленного, только CouchDB обладает более-менее сложной логикой, но там сам автор признал, что Erlang не тянет и создал отдельный проект - Couchbase, где эрланг выпиливают потихоньку...   

Возвращаясь к теме группы, Go - универсальный язык. На нем вполне реально написать целиком всё приложение с самой замороченной логикой работы. Делать это на Erlang'е - это чистое донкихотство...
--
Konstantin Cherkasoff

Max Lapshin

unread,
Oct 6, 2013, 4:13:57 PM10/6/13
to gola...@googlegroups.com

Идея о том, что Go подойдет почти везде, где используется Erlang,
основана на обычном наблюдении:

Trending Erlang repositories on GitHub this month
https://github.com/trending?l=erlang&since=monthly

Сплошные WebSocket/Comet-фреймворки...
Что еще на слуху? RabbitMQ, Riak, Ejabberd, CouchDB...


На самом деле вы упускаете простой момент: на гитхабе вы видите лишь ограниченный объём софта.

Вы не увидите там бекенд какого-нибудь островка.

На CouchDB я бы не стал обращать внимание. Кац мягко говоря неоднозначный программист.


Igor Yurchenko

unread,
Oct 7, 2013, 6:01:09 AM10/7/13
to gola...@googlegroups.com
О, подтянулись серьезные оппоненты... ) Макс, какая доля твоих проектов пишется целиком на Эрланге?


понедельник, 7 октября 2013 г., 4:13:57 UTC+8 пользователь Max Lapshin написал:

Max Lapshin

unread,
Oct 7, 2013, 6:11:26 AM10/7/13
to gola...@googlegroups.com
За последние 3 года у меня основная масса на Эрланге и немного на Qt.

На гитхабе лишь очень малая часть.

Igor Yurchenko

unread,
Oct 7, 2013, 7:17:18 AM10/7/13
to gola...@googlegroups.com
М-да... Впечатляет. Про Qt не понял, правда. Это вроде как библиотека, не язык.
 
Я видимо отстал от жизни. Я имел с ним дело еще на Эриксоновских роутерах, которые поставлялись вместе с оборудованием для сотовой связи.
У ребят связистов-админов от такого синтаксиса просто крыша ехала. Мне было проще разобраться. Скажи мне тогда, что Erlang будет претендовать на звание языка программирования общего назначения. Я бы долго смеялся... 

понедельник, 7 октября 2013 г., 18:11:26 UTC+8 пользователь Max Lapshin написал:

Max Lapshin

unread,
Oct 9, 2013, 12:50:08 PM10/9/13
to gola...@googlegroups.com
В golang меня другое прельщает.

Опыт packer-а показывает, что go вполне годится как generic язык на замену скриптам и С.

Написать параллельную тулзу на С или на скриптах/перле попросту невозможно (пока не врастил бороду в сальный свитер).

На go это делается хорошо и деплоится гораздо проще эрланга / джавы / ноды / руби и прочего шлака, требующего потанцевать вокруг кода, что бы он поднялся.


Konstantin Cherkasoff

unread,
Oct 9, 2013, 5:57:42 PM10/9/13
to gola...@googlegroups.com
Привет!
> В golang меня другое прельщает.
>
> Опыт packer-а показывает, что go вполне годится как generic язык на замену
> скриптам и С.
>

Что за packer?

> Написать параллельную тулзу на С или на скриптах/перле попросту невозможно
> (пока не врастил бороду в сальный свитер).
>
> На go это делается хорошо и деплоится гораздо проще эрланга / джавы / ноды /
> руби и прочего шлака, требующего потанцевать вокруг кода, что бы он
> поднялся.
>
согласен на все 100500.

--
Konstantin Cherkasoff

Max Lapshin

unread,
Oct 9, 2013, 6:43:33 PM10/9/13
to gola...@googlegroups.com
http://packer.io/

Единственный механизм, позволяющий хоть как-то вменяемо сделать AMI на амазоне.

Max Riveiro

unread,
Oct 10, 2013, 10:22:16 AM10/10/13
to gola...@googlegroups.com

Опыт packer-а показывает, что go вполне годится как generic язык на замену скриптам и С.

Не только Packer'a, но и Docker'a! 

Konstantin Cherkasoff

unread,
Oct 10, 2013, 10:38:39 AM10/10/13
to gola...@googlegroups.com
Ну, да этот список продолжить можно
juju (управление инфраструктурой от Canonical), tsuru (PAAS)...

Казалось бы, такие инструменты, как правило, на рубях-питонах пишут.
Но Go тут отлично подошел.



--
Konstantin Cherkasoff


10 октября 2013 г., 18:22 пользователь Max Riveiro <kav...@gmail.com> написал:
>
>> Опыт packer-а показывает, что go вполне годится как generic язык на замену
>> скриптам и С.
>
>
> Не только Packer'a, но и Docker'a!
>
> --
> Вы получили это сообщение, поскольку подписаны на группу GoLang Russian.
>
> Чтобы отказаться от подписки на эту группу и перестать получать из нее
> сообщения, отправьте электронное письмо на адрес
> golang-ru+...@googlegroups.com.
> Настройки подписки и доставки писем:
> https://groups.google.com/groups/opt_out.

Max Lapshin

unread,
Oct 11, 2013, 2:21:42 AM10/11/13
to gola...@googlegroups.com
Руби и питоны плохой механизм.

Отчуждаемый код должен носить рантайм с собой, иначе им будет очень тяжело пользоваться.
Reply all
Reply to author
Forward
0 new messages