URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 112080
[ Назад ]

Исходное сообщение
"Релиз языка программирования Go 1.9"

Отправлено opennews , 26-Авг-17 09:36 
После шести месяцев разработки компания Google представила (https://blog.golang.org/go1.9) релиз  языка программирования Go 1.9 (http://golang.org), который позиционируется как гибридное решение, сочетающее высокую производительность компилируемых языков с такими достоинствами скриптовых языков, как лёгкость написания кода, быстрота разработки и защищённость от ошибок.  Код проекта распространяется под лицензией BSD.


Синтаксис Go основан на привычных элементах  языка Си с отдельными заимствованиями из языка Python. Язык достаточно лаконичен, но при этом код  легко читается и воспринимается. Код на языке Go компилируется в обособленные бинарные исполняемые файлы, выполняемые нативно без использования виртуальной машины (модули профилирования, отладки и другие подсистемы выявления проблем на этапе выполнения интегрируются в виде runtime-компонентов (http://golang.org/pkg/runtime/)), что позволяет добиться производительности, сопоставимой с программами на языке Си.

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


Основные новшества (http://golang.org/doc/go1.9), представленные в выпуске Go 1.9:

-  В язык добавлена возможность определения псевдонимов типов (https://golang.org/design/18130-type-alias), которая может оказаться востребована при проведении рефакторинга кода (https://talks.golang.org/2016/refactor.article) и постепенного перевода проектов на новые API. Например, при помощи конструкции "type T1 = T2" для существующего типа "T2" можно определить псевдоним с именем "T1" по аналогии с тем как имя "byte" является псевдонимом типа "uint8";

-  В состав включен новый пакет math/bits (https://golang.org/pkg/math/bits), предоставляющий функции для битовых операций и манипуляции беззнаковыми целыми числами с задействованием при возможности специальных инструкций CPU. Например, на системах x86-64 функция bits.TrailingZeros(x) будет выполняться с использованием инструкции BSF;-  В пакет sync добавлен новый тип Map (https://golang.org/pkg/sync#Map), который возможно применять в многопоточных приложениях. Данный тип в некоторых деталях отличается от штатного типа map, поэтому не предназначен для его прозрачной замены;-  В пакет testing добавлен новый метод Helper, применимый с объектами testing.T и testing.B. При помощи данного метода можно организовать вывод номера строки вызывающей функции при возникновении ошибки, вместо указания ссылки на фактический номер строки, из которой вызван метод t.Fatal;
-  В пакете time обеспеченно прозрачное отслеживание монотонного времени (время, прошедшее с определённого момента) для всех значений Time, что позволяет обеспечить надёжный расчёт разницы  между двумя значениями Time без влияния таких факторов как изменение времени или подстановка (https://www.opennet.ru/opennews/art.shtml?num=42528) лишней секунды.
-  Для ускорения процесса сборки реализована поддержка параллельной компиляции разных функций в пакете.

URL: https://blog.golang.org/go1.9
Новость: https://www.opennet.ru/opennews/art.shtml?num=47083


Содержание

Сообщения в этом обсуждении
"Релиз языка программирования Go 1.9"
Отправлено Аноним , 26-Авг-17 10:28 
geth (go ethereum) синхронизируется неделями, беспощадно насилуя систему. Вот она, производительность Go.

"Релиз языка программирования Go 1.9"
Отправлено Аноним , 26-Авг-17 10:43 
Так в наше время под "высокой производительностью компилируемых языков" подразумевают скорость на уровне джавы, что печально

"Релиз языка программирования Go 1.9"
Отправлено Аноним , 26-Авг-17 18:44 
В подавляющем большинстве случаев проблема в алгоритме и структурах данных, а не в языке программирования. Нормальный программист на пхп напишет эффективнее, чем хипстер на си.

"Релиз языка программирования Go 1.9"
Отправлено Аноним , 27-Авг-17 01:21 
Сервер на Go против сервера на Java говорит сам за себя 13ms против 52ms на прогретом окружении. Понятно что конечно ситуация синтетическая, но таки непонятно почему в пять раз медленее статический "Hello, world" отдает.

"Релиз языка программирования Go 1.9"
Отправлено Аноним , 27-Авг-17 12:19 
Что тут непонятного? Нативный код против эмулятора.

"Релиз языка программирования Go 1.9"
Отправлено Аноним , 27-Авг-17 12:38 
> Что тут непонятного? Нативный код против эмулятора.

Go у нас теперь эмулируется? Или у жабы отменили JIT?



"Релиз языка программирования Go 1.9"
Отправлено Аноним , 28-Авг-17 16:59 
OK, нативный код против эмулятора с JIT.

"Релиз языка программирования Go 1.9"
Отправлено лютый жабист__ , 28-Авг-17 06:28 
> непонятно почему в пять раз медленее статический "Hello, world" отдает

C фороникса сбежал? Сделай нормальный бенчмарк, с кучей хотя бы с 10ГБ (а лучше 50-100) и хоть каким-то движением в ней. Сразу увидишь убогость go-йского non-compacting GC.


"Релиз языка программирования Go 1.9"
Отправлено Аноним , 27-Авг-17 12:55 
Подавляющее большинство алгоритмов - линейная последовательность с парой ветсвлений. Там ошибиться негде.

"Релиз языка программирования Go 1.9"
Отправлено Аноним , 27-Авг-17 19:51 
Откуда же тогда берутся бажные программы? Рептилоиды баги в них запихивают?

"Релиз языка программирования Go 1.9"
Отправлено rshadow , 28-Авг-17 22:07 
В подавлющем большинстве софта алгоритмов раз два и обчелся. В основном БД, бизнес логика и интерфейс. И все это ляпают кто как умеет.

"Релиз языка программирования Go 1.9"
Отправлено funny.falcon , 26-Авг-17 11:08 
Если программу писал криворукий кодер, значит язык виноват? Странная точка зрения.

"Релиз языка программирования Go 1.9"
Отправлено Аноним , 26-Авг-17 14:22 
Не правда. Над geth работает большая команда профессиональных разработчиков. На данный момент это самый популярные ethereum клиент. А иссурки висят, их много: https://github.com/ethereum/go-ethereum/issues?page=1&q=is&#...
Пофиксить синхронизацию никак не получается уже очень долго. Они уже добавили режим fast, добавили кэши, которые все выкручивают до запредельных значений, и все равно ситуацию это не спасает.

"Релиз языка программирования Go 1.9"
Отправлено funny.falcon , 26-Авг-17 17:24 
> Не правда. Над geth работает большая команда профессиональных разработчиков. На данный
> момент это самый популярные ethereum клиент. А иссурки висят, их много:
> https://github.com/ethereum/go-ethereum/issues?page=1&q=is&#...
> Пофиксить синхронизацию никак не получается уже очень долго. Они уже добавили режим
> fast, добавили кэши, которые все выкручивают до запредельных значений, и все
> равно ситуацию это не спасает.

И что? Если проблема принципиально решается, и её не смогли решить - значит проблема в решальщиках.

Go в сравнении с сишечкой может отставать по производительности в 2-3 раза.
Если есть программа на C с вменяемой скоростью, и программа на Go остаёт от неё более чем в 5 раз, значит виноваты разрабы.

Нет такой программы на С? Тогда почему вы решили, что виновата Go ? Может изначально в etherium заложены такие не эффективные алгоритмы, что они на лшюбом языке будут тормозить?


"Релиз языка программирования Go 1.9"
Отправлено rshadow , 28-Авг-17 22:11 
> в 2-3 раза.
> в 5 раз

Это уже уровень производительности скриптовых языков.


"Релиз языка программирования Go 1.9"
Отправлено Аноним , 26-Авг-17 14:34 
Одну нет, но совокупность программ вполне могут говорить о качествах языка. В данном конкретном случае версия 1.7.0 на подходе. Если разработчикам за столько времени и выпущенных версий не удалось решить проблему производительности, значит её корни лежат за пределами доступа разработчиков, в языке и/или применяемых библиотеках.

"Релиз языка программирования Go 1.9"
Отправлено funny.falcon , 26-Авг-17 17:18 
Или в алгоритмах, которые эти разработчики пытаются реализовать или используют.

"Релиз языка программирования Go 1.9"
Отправлено лютый жабист__ , 26-Авг-17 13:25 
А язык причём? На чём клиент btc написан? На сях небось. С нуля блокчейн качался больше недели

Дело в хайпе, а не тормозах яп


"Релиз языка программирования Go 1.9"
Отправлено Аноним , 26-Авг-17 14:23 
Bitcoin core написан на с++, у него нет никаких проблем с синхронизацией.

"Релиз языка программирования Go 1.9"
Отправлено лютый жабист__ , 26-Авг-17 14:48 
Проблем никаких, но 122гб блокчейна качается  8 дней

"Релиз языка программирования Go 1.9"
Отправлено Аноним , 26-Авг-17 16:38 
Рад за вас, ethereum у меня синхронизируется без конца, вот уже 2 недели. При том всё медленнее и медленнее.

"Релиз языка программирования Go 1.9"
Отправлено Аноним , 26-Авг-17 19:05 
Ну и выкинь его.Взял какую-то какашку, а теперь жалуешься, что она воняет. Какашки всегда воняют, и о качестве того, чем они были до попадания в пищеварительную систему, это не говорит.

"Релиз языка программирования Go 1.9"
Отправлено Дегенератор , 26-Авг-17 19:10 
140Gb месяц качал на 200 Мбит

"Релиз языка программирования Go 1.9"
Отправлено Аноним , 29-Авг-17 16:06 
Так надо же:
1. Базу блок-чейна хранить на ssd.
2. С опцией клиента -prune 2048

"Релиз языка программирования Go 1.9"
Отправлено Аноним , 26-Авг-17 14:25 
Они оптимизировали синхронизацию, теперь она занимает где-то 2 часа, зависит от системы.

"Релиз языка программирования Go 1.9"
Отправлено Sasha , 26-Авг-17 16:04 
В смысле 122 гига на моих 10 мегабитах будет выкачивать за 2-3 часа? огооо архиватор попова какой-то? или как это она так сжимает блокчейн, выкачивает, а потом у меня на компе распаковывает?

"Релиз языка программирования Go 1.9"
Отправлено Аноним , 26-Авг-17 16:33 
10 мегабит - таких тарифов уже давно нет. У скайнета минимум 50 мегабит ненужных за 350 рублей. Если бы был у кого-то такиф 10 мегбит, я бы первый с радостью перешел на него.

"Релиз языка программирования Go 1.9"
Отправлено Аноним , 26-Авг-17 16:37 
> 10 мегабит - таких тарифов уже давно нет. У скайнета минимум 50

За МКАДом жизни нет!



"Релиз языка программирования Go 1.9"
Отправлено Аноним , 26-Авг-17 16:39 
Я за МКАДом, если чё. И тарифов 10 мегабит не существует лет 5, как DSL вымер.

"Релиз языка программирования Go 1.9"
Отправлено Аноним , 26-Авг-17 16:58 
> Я за МКАДом, если чё. И тарифов 10 мегабит не существует лет 5,

А причем тут тариф? Если максимально доступная скорость не превышает 10 мбит, то платить за большее глупо.

> как DSL вымер.

Угу, угу. Кое-где даже не родившись.



"Релиз языка программирования Go 1.9"
Отправлено Ilya Indigo , 27-Авг-17 13:50 
Я вообще на PPPoE сижу отнюдь не по собственному желанию, а также приходится 150 руб/мес только за реальник платить, что для меня дикость, но выбора у меня нет.
При этом долгое время пакет rp-pppoe в openSUSE и SLES был тупо сломан и не работал нормально, пока я это не обнаружил и не взялся за его сопровождение.
А вы тут об отсутствии 10-ти Mb говорите и про то что вы за МКАДом.
Вопрос должен стоять в другим образам, а есть ли у Вашего провайдера тариф в 100 Mb и если есть, то почему Вы, наверняка имея не хилую ферму из видеокарт, не можете себе его позволить?
Но в место этого адекватного вопроса Вы несёте неадекватную чушь зажравшегося МКАДовца.

"Релиз языка программирования Go 1.9"
Отправлено neverendingnevelny , 27-Авг-17 19:00 
DSL еще жив. Причем не так далеко от мкада.
И это нетрудно - ведь когда кроме РТ нет провайдеров - зачем торопиться с оптикой?

"Релиз языка программирования Go 1.9"
Отправлено Аноним , 26-Авг-17 16:43 
Провайдерам не выгодны такие низкоскоростные тарифы, т.к. трафик сейчас относительно дешевый, а 10 мегабит вполне достаточно для FullHD. Все бы подключались к таким тарифам. Поэтому сейчас только задранные по скорости тарифы по соответствующей плате.

"Релиз языка программирования Go 1.9"
Отправлено Аноним , 26-Авг-17 17:10 
> Провайдерам не выгодны такие низкоскоростные тарифы, т.к. трафик сейчас относительно дешевый,

Мля, откуда вы такие лезете, а?
Вы что, совсем не допускаете даже мысли о том, что кроме мегаполисов, абсолютно совсем внезапно, есть еще пригороды и всякая мелочь и тут уже как повезет и хре*овая инфраструктура тупо может не пропускать 50мбит?


"Релиз языка программирования Go 1.9"
Отправлено Наноним , 26-Авг-17 21:46 
Мля, откуда вы такие лезете, а?
Вы что, совсем не допускаете даже мысли о том, что кроме России, абсолютно совсем внезапно, есть ещё другие страны и тут уже как повезёт, на отшибе мира где-нибудь (Кипр, NZ) может быть и 1мб/с по ценам, которые вам и не снились (~70$/мес) огромным счастьем?
Развелось тут квасных диванных рассуждаторов. Лол.

"Релиз языка программирования Go 1.9"
Отправлено лютый жабист__ , 26-Авг-17 23:13 
И чё прикопались к скорости инета? МКАД, ЗАМКАД.

В случае с btc тупо канал не утилизируется. Или сеть перегружена или не масштабируется нормально. Торрентами 50 мегабит ест, bitcoin-qt телепается на 2-5 и хоть тресни. Реальный IP есть. Высовывать порт в инет? Щаз!


"Релиз языка программирования Go 1.9"
Отправлено Лис , 27-Авг-17 12:33 
> телепается на 2-5 и хоть тресни. Реальный IP есть. Высовывать порт в инет? Щаз!

Лол, толку от твоего реального айпи если ты порт не высунул? ССЗБ.


"Релиз языка программирования Go 1.9"
Отправлено Аноним , 27-Авг-17 12:41 
> Мля, откуда вы такие лезете, а?
> Вы что, совсем не допускаете даже мысли о том, что кроме России,
> абсолютно совсем внезапно, есть ещё другие страны

Очередной клоун.


"Релиз языка программирования Go 1.9"
Отправлено Лис , 26-Авг-17 21:06 
Попробуйте открыть входящие порты, заметил что разные блокчейны с закрытыми портами ведут себя не очень адекватно.
Блокчейн сама по себе не эффективная с точки зрения производительности технология.

К слову, как правило там внутри leveldb что не есть самая быстрая БД, но зато наиболее экономная по месту и в целом самая сбалансированная, если судить по этим тестам:
https://www.influxdata.com/benchmarking-leveldb-vs-rocksdb-v.../


"Релиз языка программирования Go 1.9"
Отправлено iPony , 29-Авг-17 11:11 
> geth (go ethereum) синхронизируется неделями,

А docker написан на go - и это один из самых фапабельных ПО, что я знаю.
Наверно дело не в бобине.


"Релиз языка программирования Go 1.9"
Отправлено _ , 29-Авг-17 17:07 
Мужду нами девочками - он только и ноден чтобы недо-лошади на него ... мнээээ ... фапали :-))) В продакшене (за редкими исклбчениями) - докер это боль! :-\  Впрочем _НЕ_ из за Go :) А из-за аффтарафф ...

"Релиз языка программирования Go 1.9"
Отправлено Led , 30-Авг-17 00:44 
> А docker написан на go - и это один из самых фапабельных ПО, что я знаю.

Для пони и кобыла - невеста.


"Релиз языка программирования Go 1.9"
Отправлено Крутой аноним , 26-Авг-17 10:45 
> и обеспечивает возможность использования сборщика мусора.

А можно и не использовать сборщик мусора?


"Релиз языка программирования Go 1.9"
Отправлено funny.falcon , 26-Авг-17 11:18 
>> и обеспечивает возможность использования сборщика мусора.
> А можно и не использовать сборщик мусора?

Есть много техник, позволяющих уменьшить кол-во создаваемого мусора.

В принципе, ни кто не мешает на чистом Go написать malloc-free. Просто со встроенными типами будет не легко работать.


"Релиз языка программирования Go 1.9"
Отправлено trolleybus , 26-Авг-17 12:01 
Можно. Rust его и не использует

"Релиз языка программирования Go 1.9"
Отправлено Аноним , 26-Авг-17 13:02 
Никто не запрещает делать типы с выделением памяти под них через malloc.

"Релиз языка программирования Go 1.9"
Отправлено лютый жабист__ , 26-Авг-17 14:52 
Если программа уровня хелловёлд, то гц не отработает даже. Если прога большая то гц это не минус, а плюс.

"Релиз языка программирования Go 1.9"
Отправлено pripolz , 27-Авг-17 08:44 
знаю 2 случая косяков, связанных со сборкой.
1 на джаве: в библиотеке jetty СМ просто не справлялся на больших нагрузках и со временем уводил программу в OOM.

2 на C#: сборщик освобождал то, что не должен был. Прогеры долго танцевали с бубном, пытаясь как-то это обойти. Обратились в техподдержку, и те сказали "да, мы знаем, что такой баг есть. КОГДА-НИБУДЬ починим"


"Релиз языка программирования Go 1.9"
Отправлено Аноним , 27-Авг-17 19:54 
А при чём тут Go?

"Релиз языка программирования Go 1.9"
Отправлено лютый жабист__ , 28-Авг-17 06:33 
> 1 на джаве: в библиотеке jetty СМ просто не справлялся на больших нагрузках и со временем уводил программу в OOM.

У жабовых GC максимальная скорость мусора сборки гигабайты в секунду. Если чё-то там где-то не успевало, вывод - прога генерила десятки гигабайт мусора в сек. Шо как бэ намекает на то, из чего сделан прогер 8)))


