Рубрика «Go» - 58

Просьба не воспринимать эту статью слишком серьёзно, переходить с D на Rust не призываю, просто после прочтения серии переводов за авторством Дмитрия aka vintage, мне стало любопытно переписать примеры кода на Rust, тем более, что автор добавил этот язык в голосование. Мой основной рабочий инструмент — С++, хотя в последнее время активно интересуюсь Rust. За D несколько раз пытался взяться, но каждый раз что-то отталкивало. Ни в коем случае не хочу сказать, что это плохой язык, просто местами он "слишком радикален" для "убийцы плюсов", например, имеется GC (пусть и отключаемый), а в других местах наоборот слишком близок к С++ со всеми его неочевидными нюансами.

Самое забавное тут то, что после изучения Rust отношение к D несколько изменилось — в плане лаконичности и выразительности последний явно выигрывает. Впрочем, "явность" Rust-сообщество наоборот считает преимуществом. По моим ощущениям, в Rust чаще руководствуются "академической правильностью", а в D более практичный подход. Что лучше — сложный вопрос, лично я и сам не всегда могу определиться.

Впрочем, это всё очень субъективно, так что давайте вместе посмотрим на код. Код на Go приводить не буду, при желании, можно посмотреть в оригинальной статье.Читать полностью »

Dive into Centrifugo - 1 В предыдущей статье о Центрифуге я рассказывал, что сервер был переписан с Python на Go (код Centrifugo на github, описание на opensource.mail.ru). C тех пор прошло несколько месяцев, за это время Центрифуга успела получить версию 1.0.0 и даже уйти немного дальше (последняя версия на момент этого поста — 1.4.2).

В этой статье нас ждет быстрый старт работы с Центрифугой, примеры реального использования, размышления о месте и предназначении Центрифуги в реалиях 2016 года, описание некоторых архитектурных особенностей/возможностей реал-тайм-сервера и примеры кода на Go, отвечающие за реализацию главных фич. Welcome aboard!
Читать полностью »

В полку платных стриминг-сервисов прибыло — SoundCloud запускает месячную подписку «Go» (UPD) - 1

SoundCloud, который часто называют, или — точнее, называли «YouTube для аудио», меняется. Именно данный сервис многие годы, в отличие от Pandora, Spotify и более поздних Tidal, Google и Apple Music, был пристанищем всех тех, кто не гонится за «кассой» от продажи собственной музыки. Аудитория, бесплатно получающая доступ к трекам не всемирно-популярных исполнителей, нашла своё место именно на SoundCloud уже несколько лет назад.

На «Мегамозге» мы писали о подготовке команды SoundCloud к внедрению платной подписки для 12 миллионов музыкантов и 175 миллионов ежемесячных слушателей. Сегодня стартап из Берлина представил собственный сервис под названием SoundCloud Go. За $9,99 в месяц и $12,99 при покупке подписки через AppStore (из-за высокой комиссии Apple) слушатель получает возможность прослушивать композиции оффлайн и без рекламы, пользуясь поиском по миллионам треков и композиций.

«Что изменилось?» — спросите вы. Читать полностью »

Насколько объектно Go ориентирован многократно и эмоционально обсуждалось. Попробуем теперь оценить насколько он функционален. Заметим сразу, оптимизацию хвостовой рекурсии компилятор не делает. Почему бы? «Это не нужно в языке с циклами. Когда программист пишет рекурсивный код, он хочет представлять стек вызовов или он пишет цикл.» — замечает в переписке Russ Cox. В языке зато есть полноценные lambda, closure, рекурсивные типы и ряд особенностей. Попробуем их применить функциональным манером. Примеры покажутся синтетическими оттого, что во первых написаны немедленно исполняемыми в песочнице и написаны на процедурном все же языке во вторых. Предполагается знакомство как с Go так и с функциональным программированием, разъяснений мало но код комментирован.
Читать полностью »

Многозадачность — это то, что реализовано в Go по настоящему хорошо, хоть и не идеально. Приятный синтаксис с терпким послевкусием, простые и мощные абстракции, подкупают своим изяществом по сравнению с остальными императивными языками. А попробовав лучшее, уже так не хочется скатываться к посредственности. Поэтому, если и переходить на другой язык, то он должен быть ещё более выразителен и с не менее толковой реализацией многозадачности.

