программистское
Sep. 29th, 2009 06:51 pmОчень интересная беседа-интервью Джо Армстронга (Erlang) и Саймона Пейтона Джонса (Haskell). Формат транскрипта на этом сайте мерзостный, но нормальный транскрипт можно прочитать здесь.
Цитата:
Давно хочу изучить Эрланг, кстати. Кажется, эта беседа убедила меня заняться этим в ближайшие месяц-два.
Цитата:
JA: I didn't really know what thread safety was in Java, so I wrote a little Java Swing thing and of a Java friend I asked: I wrote this Java process and it worked fine. I could create one window, and then I created 2 windows in a graphical program and I drew a rectangle in one and I drew a rectancle in the other and it crashed. And I said "Why did it crash?" And he said "Well the Swing library's not threadsafe". Now, what does that mean? It means if you got one thing that works, you do 2 of them in parallel, they interact in strange ways. I thought "How can you program like that? It's impossible to program!"
Давно хочу изучить Эрланг, кстати. Кажется, эта беседа убедила меня заняться этим в ближайшие месяц-два.
no subject
Date: 2009-09-29 04:59 pm (UTC)no subject
Date: 2009-09-29 05:03 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2009-09-29 05:38 pm (UTC)Я его планирую поковырять уже лет 6...
(no subject)
From:(no subject)
From:no subject
Date: 2009-09-29 05:46 pm (UTC)no subject
Date: 2009-09-29 05:06 pm (UTC)no subject
Date: 2009-09-29 05:46 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2009-09-29 09:19 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2009-09-29 05:48 pm (UTC)есть куски кода, которые на любом другом языке программирования представляли бы для себя ошибку безопасности. на эрланг - тупо приводят просто к crash данного процесса, что совершенно штатная ситуация. упал? молодетц. запись в лог - пользователю стандартную ошибку, процесс - либо перезапустить, либо просто забить.
манера программирования - let it crash - она очень сильно спасает ;) даже в "грязно" написаном коде.
no subject
Date: 2009-09-29 07:04 pm (UTC)(no subject)
From: (Anonymous) - Date: 2009-09-29 07:12 pm (UTC) - Expand(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From: (Anonymous) - Date: 2009-09-29 07:19 pm (UTC) - Expandno subject
Date: 2009-09-29 05:52 pm (UTC)no subject
Date: 2009-09-29 06:17 pm (UTC)че то лажа какая то, свинг - однопоточная штука что бы как раз траблов и не было
no subject
Date: 2009-09-29 09:05 pm (UTC)(no subject)
From:no subject
Date: 2009-09-29 06:05 pm (UTC)Скажи, а на J ты смотрел? Я тут развлекаюсь на eulerproject.net, там многие им балуются, выглядит страшновато, но любопытно, что за зверь.
no subject
Date: 2009-09-29 06:44 pm (UTC)Но ооочень красиво, и полезно прочитать его vocabulary с примерами, чтобы просто проникнуться тем, "как еще можно писать программы" и "в терминах чего еще их можно выражать" - это может пригодиться и за пределами J.
no subject
Date: 2009-09-29 07:09 pm (UTC)Если прикинуться дурачком и начать делать свои глаголы, то с каждым новым производительность будет падать, особенно если это переименованный примитив. Поэтому разработчики очень гордятся своим tacit programming, то есть превращением подпрограммы, а то и всей программы, в одну длинную функцию. Формула Герона выглядит вот так: [:%:[:*/-:@:(+/)-0,]
Поэтому я изучаю вместо J Q.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2009-09-29 10:39 pm (UTC)На J равно как и K уже года четыре хочу посмотреть, пока нет.
no subject
Date: 2009-09-29 07:32 pm (UTC)Возможно и не связано с вышеупомянутым...
Date: 2009-09-29 08:02 pm (UTC)"...One principle duct tape programmers understand well is that any kind of coding technique that’s even slightly complicated is going to doom your project. Duct tape programmers tend to avoid C++, templates, multiple inheritance, multithreading, COM, CORBA, and a host of other technologies that are all totally reasonable, when you think long and hard about them, but are, honestly, just a little bit too hard for the human brain." (http://www.joelonsoftware.com/items/2009/09/23.html) ()
Re: Возможно и не связано с вышеупомянутым...
Date: 2009-09-29 09:34 pm (UTC)надо хорошенько освоить инверсию этой технологии и начать зашибать бабки и славу в интернетах!
Re: Возможно и не связано с вышеупомянутым...
Date: 2009-09-29 09:43 pm (UTC)да, чуть усложнило в начале работу, но потом - 1) был отлично отслеживаемый протокол взаимодействия компонент, 2) создание каждого слоя можно отдать отдельному разработчику 3) многослойная система security рулит - потому что даже при ошибках в одном слое трудно пробиться через следующий :)))))
Re: Возможно и не связано с вышеупомянутым...
Date: 2009-09-29 10:00 pm (UTC)no subject
Date: 2009-09-29 11:40 pm (UTC)мне оч. понравился язык, но вот надо бы придумать задачу, какую-нибудь multi-actor симуляцию распределенную, чтоб осмысленность была =) На работе на нем никто не даст писать, понятно. (тебе, я так понимаю, тоже =))
no subject
Date: 2009-09-30 12:38 am (UTC)Так вот с erlang я без труда в своей программе за час попробовал несколько вариантов concurrency и все работали! Без долгих размышлений - а вот тут нужен mutex, а тут соединить через очередь, а что делать если этот thread закончился, а тот еще не стартовал и не знает что должен открыть сокет снова.
no subject
Date: 2009-09-30 02:56 am (UTC)Я спрашиваю, потому что у меня какое-то сложное отношение к ним. С одной стороны очень люблю и каждый день пользуюсь, и в программы люблю вставлять поиск или там rewrite rules на основе regexp, но вот когда доходит до того, чтобы в своем коде заменить цикл и strtok на regexp, меня всегда что-то останавливает.
(no subject)
From:no subject
Date: 2009-09-30 04:41 am (UTC)Довольно вкусно выглядит, я в данный момент пытаюсь внимательно интересоваться