"Релиз языка программирования Go 1.9"
Отправлено Аноним , 28-Авг-17 11:04 
> У жабовых GC максимальная скорость мусора сборки гигабайты в секунду.

И он работает не переставая, или всё-таки даёт выполниться какому-то другому коду?


"Релиз языка программирования Go 1.9"
Отправлено лютый жабист__ , 28-Авг-17 11:22 
>> У жабовых GC максимальная скорость мусора сборки гигабайты в секунду.
> И он работает не переставая, или всё-таки даёт выполниться какому-то другому коду?

Не знаю как в GO, а вот жаба получается быстрее си в плане управления памятью. 8)

Т.к. сишники в основном потоке делают new и delete, reallocate итд для дефрагментации памяти, а жабка этим занимается в отдельных потоках, большая часть фаз сборки выполняется ПАРАЛЛЕЛЬНО с основной прогой. В отличие от могучего си...


"Релиз языка программирования Go 1.9"
Отправлено Аноним , 28-Авг-17 13:40 
Вопрос был не об этом. Эта фантастическая скорость в "гигабайты в секунду" — это когда gc запущен, так? А как часто он запускается, и какова средняя скорость сборки? Только её есть смысл сравнивать со скоростью замусоривания.

"Релиз языка программирования Go 1.9"
Отправлено лютый жабист__ , 29-Авг-17 05:22 
> Вопрос был не об этом. Эта фантастическая скорость в "гигабайты в секунду"
> — это когда gc запущен, так? А как часто он запускается, и какова средняя скорость сборки?

