
Maxim
28.08.2017
09:20:35
а файбер — это кооперативная многозадачность в одном потоке

Dmitry
28.08.2017
09:21:02
типа потоки просто поднимается вспомогательный поток, а текущий делает вид что ничего не произошло?

Мерлин
28.08.2017
09:21:26

Maxim
28.08.2017
09:22:01
можно, но смысл же не в этом

Google

Maxim
28.08.2017
09:22:43
смысл в том, что файбер — это кооперативная многозадачность с yield, а await/async — это обертка над созданием потоков
опять же, судя по описанию, с C# я никогда дела не имел)

Dmitry
28.08.2017
09:23:19
это два подхода к решению одной и той же проблемы или как?
Допустим в Ди нужны await\async или они там будут только оверхэдом?

Maxim
28.08.2017
09:24:36

Dmitry
28.08.2017
09:29:09
если функция получает await она получается не завершится пока await сам не будет завершен?
foo()
{
await ....
}

Maxim
28.08.2017
09:30:57
https://habrahabr.ru/post/139734/ тут вот рассказывают про await/async
что-то мы в оффтопик уходим)

Pavel
28.08.2017
09:33:48
Да зайди просто в чат сишарпистрв и спрашивай там)
Я вот понял что хешмап в Д не такой уж быстрый и довольно сильно жрет память
По сравнению с обычными линейными случаями

Google

Oleg
28.08.2017
09:48:53
Как дела с gui в D?

Maxim
28.08.2017
09:49:28
неочень)

Oleg
28.08.2017
09:50:10
Потому что что я не читаю про gtk на D это только проще делать
Нет других языков, на которых с gtk лучше чем на D

Maxim
28.08.2017
09:51:06
очень — это когда GUI является либо экосистемой языка, либо есть несколько нативных альтернатив)

Oleg
28.08.2017
09:51:30
Напоминает Delphy
Что что а gui это библиотека
Вот файберы те же могут быть и частью языка, хотя спорный вопрос

Maxim
28.08.2017
09:53:40
не частью, а экосистемой)
например, частью стандартной библиотеки

Oleg
28.08.2017
09:54:05

Maxim
28.08.2017
09:54:28
в противном случае приятно было бы иметь набор нативных альтернатив)

Oleg
28.08.2017
09:55:07
Под винду на win api бэк должен быть?

Maxim
28.08.2017
09:55:43
не щупал, кстати, мое упущение)
но вообще, конечно, да, было бы приятно, если бы было нечто нативное для D, прозрачно отображающееся на нативный GUI для платформы

Oleg
28.08.2017
09:57:04

Google

Maxim
28.08.2017
09:57:07
я так понимаю, DlangUI примерно по такому принципу построен?

Oleg
28.08.2017
09:57:15

Maxim
28.08.2017
09:57:19
а чтобы тонны зависимостей не таскать

Oleg
28.08.2017
09:57:35
Если они например ставятся одним установщиком?

Dmitry
28.08.2017
09:58:25
dlangui какой то дутый ИМХО у Адама вроде была ГУИ либа из двух файлов

Maxim
28.08.2017
09:58:36
в данном конкретном случае оно не субъективное: для написания GUI-приложений под Win или macOS GTK совершенно не обязателен, но в рамках D, если хочется приятного и переносимого, он обязателен)

Oleg
28.08.2017
09:59:01
Весь gtk нужный под win одним 'next->next->next' ставится

Maxim
28.08.2017
09:59:12
ну и зачем он там?)
или зачем он в KDE?)

Oleg
28.08.2017
09:59:21

Maxim
28.08.2017
09:59:26
или в LxQT?)

Oleg
28.08.2017
09:59:48
Но ведь даже под самой виндой никто не пользуется чистым winapi
Все мутят обёртки

Dmitry
28.08.2017
10:00:25
неужто блин так сложно создать ГУИ либу?

Oleg
28.08.2017
10:00:29
И в итоге то тот же gtk вызывает winapi в конце концов

Maxim
28.08.2017
10:00:32
а у нас получается обертка над оберткой)

Oleg
28.08.2017
10:00:34

