avva: (Default)
[personal profile] avva
Очень интересная беседа-интервью Джо Армстронга (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!"

Давно хочу изучить Эрланг, кстати. Кажется, эта беседа убедила меня заняться этим в ближайшие месяц-два.

Date: 2009-09-29 04:59 pm (UTC)
From: [identity profile] anril.livejournal.com
что меня недавно удивило, так это то что на эрланге оказалось написано гораздо больше вещей, чем кажется невооруженным глазом. к примеру, мессаджинг на фэйсбуке или github.

Date: 2009-09-29 05:03 pm (UTC)
From: [identity profile] avva.livejournal.com
github разве не на руби?
Edited Date: 2009-09-29 05:03 pm (UTC)

(no subject)

From: [identity profile] anril.livejournal.com - Date: 2009-09-29 05:04 pm (UTC) - Expand

(no subject)

From: [identity profile] avva.livejournal.com - Date: 2009-09-29 05:07 pm (UTC) - Expand

(no subject)

From: [identity profile] levgem.livejournal.com - Date: 2009-09-30 06:41 am (UTC) - Expand

Date: 2009-09-29 05:38 pm (UTC)
From: [identity profile] meshko.livejournal.com
На Эрланге живут очень большие и серьёзные штуки, вроде телефонных маршрутизаторов и бирж.
Я его планирую поковырять уже лет 6...

(no subject)

From: [identity profile] dimrub.livejournal.com - Date: 2009-09-29 06:03 pm (UTC) - Expand

(no subject)

From: [identity profile] nm-work.livejournal.com - Date: 2009-09-29 07:45 pm (UTC) - Expand

Date: 2009-09-29 05:46 pm (UTC)
From: [identity profile] nm-work.livejournal.com
ага :) и часть вещей тщательно шифруется, что оно на эрланге :) чисто в коммерческих интересах.

Date: 2009-09-29 05:06 pm (UTC)
From: [identity profile] nec-p1us-u1tra.livejournal.com
Всем он хорош, но эта манера бежать внутри виртуальной машины со своими процессами вместо собраться в обычный бинарник 8/

Date: 2009-09-29 05:46 pm (UTC)
From: [identity profile] nm-work.livejournal.com
чем она вам мешает? :)

(no subject)

From: [identity profile] nec-p1us-u1tra.livejournal.com - Date: 2009-09-29 09:12 pm (UTC) - Expand

(no subject)

From: [identity profile] nm-work.livejournal.com - Date: 2009-09-29 09:39 pm (UTC) - Expand

(no subject)

From: [identity profile] nec-p1us-u1tra.livejournal.com - Date: 2009-09-29 10:01 pm (UTC) - Expand

(no subject)

From: [identity profile] nm-work.livejournal.com - Date: 2009-09-29 10:06 pm (UTC) - Expand

Date: 2009-09-29 09:19 pm (UTC)
wizzard: (Default)
From: [personal profile] wizzard
И огрести все прелести взаимодействия с зоопарком ОС.

(no subject)

From: [identity profile] nm-work.livejournal.com - Date: 2009-09-29 09:39 pm (UTC) - Expand

(no subject)

From: [identity profile] nec-p1us-u1tra.livejournal.com - Date: 2009-09-29 10:03 pm (UTC) - Expand

(no subject)

From: [personal profile] wizzard - Date: 2009-09-30 02:05 am (UTC) - Expand

Date: 2009-09-29 05:48 pm (UTC)
From: [identity profile] nm-work.livejournal.com
сейчас делаю аудит кода на эрланг.

есть куски кода, которые на любом другом языке программирования представляли бы для себя ошибку безопасности. на эрланг - тупо приводят просто к crash данного процесса, что совершенно штатная ситуация. упал? молодетц. запись в лог - пользователю стандартную ошибку, процесс - либо перезапустить, либо просто забить.

манера программирования - let it crash - она очень сильно спасает ;) даже в "грязно" написаном коде.

Date: 2009-09-29 07:04 pm (UTC)
From: [identity profile] prosto-tak.livejournal.com
Это как-то совершенно непонятно. Что значит "let it crash"? You can "let it crash" in any language, but what's the point?

(no subject)

From: (Anonymous) - Date: 2009-09-29 07:12 pm (UTC) - Expand

(no subject)

From: [identity profile] prosto-tak.livejournal.com - Date: 2009-09-29 07:15 pm (UTC) - Expand

(no subject)

From: [identity profile] nm-work.livejournal.com - Date: 2009-09-29 07:23 pm (UTC) - Expand

