July 10th, 2009

OCaml vs C++ STL: more tests

zamotivator набросал очередь на OCaml'е, базируясь на знании того, как оптимизирована очередь в C++ STL. Получил приемлемый для него константный фактор от скорости C++, сконструировав гораздо более компактный код.

http://zabivator.livejournal.com/336001.html

Эти предварительные выводы очень важны для меня. Это означает, что даже в весьма невыгодных для себя условиях тестирования (искусственный тест, где рулят, ясен пень, императивные языки) OCaml сравним с плюсами при условии одинаковых алгоритмов.




А это значит, мы можем заменить С++ в нашей СУБД Ocaml'ем. Не везде. Но в 90% по удельной сложности мест, и в 50% если мерять LOC.

P.S. Попробуйте почитать реализацию очереди из STL'я. Оценю LOC как несколько сотен. Сравните с моей реализацией на Ocaml. Впечатляет?


А вот что говорит Yaron Minsky, программист из финансовой компании Jane Street Capital, которая практически полностью работает на OCaml'е. У них принят тотальный код-ревью, потому что речь идёт об автоматической торговле на миллиарды долларов в день, отсюда необходимость выбора правильного языка:

Я думаю, большая часть того, почему мы в конце концов остановили свой выбор на этой технологии, заключается в том, что те, кто был ответственным за принятие решений были теми же людьми, которые читали код. И я думаю, что это всё меняет в вашей организации, если вы имеете людей, которые серьёзно относятся к коду не только как к способу достижения результата, но как к средству самовыражения. Как к способу записи того, что ты имеешь ввиду, способу коммуникации с другими людьми о том, как, на твой взгляд, работает система.

В какой-то момент мы серьёзно задумывались о переносе отдельных критических систем из программ на VB сидящих в электронных таблицах в приятную, прилично действующую программу на C#. И одной из тех вещей, которая убила этот проект была сложность чтения этого чёртового кода, о котором мы так пеклись.

Там было две вещи, которые убили этот проект. Одной была многословность, факт того что там было настолько много строчек кода для чтения. А второй была то, что люди находили объектно-ориентированный подход настолько сложным для восприятия.

И почему мы думаем что OCaml был хорош для чтения (что очень хорошо помогает обеспечению корректности программ)? Ключевые вещи: краткость и типы.



Блог запись с этим видео расположена по адресу http://ocaml.janestreet.com/?q=node/61

Jane Street Capital — частная трейдинговая компания, которая переориентировалась в разработке программ с мейнстримовых языков программирования на OCaml, статически типизированный функциональный язык, не слишком распространенный в промышленном программировании. Jane Street сейчас имеет более тридцати программистов на OCaml, которые написали сотни тысяч строк кода. OCaml используется для построения всего, от трейдинговых систем и исследовательской инфраструктуры, до программ системного администрирования.

Enjoy!

JS-Kit релизит Echo

Три дня тестировали и долизывали продукт. Ночей не спали; мандраж, мурашки, седые волосы.

Вчера у is39 полетел свитч дома.

Сегодня ночью, в момент релиза, у меня дома полетел интернет тоже. В четыре утра с Олькой поехали в кафешку с интернетом, я до сих пор сижу здесь (почти четыре часа дня сейчас), а она спит сладко в спальнике в машине рядом.

К утру выбило один винт на продакшне.

Потом обнаружилось, что ничего совсем-совсем не работает.

Но несмотря на все эти проблемы, чинимые конкурентами, мы сегодня на ТекКранчевской тусовке зарелизили Echo, наш новый продукт, который идёт на замену комментариям JS-Kit Comments.

http://js-kit.com/echo/

http://www.techcrunch.com/2009/07/10/js-kits-real-time-commenting-widget-echo-captures-the-pulse-of-comments-on-the-web/

Катарсис.




Вот забавный комментарий со страницы http://js-kit.com/echo/ ;)