@haskellru

Страница 1361 из 1551
Dmitry
23.07.2018
12:01:25
Я сделаю такую систему, где Python-программа будет выполняться на миллионе разных данных в тестовом окружении, чтобы помочь тебе до деплоя на сервер.
А можно ли конечным набором тестов доказать отсутствие тех проблем, которые находятся на этапе компиляции (компилятором с поддержкой типов)?

Dmitry
23.07.2018
12:23:51
Вот то-то же!

Google
Алексей
23.07.2018
12:24:35
Вот то-то же!
но это и не всегда нужно, кстати

точнее почти никогда не нужно

Yuriy
23.07.2018
12:25:16
когда это не нужно, например?

A
23.07.2018
12:25:31
когда на пхп пишешь )

Алексей
23.07.2018
12:25:38
Alexander
23.07.2018
12:25:54
Опять же если взглянуть на веб, то между ES5 и ES2015 к примеру разница очень значительная.
Лол, сахарка насыпали, да промисы в стандарт добавили. Единственное реальное изменение на моей памяти - добавили возможность объявлять неглобальные для функции переменные

Алексей
23.07.2018
12:26:18
достаточно отработки тестов, покрывающих самые распространённые варианты + парочку гранчиных случаев

Yuriy
23.07.2018
12:26:29
когда я пишу любой бэкенд, будет грустно, если существует хотя бы один способ неправильным запросом украсть данные моих клиентов

Алексей
23.07.2018
12:27:01
возникнет неучтённая ошибка на бэкенде - она ловится, дебажится, пишется тест под неё

Google
Yuriy
23.07.2018
12:28:41
гипотетически он есть, всегда
что, не защищаться от них тогда, что ли?

Алексей
23.07.2018
12:28:43
да, если фирма не разорится от этой ошибки
ну знаете ли, не существует средств достижения абсолютной безбажности и безопасности

ну кроме const и let только сахар да промисы, которые каждый сам писал ещё до того как их в стандарт добавили
const и let тоже сахар, а разница между "каждый писал свои промисы" и промисы в стандартной библиотеке довольно существенная

Yuriy
23.07.2018
12:30:04
защищаться, да
значит, всё-таки нужно?

Алексей
23.07.2018
12:31:46
значит, всё-таки нужно?
Что нужно? Формально доказывать корректность каждой программы? Нет, не нужно. Статическая типизация тоже не панацея кстати.

нет, до const и let скоуп переменной всегда ограничивался лишь функцией
ну на самом деле не знаю, можно ли считать let и const сахаром, если они тривиальным образом преобразуются в var или function + var

Alexander
23.07.2018
12:32:58
Что нужно? Формально доказывать корректность каждой программы? Нет, не нужно. Статическая типизация тоже не панацея кстати.
не панацея, но количество ошибок может поубавить значительно, как и необходимость писать кучу тестов и страх перед рефакторингом

Алексей
23.07.2018
12:33:02
Alexander
23.07.2018
12:33:33
Но не самое важное.
Именно самое важное

Алексей
23.07.2018
12:34:13
не панацея, но количество ошибок может поубавить значительно, как и необходимость писать кучу тестов и страх перед рефакторингом
Обычно убавляется, да. Но вот насчёт "значительно" надо уже рассматривать конкретные случаи.

Andrey
23.07.2018
12:35:07
а статическую линковку бинаря из-под osx в линукс удалось завести кому-нибудь при компиляции stack --docker?

Алексей
23.07.2018
12:35:33
Именно самое важное
Нет, самое важное - это всё-таки промисы. А генераторы мало где используются. В основном используют опять же промисы и async/await поверх них.

Alexander
23.07.2018
12:36:28
Нет, самое важное - это всё-таки промисы. А генераторы мало где используются. В основном используют опять же промисы и async/await поверх них.
А async/await во что транслируется? Промисы при желании можно самому написать, это очень просто. А вот с генераторами сложнее.

Алексей
23.07.2018
12:37:36
А async/await во что транслируется? Промисы при желании можно самому написать, это очень просто. А вот с генераторами сложнее.
Async/await может спокойно транслироваться в es5 код без генераторов. А самописные промисы практически бесполезны, если повсюду либы на коллбэках, потому что в стандарт промисы не завезли.

A64m
23.07.2018
12:37:42
вообще серьезное изменение языка может не иметь большого влияния на практику его использования (по крайней мере какие-то годы до того, как практика поменяется) к примеру модули для хаскеля - это очень серьезное изменение языка но внедрение у него нулевое, так что никак на практику написания хаскельных программ оно не повлияло

Alexander
23.07.2018
12:37:50
То есть промисы это даже не изменение языка, это изменение "стандартной библиотеки".

Алексей
23.07.2018
12:38:55
То есть промисы это даже не изменение языка, это изменение "стандартной библиотеки".
Ну так то да. Но изменение которое оказало громадное воздействие. Поэтому по своей значимости изменение очень значительное (простите за тавтологию).

Google
Alexander
23.07.2018
12:39:30
Async/await может спокойно транслироваться в es5 код без генераторов. А самописные промисы практически бесполезны, если повсюду либы на коллбэках, потому что в стандарт промисы не завезли.
если у функций на колбэках есть унифицированный интерфейс (как, например, в Node.js), то написать функцию, которая функцию на колбэках превращает в функцию на промисах очень просто

