Инструменты Go

Вопросы написания собственного программного кода (на любых языках)

Модератор: Olej

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Инструменты Go

Непрочитанное сообщение Olej » 24 ноя 2014, 21:29

У нас уже есть тема про Go ... но это в разделе "Список форумов ‹ Софт для Linux ‹ Инструменты программирования" - это больше про то где взять, как установить...
Там же есть ссылка на достаточно обстоятельный (но не завершённый пока) конспект (117 стр.), который составился по результатам этих экспериментов.

Но мне даже удивительно стало, что у нас как-то не сложилось темы про Go в разделе "Программирование" - куда уж больше обсуждать в программировании, чем о новом языке Go:
Go – один из самых удивительных языков, появившихся в последние 15 лет, и первый, нацеленный на программистов и компьютеры XXI века.
(c) Марк Саммерфильд

2 дня назад, 22.11.2014, в Харькове проходила очередная конференция профессиональных разработчиков программного обеспечения. Это так называемые IT Weekend, проводимые чередуясь в разных городах Украины компанией SoftServe (крупнейший разработчик, имеющий в своём составе до 3000 персонала).
Изображение
Из 4-х часовых докладов один был отдан беглому (а как может быть иначе за 60 мин.?) введению в язык Go и его перспективам использования в новых корпоративных проектах. Фотоотчёт (в 117 снимков) о прохождении конференции организаторы выложили для публичного доступа, и его можно разглядывать здесь.

Этот доклад по Go делал, как несложно догадаться ;-) , ваш покорный слуга...
И вот с конспекта этого доклада и архива из 3-х простейших приложений я и начну эту тему в "Программирование"...
Вложения
Doclad.Go_03.odt
(97.78 КБ) 589 скачиваний
examples.Go.tgz
(3.89 КБ) 591 скачивание

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Go

Непрочитанное сообщение Olej » 25 ноя 2014, 00:00

Olej писал(а):
Go – один из самых удивительных языков, появившихся в последние 15 лет, и первый, нацеленный на программистов и компьютеры XXI века.
(c) Марк Саммерфильд
Удивляет при детальном знакомстве то, что:

1. Go вполне ориентирован на малые, или даже embedded конфигурации, на выполнение практически под любой операционной системой: Linux, Windows, MacOS, Plan 9, ...

2. С другой стороны - на работу приложений в самых больших аппаратных конфигурациях, когда требуется получить максимально возможную производительность, и эффективно задействовать работу многих процессоров (ядер) в SMP.

3. И одновременно с тем, сугубо компилирующий язык, прямой наследник C/C++ - как эффективное средство WEB-программирования, за счёт преодоления огромного ограничения C (да и C++) - обработки символьных данных.

Вот такая вот получается ... всеядность ;-)

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Go

Непрочитанное сообщение Olej » 25 ноя 2014, 00:17

Olej писал(а): 2. С другой стороны - на работу приложений в самых больших аппаратных конфигурациях, когда требуется получить максимально возможную производительность, и эффективно задействовать работу многих процессоров (ядер) в SMP.
Здесь вспоминают, что и в C есть POSIX потоки pthread_t на все случаи жизни, и в C++ есть класс thread:: ... правда всего лишь как надстройка над pthread_t, и в Windows API есть, мол, threads ...

А тут вот как раз, совсем недавно (сон в руку? ;-) ) на Intel Developer Zone, а в полном виде на Хабрахабр появляется статья "Потоки — это Goto параллельного программирования", с очень внятной иллюстрацией:
Изображение
25 апреля в 08:50
Сразу раскрою мысль, вынесенную в заголовок. Использование потоков (также именуемых нити, треды, англ. threads) и средств прямой манипуляции ими (создание, уничтожение, синхронизация) для написания параллельных приложений оказывает столь же пагубное влияние на сложность алгоритмов, качество кода и скорость его отладки, какое вносило использование оператора Goto в последовательных программах.
Автор Григорий Речистов ... как я понимаю кто-то из сотрудников Intel и из молодых преподавателей МФТИ:
На пятничном семинаре учебного проекта лаборатории МФТИ-Интел один из студентов задал мне примерно такой вопрос: а почему 64-битный вариант архитектуры процессоров Intel называется x64, а 32-битный — x86?
Я как просто ожидал какой-то подобной публикации ... когда писал для себя ещё заметки "Параллелизм, конкурентность, многопроцессорность в Linux".

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Go