Dmitry
28.08.2017
10:00:41
в чем главная проблема?

Oleg
28.08.2017
10:00:48

Google

Dmitry
28.08.2017
10:00:56
в плане?

Maxim
28.08.2017
10:01:00
запускаем все это в KDE и получается обертка над оберткой, работающая в обертке)

Oleg
28.08.2017
10:01:03
Очень много писать

Maxim
28.08.2017
10:01:21
в общем, это вопрос религии, и вряд ли мы придем к какому-то мнению)

Dmitry
28.08.2017
10:01:23
как я понимаю или самому кнопки рисовать или обертку над системным API ?

Oleg
28.08.2017
10:01:34

Maxim
28.08.2017
10:03:23
я не жалуюсь и не говорю, что его нет)

Oleg
28.08.2017
10:03:25
С практической точки зрения 'вам шашечки или ехать?'

Admin
ERROR: S client not available

Oleg
28.08.2017
10:03:51
Дела делать можно и в целом приемлемо по удобству

Maxim
28.08.2017
10:04:00
дела делать можно и в целом приемлемо по удобству, особенно с последними стандартами)

Oleg
28.08.2017
10:04:38

Dmitry
28.08.2017
10:05:09
к примеру?

Oleg
28.08.2017
10:05:43
к примеру?
Буфер обмена с окружением drag-n-drop и тд
Много мелочей
При наличии хорошей обёртки теряет смысл
Мне кажется высказывание 'с gui дела обстоят туго' имеет подтекст в том, что применимость для написания настольных приложения низкая

Google

Oleg
28.08.2017
10:08:11
Конкретно по D
Я убеждаю в обратном
Применимость D для написания настольных приложений не ниже python

Maxim
28.08.2017
10:09:20
ну, я имел в виду, что какие-то нативные штуки, заточенные под GUI, как в C#, в язык вводить нет смысла, потому что у сообщества нет единого видения этого самого GUI
а async/await, плодящий треды, собственно, только для подобного и пригоден

qwerty
28.08.2017
10:12:46
В компилируемых ЯП возможно такое сделать?

Oleg
28.08.2017
10:27:47

Dmitry
28.08.2017
10:48:31
Сам гуй на Racket предпочитаю ваять ибо родной кросплатформенный фреймворк рулит. Не рулит он разве что по количество доступных виджетов (биндинги не ко всему написаны).

Oleg
28.08.2017
10:51:07

Dmitry
28.08.2017
10:55:32
Racket это либа для D? Или язык другой?
> язык другой
Разновидность Схемы. Проектировался под обучение программированию, но вырос в годный язык для практического применения. По бенчмаркам быстрее питона, но тормознее жабы. Есть статически типизированный диалект, Typed Racket.
> либа для D
В сишные программы без труда встраивается, думаю, встроится и в D.

Oleg
28.08.2017
10:56:52
Скриптовой?

Dmitry
28.08.2017
10:58:02
Скриптовой?
Компилируется в байткод, на x86 (если ничего не путаю) байткод частично компилируется в машкод.
Пруфов не могу привести, поэтому прям железно утверждать не стану (надо уточнить).

Eto
28.08.2017
12:21:15

Dmitry
28.08.2017
13:09:56
Хороший коммент:
"А перехватив ошибку на месте, ты даже понять не сможешь, насколько она фатальна, потому что вся логика процесса находится наверху.
Уровень перехвата ошибок должен быть разным, в зависимости от задачи перехвата. Если это освобождение ресурсов, то внизу. А если с целью логирования или перезапуска, то наверху."
Как я понимаю у Rust и Go именно такая проблема?

Pavel
28.08.2017
13:19:48
А какая ошибка бывает нефатальна?
Ошибка она и в африке ошибка, надо ее лечить.

Dmitry
28.08.2017
13:20:45
но ее же тогда уровнем выше все равно нужно проборосить, мало ли вдруг компонент ее обработать может

Pavel
28.08.2017
13:22:24
Ну так линейный возврат кодов и пробрасывает ошибку в родителя.

Roman
28.08.2017
13:57:26
Всем привет!