Pull to refresh

Comments 113

До сих пор осталась вмятина на стене за пианино, куда я ее швырнул в порыве гнева

То ли у него стены хлипкие, то ли книга была в металлическом переплёте :)
Спасибо за статью.
У вас вмятины не осталось?)
Рады стараться!
UFO just landed and posted this here
Да, гипсокартонную стенку Страуструпом пробить несложно
И даже книгою Страуструпа.
Мой старый томик по перлу на 600+ (если не больше) страниц, который я так и не осилил до конца, пролетел бы, наверное, насквозь ))))
Вы книжку Страуструпа видимо не видели по с++, она здоровая :)
Ссылка на оригинал неверная, там: [erlang-questions] erlc speed (or lack thereof), Make and emake Matthias Lang <>
Thu Jan 24 13:49:48 CET 2013
Да, вы правы. Но это на erlang.org что-то съехало. На YC тоже линк слетел туда же.
линк поправил. но вид у страницы не товарный)
Хо-хо, да, не очень удобно читать так… (:
Хотел узнать тоже самое, хорошо топик обновил перед отправкой. :)
tomshinsky, кстати, из Тель-Авива. Не берусь делать выводы, повлиял ли фактор географической локации на перевод. :)

А статья, между прочим, понравилась, в мемориз.
Богатый опыт у человека, и подборка рекомендуемых языков — просто класс.
И вот это чудесно:
Изучайте протоколы, а не языки.
И изучайте АЛГОРИТМЫ.

По переводам отличное предложение. В моём Pocket скопились тысячи интересных статей (число ежедневно растёт), до которых у меня, наверное, уже никогда не дойдут руки. И основная масса почему-то на английском языке. Я буду очень рад, когда смогу получать большую часть новой интересной и полезной информации (качественно оформленной!) на русском языке.
Ух ты, а где вы черпаете эти статьи? Понимаю, что источников должно быть много, но может есть основные?
Несколько однобокая подборка, но в основном всё отсюда:


Хорошие подборки python/django-ссылок выкладывают ребята из Future Colors. Дайджесты от DOU тоже довольно интересные.

И ещё я подписан примерно на 3 сотни RSS-лент разной степени интересности и тематики. В свободные минуты просматриваю ленту через gReader на телефоне, шарю их в Pocket, а потом читаю перед сном на планшете.

Ну, и случайные блуждания по интернету как обычно приводят к жутко интересным материалам, на которые прямо сейчас, естественно, времени нет, но „когда-нибудь я всё это обязательно прочитаю“.
Ого, по счастливой случайности я тоже разработчик на python/django, вы мне подбросили просто кучу интересного материала для чтения. И всего, что тут есть читал только hacker news и net tuts+
Если у вас есть интересные источники, тоже делитесь :)

Да. И не забываем про работу!
Знакомые каждому и не нуждающиеся в упоминании:

Новости сферы (и новостные блоги IT):

Любимые топики reddit:

Хобби (я фанат игр Half-Life и в свободное время увлекаюсь мэппингом для кс. Поэтому люблю читать про valve и просто читать про gamedev с надеждой осуществить в будущем мечту работы над играми)

Про django ничего переодического (ну кроме редких статей на хабре и реддите) не читал до сегодняшнего дня, поэтому кланюсь в пояс, спасибо.

Да. И не забываем про работу!

Отличное замечание, но, боюсь, для меня работа на сегодня окончена всвязи с сотней вкладок с интересными статьями. :)
Реддит и по геймдеву — круто. Подписался.