Если на самом деле интересно... С достаточно толстой задачи - распарсить 750ГБ XMLек и вытащить из них полезную инфу. GC срабатывает в среднем раз в 3 сек на 0.01-0.04 сек. Освобождает, как видишь 2ГБ за 0.02сек. Так что, получается что сборщик в среднем в секунду чистит 666МБ, тормозя прогу на 0.0066(6)сек.

[GC (Allocation Failure) [PSYoungGen: 2060768K->19907K(2088960K)] 7512698K->5471837K(7875584K), 0.0192799 secs] [Times: user=0.18 sys=0.01, real=0.02 secs]


"Релиз языка программирования Go 1.9"
Отправлено Аноним84701 , 28-Авг-17 16:16 
> Т.к. сишники в основном потоке делают new и delete,  reallocate итд для дефрагментации памяти
>  сишники  ... new и delete, reallocate  ... дефрагментации памяти

Я правильно понимаю, что и все остальные рассуждения и "аргументы" такого же "качества"?


"Релиз языка программирования Go 1.9"
Отправлено лютый жабист__ , 29-Авг-17 04:46 
>> Т.к. сишники в основном потоке делают new и delete,  reallocate итд для дефрагментации памяти сишники  ... new и delete, reallocate  ... дефрагментации памяти
> Я правильно понимаю, что и все остальные рассуждения и "аргументы" такого же "качества"?

У тебя этим занимается специальный класс в отдельном потоке? Наверное называется он MyNotGarbageCollector ? :)))))


"Релиз языка программирования Go 1.9"
Отправлено Аноним , 29-Авг-17 10:17 
В сишечке нет классов, new и delete.

"Релиз языка программирования Go 1.9"
Отправлено лютый жабист__ , 29-Авг-17 12:04 
>В сишечке нет классов, new и delete.

Наиболее могучие сишники не умеют плюсики. Очень смешно...


"Релиз языка программирования Go 1.9"
Отправлено Аноним , 29-Авг-17 13:43 
Наиболее лютые жабисты не видят разницы между C и C++. Очень грустно…

"Релиз языка программирования Go 1.9"
Отправлено pripolz , 04-Сен-17 18:04 
> У тебя этим занимается специальный класс в отдельном потоке? Наверное называется он
> MyNotGarbageCollector ? :)))))

Во первых, нормальные быстрые проги вообще в основном рантаймовом цикле ничего не выделяют и не освобождают, всё выделяется заранее, и освобождается при завершении работы класса.

В вторых - потоки не резиновые.

В третьих - как всегда пишешь на основе собственных размышлений и теории. Я тоже так могу, смотри: прежде чем ГЦ что-то освободит, он должен понять, что пора собственно это освобождать. Пока он будет понимать, мусор будет валить.

Далее, гигабайты в секунду - это вообще некорректные измерения. При чём тут гигабайты? Нужно считать кол-во системных вызовов, может он эти гигабайты один раз выделил разом, и затем освободил за пару микросекунд. И на какой машине? Короче, не позорься.


"Релиз языка программирования Go 1.9"
Отправлено Ilya , 29-Авг-17 03:49 
> C#: сборщик освобождал то, что не должен был. Прогеры долго танцевали с бубном,

Пять лет работаю с дотнетом, встречался с такими ситуациями только в руководствах. Но да, технически это возможно.


"Релиз языка программирования Go 1.9"
Отправлено Аноним , 26-Авг-17 18:35 
>> и обеспечивает возможность использования сборщика мусора.
> А можно и не использовать сборщик мусора?

Можно. Разрешаю.



"Релиз языка программирования Go 1.9"
Отправлено pripolz , 27-Авг-17 08:45 
> А можно и не использовать сборщик мусора?

Если крафтовое пиво обсохло на бороде


"Релиз языка программирования Go 1.9"
Отправлено Аноним , 26-Авг-17 11:52 
> при этом код легко читается и воспринимается

.. если вы уже специалист по Go.

> Данный тип в некоторых деталях отличается от штатного типа map, поэтому не предназначен для его прозрачной замены

