Здравствуйте, Ikemefula, Вы писали:
I>А при чем здесь архитектура JS? динамическая типизация + особенности конкретной библиотеки
Чего-чего особенности????
Здравствуйте, anonymous, Вы писали:
A>Нет. Тема у нас о том, что в JS есть фатальный недостаток по сравнению с другими языками.
Нет, это у вас какой-то свой междусобойчик организовался.
А тема вообще-то о том, какой JS простой, стильный, клевый и позволяющий делать крутые штуки. Я тут уже реализацию then приводил, но ее что-то никто не заметил
Попробую еще раз.
Вот вам, например! Красота-то какая, ляпота! Где-нибудь еще такое видели? И в отладке, и в поддержке
var when = function (value, _callback, _errback) {
var result = defer();
var done;
_callback = _callback || function (value) {
return value;
};
_errback = _errback || function (reason) {
return reject(reason);
};
// XXXvar callback = function (value) {
try {
return _callback(value);
} catch (reason) {
return reject(reason);
}
};
var errback = function (reason) {
try {
return _errback(reason);
} catch (reason) {
return reject(reason);
}
};
enqueue(function () {
ref(value).then(function (value) {
if (done)
return;
done = true;
result.resolve(ref(value).then(callback, errback));
}, function (reason) {
if (done)
return;
done = true;
result.resolve(errback(reason));
});
});
return result.promise;
};
Здравствуйте, anonymous, Вы писали:
A>Нет, ныть — приводить надуманные примеры и выдавать их фатальные недостатки.
рекомендую обратиться к толковому словарю. а то выдумываешь терминологию прямо на ходу.
A>Я тебе предложил уже сравнить две реализации. Как успехи?
понятно, набросил и в кусты.
A>>>Нет, их явно в интересах демагогии неправильно представили. Что в мануале написано про приседания и подпрыгивания — твои измышления. F>>это объективный факт. потому что можно обойти эту проблему, например, через лямбду. через короткий синтаксис, а не то, что ты приводишь. A>Я и привёл лямбду.
и не осилил дочитать строчку.
A>Нет. Тема у нас о том, что в JS есть фатальный недостаток по сравнению с другими языками.
Здравствуйте, anonymous, Вы писали:
F>>а при чём здесь типизация? проблема же в отсутствии проверки количества переданных аргументов. здесь типов нет. A>А как правильно? Проверять или не проверять?
зависит от целей.
с какой-то стороны язык должен ограничивать. а если этого не делать, выбирать вариант "абы как", то получается js.
так и до брейнфака недалеко.
Здравствуйте, neFormal, Вы писали:
A>>Я тебе предложил уже сравнить две реализации. Как успехи? F>понятно, набросил и в кусты.
Что-то не так с результатами эксперимента?
F>>>это объективный факт. потому что можно обойти эту проблему, например, через лямбду. через короткий синтаксис, а не то, что ты приводишь. A>>Я и привёл лямбду. F>и не осилил дочитать строчку.
Это несущественно.
A>>Нет. Тема у нас о том, что в JS есть фатальный недостаток по сравнению с другими языками. F>он весь — один сплошной фатальный недостаток.
Да, и этот недостаток в том, что он тебе не нравится.
Здравствуйте, TK, Вы писали:
TK>С чего это вдруг? Если функции нужен первый параметр, то какой смысл перечислять все остальные если оно все равно не используется? TK>Можно считать, что в общем виде любая функция принимает на вход бесконечное число параметров. просто, не все они значимые.
S>>А js ради экономии нескольких символов позволяет создать подобную ситуацию.
TK>так исходную проблему то не решили... тогда уж надо требовать точного соответствия имен аргументов у функции
Решили — мы вызываем именно ту перегрузку функции, которая нам нужна (Я в курсе, что в js синтаксически нет перегрузок).
Здравствуйте, anonymous, Вы писали:
A>>>Я тебе предложил уже сравнить две реализации. Как успехи? F>>понятно, набросил и в кусты. A>Что-то не так с результатами эксперимента?
ты их не привёл. хотя и сослался.
я вот привёл примеры того, чего знаю. что происходит в перле — я без понятия.
A>>>Нет. Тема у нас о том, что в JS есть фатальный недостаток по сравнению с другими языками. F>>он весь — один сплошной фатальный недостаток. A>Да, и этот недостаток в том, что он тебе не нравится.
Здравствуйте, anonymous, Вы писали:
A>>>А как правильно? Проверять или не проверять? F>>зависит от целей. A>Нет-нет, должен быть один «простой, очевидный и общепринятый» способ. Так какой?
в контексте js должен быть ещё хуже, чем они сделали. жалкоскриптеры должны страдать.
F>>с какой-то стороны язык должен ограничивать. A>Кому должен?
программисту. иначе нет разницы от написания кода на брейнфаке, например.
Здравствуйте, neFormal, Вы писали:
A>>Что-то не так с результатами эксперимента? F>ты их не привёл. хотя и сослался.
Ты ведь утверждаешь, что map в этих экспериментах будет вести себя каким-то общепринятым способом. Значит ты проводил эксперименты и можешь ответить на мой вопрос хотя бы про Haskell.
Здравствуйте, neFormal, Вы писали:
A>>>>А как правильно? Проверять или не проверять? F>>>зависит от целей. A>>Нет-нет, должен быть один «простой, очевидный и общепринятый» способ. Так какой? F>в контексте js должен быть ещё хуже, чем они сделали. жалкоскриптеры должны страдать.
Ты не ответил на вопрос.
F>>>с какой-то стороны язык должен ограничивать. A>>Кому должен? F>программисту. иначе нет разницы от написания кода на брейнфаке, например.
В чего ты взял, что в Brainfuck нет ограничений? Попытка смешать в кучу эзотерический синтаксис и ограничения — демагогия. И нет, не должен тебе ничего произвольно взятый ЯП.
Здравствуйте, anonymous, Вы писали:
A>>>Нет-нет, должен быть один «простой, очевидный и общепринятый» способ. Так какой? F>>в контексте js должен быть ещё хуже, чем они сделали. жалкоскриптеры должны страдать. A>Ты не ответил на вопрос.
я не знаю, как сделать ещё хуже. по работе у меня требуют обратного.
F>>>>с какой-то стороны язык должен ограничивать. A>>>Кому должен? F>>программисту. иначе нет разницы от написания кода на брейнфаке, например. A>В чего ты взял, что в Brainfuck нет ограничений? Попытка смешать в кучу эзотерический синтаксис и ограничения — демагогия. И нет, не должен тебе ничего произвольно взятый ЯП.
отмазка не прокатила.
и таки язык должен. если не может, я его выкидываю. и так делают все нормальные программисты испокон веков.
Здравствуйте, anonymous, Вы писали:
A>>>Что-то не так с результатами эксперимента? F>>ты их не привёл. хотя и сослался. A>Ты ведь утверждаешь, что map в этих экспериментах будет вести себя каким-то общепринятым способом. Значит ты проводил эксперименты и можешь ответить на мой вопрос хотя бы про Haskell.
у тебя эксперимент другой. перевод темы у тебя в очередной раз не получился.
Здравствуйте, neFormal, Вы писали:
A>>>>Нет-нет, должен быть один «простой, очевидный и общепринятый» способ. Так какой? F>я не знаю, как сделать ещё хуже. по работе у меня требуют обратного.
Я спросил: какой из способов «простой, очевидный и общепринятый» — проверять количество переданных аргументов в функцию или нет?
F>>>>>с какой-то стороны язык должен ограничивать. F>и таки язык должен. если не может, я его выкидываю. и так делают все нормальные программисты испокон веков.
То есть программисты, использующие ЯП с динамической типизацией — ненормальные. С нестрогой типизацией — ненормальные. С объявлением переменных не в начале блока инструкций — ненормальные. С возможностью выхода за пределы выделенной памяти — ненормальные. И так далее. На чём ты пишешь, кстати?
Здравствуйте, neFormal, Вы писали:
A>>Ты ведь утверждаешь, что map в этих экспериментах будет вести себя каким-то общепринятым способом. Значит ты проводил эксперименты и можешь ответить на мой вопрос хотя бы про Haskell. F>у тебя эксперимент другой. перевод темы у тебя в очередной раз не получился.
Такой же, с которого началась эта ветка. Но понятно, озвучить результат ты стесняешься.
Здравствуйте, anonymous, Вы писали:
A>>>>>Нет-нет, должен быть один «простой, очевидный и общепринятый» способ. Так какой? F>>я не знаю, как сделать ещё хуже. по работе у меня требуют обратного. A>Я спросил: какой из способов «простой, очевидный и общепринятый» — проверять количество переданных аргументов в функцию или нет?
простой — не проверять
очевидный — проверять
общепринятый — проверять
A>То есть программисты, использующие ЯП с динамической типизацией — ненормальные. С нестрогой типизацией — ненормальные. С объявлением переменных не в начале блока инструкций — ненормальные. С возможностью выхода за пределы выделенной памяти — ненормальные. И так далее.
ты сейчас всех ненормальными назвал. ты, не я.
A>На чём ты пишешь, кстати?
Здравствуйте, neFormal, Вы писали:
A>>Я спросил: какой из способов «простой, очевидный и общепринятый» — проверять количество переданных аргументов в функцию или нет? F>простой — не проверять F>очевидный — проверять F>общепринятый — проверять
Закроем пока глаза на спорность этих утверждений. И как это совместить?
A>>То есть программисты, использующие ЯП с динамической типизацией — ненормальные. С нестрогой типизацией — ненормальные. С объявлением переменных не в начале блока инструкций — ненормальные. С возможностью выхода за пределы выделенной памяти — ненормальные. И так далее. F>ты сейчас всех ненормальными назвал. ты, не я.
Ты же сказал, что нормальные программисты на таком не пишут:
и таки язык должен [ограничивать]. если не может, я его выкидываю. и так делают все нормальные программисты испокон веков.
Только не говори, что «ограничивать» имеет какое-то другое значение.
A>>На чём ты пишешь, кстати? F>на всём, что под руки попадётся.
Ну, озвучь уж, чем нормальные программисты пользуются.