А по джанге я забыл указать агрегатор.
«системы контроля версий сделали наш мир только хуже. У вас есть все старые версии бардака и сам бардак» — рыдаю
Не тот город, похоже, назвали Челябинском…
Ах, прекрасная статья о «программерской» биографии! Теперь становится понятно, почему бородатые дядьки-программисты, ощутившие на себе «прелести» компиляции программ на Fortran`е в далекие 60-70 года критикуют современные языки высокого уровня. Раньше, чтоб написать программу, могло уйти 30 недель! А сейчас любой лошок может сесть и «накодить по бырому» что-нибудь на том же PHP… да, тяжко раньше было, тяжко…
По-моему, им просто стрёмно понимать, что то, на что они потратили 10-20 лет, можно теперь сполна изучить за 1-3 года.
Да, тяжко раньше было. А сейчас не тяжко? Столько всего, столько различных областей, технологий, подходов…
А то что мы сейчас изучаем по несколько лет — через пару десятилетий (а то и намного меньше) можно будет «загрузить в мозг» за секунды…

И будем себя утешать что «быстреиспекаемые» будущие программисты не чета нам, старым волкам кодинга, постигавшие премудрости разработки собственным умом, методом проб и ошибок…
UFO just landed and posted this here
Ну так мощи позволяют!

Раньше на антикварных процах работали такие игрушки — высший пилотаж! )
А вот эта фраза, о 100К строк кода за 10^(-12) секунд: сейчас его мобильник может за то же время скомпилить 100 миллиардов строк???
Поясните пожалуйста, я только недавно сел за Ерланг — очень нравится, но не хочется расстраиваться из-за автора…
Думаю, автор имеет ввиду общую производительность системы.
А быстрая компиляция вполне возможна при распараллеливании.
Однако явно не за пикосекунду, учитывая то, что одна операция на Cray-1 занимала 12.5 нс.
может, имелась в виду всё-таки время компиляции в пересчете на 1 строку кода, с учетом распараллеливания?
здесь был комментарий, написанный без прочтения ранее написаных другими комментариев
что уж, автору и пошутить нельзя?
Вы не переживайте за автора — ему позволительно говорить глупости. Он может и потролить слегка. Это как разговор с виртуозом-музыкантом: Расскажите о себе побольше… или что Вы думаете по этому вопросу? А давайте-ка лучше слабаю чего-нибудь Вам…

У него есть еще статья про ООП и почему это sucks. Кстати было бы здорово, если б кто перевел качественно ее и сюда выложил.
Говорить и делать глупости иногда полезно — ибо они дают возможность делать умные вещи…
Exactly. Благодарю — она самая.

Еще один перл от дядюшки Джо.

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

Вывод для меня таков: не всегда, к сожалению на практике удается отказаться от соблазна введения нового типа. Но важно, чтобы было больше функций умеющих работать с этими типами, нежели наоборот.

На гугло-группах он там появляется на форумах иногда. Увлекательно почитать бывает его суждения в постах когде есть минутка времени…

А я и так знаю, что ООП — это сакс :-D
… но почитаю, чтобы в который раз убедиться.
Не всегда так. Просто это полярное мнение. Все хорошо в меру. Та статья, надо учитывать для какой эпохи писалась.
Но если читать беспристрастно, то может показаться, что Джо говорит об ООП только с другой стороны. По сути он попытался изобрести новую парадигму и до сих пор в поиске. Везде прослеживается некое главное замечание: как был бардак так и есть )

Чудак он большой. Швырнул книжку (надо думать с какой силой) и сделал свой язык. Видать та эпоха программирования крепко приспичила человека. Но это здравая критика — реализовав такой язык можно говорить все что угодно ))

И еще он байкер, судя по фоткам в сети.
посмотрел…
оказывается я ее читал раньше, и… минуснул :-D
видимо не понравилась=)
А если честно: я вот буквально пару недель как сел за Ерланг, и вы знаете, очень даже объектно-ориентированно выходит (но объект — это процесс, а вызов метода… ну вы поняли, и очень даже классно получается). Короче Ерланг-реализация ООП намного прозрачней чем мейнстримовые.
А если что, так вот еще и Хаскел-ООП.

Резюмируя: идейно ООП — классная вещь, но вот качество очень сильно зависит от реализации.
у меня тоже создалось ощущение, что ерланг очень ООП по части идеологии процессов и сообщений. Есть книженция на тему из серии ерланг для ООП-программеров в формате пдф. Если не найдете или не знаете эту книгу — вышлю ссылку.
Я хоть и зарабатываю плюсами, ООП-программистом себя не считаю. То есть ООП — хорошо, но не одним же ООП.
Извините, меня понесло… Я читаю Programming Erlang — думаю мне пока хватит, может позже. Но все равно спасибо =)
www.maht0x0r.net/library/computing/erlang.pdf
-там есть небольшой раздел про ООП — как раз то, что по сути процессы и есть объекты. Вообще на мой взгляд очень полезная брошюра для новичков и начинающих, но имеющих опыт в других языках.

все хорошо в меру — главное чтобы это не стало догмой. Кроме ООП есть масса интересных вещей. Можно применять разные парадигмы эффективно в совершенно казалось бы разных областях.

Когда вы будете создавать много кода на Эрланге, станете ощущать недостаток в наследовании и методах.

Проблема повторного использования кода (одна из главных задач Джо) до конца исчерпывающе не решена (но не только тут ))) и будут еще решения в новых версиях языка.

Советую внимательно изучить код ejabberd. Там есть на что посмотреть. Особенно в последних версиях посмотреть на оформление gen_server|gen_fsm во встраиваемых модулях.
Простите, но с какой целью вы все это мне пишете? Мне конечно приятно, что обо мне заботятся, но все же.
Я НЕ новичок, я (пока) НЕ собираюсь писать много кода на Ерланге, я вас уверяю, что я никогда НЕ ощущаю недостатка в наследовании и методах, когда пишу на Хаскеле/Агде/Ерланге (и даже на Питоне пишу функционально — и все классно). Я же писал: НЕ одним ООП.
Я все равно вам благодарен, но неприятно читая сообщение, понимать, что тебя не понимают уже в который раз.
Простите, но с какой целью вы все это мне пишете?

Выражаю коллинеарность.

Новичками считаются те кто скажем 50 лет писал например на C потом решил попробовать эрланг, или те, кто привык к одному языку и решил выучить новый или сразу начал с оного. Что тут зазорного?

Человек, благодаря осознанию собственной некомпетентности в каком-то вопросе приобретает эту самую компетенцию. Обычное дело.

а вы уверены, что вас понимают всегда?
UFO just landed and posted this here
Попробуйте не учить, а осознавать ;)
UFO just landed and posted this here
Автор прав: язык — это средство переноса алгоритма из головы в компьютер посредством этого языка. Все средства проверки синтаксиса лишь выясняют соответствие скобок друг другу и не забыли ли вы объявить про переменную tmp, потому что компилятор тоже должен быть в курсе. Ни один язык с самыми замечательными способами выражения не сможет написать за вас хорошую программу. Корректор может, конечно, за Пушкиным проверить запятые, но «Я помню чудное мгновение...» может написать только Александр «Наше всё» Сергеевич. Так что Кнут и чтение листингов заведомо хорошего кода спасут эту профессию.

Ну и как писали классики компьтерной литературы «Фортрановскую программу можно написать на любом языке».
Очень нравится ветка на SO про то, читает ли население Кнута реально (я сам несколько раз пытался, к примеру). Любопытно, как с этим дела у хабраюзеров. Создал бы кто-нибудь опроc на посмотреть…
UFO just landed and posted this here
как результат на GitHub будет репозитарий вида вопрос-ответ :)
UFO just landed and posted this here
Целиком осилил только третий том (Сортировка и Поиск), и периодически использую как справочник по алгоритмам остальные тома.
IDE подразумевает, что вы даже не можете увидеть этот бардак. Все же лучшая IDE в мире — это ваш МОЗГ
Вот поэтому-то Erlang и не выстрелил. Если для какого-то языка программирования нет IDE, его удел — стать игрушкой для гиков.
Единственное исключение — если в заданной предметной области язык просто нечем заменить (или все альтернативы тоже подразумевают vim в качестве IDE). Тогда конечно, мышам ничего не остаётся, как кушать кактус.
Мозг, может, и лучшая IDE, но его ресурсы не бесконечны, объём кэш-памяти ничтожен, а многопоточность и распараллеливание он и вовсе не поддерживает. Так не лучше ли высвободить ценные мозговые ресурсы для работы с архитектурой?
Не нужно говорить что Erlang «игрушка для гиков» — поскольку на нем очень успешно пишут приложения для финансового сектора и телекомов.
Можно хотя-бы одно в качестве примера? Нет, действительно интересно. Про телекомы и финансовый сектор слышу в каждой статье про Erlang, но вот реальных примеров нет совершенно.
Где угодно. От Facebook Chat'а[1] до серверов Call of Duty[2] до нейропроцессинга[3] до видеосерверов[4] до финансовых систем[5] до real-time систем онлайн-комментов[6] до чатов[7] до систем обработки и анализа рекламного трафика[8] до GitHub'а[9] до… до…

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

[1] www.erlang-factory.com/upload/presentations/31/EugeneLetuchy-ErlangatFacebook.pdf
[2] www.erlang-factory.com/upload/presentations/395/ErlangandFirst-PersonShooters.pdf
[3] www.springer.com/computer/swe/book/978-1-4614-4462-6
[4] erlyvideo.org
[5] klarna.com
[6] aboutecho.com
[7] www.ejabberd.im
[8] www.erlang-factory.com/conference/London2011/speakers/PeroSubasic
[9] www.infoq.com/interviews/erlang-and-github
отсюда ©
Вы меня опередели :)
* которые распределены по удаленным нодам
спасибо. Впечатлен.
Но про банковский и финансовый сектор снова ни одной ссылки (Klama — из другой оперы, по факту — простой Merchant).
/me ушел искать подходящую книгу и писать свой Demonware
Чем мерчант не финансовый сектор? Какого плана пример вы хотите? Мы, к примеру, занимаемся обработкой платежей по бесконтактным картам (Smart Processing), но этим дело не ограничивается. На самом деле, там очень много всяческой сервисной и бизнес логики. И преимущественно для этого используется Erlang. В самом процессинге только в части шлюзов используется Python.

Есть еще Exante, занимаются hft. Erlang используют активно. Чем не финансовый сектор?
Нет, я хотел получить ссылки именно на проекты с «вражеской» стороны. Биллинги на стороне банка, привязываемые к Visa, например. Или какие-нибудь трейдерские решения для биржи. Т.е. финансовый и банковский сектор как таковой, а не его клиентов.
Не особо понятно, почему нельзя писать «Мы в банке ХХХ используем Erlang для YYY».
Чтобы понизить исследуемость системы в общем смысле, но реально да — сложно объяснимо. Не все знают возможности его, многих это пугает как неизвестная область. С другой стороны если у меня есть биржевой бот на ерланге, то мне нет резона его афишировать, снижая тем самым свое конкурентное преимущество… А если биржа на джаббере пашет, то боты на эрланге обозримая реальность, если не так на самом деле. Там вроде все на джавах сейчас. Но это пока.
Да, это то, но единичный случай. Здесь нет никакого *минала, но не массово.
Одна из причин открытия эрланга как open source, был вакуум популярности, community, драйверов, библиотек. Сейчас ситуация кардинально изменилась, но все еще вакуум присутствует. Эрланг так-же делает серьезный вызов таким платформам как Java и некоторые другие — не всем это нравится. Но большинство причин объясняется бритвой Хэнлона )
С каких моментов у вас начинается «сейчас»? Erlang заопенсорсили в 1998 году.
в те времена это движение не очень было вообще распостранено
Можно еще яндекс добавить. У них, помимо допиленного ejabberd еще в диске Erlang используется, насколько я помню.
Да да, только не забудьте добавить их комментарии относительно счастливого опыта. Не с сайта и модных презенташек, а из личных бесед.

Вообще было бы полезнее уже честно написать опытным товарищам какие проблемы они встречали при работе. Например проблемы с dets, mnezia. Теряющиеся ноды там были, еще что-то. То есть это не ставит крест, но грабли-то можно и не собирать же лично всем.
Ой, ну делились они своим опытом Эрланг тусовке. Казалось бы, уж там-то нечего скрывать было. Ничего криминального я не обнаружил в их рассказе. Ну да, были проблемы, Куда ж без этого. Но я не уверен, что их (или каких-то других) бы не было, выбери они иную технологию. Все же не сферического коня писали.
Ну так а где текст? Почему все проблемы по микрозаметкам в бложиках, а диферамбы скоро иллиаду переплюнут по объему?
Видео докладов с Erlang Factory Light из Москвы, вроде бы, еще нигде не опубликовано (если вы все еще о яндексе). Или мне об этом не известно.
Чёт по монге такая же ботва, по-моему…
По монге есть отличные обзорные тексты, где разбирается и обсасывается каждый косяк.
А ссылки на эти тексты можно?
UFO just landed and posted this here
По вашей ссылке:
> Без эрланга никуда нам. Почти весь процессинг потоков (кроме того, что на OCaml) и все control flows на нём, и никуда сворачивать не собираемся.

За что оно считается? Пруф, что люди не слезут с эрланга? Ну так кинуть вам много много пруфов где люди не слезут с питона, руби, С, явы, скалы, C#?

Я подозреваю, хотя и не уверен, что ссылка не та. Я в таких случаях обычно проверяю ссылки предварительно, чего и всем желаю.
UFO just landed and posted this here
Это диферамбы, а мне нужны косяки. Везде есть косяки, и классно узнать о них не из личного опыта.
могу ошибаться, но мне кажется в яндексе боятся и/или недолюбливают/недооценивают/недопонимают эрланг. Но может оно и к лучшему…
Erlang работает внутри телефонных коммутаторов, например, так что вы его не увидите, совершенно.
А можно чуть конкретнее — модель, производитель, цена?
Ну Ericsson AXD 301, конечно…

www.erlang.se/publications/ericsson_review_axd301_1998012.pdf

ftp.sunet.se/pub/lang/erlang/workshop/2004/cronqvist.pdf

The AXD 301 Multi-Service Switch from Ericsson is probably one of the largest industrial software projects using a functional programming language. The AXD 301 presents a fairly complicated execution environment. It has a number of subracks (typically 1-4), each with a number of Central Processors (CP's, typically 2-4), and a number of Device Processors (DPs, typically ~10). The DPs handles the physical interfaces (Ethernet, ATM, SONET etc), and the CP's run the traffic control, configuration and administration software. The CP's are paired, with active and a standby roles, applications on the active CP can run with hot (minimal disruption of service) or warm (application restart) standby. The requirements on availability means that application unavailability should be less than 5 minutes per year. The CP's software is written primarily in Erlang (~2.1 million lines of code), with additional third party software (mostly routing protocols).
JetBrains IntelliJ IDEA с плагинами удобнее будет.
UFO just landed and posted this here
> Во-вторых, Erlang неплохо читается и глазами. В отличие от всяких там.
Вот тут Джо как раз совершил чуть ли не единствуннеую ошибку в дизайне языка. Символьные выражения намного проще читаются, чем его первая любовь. Я имею право авторитетно заявить, как человек, пишущий на эрланге пять дней в неделю, и на лиспе — два дня. :)
Речь шла всего лишь про «неплохо», а не «превосходно» :)
А у меня есть IDE, emacs называется.
дедушка Джо имел в виду (видимо потролил тонко, чтобы не вызвать холивары) в качестве IDE именно emacs )

Меня в нем все устраивает, только бесит иногда тормоза, фолдинг регулярками, отсутствие оного нормальное, подсказки к параметрам функций при наведении мышкой (как в эклипсе), ну и опять-же фолдинг по CTRL-click на файлах, классах.
Erlang не позиционировался, как панацея, и выстреливать ему не нужно было совершенно. Он с успехом употребляется в тех системах, для которых был разработан. Поэтому не стоит делать высокопарные заявления, тем более, что не для всех языков жизненно необходима IDE.
IDE реально необходимы только наверное для java и C#. Пока на них только пишешь — реально кажется что ну никак без IDE.

Тот же вон javascript многие пишут в обычных текстовых редакторах и ничего. Обычный редактор, несложная интеграция с компилятором, и REPL — покрывают 90% нужных фичей. А за остальными 10% еще подумаешь надо ли тебе IDE эти запускать, которые все с характером и тормозные.
Я всегда кодил на C++ в Эклипсе. А потом я начал писать проект на Erlang. И был очень расстроен, что нет недостойного плагина для элклипса. (по крайней мере тогда не было). Так как я знал vim и не знал emacs, то стал писать в vim. И вот теперь я когда пишу на C++ или python, то тоже делаю это в vim!

IDE не заменяет мозгов, оно помогает писать код. А в erl мозгов на строчку кода очень много, так что особо и IDE не нужно.
А плагины для поддержки Erlang в Eclipse и IntelliJ IDEA совсем плохи?
Then I learnt (badly) C — But Mike Williams said my C was crap and looked like Fortran so he
binned my C… (why use malloc and free and pointers anyway ...)
Потом я изучил (хреновенько) C. Mike Williams (со-разработчик Erlang) сказал, что C — дерьмо и выглядит как мой Fortran. Его фраза отправила мой C в мусорную корзину…
По моему неправильно перевели.
Да, похоже речь идёт о том, что автор дерьмово писал на C (как на фортране), а не С дерьмо.
Дада, поправил автора. Спасибо.
Э, я вам раньше ответ написал, чем вы комментарий исправили. То-то я смотрю, что не понимаю вашего последнего комментария.

Что касается Mnesia, то уже ровным счетом везде написано, что пользоваться ей кроме, как для конфигов, нельзя. Проблемы с dets тоже вполне себе общеизвестны. Тем более, Что часть проблем они между собой делят (что не мудрено, ибо mnesia работает как раз поверх dets). Кроме того, куча свидетельств, что gen_fsm, скорее грабли (особенно, в перспективе), чем хороший инструмент, и что конечные автоматы вполне ровно ложатся на gen_server. Это все не военная тайна. И люди своими открытиями охотно делятся. Просто, во-первых, пожалуй нет места, где собраны все подобные косяки (или я этим не интересовался, ибо натыкался на соответствующие топики заранее), а, во-вторых, похоже вы (или другой интересующийся) не знаете, куда смотреть. Тем не менее, некоторые вещи очень специфичны, вроде поведения мониторов между нодами во время брейнсплита, поэтому всем, похоже, придется наступить на эти грабли, чтобы выбрать подход сообразно своим потребностям.
Мы еще крайне слабы во взаимодействии разных программ и модулей, написанных на разных языках. По-прежнему лучший способ взаимодействия заключается в использовании юниксовских find… | grep | uniq | sort | …

Фундаментальная причина этого в том, что должен существовать некий промежуточный язык взаимодействия различных компонент с чётко прописанными протоколами.
По крайней мере, я так думаю, теперь-то всем нам можно несказáнно порадоваться тому, что программы и модули на многих языках (подчас весьма различных!) способны невозбранно обмениваться данными сложной структуры при помощи JSON. (Список языков, для которых существуют средства чтения и записи JSON, можно найти в конце заглавной страницы сайта json.org.)
У json есть фатальный недостаток — неотличимость атома от строки, что делает его использование крайне ограниченным.
%% простейший вариант решения, что-то наподобие этого:
encode(T) when is_atom(T) ->
  {"___atom___", atom_to_list(T)}.




или
bert, может bson
Sign up to leave a comment.

Articles