Вот она, расплата за отсутствие дженериков..


"Релиз языка программирования Go 1.9"
Отправлено Аноним , 26-Авг-17 13:20 
>> Данный тип в некоторых деталях отличается от штатного типа map, поэтому не предназначен для его прозрачной замены
> Вот она, расплата за отсутствие дженериков..

Какая расплата и причем тут дженерики? Этот тип предназначен для постоянного набора ключей и сильно сливает стандартному по скорости добавления/удаления ключей. Странно было бы если бы не было никаких потерь из-за встроенных мютэксов.


"Релиз языка программирования Go 1.9"
Отправлено Аноним , 26-Авг-17 12:35 
Cектантов спросить забыли.

"Релиз языка программирования Go 1.9"
Отправлено Аноним , 26-Авг-17 16:44 
Действительно. Причин предостаточно и вспоминать D для этого не нужно.

"Релиз языка программирования Go 1.9"
Отправлено Аноним , 26-Авг-17 19:55 
Причин чего? Перестань разговаривать сам с собой.

"Релиз языка программирования Go 1.9"
Отправлено Аноним , 26-Авг-17 14:29 
Ух ты, оказывается, если переносить всё на свете на следующую строку и оставлять пробелы, код будет казаться объемнее!

"Релиз языка программирования Go 1.9"
Отправлено Аноним , 26-Авг-17 14:30 
Это разве показатель? Код на Go я понял, на D - нет, при том никогда не писал ни на том, на на другом. Почему D вдруг лучше?

"Релиз языка программирования Go 1.9"
Отправлено zz , 26-Авг-17 15:08 
А вот я как раз понял на D

"Релиз языка программирования Go 1.9"
Отправлено Аноним , 26-Авг-17 14:35 
Никто не мешает написать свою либу, чтобы было так же коротко, как на D.

"Релиз языка программирования Go 1.9"
Отправлено Аноним84701 , 26-Авг-17 16:35 
> Никто не мешает написать свою либу, чтобы было так же коротко, как на D.

Не знаю, что там с либами в первом примере, но во втором – тот же "reduce"  заменяется банальным циклом на две-три строки по типу гошного.
И основной упор там, как я понял, как раз таки  на демонстрацию экономии массы лишних телодвижений (с сохранением строгой типизации и соотв. возможности оптимизации компилятором) с помощью дженериков.



"Релиз языка программирования Go 1.9"
Отправлено Аноним , 26-Авг-17 18:59 
~~Абстрактный полиморф~~генерики уже завезли?

"Релиз языка программирования Go 1.9"
Отправлено Аноним , 26-Авг-17 19:25 
Зачем они? Научись использовать интерфейсы.

"Релиз языка программирования Go 1.9"
Отправлено Аноним , 28-Авг-17 11:48 
^ Gо-шники во всей красе. "генерики ни нужны, будем копипастить и костылить интерфейсами"

"Релиз языка программирования Go 1.9"
Отправлено Аноним , 28-Авг-17 15:38 
И ты учись. Когда научишься, копипастить не придётся.

"Релиз языка программирования Go 1.9"
Отправлено Аноним , 28-Авг-17 15:40 
> ^ Gо-шники во всей красе. "генерики ни нужны, будем копипастить и костылить
> интерфейсами"

Кстати, накручивание плюсиков-минусиков к комментам настолько же бессмысленно, как и копипастинг кода.


"Релиз языка программирования Go 1.9"
Отправлено Аноним , 28-Авг-17 19:09 
Вопрос не в том нужны ли они. А в том, что если ты хочешь сколотить обычный табурет, то нет смысла использовать шурупы что бы в будущем его можно было разобрать. Задача сделать дешевый и простой табурет.