Непрочитанное сообщение Olej » 08 май 2015, 10:08

Olej писал(а): 3. И одновременно с тем, сугубо компилирующий язык, прямой наследник C/C++ - как эффективное средство WEB-программирования, за счёт преодоления огромного ограничения C (да и C++) - обработки символьных данных.
А по поводу WEB-программирования - вот достаточно свежий перевод ... необычной для меня публикация в 2-х частях:
Веб приложение с Beego
Опубликовано: Артем | 12 Jul, 2014.
Beego. Часть 2
Опубликовано: Артем | 10 Aug, 2014.
И ещё очень впечатляющие бэнчмарки для многих и многих разнообразных WEB-фреймворков и для разных классов разбора запросов, среди них и Go, и на очень приличных позициях!

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Go

Непрочитанное сообщение Olej » 02 июн 2015, 19:18

Интересная статья: Свой memcached. Часть 1.

Интересна несколькими местами:
- TCP/IP сервер ...
- кеширование запросов...
- распределённые вычисления.

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

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Go

Непрочитанное сообщение Olej » 27 сен 2015, 11:29

Начинаем любить Go
14 сентября в 18:31
Если что, это вольный перевод статьи из блога Jeremy Mikkola.
Эта статья о том, как некоторое время спустя я распробовал и таки полюбил язык Go (аки golang).
...
Приятная статья.
Как обычно, на Хабрахабр обсуждение превратилось в срач ... так что комментарии можно пропустить :lol:


Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Go

Непрочитанное сообщение Olej » 29 сен 2015, 09:22

Главная фишка Go - та лёгкость, с которой на нём описываются параллельные ветки вычислений.
Причём ветки, разнесенные на разные процессоры.
Чего совершенно не умеют (в принципе не могут), скажем Python, Ruby etc.
И что так тяжело делается в низкоуровневой технике pthread_t на C, C++, Java, ...

Но тут есть одна фишка :-o : по разным местам Интернет идут обсуждения и догадки ;-) - как в Go это реализуется? какими механизмами?
Есть мнения, что Go-рутины - это даже не pthread_t ядра, а некоторые более лёгкие механизмы юзерспейс... Но другие публикации тут же подвергают это сомнениям, потому как по ps при выполнении программ Go видно достаточно много потоков...

Мне как-то кажется, что связано это с тем, что механизмы реализации эти они ещё меняются, зависят от реализации и версии (Go), а обсуждения относятся к разным версиям ... похоже.
Ведь Go вышел в свет только в 2009 году!

Но вот очень интересные публикации в тему:

The Go scheduler
30 June 2013
Scalable Go Scheduler Design Doc - это вообще описание от автора этого механизма:
Dmitry Vyukov
dvyukov@google.com
May 2, 2012
Scheduling Multithreaded Computations by Work Stealing

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Go

Непрочитанное сообщение Olej » 29 сен 2015, 21:54

Olej писал(а): The Go scheduler
30 June 2013
Очень вольный перевод этой публикации.
Вложения
The_Go_scheduler.ru.odt
(130.47 КБ) 526 скачиваний

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Go

Непрочитанное сообщение Olej » 05 окт 2015, 00:51

Olej писал(а): Очень вольный перевод этой публикации.
Тот же перевод, но с исправленной, приведенной в соответствие с установившейся, русскоязычной терминологией.
Вложения
The_Go_scheduler_2.ru.odt
(130.22 КБ) 613 скачиваний

Ответить

Вернуться в «Программирование»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя