@dlangru

Страница 350 из 719
Oleg
25.12.2017
11:57:30
Pavel
25.12.2017
11:57:32
Например есть fasthttp - маленькая штуковина которая позволяет парсить http запросы очень быстро. И все.

Maxim
25.12.2017
11:58:09
так вот, фишка в том, что очень сырой фреймворк с сомнительной архитектурой (по крайней мере, был на тот момент), но складывалось впечатление, что это никого не парило)

Google
Maxim
25.12.2017
11:59:10
у меня сложилось впечатление, что в сообществе Go просто не принято обращать внимание на баги)

в общем, странная ситуация

Pavel
25.12.2017
12:00:29
Ну багов то везде куча. В том же docker их просто тысячами правят уже много лет

Но главное что есть некоторый product value, "эйдос", философски выражаясь, который позволяет программистам-пользователям решать свои задачи максимально просто и быстро.

Evgeny
25.12.2017
12:03:24
да нормально все с vibe,d

косяки есть

но оказался не такой быстрый как хотелось бы

таки он не в глубокой разработке

Evgeny
25.12.2017
12:04:16
в расте вообще нормального веб-фреймворка нет

главное, что вайбд быстро развивается

Maxim
25.12.2017
12:04:56
тот же tcell — это отдаленный аналог ncurses, написанный практически на чистом Go, и пилят его минимум 13 человек)

Evgeny
25.12.2017
12:05:35
в Go ща жопа как в JavaScript

Google
Maxim
25.12.2017
12:05:47
а я вот себе забабахал самый минимум консольных функций на D и остановился, потому что нет нужды и времени, и теперь эта недобиблиотека так и останется недобиблиотекой, и не будет никакого эйдоса)

как-то так

Evgeny
25.12.2017
12:06:31
Раст - это жестоко. Вы постоянно боретесь с компилятором

Dmitriy
25.12.2017
12:06:50
Фу раст

Maxim
25.12.2017
12:07:42
мне кажется, раст — это предельная крайность шкалы [борьба с компилятором ... борьба с багами в рантайме]

Evgeny
25.12.2017
12:08:04
не уверен

Maxim
25.12.2017
12:08:06
где-то, наверное, это нужно)

Maxim
25.12.2017
12:09:07
ближе к борьбе с багами в рантайме)

Evgeny
25.12.2017
12:09:08
где-то справа от

Maxim
25.12.2017
12:10:10
ну, как бы, вполне понятно: чем больше прав, тем больше ответственности, можешь все кастовать к void*, будь добр отвечать за свои поступки)

Evgeny
25.12.2017
12:10:50
В D слишком много понаворотили

нужны были плюсы с человеческим синтаксисом - и все

Maxim
25.12.2017
12:11:36
например?

Evgeny
25.12.2017
12:12:00
например миллион аттрибутов

странноватые массивы

SFINAE, который в D нахер не нужен

Maxim
25.12.2017
12:13:53
нужны были плюсы с человеческим синтаксисом - и все
Кстати, возможно, такой подход и не дает равиться шумихе вокруг языка. Можно даже «слоганы» сравнить: «Go — охрененный язык для асинхронной разработки», «Rust — охрененный язык для безопасной разработки», «D — типа С++, но местами лучше».

Evgeny
25.12.2017
12:15:29
да нет, просто D не продвигается крупными компаниями

за всеми этими Go, Rust стоят большие конторы, на которые молятся мульены

Google
Evgeny
25.12.2017
12:16:50
стоит какому-нибудь Google взять D под крылышко, как оно наверняка взлетит аки ракета

Oleg
25.12.2017
12:17:17
странноватые массивы
чего в них странного?

например миллион аттрибутов
половиной из которых можно не пользоваться

Evgeny
25.12.2017
12:19:52
чего в них странного?
Если не знать кишки можно столкнуться с WAT.

эт почему?
А зачем он нужен если есть template constraints?

половиной из которых можно не пользоваться
Да, но если ты задействовал либу в которой автор любит ими пользоваться, высок риск огрести серьезных проблем. Я например не могу апгрейдить без серьезных переделок с vibe.d 0.7.x на 0.8.x имменно поэтому.

SFINAE затрудняет поиск ошибок, а иногда провоцирует труднонаходимые ошибки

Oleg
25.12.2017
12:26:03
это вот про template constaints?

template constraints это ограничение сигнатуры? типа int foo(T : float)(T a)

Oleg
25.12.2017
12:30:38
так ведь вместе с SFINAE это как раз работает удобно?

Evgeny
25.12.2017
12:30:53
WAT есть что?
https://www.destroyallsoftware.com/talks/wat

template constraints это ограничение сигнатуры? типа int foo(T : float)(T a)
да но не обязательно, еще есть int foo(T)(T a) if(isNumber!T) {...

а есть другой подход?
есть, выкинуть SFINAE нафиг

Oleg
25.12.2017
12:33:02
да но не обязательно, еще есть int foo(T)(T a) if(isNumber!T) {...
не знаю в чём различие механизма ограничения между int foo(T : float)(T a); и int foo(T)(T a) if (is(T : float));

Evgeny
25.12.2017
12:33:47
в данном случае нет, просто у if гораздо больше возможностей

Oleg
25.12.2017
12:34:04
SFINAE подразумевает, что именно при ошибке во время инстанцирования ищется другая подходящая?

Google
Evgeny
25.12.2017
12:34:39
например нельзя написать int foo(T = float)(T a) зато можно int foo(T)(T a) if(is(T == float))

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

Oleg
25.12.2017
12:36:30
просто в исполнении int foo(T=float)(T a); меньше механизмов можно задействовать

но не соль... эт я просто для ясности

Evgeny
25.12.2017
12:37:50
хе, действительно можно

в доках нет

или я немного отстал от жизни

Admin
ERROR: S client not available

Oleg
25.12.2017
12:39:55
int foo(T:X[V], V, X:float)(T a) даже вот так можно

по всей видимости допустимы все выражения, которые допустимы в is

но это не точно

Evgeny
25.12.2017
12:41:22
не, я попутал

== нельзя

= вообще непонятно что значит

а не, понятно

= - это по умолчанию

совсем другая песня

int foo(T = float)(T a) совсем не эквивалент int foo(T)(T a) if(is(T == float))

Google
Oleg
25.12.2017
12:43:00
да, кстати

Evgeny
25.12.2017
12:43:04
я имел ввиду, что нельзя писать int foo(T == float)(T a)

ты меня сбил с толку :)

Oleg
25.12.2017
12:44:02
а имеет смысл такая запись?

Evgeny
25.12.2017
12:44:09
имеет

Oleg
25.12.2017
12:44:21
можно написать int foo()(float a); и будет тоже самое

Evgeny
25.12.2017
12:44:22
если я хочу чтобы мой шаблон работал исключительно для флоатов

нет не тоже самое

Oleg
25.12.2017
12:44:39
в чём разница?

шаблоная функция будет работать только с flaot

Evgeny
25.12.2017
12:46:05
да, только с флоат

а обычная и с int

Oleg
25.12.2017
12:46:20
а

типа точное соответствие без неявного приведения?

Evgeny
25.12.2017
12:46:30
фактически запрет на неявную конвертацию

Oleg
25.12.2017
12:46:43
ну да

Evgeny
25.12.2017
12:46:47
двоеточие также работает

любой тип, который можно неявно привести

а == - это точное соответствие

Oleg
25.12.2017
12:47:24
окей, тут согласен

Но насчёт массивов пока все равно не понял

Evgeny
25.12.2017
12:52:53
Например две переменные указывают на один и тот же массив. Если к одной переменной добавить элемент, а потом изменить значение, допустим, первого элемента.

Страница 350 из 719