@gogolang

Страница 1474 из 1630
Александр
28.09.2018
12:02:38
я думаю потому что у меня процессор не последнего поколения

и память DDR3 1600

Yo
28.09.2018
12:04:09
представь сколько такая оптимизация для всех, в рамках планеты сэкономит электричества!
Представь ситуацию... в мире работет и производится (на замену ежегодно) порядка семи миллиардов штук электро-двигателей различной мощности и исполнений. Уменьшение потребления на 20-30% (с увеличением мощности), дает экономию гигаваты электричества (миллиаров рублей или долларов)

Google
Алексей
28.09.2018
12:05:45
написать .dll то можно и в C++ ?
Но интерфейс у неё будет чисто сишный. А его ещё и сделать надо, он автоматически не делается. Либо делать крестовый интерфейс, но тогда применение этих dll сильно ограничивается. То есть даже с другой версии крестового компилятора могут возникнуть проблемы.

Daniel
28.09.2018
12:09:42
BenchmarkRemote0-4 200000 5566 ns/op BenchmarkNewList-4 300000 5851 ns/op BenchmarkRemote0Opt-4 200000 5704 ns/op BenchmarkNewListOpt-4 300000 5440 ns/op BenchmarkNewSlice-4 300000 4752 ns/op
BenchmarkRemote0 300000 4284 ns/op BenchmarkNewList 500000 3951 ns/op BenchmarkRemote0Opt 500000 3948 ns/op BenchmarkNewListOpt 300000 4018 ns/op BenchmarkNewSlice 1000000 1589 ns/op

вы, я надеюсь, не забываете GOMAXPROCS=1 ставить?

Artem
28.09.2018
12:11:10
нужен гайд, как делать тру бенчи

Kirill
28.09.2018
12:47:55
Срань божья.
ну — рассказывай. ?

Никита
28.09.2018
12:49:10
Кстати на счёт иммутабельности, вместо того чтобы вводить ключевое слово, почему бы не ввести ее в виде иммутабельных типов? Например i_int8/int8i

Eduard
28.09.2018
12:50:50
Кстати на счёт иммутабельности, вместо того чтобы вводить ключевое слово, почему бы не ввести ее в виде иммутабельных типов? Например i_int8/int8i
Типов может быть много, а если есть возможность типу просто дать свойство неизменяемости - то это универсально

Alexander
28.09.2018
12:51:00
имхо, ключевое слово читабельнее и универсальнее

Google
Alexander
28.09.2018
12:54:38
Иммутабельность — свойство конкретного биндинга

Daniel
28.09.2018
12:55:21
Биндинга?

Roman
28.09.2018
12:57:04
Кстати на счёт иммутабельности, вместо того чтобы вводить ключевое слово, почему бы не ввести ее в виде иммутабельных типов? Например i_int8/int8i
1. в пропосале не описывается введение нового ключевого слова а перегрузка ключевого слова const: 4.4 Why overload the const keyword instead of introducing a new keyword like immutable etc.? https://github.com/romshark/Go-2-Proposal---Immutability#44-why-overload-the-const-keyword-instead-of-introducing-a-new-keyword-like-immutable-etc 2. потому-что тогда тебе придётся свои типы вручную писать в двух вариантах, мутабельный и немутабельный. Это можно делать уже сейчас, например оборачивать все типы интерфейсами и работать только через интерфейсы. Где-то использовать мутабельный интерфейс (с Write методами) а где-то немутабельный (только Read методы)). Но сколько же это boilerplate кода...

Alexander
28.09.2018
12:57:30
Биндинга?
Связывания имени с данными.

Алексей
28.09.2018
12:58:15
Jentry
28.09.2018
12:58:59
Связывания имени с данными.
А как же передача по указателю? Всегда по имени передавать, чекать и боксить к типу его некий meta?

Алексей
28.09.2018
13:02:30
Roman
28.09.2018
13:02:54
Иммутабельного типа быть не может.
может)) весь пропосал про иммутабельные типы если внимательно почитать)

Алексей
28.09.2018
13:03:01
Достаточно взглянуть на тот же питон.

Roman
28.09.2018
13:03:10
Jentry
28.09.2018
13:03:42
const указатели это совсем другое.
Если я правильно понял, ты предлагаешь по имени проверять доступ к данным, тогда ты должен либо 1) запретить передачу по указателю 2) boxing мета-инфы типа вместе с ним (python way?)

Roman
28.09.2018
13:04:07
а когда тонны boilerplate кода пугали евангелистов го? мне казалось, что у них фетиш на этом
тонны окей, но не мегатонны же? каждый долбанный тип в интерфейс оборачивать убьёт производительность, скорость написания и вообще всё всё всё

Alexander
28.09.2018
13:04:25
Вот смотрите, в JS есть иммутабельные биндинги - const, а вот const указателей нет и по этому гарантии const в JS ничего не стоят, ибо почти все данные ссылочные.

Andrei
28.09.2018
13:05:43
тонны окей, но не мегатонны же? каждый долбанный тип в интерфейс оборачивать убьёт производительность, скорость написания и вообще всё всё всё
все всегда можно решить кодогенерацией, будет вам ответ я это написал к тому, что написание тонн одинакового кода не считается чем то плохим в го сообществе

Roman
28.09.2018
13:07:00
const указатели это совсем другое.
указатель это тип. *T иммутабельный указатель это тоже тип. const *T указатель на иммутабельный объект это тоже тип. * const T и иммутабельный указатель на иммутабельный тип - тоже тип. const * const T 2.9.1. Pointer Examples https://github.com/romshark/Go-2-Proposal---Immutability#291-pointer-examples

Google
V
28.09.2018
13:07:28
привет c++

только там const *T - это указатель на иммутабельный тип

вроде

Roman
28.09.2018
13:09:01
Вот смотрите, в JS есть иммутабельные биндинги - const, а вот const указателей нет и по этому гарантии const в JS ничего не стоят, ибо почти все данные ссылочные.
нет в JS иммутабельности, там только shallow immutability, я её называю fake & useless immutability. можно изменить поле const объекта и рантайм даже не пикнет ? а freeze это не решение, ибо, опять-же, shallow... deepfreeze сильно бьёт по производительности

все всегда можно решить кодогенерацией, будет вам ответ я это написал к тому, что написание тонн одинакового кода не считается чем то плохим в го сообществе
ага, кодогенерации нам ещё не хватало)) всё она может решить, кроме пониженой runtime производительности ибо интерфейсы не бесплатные, как впрочем и копирование ну и конечно-же проблема explicit кодо-генерации кодогенерация, очевидно, не решает

Daniel
28.09.2018
13:12:00
Опять вы оптимизируете производительность до замеров

Andrei
28.09.2018
13:13:08
в общем я предвижу reject пропозола с формулировкой «это не нужно», в общем, как и всегда

Subbotin
28.09.2018
13:13:23
Оба достаточно большие

Daniel
28.09.2018
13:13:59
Можно

Roman
28.09.2018
13:14:32
производительность - тоже так себе аргумент для го, язык немного про другое
да, давайте плюнем на производительность, нагородим кодогенерации, и сделаем всё всё всё ЛИШЬ БЫ не облегчать себе работу иммутабельными типами))

snip
28.09.2018
13:14:49
в общем я предвижу reject пропозола с формулировкой «это не нужно», в общем, как и всегда
Иммутабельность нужна и поэтому на эту тему появляется много пропозалов, но const не примут, да

Andrei
28.09.2018
13:16:07
Иммутабельность нужна и поэтому на эту тему появляется много пропозалов, но const не примут, да
go way - это реализация иммутабельности с помощью генерации геттеров и сеттеров на каждый чих

Roman
28.09.2018
13:16:49
Опять вы оптимизируете производительность до замеров
я не оптимизирую, то что интрерфейсы не бесплатные, как и впрочем копии, каждому должно быть понятно... у меня лишь возникает вопрос: зачем? если этого можно добиться без лишней кодогенерации, копий и интерфейсов и НЕ терять производительность вовсе

Andrei
28.09.2018
13:17:50
У вас странное представление о говэй
ну да, ведь иметь нормальный пакетный менеджер из коробки это то же go way, хотя подождите ка….

snip
28.09.2018
13:20:12
ну да, ведь иметь нормальный пакетный менеджер из коробки это то же go way, хотя подождите ка….
Говэй это простота и читабельность, в го не стремятся добавит побольше новых фич, но при этом стремятся не ломать ничего старого

Google
Andrei
28.09.2018
13:20:55
Говэй это простота и читабельность, в го не стремятся добавит побольше новых фич, но при этом стремятся не ломать ничего старого
ну вот, иммутабельность через новое ключевое слово - это новая ненужная фича, как я и писал до этого

snip
28.09.2018
13:21:29
Про иммутабельность в том или ином виде разговоры идут давно, никто не говорит что это не нужно

Alexander
28.09.2018
13:23:26
Говэй это простота и читабельность, в го не стремятся добавит побольше новых фич, но при этом стремятся не ломать ничего старого
Простота лишь в плане изучения, а вот читабельность - это вряд-ли. Го-код очень плохо передает намерения программиста, а ещё его много.

snip
28.09.2018
13:25:00
Его много но он очень легко читается, когда тыс каждый день ревьювишь тонны кода это становится очень ценным

Alexander
28.09.2018
13:26:29
Его много но он очень легко читается, когда тыс каждый день ревьювишь тонны кода это становится очень ценным
Легко читается только когда точно знаешь, что код должен делать. Иначе приходится гадать на кофейной гуще.

