Max
И как?
Dmitry
ну, работает как-то
Dmitry
по объему кода примерно как ghcjs
Dmitry
при примерно равной функциональности
Dmitry
пока не могу сказать
Max
Ну вот да. Элм тоже какой-то многословный
Max
Но работает.
Max
Впрочем, насаждение FSM сапогом и строгая типизация - единственный нормальный выход для фронта
Max
Иначе жопа
Misha
на фронтэнде все так плохо, что там даже typescript уже счастье
Dmitry
фронтендеры, кстати, так не считают
Misha
ну а куда им деваться
Misha
привыкли
Anonymous
Но на фронтенде всё очень-очень плохо. Elm –– единственный разумный выход, потому что 1. Не так сложно 2. Помогает
Anonymous
Хотя если попробовал purescript, то Elm как-то не очень поначалу.
Misha
http://tonsky.livejournal.com/310929.html
Саша
Прошу прощения за оффтоп! Мы, группа студентов факультета социологии СПбГУ, проводим большое исследование рейтинга IT работодателей Санкт-Петербурга и Москвы. Пожалуйста, поддержите нас, пройдя опрос по ссылке http://sgiz.mobi/s3/63243b734400 Опрос состоит только из закрытых вопросов и займет 5 минут. Результаты опроса планируется опубликовать на habrahabr.ru в блоге “Моего круга” и в группе https://vk.com/jugru С админом согласовано
Dmitry
если есть тимлид. если тимлид
Dmitry
это не ты
Dmitry
еще бывает, что тимлид не против
Anonymous
всё равно, это ведь еще может сильно зависеть от задачи и от коллег…
Dmitry
может
Anonymous
интереснее, на мой взгляд, сделать не сколько хаскелл в любой компании, столько внедрить методы формальной верификации, на idris, например, или на Agda. в теории это развито и в среде математиков тоже, но всегда было интересно, как это можно применить в прикладной работе, я ни одного примера кроме Касперского не знаю
Anonymous
как-то категорично
Anonymous
Дорого и сложно.
Anonymous
А там где нужна верификация, уже давно классические методы работают.
Anonymous
(я так думаю)
Anonymous
«классические» - это какие?
Anonymous
логика Хора?
Anonymous
Хоара*
Alexander
сколько строка кока стоит?
Alexander
кому это нафиг надо?
Anonymous
Ага, она, model checking, separation logic, etc
Anonymous
Александр, я имел в виду не то кому это может надо, а при каком кейсе это может быть полезно
Anonymous
(гипотетически)
Alexander
при кейсе где стоимость потерь из-за ошибки больше цены программистов
Дима
на фронтэнде все так плохо, что там даже typescript уже счастье
Потому что typescript косячный в плане вывода типов и поэтому на эти лавры и не претендует
Alexander
и где это понимают
Дима
Написан на окамле
Дима
Причём для фейсбука это только промежуточная стадия для перевода всего фронта на окамл — в их масштабах писать типизируемый силами ocaml UI настолько выгодно, что можно и всю подобную технологию с нуля себе накатать
Anonymous
интересное мнение, было бы интересно, если так и окажется
Anonymous
flow интересная штукована, недавно появилась возможность его поюзать на практике: не у кого не было опыта использования flow в продакшне?
Vasiliy
в продакшоне не видел, наши фронендщики попытались его заюзать, натравили на небольшой модуль, посмотрели на пять страниц ошибок и забили
Vasiliy
сдаётся мне, проблема тайпскрипта, flow и прочих тайпчекеров для js не в том, что их сложно написать или что js такое говно
Anonymous
а в чем?
Vasiliy
а в том, что написаны уже тонны кода, которые кладут большой болт на всю эту типизацию, и при использовании любой сторонней библиотеки вся безопасность идёт лесом
Anonymous
ну да, это объяснимо
Vasiliy
а писать целиком всё на том же тайпскрипте, без библиотек, не каждая контора может себе позволить
Anonymous
а если использовать флоу изначально?
Anonymous
(писать с нуля на тайпскрипте, я согласен, радикально)
Anonymous
одно дело юзать чекер для, другое писать с нуля на языке без библиотек
Anonymous
для лишнее*
Vasiliy
да flow тоже захлебнётся, если подтянуть какую-нибудь библиотеку, в которой функция принимает количество аргументов, зависящее от значений предыдущих аргументов (привет, зависимые типы), а результат возвращает через модификацию какого-нибудь глобального объекта
Vasiliy
а такое в мире js не редкость...
Влод
(Int, Any...) -> Any
Влод
варарги я думаю там предсмотрены
Alexander
если у меня в программе открыто слишком много fd, то можно как-нить посмотреть откуда они?
Dmitry
что значит "откуда" ?
Alexander
что имеено открыто (ну это я уже посмотрел в /proc/X/fd)
Alexander
теперь хочу угадать кто наоткрывал
Dmitry
если запустить под strace по дампу бывает видно
Дима
в продакшоне не видел, наши фронендщики попытались его заюзать, натравили на небольшой модуль, посмотрели на пять страниц ошибок и забили
Плохой flow сказал им, что они пишут неправильно) Я мало видел проектов, в которых бы после включения flow было бы меньше тысячи ошибок на каждые 3-4к строк кода
Дима
flow интересная штукована, недавно появилась возможность его поюзать на практике: не у кого не было опыта использования flow в продакшне?
У меня был) Это путь не для слабых конечно)) С экосистемой у тс получше, но сижу на флоу только из-за его концепта
Дима
Концепт — а давайте сделаем вывод типов циничным пессемистом, если у пользователя есть хоть малейшая возможность сделать очередной жс финт — ставим ошибку, исходим из наихудшего возможного варианта. Тем самым, из всего сумашедшего динамического языка остается лишь скупое подмножество, только те операции, которые надёжны с точки зрения вывода в них типов
Дима
Примерно тот же подход под коробкой реализует purescript, только фейсбук нашёл способ пойти этим путём не меняя синтаксис языка (жертвуя мощью, но им в конце концов надо просто рисовать крупнейший в мире сайт)
Alexander
@voidlizard а сходу не помнишь, как лишний вывод урезать, чтобы только открытие fd ловить?
Dmitry
фиг знает, я всегда | grep
Vasiliy
-e open
Vasiliy
ну и прочие сиколы, создающие fd
Vasiliy
что там, socket, popen итд
Alexander
там SIGVALARM ползут
Alexander
их конечно можно грепов вырезать
Vasiliy
-e signal=!SIGVTALRM
Alexander
спасибо
Alexander
а трейс только 1 тред смотрит или все?