Home
Objective Caml
ocaml@conference.jabber.ru
Вторник, 23 августа 2011< ^ >
f[x] установил(а) тему: Камль -- http://caml.inria.fr | http://camlunity.ru/ (теперь с git доступом!) | Верблюды грязи не боятся! | release crap, enjoy NIH | репортьте баги официальным дилерам | ocaml мёртв и тормозит, move on | stdlib only? - ССЗБ
Конфигурация комнаты
Участники комнаты

GMT+4
[00:11:38] shaggie вышел(а) из комнаты
[00:31:24] Typhon вошёл(а) в комнату
[00:32:29] <Typhon> есть же yojson.
[00:33:10] <Typhon> хотя я не помню, в json-static или в json-wheel синтакс екстеншны клёвые для жсона. и не знаю, есть ли они в yojson
[00:38:51] Kakadu вышел(а) из комнаты
[00:47:54] ftrvxmtrx вышел(а) из комнаты
[01:23:43] <Typhon> самые популярные причины для изучения хасклея сегодня: мода и старость http://labs.scrive.com/2011/07/why-haskell-20-reasons/
[02:24:37] ftrvxmtrx вошёл(а) в комнату
[03:01:55] Typhon вышел(а) из комнаты
[03:42:01] letrec вошёл(а) в комнату
[03:42:09] letrec вышел(а) из комнаты
[03:42:25] letrec вошёл(а) в комнату
[04:40:55] letrec вышел(а) из комнаты
[06:16:54] zinid вошёл(а) в комнату
[08:54:16] <bobry> я только ради syntax extensioв его и читал :)
[08:54:35] <bobry> кстати Typhon, не хочешь как у пацанов принято -- сделать релиз кобзона?
[09:07:22] bobry вышел(а) из комнаты
[09:09:30] Kakadu вошёл(а) в комнату
[10:22:14] gds вошёл(а) в комнату
[10:54:25] f[x] вышел(а) из комнаты
[11:30:15] ermine вошёл(а) в комнату
[11:34:42] bobry- вошёл(а) в комнату
[11:41:15] f[x] вошёл(а) в комнату
[11:57:56] f[x] вышел(а) из комнаты
[12:20:14] Typhon вошёл(а) в комнату
[12:28:21] <Typhon> bobry-: надо допилить 1) проверить, что нет багов, 2) затестить перформанс 3) в идеале — синтакс екстеншны. а у меня что-то в последние недели до программирование, в свободное время, руки не доходят. лето, мать его :-)
[13:04:03] slepnoga вошёл(а) в комнату
[13:06:43] slepnoga вышел(а) из комнаты
[13:39:17] shaggie вошёл(а) в комнату
[14:34:05] <bobry-> Typhon: я вот думаю попробовать сделать with bson, если ты не против
[14:34:17] <Typhon> нет, конечно %)
[14:34:29] <bobry-> ну и может убрать binary.ml в пользу выпиленного из jane core куска :)
[14:35:00] <bobry-> кстате насчет бонусов в пользу хаскелля -- хайп это здорово, как следствие по хацкелю *ДОФИГА* инфы
[14:35:12] <bobry-> а у камла даже мануал к camlp4 фик найдешь
[14:35:22] <bobry-> который часть *стандартного* дистрибутива
[14:35:26] <Typhon> http://camlunity.ru/doc/camlp4-3.12/ %)
[14:35:33] <bobry-> да-да, API docs
[14:35:34] <bobry-> спасибо
[14:35:39] <Typhon> http://elehack.net/michael/blog/2010/06/ocaml-syntax-extension
[14:41:34] <Typhon> ermine: http://i.imgur.com/FFYOV.png
[14:43:56] komar вышел(а) из комнаты: Replaced by new connection
[14:43:56] komar вошёл(а) в комнату
[14:48:19] f[x] вошёл(а) в комнату
[14:49:12] <bobry-> Typhon: это откуда такой ужас?
[14:49:34] <zinid> bobry-: чтобы учить камло, надо под боком иметь матёрого камлиста, которого не заломает тебя за ручку водить ;)
[14:50:01] <zinid> ну или кучу времени тратить на гугление
[14:59:51] <bobry-> ну, у нас с матерыми камлистами проблем нет :)
[14:59:56] <bobry-> целых 10 человек
[15:16:51] <Typhon> bobry-: из твитора
[15:19:41] <bobry-> Typhon: а ты cobson где нить используешь? или просто фо фан написал?
[15:20:25] <Typhon> bobry-: у нас в конторе змку, bson много где используется, чтобы можно было, если что, сказать, "а давайте на камле" и предъявить либы, на вопрос "а либы то есть?"  
[15:21:16] <bobry-> круто вам :)
[15:21:26] <bobry-> у нас никто не рвется в камловоды
[15:22:29] <Typhon> ну у нас тоже не то чтобы рвуться, потому что кодобаза на других языках большая, но есть поддержка, поэтому если будет задача, где не требуется старый код, то вполне можно пихнуть
[15:27:40] <gds> так и вижу функциональщиков, правдами-неправдами пробравшихся в серьёзные фирмы, пишущие на серьёзных языках, и так и думают, как бы своё камло всунуть.  "Нельзя простить ошибки резиденту" и всё такое.
[15:28:18] bobry- уже во всю всовывает :)
[15:28:38] <Typhon> gds: ну если почитать сацесс сторис всякие, то так и есть
[15:28:45] <Typhon> по крайней мере, очень часто именно такие сценарии
[15:32:01] <gds> ага, редко когда "с начала" используют камло.
Просто увидел параллели с разведчиками, конспирацией; положительный ответ на вопрос "писали раньше на фяп?" означает неприём на работу, а раскрытие этого в процессе работы означает увольнение с позором, и всё такое.
Тут ещё дело в том, что мне про подобное рассказывали, когда функциональщиков не принимали на работу по идеологическим соображениям, вот оно и сложилось в гипотетическую картину.
[15:32:48] <bobry-> gds: кто это тебе такие ужасы рассказал?
[15:33:01] <gds> знакомый знакомого :]
[15:33:04] <bobry-> наверняка искали каких нибудь ява-программистов для очередного энтерпрайз проекта
[15:33:37] <gds> угадал.
[15:34:25] <bobry-> ну у явы теперь есть всякие скалы вон
[15:34:27] <bobry-> тоже фяп
[15:34:34] <bobry-> и кто то на этом даже пишет
[15:35:24] <gds> да, пишут.  Безблагодатно это.
[15:49:11] <gds> кстати, есть ли тут такие, у которых основная кодобаза на javascript, а хочется большего?  Если да, как выкручиваетесь?
[15:54:07] <Typhon> не совсем мой случай, но свои пять копеек вставлю. у меня сейчас морда к моему бэкенду — довольно объёмная жс хреновина. пытался совратить на ocamljs (js_of_ocaml — путаю), но там человек типа "да зачем надо" — в итоге — мешанина колбэков в файле типа canvas.js. несколько раз убеждал заюзать фреймворк какой-нибудь, для организации, но безуспешно. но в итоге всё-таки фреймворк (+ общий сдвиг приложения в бэкенд) —  backbone.js
[15:54:24] <bobry-> gds: в плане выкручиваетесь?
[15:54:43] <Typhon> то есть, я за использование фреймворков вида backbone.js, knockout.js, sproutcore и тд (они не равноценные, вроде, но я не копенгаген :D )
[15:59:03] iNode вышел(а) из комнаты
[16:00:01] <gds> Typhon: ага, понял, посмотрю.  Опять старые задачи всплывают, вот и интересуюсь.
[16:00:26] <gds> кстати вот да, модульности явно не хватает, я сейчас проводил обзор жс и учёл это первым пунктом.
[16:01:00] <Typhon> вот в этом плане бэкбоун (и кажется, нокаут) позволяют модульности добавить и вообще организации какой-то, в духе МВЦ
[16:01:49] <Typhon> ну то есть, ящитаю, что припарками (библиотеками) дело не исправить, если тебе надо что-то большое делать
[16:02:38] <Typhon> пусть будет у тебя require.js и underscore, но без фреймворка тебе либо придётся самому выдумывать что-то такое, либо мешанину обработчиков событий делать
[16:16:17] <bobry-> вообще, если проект действительно большой то можно взять closure compiler + closure library от гугла
[16:16:30] <bobry-> оно там типы проверяет и где могет -- оптимизирует код
[16:16:40] <bobry-> правда писать приходится в стиле жавы, а не js
[16:17:45] <Typhon> а что толку в проверке типов в языке, где "1" + 1 = "11" и это ок?
[16:19:09] <bobry-> такой код не скомпилируется
[16:19:12] <bobry-> в этом и толк :)
[16:19:39] <bobry-> мне больше нравится код вида +x * 10, где +x явно приводит x к Number
[16:19:40] <bobry-> брр
[16:31:07] <gds> всё понял.  Кстати, а с частичной типизацией / gradual typing (или как там оно) -- кто-нибудь читал?
[16:43:08] letrec вошёл(а) в комнату
[16:43:17] letrec вышел(а) из комнаты
[16:43:33] letrec вошёл(а) в комнату
[16:43:41] <Typhon> http://ecee.colorado.edu/~siek/gradualtyping.html <- тут читать? увидел пока отсылку к python 3k и тайп аннотациям — оно всё равно динамически типизируемое, в том смысле, что в рантайме будет проверка типов. (это после первых абзацев мысли). + если у питона это более менее удобно сделано, то как аннотировать жс — хз
[16:49:43] <bobry-> Typhon: через *жо*...jsdoc
[17:11:09] letrec вышел(а) из комнаты
[17:21:23] zinid вышел(а) из комнаты
[17:36:57] <gds> Typhon: благодарю, это оно -- то, что мне надо в качестве "почитать-посмотреть-прикинуть".
[18:10:33] <Typhon> Kakadu: твой qt поминают в чятике!
[18:10:47] <f[x]> Kakadu: там опять твой lablqt в irc поминают, в ключе "о, оно ещё шевелится"
[18:10:52] <f[x]> бгг
[18:11:36] <f[x]> сразу видно кому нефиг делать на работе
[18:13:15] <Typhon> ну нинада! %) #ocaml не такой активный, чтобы сильно от работы отвлекал.
[18:14:06] <gds> а у меня сейчас удалёнка с гибким графиком, пишу на окамле.  ссука, да? :]
[18:16:26] <f[x]> очевидно дисциплинированная с-а, я так не могу
[18:18:05] <gds> тоже сначала гибкий график не мог.  Забивать же проще :)  Тут просто надо, чтобы фиксированный график настолько достал, чтобы остальное уже было несущественным.
[18:19:30] iNode вошёл(а) в комнату
[18:19:30] <Typhon> а я, помимо "забивать же проще", боюсь обратного — заработаться сильно
[18:20:06] <gds> дальше, чем до психозов и неврозов, не заработаешься, не переживай.
[18:20:53] <f[x]> отдельное место (ака офис) с не шибко жёстким графиком - ок
[18:21:12] <f[x]> дома слишком много отвлекающих факторов
[18:22:03] <gds> в принципе ок, да.  Дома -- тоже отвлекает (но можно сделать себе рабочий кабинет!), но если с графиком/дисциплиной и прочим напряжно, то лучше выдрессировать домашних.
[18:23:59] <gds> ну и вот, собственно, дома раскусил силу "помидорок".  Как раз, чтобы не переработать.  Но, всё равно, удаётся изредка.
[18:52:31] <Kakadu> Typhon, f[x]: спасибо
[19:19:11] letrec вошёл(а) в комнату
[19:26:59] <f[x]> Kakadu: так ты просто возьми и попробуй написать какой-то конкретный гуй для какой-нибудь конкретной программы, и сразу станет понятно что удобно, а что неудобно
[19:28:38] <Kakadu> f[x]: да я вообще в шоке, потому что я не могу дописать нормально генерацию слотов.  Не могу. Не могу рассмотреть все случаи. Потом что С++ --- это пиздец. Потому что я дурак. и Поэтому я не могу вызывать метод show, потому что это долбаный слот...!;%№?
[19:29:22] <f[x]> ну классический вариант - напиши _как-нибудь_
[19:29:26] <f[x]> чтобы его можно было юзать
[19:29:33] <f[x]> поюзай, и исправь чтобы было удобней
[19:29:43] <f[x]> make it run, make it right, make it fast
[19:30:59] <f[x]> сделай что-то на чём можно писать рабочий гуй, сократи все углы, захардкодь всё что мешает, главное в результате получить нулевую версию, которую можно юзать
[19:31:08] <f[x]> по результатам юзания - улучшаешь
[19:31:22] <f[x]> такЪ победишь
[19:32:48] <Kakadu> спасибо за поддержку
[19:34:54] <f[x]> скажешь когда оно будет юзабельное - попробую какой-нибудь куркулятор написать
[19:39:49] <gds> Kakadu: есть _минимальный_ пример лажи со слотом?  То есть, пример плюсявога кода, который успешно "генерирует слот" (хз, я не в теме вообще), и есть предполагаемое апи "генерации слота" (ну, того же самого действа) из камла?  Если да -- прошу, потрать время, приведи эти минимальные примеры.  Настаиваю на минимальности, взамен обещаю минимум пару часов обсуждения-работы над этим вопросом, плюс неизбежное фоновое обдумывание.
[19:43:11] <f[x]> Rent gds's brain for free! LIMITED OFFER!
[19:45:45] <gds> в обоих смыслах limited, да :)
[19:48:30] <Kakadu> gds: нет пока не надо. Просто есть проблемы при генерации, которые сводятся к аккуратному рассмотрению кучи случаев, которые я никак не могу аккуратно рассмотреть
[19:50:13] <gds> понял.  А ещё иногда с тем, что плохо ложится на камло, срабатывает фокус "абстрагировать/обернуть чем-то более высокоуровневым".
[19:59:11] bobry- вышел(а) из комнаты
[20:05:20] letrec вышел(а) из комнаты
[20:15:44] Typhon вышел(а) из комнаты
[21:20:28] bobry вошёл(а) в комнату
[22:00:44] ftrvxmtrx вышел(а) из комнаты
[22:00:53] ftrvxmtrx вошёл(а) в комнату
[22:05:23] <bobry> к сегодняшнему разговору о js http://habrahabr.ru/blogs/javascript/126901/#comment_4185324
[22:07:01] shaggie вышел(а) из комнаты
[22:07:29] <gds> травишь на тему "тонкости плохого дизайна жс" или "тонкости плохого дизайна софта видны там чётко, так как это низкоуровневый язык"?
[22:09:18] <bobry> на тему js -- один сплошной кусок Г
[22:09:51] <bobry> кстати каким это образом js низкоуровневый?
[22:10:37] <gds> в него компилят llvm.  А если по серьёзу, см. следующую реплику
[22:14:09] <gds> писал сегодня как раз, перед тем, как поднял тему в чятике.  Но там строгий язык, поэтому http://gdsfh.dreamwidth.org/9744.html
[22:14:23] <gds> *сильный язык
[22:15:13] <bobry> про вариантные типы это ты загнул
[22:15:32] <bobry> хотя бы строгая типизация -- уже бы частично помогла
[22:16:17] <bobry> а еще там не хватает нормальной объетной модели, базовых объектных примитивов -- extends, super()
[22:16:24] <gds> ну а как иначе реализовывать "или какое-нибудь целое, или какой-то, итить, объект с методом фуу" и вообще, всё разруливать?  ооп-стиль -- нееее.
[22:16:33] <bobry> поэтому каждый уважающий себя велосипедостроитель пишет свои
[22:17:05] <gds> да классическое ооп там сделать можно.  Другой вопрос -- оно там вообще нужно?  Там как раз тот случай, когда почти всё есть для нормального функционального программирования.
[22:17:22] <bobry> меня вполне устраивает прототипное, просто даже для него там нефига нет
[22:17:28] <gds> во.  "благодатности" не хватает.  я понял.
[22:17:33] <bobry> лол
[22:17:44] <bobry> для фп, хммм -- для фп там слишком избыточное объявление функции :)
[22:17:51] <bobry> вот серьезно, нигде такого не видел
[22:18:09] <bobry> ну и "хотя бы какая нить типизация" в кассу, да
[22:19:03] <gds> избыточность -- да пофиг, это синтаксические мелочи.  семантика стократ важнее.  тем более, то самое фп, которое пеарят (х-ь-стайл) -- для пофяпать годится, но для практики -- редко нужно.  поэтому приемлемо там с функциями.
[22:19:46] <bobry> ну как, синтаксические мелочи отлично прячут семантику за своими размашистыми формулировками :)
[22:20:04] <bobry> кстате, для js есть годна pro-fp библиотека undescore если уж на то пошло
[22:20:18] bobry даже где то манатки видел, the js way -- но это разумеется неюзабельно
[22:21:27] <gds> прячут -- да, но не надо же смотреть чисто на синтаксис.  Семантика там "пахнет" -- это да.  underscore видел, вроде даже использовал.  Но в прошлой жизни, чуть меньше года назад.
[22:21:55] <bobry> кстати а js_of_ocaml кто нить пользует серьезно?
[22:21:59] <bobry> или оно тоже proof of concept
[22:22:14] <bobry> я вот очень хочу, но пока не представляю куда его сунуть :)
[22:25:18] <gds> а хз, в будущей жизни буду использовать, видимо; через несколько месяцев.  Но вот что ещё маячит как альтернатива -- нанять жс-писателей для "архитектуры" и "скелета", убедиться в относительной типизируемости, и лепить уже на надмножестве жс, который и типизировать, и транслировать в жс.
[22:25:46] <bobry> тык closure compiler его типизирует, я ж говорил
[22:26:00] <bobry> он уже написан, и если гугл не врет то даже протестирован в production
[22:26:32] <bobry> как у тебя быстро жись то наступает, через несколько месяцев уже next :)
[22:32:54] <gds> closure compiler -- js->js, так?  Мне же хочется и вариантные типы данных (тупых хватит), и модули, это сходу, вдобавок к кое-какой типизации.  Ну и gradual typing.
А жизнь -- ну вот, забываю почти всё, чем "жил" раньше, в том числе по внешним причинам.  Оттого и глупые вопросы от меня в чятик, например.  Многое уходит, многое добавляется в жизнь.  Не очень правильно, но вполне таки способ избежать "переполнения памяти", так как не умею нормально отдыхать.
[22:35:29] <bobry> js->js ага, модульность там есть, но очень примитивная -- все остально в пролете, это да
[22:38:12] <gds> я вот вообще думаю похалявить как-нибудь -- между камлом и каким-либо несложным языком провести бы какой-нибудь морфизм, позволяющий как из текста в камлозначения, так и наоборот.  Но страшно.
[22:47:02] <bobry> несложным? ну щас модно в js все транслировать, почему бы и нет
[22:47:46] <Kakadu> # type a = { a:[`A|`B|`C] };;
# type b = {b:[`A|`B]};;
# let foo x = { a = x.b };;
Error: This expression has type [ `A | `B ]
       but an expression was expected of type [ `A | `B | `C ]
       The first variant type does not allow tag(s) `C
[22:47:50] <Kakadu> что-то я не понял
[22:50:26] <Kakadu> # let foo x = { a = (function `A -> `A | `B -> `B) x.b };;
а так работает
[22:54:24] bobry вышел(а) из комнаты
[22:54:35] bobry вошёл(а) в комнату
[22:56:10] <Kakadu> тьфу, вопрос снят
[22:57:00] <gds> дело было в том, что присвоение не делает подтипизацию, а вызов (и приём значения из вызова) делают, или в чём-то другом?
[22:59:11] shaggie вошёл(а) в комнату
[23:01:29] <Kakadu> типа того. нада :> писать
[23:02:03] <gds> угу, явное указание "а сделай-ка мне подтипизацию тут".
[23:05:57] <gds> кстати, про gradual typing в петоне почитал, но вот мысль засела.  Если они используют "сопоставимые типы" и подтипизация им не нравится (а там реально не получается, если ? <: x && x <: ?), то значит что-то делают не так, либо я смотрю на проблему не так.  Так или иначе, привести к общему знаменателю таки надо.
[23:34:15] <bobry> так-так, что за :>?
[23:34:38] <Kakadu> bobry: смайлик камлевыё
[23:47:48] ftrvxmtrx вышел(а) из комнаты
[23:47:55] ftrvxmtrx вошёл(а) в комнату
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!