golang

Разобрался с этим гуглоизобретением (Go). Итоги и выводы, которые я сделал для себя под катом.

Преимущества:

  1. Легковесные треды (goroutines) — функционал аналогичный перловому модулю Coro, только интегрированный в синтаксис язык
  2. В отличии от Coro, goroutines могут автоматически раскидываться по системным тредам;
  3. Лёгкие, значит очень лёгкие. На своей машине я за пару секунд запустил миллион goroutines, и это съело всего лишь 2.5G RSS.
  4. Простой и удобный механизм обмена сообщениями между goroutines (channels), с соответствующим синтаксическим сахаром. Coro + AnyEvent отдыхают;
  5. Компилируемый;
  6. Кроссплатформенный;
  7. Есть как родной компилятор, так и поддержка в gcc;
  8. Простая кросс-компиляция;
  9. Для мултиплексирования умеет сам пользоваться epoll (об этом программисту можно не думать);
  10. Есть замечательнее учебные материалы в сети, разобраться в самом языке можно за 1-2 дня;
  11. Отличные инструменты профайлинга и отладки;

Недостатки:

  1. Система типов — до haskell как до луны пешком, по сути это калька с C + возможность добавлять методы для структур;
  2. Полное отсутствие перегрузки функций. Для задач где она нужна — используются reflections, да еще и это заявляется как фича (reflections в компилируемых языках предпочитаю считать грязным хаком, который стоит обходить всеми возможными способами);
  3. static методы отсутствуют принципиально;
  4. Странная система экспорта функций/переменных из модулей (экспортируются все, что начинается с большой буквы);
  5. Понятное дело никакой перегрузки операторов и прочего синтаксического сахара;
  6. В бинарник линкуется все что только можно и нельзя (gccgo умеет так не делать, но его версия Go отстает от основной);

Итог — по практическому применению — идеальная замена для Java. Писать на нем любые многопоточные сервисы — одно удовольствие. Код компактее, читабельнее, быстрее и масштабируемее.

Для всяких мелких утилиток, хоть он и становится очень модным, все же код существенно более громоздкий чем у Perl. Зато компилируемый.

Запись опубликована в рубрике Новости. Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Оставьте эти два поля как есть:

Защищено Invisible Defender. Показывать 403 для 308 110 плохих парней.