(no subject)

From: [identity profile] nm-work.livejournal.com - Date: 2009-09-29 07:29 pm (UTC) - Expand

(no subject)

From: [identity profile] nm-work.livejournal.com - Date: 2009-09-29 07:33 pm (UTC) - Expand

(no subject)

From: [identity profile] levgem.livejournal.com - Date: 2009-09-30 06:46 am (UTC) - Expand

(no subject)

From: [identity profile] nm-work.livejournal.com - Date: 2009-09-30 01:41 pm (UTC) - Expand

(no subject)

From: [identity profile] levgem.livejournal.com - Date: 2009-09-30 01:42 pm (UTC) - Expand

(no subject)

From: [identity profile] nm-work.livejournal.com - Date: 2009-09-30 02:01 pm (UTC) - Expand

(no subject)

From: [identity profile] levgem.livejournal.com - Date: 2009-09-30 03:14 pm (UTC) - Expand

(no subject)

From: [identity profile] nm-work.livejournal.com - Date: 2009-09-30 01:45 pm (UTC) - Expand

(no subject)

From: [identity profile] nm-work.livejournal.com - Date: 2009-09-29 07:38 pm (UTC) - Expand

(no subject)

From: [identity profile] nm-work.livejournal.com - Date: 2009-09-29 07:19 pm (UTC) - Expand

(no subject)

From: (Anonymous) - Date: 2009-09-29 07:19 pm (UTC) - Expand

Date: 2009-09-29 05:52 pm (UTC)
From: [identity profile] skavish.livejournal.com
в приведенной цитате при всем уважении к JA написана какая то чушь. любой более менее знакомый со swing'ом или просто UI программированием это сразу видит.

Date: 2009-09-29 06:17 pm (UTC)
From: [identity profile] raydac.livejournal.com
+1
че то лажа какая то, свинг - однопоточная штука что бы как раз траблов и не было

Date: 2009-09-29 09:05 pm (UTC)
From: [identity profile] meshko.livejournal.com
Да, я не припомню ни одной UI библиотеки, которая была бы thread-safe, и это логично. Но насколько я понимаю, он всё же не чушь сказал -- в Эрланге идея в том, что все потоки говорят друг с другом только через сообщения и никакой лабуды с общей памятью и thread-safety быть не может. То есть чушь только в том смысле, что направлено лично против Явы, тогда как должно быть против стандартной парадигмы программирования потоков с мьютексами и прочими ужасами.

(no subject)

From: [identity profile] skavish.livejournal.com - Date: 2009-09-29 09:30 pm (UTC) - Expand

Date: 2009-09-29 06:05 pm (UTC)
From: [identity profile] dimrub.livejournal.com
Вот и отлично, потом ведь сделаешь семинар, правда? :)

Скажи, а на J ты смотрел? Я тут развлекаюсь на eulerproject.net, там многие им балуются, выглядит страшновато, но любопытно, что за зверь.

Date: 2009-09-29 06:44 pm (UTC)
From: [identity profile] antilamer.livejournal.com
J - полная жесть. Где-то год время от времени пытался его выучить, так ничего и не получилось толком. Сдался, когда не смог написать на нем волновой алгоритм на прямоугольной сетке без помощи циклов (а с помощью циклов казалось, типа, не круто).
Но ооочень красиво, и полезно прочитать его vocabulary с примерами, чтобы просто проникнуться тем, "как еще можно писать программы" и "в терминах чего еще их можно выражать" - это может пригодиться и за пределами J.