Если вы уже наигрались с Go, устали от копипасты, ручного жонглирования мьютексами и всерьёз подумываете о приобретении протезов для рук, то позвольте предложить вашему вниманию перевод Tour of the Go с эквивалентным кодом на D и краткими пояснениями.

Часть первая. Основы.

Часть пятая. Сопрограммы.

Читать полностью »

Публикуем получасовое видео с кейсом разработки собственной телефонной платформы на Golang. Почему мы отказались от других вендорских решений и стали сами вендором, почему выбрали Golang, какие преимущества и недостатки он имеет перед другими языками программирования?

В докладе описаны кейсы разработки и эксплуатации платформы виртуальной АТС для операторов связи (свыше 20 000 аккаунтов) и голосовой почты для одного из крупнейших мобильных операторов юго-восточной Азии (70 миллионов пользователей).

Докладывает CEO ITooLabs Алексей Найденов (@growler).
Читать полностью »

Хочу представить вашему вниманию бесплатный сервис, который должен быть полезен всем, кто имеет дело с фрилансерами.
Встречайте — Greentask
Если кратко — это инструмент для создания и управления задачами c расширенными функциями. Небольшой спойлер — сервис написан на Go.

О сервисе

Данный сервис имеет множество применений, но для начала проведем аналогию.
Наверняка все знают сервисы быстрого обмена скриншотами типа Joxi. Другая аналогия — разнообразные pastebin’ы для быстрого обмена кусками кода. Greentask может выступать в роли сервиса быстрого обмена заданиями, но с куда более расширенными возможностями, о которых написано ниже.
Читать полностью »

Если вы уже наигрались с Go, устали от копипасты, ручного жонглирования типами и подумываете вернуться на какой-нибудь Python или, прости господи, PHP, то позвольте предложить вам попробовать язык D, где типизация хоть и тоже статическая, но она не путается под ногами и позволяет писать не менее выразительный код, чем на языках с динамической типизацией. А чтобы переход был не такой болезненный, вашему вниманию предлагается перевод Tour of the Go c эквивалентным кодом на D и краткими пояснениями.

Часть первая. Основы.

Читать полностью »

image

Начнем с важной информации: совсем не обязательно перспективные языки являются новыми. Им не так много лет, как вашим любимым Python или Ruby, их нет ни в одной топовой десятке популярных рейтингов (GitHut, RedMonk, TIOBE Index), а знание этих языков не дает пока существенной прибавки к зарплате (за исключением, возможно, Swift). Но и назвать их революцией, набирающей обороты в среде избранных, тоже нельзя. Безусловно, у них есть своя ниша, определенная доля рынка (до 2%) и сложившееся комьюнити. Просто в будущем именно они могут посягнуть на лавры топ-5, если не случится событие типа «черный лебедь».

За последние годы в рейтингах популярности языков мало что изменилось — одни опускаются, другие поднимаются, но никто не врывается в топ под лозунгом «лучший из лучших». Процесс захвата новых территорий для языка чаще всего занимает годы, и за это время успевает сформироваться необходимая база развития. Поэтому никаких эксклюзивов и написанных за вчерашний вечер уникальных языков в обзоре не будет — просто потому, что их время еще не настало. Но в ближайшие годы популярность незыблемых столпов, таких как Java (вся), JavaScript или PHP, будет снижаться, а их место постепенно займут «новички».
Читать полностью »

После игры в го ИИ Google попробует поиграть с людьми в Starcraft. Бойтесь, чемпионы - 1
StarCraft II

Искусственный интеллект Google уже два раза победил чемпиона по игре го, которая ранее считалась прерогативой человека. Еще предстоит три игры, после чего будет известен победитель. Но и сейчас понятно, что ИИ Google уже ничем не уступает человеку, играя с ним на примерно одинаковом уровне (или даже чуть лучше).

Во что же будет играть ИИ Google после завершения чемпионата «компьютер — человек»? «Starcraft, я думаю, наша следующая цель», — говорит Джефф Дин (Jeff Dean), представитель команды исследователей Google.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js