Alexander
23.07.2018
12:40:55
Или завернуть эти колбеки в монаду
промисы это и есть +/- монада

Алексей
23.07.2018
12:41:10
Denis
23.07.2018
12:41:48
Александр
23.07.2018
12:41:58
Не "промисы и есть +/- монада", а "промисы могут иметь монадический интерфейс". А могут и не иметь.

Алексей
23.07.2018
12:42:36
Denis
23.07.2018
12:42:52
Sunny
23.07.2018
12:43:16
ты бы ещё предложил код после обфускации читать

Denis
23.07.2018
12:43:28
вообще какого всякая дичь в haskell канале обсуждается?

Alexander
23.07.2018
12:43:34
откуды вы лезете?
Так, а что не так? .then - это bind, только принимает не только a -> m b, но и a -> b. Promise.resolve - это return

Denis
23.07.2018
12:44:23
надо что против темы или дичь какая - сразу права не писать в канал

развели помойку

Sunny
23.07.2018
12:44:48
надо что против темы или дичь какая - сразу права не писать в канал
а потом люди удивляются, что на хаскеле мало проектов

Google
Александр
23.07.2018
12:45:16
Например, плюсовики сейчас вслед за Саттером гордятся своим новым изобретением std::expected<A,B>, который на поверку оказывается аналогом Either. И даже упоминают, что это - монада. Вот только мало кто понимает, что это не монада, а тип, который может иметь монадические свойства, если для него реализовать функтор, аппликатив и монаду (т.е., иметь fmap, pure и `bind`). Это не то же самое, что "он - монада, а значит, мы пишем монадический код"

Alexander
23.07.2018
12:45:33
ну ты школьник и принцип async/await как стейт машины не понимаешь
я прекрасно понимаю async/await, но только вот с генератороми асинхронный код писать гораздо проще, чем на стейт машинах(да генератор и есть стейт машина, спасибо, знаю).

Александр
23.07.2018
12:49:57
но в плюсах же нет синтаксической поддержки для монад, будет туева хуча скобочек
Что поделать. Синтаксическая поддержка - это круто, но ее отсутствие можно пережить. Я, кстати, пока думаю, как ее имитировать.

Denis
23.07.2018
12:50:01
в какую же чушь этот чат превращается

Admin
ERROR: S client not available

Алексей
23.07.2018
12:50:24
Александр
23.07.2018
12:50:29
"Чат уже не тот" (С)

Астрологи объявили неделю токсичности. Число активно чатящихся хаскеллистов увеличилось вдвое.

Sunny
23.07.2018
12:55:52
кроме operator и define (сомнительно define использовать для таких целей, конечно)

Александр
23.07.2018
12:56:33
в плюсах какие-нибудь есть возможности для синтаксических расширений?
На бустовом препроцессоре имитировали do-нотацию. Я пока еще не разобрался, как. А вообще, макросы - наше все

Sunny
23.07.2018
12:57:07
#define square(x) (x*x) square(i++)

?

Alexander
23.07.2018
12:59:06
обсуждение js объявляется закрытым после этой черты: -----_------------ ^_^ -----------------_------

A64m
23.07.2018
12:59:27
недоду-нотация впервые в мейнстрим попала в 2005-ом с тех пор внедрение особо не продвинулось

Алексей
23.07.2018
12:59:52
A64m
23.07.2018
13:00:10
но, еще 15 лет не прошло - не срок

Google
Александр
23.07.2018
13:00:21
Ну, я вчера на С++ имплементил Church encoded free monad

Alexander
23.07.2018
13:00:24
одно дело пообсуждать, другое - треш в течении двух дней устраивать

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

A64m
23.07.2018
13:04:36
какие еще таргеты хаскеля будут запрещены следующими? x86? llvm ir?

Alexander
23.07.2018
13:07:17
а какие сейчас запрещены?

A64m
23.07.2018
13:07:42
яваскрипт, очевидно же

Alexander
23.07.2018
13:08:20
а, в этом смысле

Alexander
23.07.2018
13:11:43
в контексте таргета - обсуждайте

но тут уже жесть какая-то пошла

A64m
23.07.2018
13:14:49
в контексте таргета новые фичи es - революционные. половина выхлопа ghcjs это function{return;}

Yuriy
23.07.2018
13:31:36
кроме operator и define (сомнительно define использовать для таких целей, конечно)
первый не меняет синтаксис. второй может, но это чрезвычайно опасно

Алексей
23.07.2018
13:34:25
идея для стартапа - телеграм бот, который вот таких вот ботов будет автоматически и мгновенно банить

Kakadu
23.07.2018
13:34:28
Народ, а в чем глубокофилософский посыл видео про "The Future of Programming"?

Выглядит как посредственный рассказ, завернутый в красивую форму

A64m
23.07.2018
13:35:54
не видел такого видео

Kakadu
23.07.2018
13:36:18
Ну сегодня же копипастили https://vimeo.com/71278954

Такое оущение, что там какой-то троллинг во всём докладе

A64m
23.07.2018
13:38:40
> Bret Victor а, ну понятно

может я даже и видел это видео или просто похожее

Страница 1361 из 1551