"Релиз языка программирования Go 1.9"
Отправлено Аноним , 28-Авг-17 20:23 
Да нет, тут дело в другом. В Go принципиально отсутствуют инструменты, позволяющие делать одно и то же. Есть шурупы, но только под крестовую отвёртку. В некоторых других языках дают полный ассортимент — и под плоскую отвёртку, и под шестигранник, и под всякие звёздочки, и с левой резьбой… В итоге приходится для разработчиков сочинять всякие политики, какими шурупами надлежит пользоваться, чтобы не приходилось с собой всегда полный набор инструментов таскать (см. например https://google.github.io/styleguide/cppguide.html). В случае Go язык сразу создаётся вместе с политикой, и ничего, политике не соответствующего, в нём просто нет.

"Релиз языка программирования Go 1.9"
Отправлено pripolz , 26-Авг-17 22:57 
А что лучше, C# или Go?

"Релиз языка программирования Go 1.9"
Отправлено Led , 26-Авг-17 23:15 
> А что лучше, C# или Go?

1C (1-е сентября).


"Релиз языка программирования Go 1.9"
Отправлено ffirefox , 27-Авг-17 00:13 
AngelScript



"Релиз языка программирования Go 1.9"
Отправлено vantoo , 27-Авг-17 20:03 
Visual Basic 6.0, конечно.

"Релиз языка программирования Go 1.9"
Отправлено Аноним , 27-Авг-17 17:48 
Слушайте, отвалит от Golang типа "не производительный". Вон мейлру (извините) переходит на него потому как рукоплещет горутинам и производительности.
Руки распрямите.

"Релиз языка программирования Go 1.9"
Отправлено Led , 27-Авг-17 20:21 
> мейлру (извините)

Нет, этому нет прощения.


"Релиз языка программирования Go 1.9"
Отправлено Аноним , 28-Авг-17 06:14 
Вообще то нет. Вы явно не видите леса за деревьями.

"Релиз языка программирования Go 1.9"
Отправлено Аноним , 28-Авг-17 09:16 
Все эти языки приводят к распущенности. Программы на них тормозят не из-за того, что язык в какие-то 2-3 раза медленнее по своей структуре, а из-за того, что разработчика никак не волнует накладная стоимость применяемых структур и операций, которая в итоге вырастает многократно. Логика всех C#, Go, python,... программистов - язык сам всё оптимизирует. Но даже чисто физически это возможно далеко не всегда.

"Релиз языка программирования Go 1.9"
Отправлено Аноним , 28-Авг-17 11:08 
Просто это не программисты. Человек, освоивший какой-то (любой) язык программирования, ещё не становится программистом. Надо хотя бы минимальные представления об алгоритмах иметь.

"Релиз языка программирования Go 1.9"
Отправлено лютый жабист__ , 28-Авг-17 11:17 
> Все эти языки приводят к распущенности. Программы на них тормозят не из-за
> того, что язык в какие-то 2-3 раза медленнее по своей структуре,
> а из-за того, что разработчика никак не волнует накладная стоимость применяемых
> структур и операций,

Может ещё не поздно тебя полечить... :)) Слушай сюда: коттедж лучше всего строить из кирпичей. Но это не значит, что можно построить небоскреб из кирпичей. А если небоскреб надо построить за 20 дней, то увы и ах, могучие каменщики, которые вручную мажут раствором и веревочкой меряют кривизну стены просто идут далеко-далеко.


"Релиз языка программирования Go 1.9"
Отправлено Аноним , 28-Авг-17 20:01 
> Слушай сюда: коттедж лучше всего строить из кирпичей.

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


"Релиз языка программирования Go 1.9"
Отправлено dq0s4y71 , 29-Авг-17 14:57 
> А если небоскреб надо построить за 20 дней...

"Небоскрёбы" (т.е. серьёзные программы уровня ядра ОС или компилятора) за 20 дней не пишутся, друг мой. За 20 дней пишутся гoвнoприложения для смартфона на Джаве, и для этого Джава замечательно подходит. А ядра ОС и пр. делают именно "каменщики", которые вручную мажут раствором и веревочкой меряют кривизну стены, да-да.


"Релиз языка программирования Go 1.9"
Отправлено лютый жабист__ , 30-Авг-17 05:18 
>> А если небоскреб надо построить за 20 дней...
> "Небоскрёбы" (т.е. серьёзные программы уровня ядра ОС или компилятора) за 20 дней
> не пишутся,

И эти люди кичатся сверхинтеллектом, переключаемость нулевая. Я написал про небоскрёбы и 20 дней. Китаёзы строят небоскребы за 20 дней. Что ещё непонятно?

Линукс на си пишут уже 26 лет потому что Торвальдс не осилил плюсы. Когда он помрёт и проектом начнет рулить другой, всё сильно поменяется. И верёвочки и каменщики могут внезапно пойти далеко далеко...


"Релиз языка программирования Go 1.9"
Отправлено dq0s4y71 , 30-Авг-17 16:19 
> Линукс на си пишут уже 26 лет потому что Торвальдс не осилил плюсы.

Ога, а JVM почему на Си написана? Потому что жабисты даже жабу не осилили?


