1. несколько ортогональных инструментов обработки ошибок (hot code reload, try/catch, linked processes, supervisors)
2. горячая замена кода без остановки приложения. работа 24/7/365 без остановки для апгрейда.
3. горячий дебаг без пауз того, что дебажится
4. отсутствие разделяемой памяти — изоляция процессов друг от друга
5. возможность породить десятки и сотни тысяч независимых процессов, выполняющихся параллельно друг с другом и не блокирующих друг друга
6. неизменяемые структуры данных — способ исключить целые классы ошибок в коде
7. мощные библиотеки работы с асинхронными процессами — в бою уже пару десятков лет.
8. делать код-ревью на Erlang проще, чем на императивных языках типа PHP, Perl, etc: lionet.info/pdf/2010-lev-walkin-erlang-experience.pdf
9. по сравнению с Node.JS — код выглядит как код, а не как лапша:
Step(
function readSelf() {
fs.readFile(__filename, this);
},
function capitalize(err, text) {
if (err) throw err;
return text.toUpperCase();
},
function showIt(err, newText) {
if (err) throw err;
console.log(newText);
}
);
Эрланг:
{ok, Data} = file:read_file(Filename),
Text = string:to_upper(binary_to_list(Data)),
error_logger:info_msg("~s", [Text]).
Говорят, что он лучше тем, что все и так знают его синтаксис. Но это критически неправильная штука, потому что для систем 24/7 (в отличие от окошка браузера) нужна совершенно другая парадигма. В Эрланге она есть, в других более-менее известных системах её нет.
Очень хорошо забытое, или даже непознанное. Пять лет назад выпускались уже 32-ядерные процессоры фирмой Cavium (Octeon), построенные на архитектуре MIPS.
Cisco использует 176-ядерный процессор собственного производства в старшей линейке своих магистральных устройств.
Стартап — это общее название новой компании, которая, как правило, существует на заёмный капитал и не успела выбрать или прочно закрепиться на своём рынке.
В России словом стартап распоряжаются чуть вольнее, чем в штатах, называя этим словом любое новое начинание, даже если оно не позиционируется как коммерческое предприятие.
1. Гораздо более вероятный способ стартапу «выйти» — это не выпуск акции на бирже (IPO), а быть купленным устоявшейся компанией или более крупным стартапом (M&A).
2. К инвестору прийти и озвучить свою идею и в штатах нельзя — практически везде какой-то задел требуется.
2. горячая замена кода без остановки приложения. работа 24/7/365 без остановки для апгрейда.
3. горячий дебаг без пауз того, что дебажится
4. отсутствие разделяемой памяти — изоляция процессов друг от друга
5. возможность породить десятки и сотни тысяч независимых процессов, выполняющихся параллельно друг с другом и не блокирующих друг друга
6. неизменяемые структуры данных — способ исключить целые классы ошибок в коде
7. мощные библиотеки работы с асинхронными процессами — в бою уже пару десятков лет.
8. делать код-ревью на Erlang проще, чем на императивных языках типа PHP, Perl, etc: lionet.info/pdf/2010-lev-walkin-erlang-experience.pdf
9. по сравнению с Node.JS — код выглядит как код, а не как лапша:
Эрланг:
www.slideshare.net/rit2010/max-lapshin-erlyvideo-v2
lionet.info/pdf/2010-lev-walkin-erlang-experience.pdf
lionet.livejournal.com/tag/erlang
lionet.livejournal.com/95346.html
При этом в Erlang ничего не блокируется и не трещит по швам из-за концепции независимых асинхронных потоков без общей памяти.
Вот как Second Life выбирал себе сервер очередей:
wiki.secondlife.com/wiki/Message_Queue_Evaluation_Notes
github.com/EchoTeam/mavg
Cisco использует 176-ядерный процессор собственного производства в старшей линейке своих магистральных устройств.
А тут интел подкатил.
В России словом стартап распоряжаются чуть вольнее, чем в штатах, называя этим словом любое новое начинание, даже если оно не позиционируется как коммерческое предприятие.
2. К инвестору прийти и озвучить свою идею и в штатах нельзя — практически везде какой-то задел требуется.