> Нет
Что, «нет»? ООП в C# — это одна из реализаций, не претендующая на единственно верную. Что не так?
> Соответственно если говорить, что ООП ходьба с костылями — то все программирование на C# — костыли.
Я, если Вы внимательно читали, как раз и ратую за то, чтобы не раскидываться тут, «что такое костыли, а что нет» (при этом, даже не являясь создателями этих систем).
Спасибо за подробный ответ, да, я тоже повторю, что меня привлекает динамика, мутации объектов, утиная типизация в Ruby и JS (Смоллток тоже находится в их генеалогическом дереве вдохновения идеологией, включая реализацию ООП — однако, конечно же, были сделаны свои и изменения).
Подчеркнуть же я хочу то, что говорить о «костылях» смысла нет, поскольку для этого нужен утверждённый эталон «дальше которого прыгать в стороны не моги», но в плане реализаций теоретических областей — это не так. Реализация ООП из Смоллтока, унаследованная Руби, Питоном и JS (через связку Smalltalk -> Self -> JS) снова повторю, мне так же наиболее симпатична (при этом, я осознаю, что сам Смоллток тоже вдохновлялся Симулой, но ввёл свои нововведения, которые посчитал технологически и идеологически обоснованными).
> Что вы имеете ввиду под словами «технические характеристики»?
Реализацию.
> Проще попробовать
Я достаточно хорошо знаю и PHP и Ruby.
> чем рассказывать
тот, кто не знает, не сможет объяснить.
Меня же больше волнует то, каков процент в Ваших фразах о «костылях» — свой? К слову, я отмечу, что мне Руби, действительно (наряду с JS и Python'ом), нравятся больше PHP, но я могу ответить, почему — в большей мере привлекает динамика, открытость (хотя, Питон, в этом плане, закрыт для работы со встроенными классами), мутация (и, как следствие, утиная типизация) объектов, и модульная структуризация. ООП же в PHP — достаточно неплохая реализация этой теоретической парадигмы.
Фишка в том, что когда выражают больше не своё мнение в этом вопросе, рассказывают больше не о том, как хорош Руби, а о том, как PHP уныл. При детальном же анализе, выясняется, что рассказывающий весьма поверхностно знает — и PHP, и Ruby.
Да нет, у Вас упор всё же на PHP-вакансию, всё остальное (SQL, JS, CSS) — поверхностно получится, в любом случае (хотя, могут быть исключения, но такой девелопер (который глубоко разбирается в нескольких технологиях, а не просто на прикладном уровне) дороже стоит и надо ещё поискать).
Касаемо же JS, ответом на Ваш вопрос должен быть: «что значит реализовать наследование? наследование в этом языке заложено изначально и весь язык — напишите Вы одну строчку 1..toString() — уже насквозь пропитан наследованием. Поэтому, вопрос не понятен/не корректен». Поэтому, при серьёзной JS-вакансии, такие вопросы лучше не задавать (сами спалитесь). В случае же, когда JS — второстепенен (т.е. основное направление вакансии — PHP), Ваша формулировка может быть уместна.
> Каким образом можно реализовать наследование в Javascript?
В принципе, для соискателя для на PHP вакансию, такой формулировки может быть и достаточно, хотя, она, конечно, неверная — Вы же не спрашиваете, «каким образом можно реализовать наследование в PHP?» — а ведь это тоже самое. Если будете проводить интервью на JS вакансию, не задавайте такой вопрос вообще.
Ну, под «что тут думать?» я больше имел в виду, не то, как «тут всё просто в 11.1.4, что вы тут думаете?», а, что «не надо выдумывать ничего, когда есть точное описание». Сам же этот раздел не такой и простой, чтобы увидеть всю картину при беглом просмотре.
Array elements may be elided at the beginning, middle or end of the element list. Whenever a comma in
the element list is not preceded by an AssignmentExpression (i.e., a comma at the beginning or after
another comma), the missing array element contributes to the length of the Array and increases the index
of subsequent elements. Elided array elements are not defined.
Т.е. IE прочитал эту часть и решил всё время ей следовать (при нахождении пропуска, увеличивать длину массива на 1), однако, IE не учёл следующий алгоритм:
The production ArrayLiteral: [ ElementList, Elisionopt ] is evaluated as follows:
1. Evaluate ElementList.
2. Evaluate Elision; if not present, use the numeric value zero.
3. Call the [[Get]] method of Result(1) with argument «length».
4. Call the [[Put]] method of Result(1) with arguments «length» and (Result(2)+Result(3)).
5. Return Result(1).
В вопросе мало смысла.
> Вы мне говорите про какую-то реализацию.
Что значит, про «какую-то»? Про вполне конкретную — Си-шарповую. И отмечаю, что реализация ООП в этом языке — одна из нескольких.
> Я для примера назвал C#.
Ну замечательно, только, повторю, в вопросе мало смысла, если Вы полностью этот тред проанализируете и увидите мою позицию.
Что, «нет»? ООП в C# — это одна из реализаций, не претендующая на единственно верную. Что не так?
> Соответственно если говорить, что ООП ходьба с костылями — то все программирование на C# — костыли.
Я, если Вы внимательно читали, как раз и ратую за то, чтобы не раскидываться тут, «что такое костыли, а что нет» (при этом, даже не являясь создателями этих систем).
Подчеркнуть же я хочу то, что говорить о «костылях» смысла нет, поскольку для этого нужен утверждённый эталон «дальше которого прыгать в стороны не моги», но в плане реализаций теоретических областей — это не так. Реализация ООП из Смоллтока, унаследованная Руби, Питоном и JS (через связку Smalltalk -> Self -> JS) снова повторю, мне так же наиболее симпатична (при этом, я осознаю, что сам Смоллток тоже вдохновлялся Симулой, но ввёл свои нововведения, которые посчитал технологически и идеологически обоснованными).
> прочувствовал ООП только после него.
Расскажите подробней (основные, ключевые моменты, которые заставили вас «прочувствовать»), интересно.
Реализацию.
> Проще попробовать
Я достаточно хорошо знаю и PHP и Ruby.
> чем рассказывать
тот, кто не знает, не сможет объяснить.
Меня же больше волнует то, каков процент в Ваших фразах о «костылях» — свой? К слову, я отмечу, что мне Руби, действительно (наряду с JS и Python'ом), нравятся больше PHP, но я могу ответить, почему — в большей мере привлекает динамика, открытость (хотя, Питон, в этом плане, закрыт для работы со встроенными классами), мутация (и, как следствие, утиная типизация) объектов, и модульная структуризация. ООП же в PHP — достаточно неплохая реализация этой теоретической парадигмы.
Фишка в том, что когда выражают больше не своё мнение в этом вопросе, рассказывают больше не о том, как хорош Руби, а о том, как PHP уныл. При детальном же анализе, выясняется, что рассказывающий весьма поверхностно знает — и PHP, и Ruby.
Так о чём говорите Вы?
ну это всё демагогическая философия, а технические характеристики, всё-таки, можете рассказать? ;)
В PHP — своя реализация ООП, достаточно неплохая в своей идеологии, удобная для реюза кода. Кстати, в Руби, ООП похоже на Javascript'овое.
Касаемо же JS, ответом на Ваш вопрос должен быть: «что значит реализовать наследование? наследование в этом языке заложено изначально и весь язык — напишите Вы одну строчку 1..toString() — уже насквозь пропитан наследованием. Поэтому, вопрос не понятен/не корректен». Поэтому, при серьёзной JS-вакансии, такие вопросы лучше не задавать (сами спалитесь). В случае же, когда JS — второстепенен (т.е. основное направление вакансии — PHP), Ваша формулировка может быть уместна.
В принципе, для соискателя для на PHP вакансию, такой формулировки может быть и достаточно, хотя, она, конечно, неверная — Вы же не спрашиваете, «каким образом можно реализовать наследование в PHP?» — а ведь это тоже самое. Если будете проводить интервью на JS вакансию, не задавайте такой вопрос вообще.
А что тут думать? Черным по белому — в спецификации это поведение описано. IE не прав в данном случае. См. 11.1.4.
ой, не поверим ;)
Откройте ECMA-262-3, 11.1.4 Array Initialiser. В случае примера, длина, всё же, должна быть 3.
По спецификации, нет: IE — не прав, Fx — прав.
Т.е. IE прочитал эту часть и решил всё время ей следовать (при нахождении пропуска, увеличивать длину массива на 1), однако, IE не учёл следующий алгоритм:
Т.к. Result(2) должен быть ноль.
Поэтому, IE, по спецификации, не прав.
С объектами, ошибка есть.
Скорее, всего лишь Ваша локальная привычка. Как и тех, кто рекомендует.
> Правильный вариант
Привычный
> честно говоря, уже привык к нему