"Релиз языка программирования Go 1.9"
Отправлено лютый жабист__ , 31-Авг-17 08:04 
>> Линукс на си пишут уже 26 лет потому что Торвальдс не осилил плюсы.
> Ога, а JVM почему на Си написана? Потому что жабисты даже жабу
> не осилили?

Для развития загугли list of java virtual machines

Потом на чём написан HotSpot

Потом на чём написан весь стек JavaEE и тонны жабобиблиотек.


"Релиз языка программирования Go 1.9"
Отправлено dq0s4y71 , 31-Авг-17 13:46 
> Для развития загугли list of java virtual machines

Загуглил.

https://en.wikipedia.org/wiki/List_of_Java_virtual_machines

Навскидку:

Avian на C++
CACAO на C++
HaikuVM на C/C++

Больше не проверял, остальные, наверное, на джаве..

> Потом на чём написан HotSpot

http://www.stroustrup.com/applications.html

"The HotSpot Java Virtual Machine is written in C++ (this is the leading edge, high performance replacement for Sun's "classic JVM" which was written in C)."

А есть хотя бы один компилятор С++, написанный на Джаве? А ядро ОС промышленного уровня? Ну ладно, профессиональный видео-редактор? Может быть, CAD?

Нетути.

Игрушечную ОС, студенческую поделку, bloatware-монстра написать - можно, а что-то действительно сложное, производительное, долгоживущее - нет. Такие дела...:(


"Релиз языка программирования Go 1.9"
Отправлено лютый жабист__ , 01-Сен-17 05:29 
>> Линукс на си пишут уже 26 лет потому что Торвальдс не осилил плюсы.
> Ога, а JVM почему на Си написана? Потому что жабисты даже жабу не осилили?
> Загуглил.

И где там си? сплошь плюсы.

>что-то действительно сложное, производительное, долгоживущее - нет

Школу закончишь, поумнеешь.


"Релиз языка программирования Go 1.9"
Отправлено dq0s4y71 , 01-Сен-17 16:11 
Слив, кагрццо, засчитан :)

"Релиз языка программирования Go 1.9"
Отправлено Аноним , 28-Авг-17 13:31 
Можете попробовать конкатенативную парадигму.

"Релиз языка программирования Go 1.9"
Отправлено dq0s4y71 , 29-Авг-17 15:11 
Теоретически, правильно, но дело в том, что приоритеты за последние несколько десятилетий изменились. Машины стали быстрее, вместимее, более user-oriented (следовательно основное время тратят на ожидание ввода от пользователя), следовательно быстродействие и прожорливость стали не так важны. С другой стороны, стали более важны быстрота разработки и лёгкость поддержки приложений. Ну, и плюс программирование стало массовой профессией. Так что, естественно, что эти языки становятся мейнстримом для прикладного программирования.

"Релиз языка программирования Go 1.9"
Отправлено Анонага , 28-Авг-17 11:45 
lol no generics

"Релиз языка программирования Go 1.9"
Отправлено leap42 , 28-Авг-17 15:17 
вот расскажите мне, пожалуйста, зачем вам обобщенное программирование в языке низкого уровня?

"Релиз языка программирования Go 1.9"
Отправлено Аноним , 28-Авг-17 15:32 
> языке низкого уровня

Вы темой ошиблись, тут про Go.


"Релиз языка программирования Go 1.9"
Отправлено Аноним , 29-Авг-17 18:06 
Язык Go разрабатывался как язык системного программирования для создания высокоэффективных программ, работающих на современных распределённых системах и многоядерных процессорах.
Он может рассматриваться как попытка создать замену языку Си.

Неужели язык Си плох тем, что там не поддерживается generic programming?
Тоже самое, я думаю, относится и к языку Go.


"Релиз языка программирования Go 1.9"
Отправлено Аноним , 29-Авг-17 23:16 
> Язык Go разрабатывался как язык системного программирования
> Он может рассматриваться как попытка создать замену языку Си.

Где ты такую глупость вычитал?


"Релиз языка программирования Go 1.9"
Отправлено Аноним84701 , 30-Авг-17 00:41 
>> Язык Go разрабатывался как язык системного программирования
>> Он может рассматриваться как попытка создать замену языку Си.
> Где ты такую глупость вычитал?

https://blog.golang.org/go-one-year-ago-today
> We set out to build a language for systems programming - the kinds of programs one might typically write in C or C++ - and
> we were surprised by Go’s utility as a general purpose language.

https://github.com/golang/go/wiki/GoForCPPProgrammers
> Go is a systems programming language intended to be a general-purpose systems language, like C++.
> These are some notes on Go for experienced C++ programmers.

https://golang.org/doc/faq
> Go was born out of frustration with existing languages and environments for systems programming.