30.05.2011, 14:28
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
Сообщение от Kolyaj
|
Это писали рубисты для рубистов. Ты, видимо, не рубист.
|
с выходом ES7 (Strawman) мы все станем рубистами (это не шутка).
Если честно не ожидал, что B. Eich когда-то скажет: "синтаксис JS устарел и ему нужен новый вид".
|
|
30.05.2011, 20:06
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
Сообщение от [x-yuri
|
Вот вы как думаете, в чем причина такого "нетрезвого" взгляда и какой взгляд трезвый?
|
Сообщение от FINoM
|
Если вопрос ко мне, то я не говорил что являюсь специалистом мирового класса. Просто не понимаю некоторых вещей, которые надеюсь понять.
|
вопрос был ко всем
Сообщение от FINoM
|
Вот, например, в strict mode убрали arguments.callee. Спрашивается, почему? Это ведь так удобно при создании рекурсивных функций.
|
производительность. Что неудобного в отсутствии arguments.callee?
|
|
30.05.2011, 20:57
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
Сообщение от x-yuri
|
Вот вы как думаете, в чем причина такого "нетрезвого" взгляда и какой взгляд трезвый?
|
дело в том, что Khronos залезли не в свой огород. И если так пойдет дело то JS будет похож на PHP.
new Int32Array(); на мой взгляд если мягко выражаться - некорректно, хотя все семантически верно.
int[] куда приятней или даже []:int
А насчет классов, то они должны появится в ES7 (Strawman) и еще много всяких плюшек.
Сообщение от x-yuri
|
производительность. Что неудобного в отсутствии arguments.callee?
|
мне кстати тоже не понятно, зачем убирать если можно подправить.
также как как в PHP куда логичней что конструктор имеет спецификатор __construct, а не как это было раньше.
|
|
31.05.2011, 00:40
|
|
Новичок
|
|
Регистрация: 05.09.2010
Сообщений: 2,298
|
|
Сообщение от x-yuri
|
Что неудобного в отсутствии arguments.callee?
|
Его отсутствие.
|
|
31.05.2011, 00:43
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
Сообщение от monolithed
|
дело в том, что Khronos залезли не в свой огород.
|
да. Видно им очень нужны были эти типизированные массивы, а залезть в огород дальше они не могли (изменить синтаксис)
Сообщение от monolithed
|
И если так пойдет дело то JS будет похож на PHP.
|
В случае php, как говорит Лердорф
Цитата:
|
It is a thin glue layer between your Web server and all the various things you might want your web server to talk to.
In the old tradition of UNIX, we rely on small specialized add-on libraries to do all the heavy lifting with as little interference from PHP as possible.
|
(кстати, интересно, что он пишет про register globals и magic quotes) Т.е. целью были не красота и последовательность, а решение задач. Достойная цель, я считаю. В случае же с js, типизированные массивы понадобились раньше, чем их добавили в язык. А в дальнейшем типизированные массивы можно будет сделать частью синтаксиса. Причем php на фоне DOM кажется довольно красивым языком, или не? Просто js гибкий, и DOM можно "пропатчить"
Сообщение от monolithed
|
new Int32Array(); на мой взгляд если мягко выражаться - некорректно, хотя все семантически верно.
int[] куда приятней или даже []:int
|
я так понял, некорректно == неприятно
Сообщение от monolithed
|
мне кстати тоже не понятно, зачем убирать если можно подправить.
|
как подправить?
Сообщение от monolithed
|
также как как в PHP куда логичней что конструктор имеет спецификатор __construct, а не как это было раньше.
|
озвучь свою логику
|
|
31.05.2011, 00:49
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
...
Сообщение от FINoM
|
Его отсутствие.
|
function f(n){
return n ? f(n-1)*n : 1;
}
ну не воспользовался я arguments.callee, что страшного произошло?
|
|
31.05.2011, 09:10
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от x-yuri
|
function f(n){
return n ? f(n-1)*n : 1;
}
|
Плохой пример. Тут функция заведомо имя имеет, его не надо специально придумывать и волноваться, чтобы оно не попало в global scope.
Сообщение от x-yuri
|
производительность
|
Если проблема только в производительности, можно просто не использовать arguments.callee, убирать-то зачем?
Сообщение от x-yuri
|
Что неудобного в отсутствии arguments.callee?
|
Необходимость придумывать бессмысленные имена для функций.
|
|
01.06.2011, 02:44
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
Сообщение от Kolyaj
|
Плохой пример. Тут функция заведомо имя имеет, его не надо специально придумывать и волноваться, чтобы оно не попало в global scope.
|
Сообщение от Kolyaj
|
Необходимость придумывать бессмысленные имена для функций.
|
ну мне же пример не привели. Поэтому привел я. И естественно, не зная, в чем проблема, пример получился неудачным. К тому же, что значит бессмысленное имя? В моем понимании, если приходится придумывать функции бессмысленное имя, это повод задуматься. В общем мне не хватает примера, чтобы делать какие-то выводы.
Сообщение от Kolyaj
|
Если проблема только в производительности, можно просто не использовать arguments.callee, убирать-то зачем?
|
Я слишком лаконично выразился Присутствие arguments.callee мешает оптимизировать код (браузеру)
|
|
01.06.2011, 10:46
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
ну так, называем функцию onTimeout, по-моему довольно осмысленно. В попадании в global scope тоже проблемы не вижу. Т.е. оно туда попадет, если будет вне всяких функций, а это редко. Но если очень важно, можно и в функцию завернуть (function(){...})()
|
|
|
|