Date: 2009-09-29 07:09 pm (UTC)
From: [identity profile] onodera.livejournal.com
J, по-моему, специально спроектировали так, чтобы писать на нём было максимально трудно. Все глаголы (команды) состоят либо из одного, либо из двух знаков препинания, причём хоть какая-то мнемоника пропадает где-то на двадцатом. Но и это ещё не всё, как говорят в телемагазинах.
Если прикинуться дурачком и начать делать свои глаголы, то с каждым новым производительность будет падать, особенно если это переименованный примитив. Поэтому разработчики очень гордятся своим tacit programming, то есть превращением подпрограммы, а то и всей программы, в одну длинную функцию. Формула Герона выглядит вот так: [:%:[:*/-:@:(+/)-0,]
Поэтому я изучаю вместо J Q.

(no subject)

From: [identity profile] dimrub.livejournal.com - Date: 2009-09-29 07:11 pm (UTC) - Expand

(no subject)

From: [identity profile] onodera.livejournal.com - Date: 2009-09-29 07:52 pm (UTC) - Expand

(no subject)

From: [identity profile] nec-p1us-u1tra.livejournal.com - Date: 2009-09-29 09:15 pm (UTC) - Expand

(no subject)

From: [identity profile] cmm.livejournal.com - Date: 2009-09-29 09:26 pm (UTC) - Expand

(no subject)

From: [identity profile] nec-p1us-u1tra.livejournal.com - Date: 2009-09-29 09:27 pm (UTC) - Expand

(no subject)

From: [identity profile] dimrub.livejournal.com - Date: 2009-09-29 09:59 pm (UTC) - Expand

(no subject)

From: [identity profile] gianthare.livejournal.com - Date: 2009-09-30 07:51 am (UTC) - Expand

(no subject)

From: [identity profile] cmm.livejournal.com - Date: 2009-09-30 08:03 am (UTC) - Expand

Date: 2009-09-29 10:39 pm (UTC)
From: [identity profile] avva.livejournal.com
Немного стремно продолжать делать семинары по языкам, которые я на самом деле знаю очень поверхностно :) посмотрим.

На J равно как и K уже года четыре хочу посмотреть, пока нет.

Date: 2009-09-29 07:32 pm (UTC)
From: [identity profile] xxqs.livejournal.com
да мало ли однопоточных вещей, от языка это мало зависит. libxml2, например, тоже не тред-сейф
From: [identity profile] greps.livejournal.com
Из Спольского - См. полностью

"...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)
()
From: [identity profile] cmm.livejournal.com
удивительное дело: если сделать пару-тройку глобальных подстановок (s/duct tape/sane/g и s/too hard for the human brain/too error-prone/g, для начала), то статья напрочь перестаёт быть флэйм-бэйтом и становится правдивой и совершенно неинтересной.

надо хорошенько освоить инверсию этой технологии и начать зашибать бабки и славу в интернетах!
From: [identity profile] nm-work.livejournal.com
:))))) мы в проекте внедрили-таки RPC calls и заставляли разные слои приложения сидеть в разных виртуальных машинах и общаться друг с другом только через RPC (JSON/XML-RPC).

да, чуть усложнило в начале работу, но потом - 1) был отлично отслеживаемый протокол взаимодействия компонент, 2) создание каждого слоя можно отдать отдельному разработчику 3) многослойная система security рулит - потому что даже при ошибках в одном слое трудно пробиться через следующий :)))))
From: [identity profile] dimrub.livejournal.com
Keep things as simple as possible - but no simpler.

Date: 2009-09-29 11:40 pm (UTC)
From: [identity profile] pingva.livejournal.com
prag-prog'овская книжка прикольная по erlang'у.

мне оч. понравился язык, но вот надо бы придумать задачу, какую-нибудь multi-actor симуляцию распределенную, чтоб осмысленность была =) На работе на нем никто не даст писать, понятно. (тебе, я так понимаю, тоже =))

Date: 2009-09-30 12:38 am (UTC)
From: [identity profile] msh.livejournal.com
У меня первое впечатление от erlang было как вот когда я в первый раз узнал про regexp-ы и что можно не писать страницу циклов и strtok(), а все сделать за минуту одной строчкой.

Так вот с erlang я без труда в своей программе за час попробовал несколько вариантов concurrency и все работали! Без долгих размышлений - а вот тут нужен mutex, а тут соединить через очередь, а что делать если этот thread закончился, а тот еще не стартовал и не знает что должен открыть сокет снова.

Date: 2009-09-30 02:56 am (UTC)
From: [identity profile] meshko.livejournal.com
Хм. Мне всегда казалось, что пользоваться regexp в таком виде (чтобы заменять циклы и strtok) -- дурной тон. То есть типа как jwz сказал, Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems. Вы не согласны?

Я спрашиваю, потому что у меня какое-то сложное отношение к ним. С одной стороны очень люблю и каждый день пользуюсь, и в программы люблю вставлять поиск или там rewrite rules на основе regexp, но вот когда доходит до того, чтобы в своем коде заменить цикл и strtok на regexp, меня всегда что-то останавливает.

(no subject)

From: [identity profile] nm-work.livejournal.com - Date: 2009-09-30 01:49 pm (UTC) - Expand

Date: 2009-09-30 04:41 am (UTC)
From: [identity profile] dimmik.livejournal.com
А вот scala еще бывает.
Довольно вкусно выглядит, я в данный момент пытаюсь внимательно интересоваться

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 29th, 2025 11:39 am
Powered by Dreamwidth Studios