Возможно есть более читаемые, но я не сталкивался
А с какими языками вы вообще работали?

Admin
ERROR: S client not available

Subbotin
28.09.2018
13:28:39
Чето ещё наверняка но меньше

Ну есть конечно SQL. Тот тоже хорошо читается

Раст например гораздо более сложен и замысел автора гораздо менее очевиден

Но там может нехватка знания языка

Alexander
28.09.2018
13:33:39
Хорошо читаются декларативные языки, например тот же SQL. Го же не даёт никаких возможностей даже для того, чтобы написать декларативный DSL, для обработки, например, итерируемых объектов.

Но там может нехватка знания языка
Какой смысл говорить о читабельности языка, который ты даже не знаешь?

Subbotin
28.09.2018
13:35:36
Ну я пытался освоить, написал пару простеньких хелловордов на базе libp2p но упёрся как раз в то что очень тяжело читать чужой код и забросил

Roman
28.09.2018
13:36:14
Иммутабельность нужна и поэтому на эту тему появляется много пропозалов, но const не примут, да
если const не примут тогда не видать нам в Go 1.x иммутабельности совсем

go way - это реализация иммутабельности с помощью генерации геттеров и сеттеров на каждый чих
читайте пропосал, поймёте что getter'ы / setter'ы тут совершенно не при чём и не решают перечисленные проблемы и вообще кодогенерация это никак не Go way, иначе бы она была встроена в язык (generics anybody?) а не просто в toolchain

snip
28.09.2018
13:36:53
Хорошо читаются декларативные языки, например тот же SQL. Го же не даёт никаких возможностей даже для того, чтобы написать декларативный DSL, для обработки, например, итерируемых объектов.
Предполагаю, что вы путаете читабельность и выразительность, го невыразительный, но читабельный Есть много выразительных языков, но читаются они хуже

Google
Roman
28.09.2018
13:39:25
ну вот, иммутабельность через новое ключевое слово - это новая ненужная фича, как я и писал до этого
это вам она не нужна, что не значит что она всем не нужна. Если вам она не нужна - спокойно игнорируйте, ибо вас никто не заставит её использовать даже если пропосал примут и реализуют, можете по старинке писать всё в мутабельном стиле а через новый keyword я не предлагал

Alexander
28.09.2018
13:40:25
Предполагаю, что вы путаете читабельность и выразительность, го невыразительный, но читабельный Есть много выразительных языков, но читаются они хуже
Нет, я ничего не путаю. Читабельные языки - те, которые позволяют понять не только, что код делает, но и зачем он это делает.

Александр
28.09.2018
13:40:31
да за живое вас задело

прямо бомбит

Andrei
28.09.2018
13:41:15
это вам она не нужна, что не значит что она всем не нужна. Если вам она не нужна - спокойно игнорируйте, ибо вас никто не заставит её использовать даже если пропосал примут и реализуют, можете по старинке писать всё в мутабельном стиле а через новый keyword я не предлагал
вы зачем то объясняете мне то, что я сам прекрасно знаю, выше я озвучил не свою позицию, а позицию разработчиков языка и с 99% вероятностью предсказал результат работы над этим пропозолом

Roman
28.09.2018
13:41:48
Его много но он очень легко читается, когда тыс каждый день ревьювишь тонны кода это становится очень ценным
когда из определения функции не понятно: 1. мутирует ли она переданные ей объекты 2. можно ли мутировать то что она возвращает 3. имеет ли она side-effect'ы на объект если это метод это вы называете читабельным? Обычно это называют неоднозначным кодом и он нечитабелен и опасен (ambiguous code)

Andrei
28.09.2018
13:42:47
если уж на просьбу добавить в стандартную поставку го нормальный пакетный менеджер еще год назад был только один ответ - «это не нужно», у иммутабельности под любым соусом сейчас нет никаких шансов пройти в язык

Alexander
28.09.2018
13:43:12
Переменные функции нормально именовать надо
Ага, а ещё доку писать и обновлять вовремя. Говорю же, детсад, а не инженерная область.

В инженерии все давно поняли, что людям доверять нельзя.

Subbotin
28.09.2018
13:44:06
Alexander
28.09.2018
13:44:38
Да даже SQL можно писать абсолютно нечитаемо.
Можно. Но его хотя-бы можно писать читаемо, с го же такого не прокатит.

Subbotin
28.09.2018
13:44:45
Именуй все таблицы и переменные как a, b, c, d

Roman
28.09.2018
13:45:38
Изменится чтение чужого кода
да, изменится, в лучшую сторну, станет яснее что автор имел ввиду

Subbotin
28.09.2018
13:47:00
да, изменится, в лучшую сторну, станет яснее что автор имел ввиду
Изменится в плане учебник от go 1.10 не даст понимания что это за херь и надо переучивать программиста

Страница 1474 из 1630