|
|
|
Одному мне не хватает этого в js?
|
|||
|---|---|---|---|
|
#18+
Яростный МечПрограмёр1. Зачем в прототип писать полноценный объект, если точно тот же объект с расширенными возможностями станет результирующим. То есть по сути создаётся одна дополнительная копия объекта, все свойства которого перекрыты потомком. 2. Если я на входе конструктора Animal ожидаю объект, с которым собираюсь проводить некоторые манипуляции (например это массив, и я хочу получить его длину и т.д.), то Bird.prototype = new Animal(); может привести к ошибке, если я не предусмотрю такой вызов. А причина моих попыток как-раз в том, что бы как можно больше предусматривалось автоматически, то есть не писать лишней логики. Вместо этих двух пунктов я просто ввёл собственную цепочку прототипов (точнее их конструкторов) и обернул такое "наследование" в отдельный метод.именно эти два пункта учтены в том варианте, который я привел 15393424 - там создается стандартная цепочка прототипов, но без полноценного объекта в прототипе. Вполне полноценный и работоспособный подход. Есть явные преимущества перед предложенным мной? Цепочка прототипов заполняется, однако всё-ровно не совсем полноценно. например alert(b.constructor.prototype._legs); вместо ожидаемого "2" выведет "undefined" :) В общем ничего против такого варианта не имею, но имеет смысл менять привычку только если в новом варианте есть преимущества. Так что, если есть, прошу пояснить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2014, 17:39 |
|
||
|
Одному мне не хватает этого в js?
|
|||
|---|---|---|---|
|
#18+
ПрограмёрЦепочка прототипов заполняется, однако всё-ровно не совсем полноценно. например alert(b.constructor.prototype._legs); вместо ожидаемого "2" выведет "undefined" :)и это правильно. суть в том, что все данные должны быть в составе объекта, а общие данные (в 99% случаев - функции) - в составе цепочки прототипов. ПрограмёрЕсть явные преимущества перед предложенным мной?как уже говорилось, работает механизм добавления методов во все промежуточные классы, который изначально предусмотрен в js. т.е. я могу отдельно добавить метод в Bird.prototype, тогда он будет виден объектам Bird и наследникам. а если добавлю метод в Animal.prototype, он виден в объектах Animal и наследниках. ну и тот факт, что для каждого экземпляра объекта не создаются отдельные экземпляры функции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2014, 17:57 |
|
||
|
Одному мне не хватает этого в js?
|
|||
|---|---|---|---|
|
#18+
Яростный МечПрограмёрЦепочка прототипов заполняется, однако всё-ровно не совсем полноценно. например alert(b.constructor.prototype._legs); вместо ожидаемого "2" выведет "undefined" :)суть в том, что все данные должны быть в составе объектапредставь, что _legs - не число, а массив, куда в ходе работы что-то добавляется. окажись он в прототипе, был бы один общий массив для всех экземпляров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2014, 17:59 |
|
||
|
Одному мне не хватает этого в js?
|
|||
|---|---|---|---|
|
#18+
ПрограмёрВсем привет. Мне вдруг стало интересно, одному мне это в js мешает при решении более-менее сложных задач: 1. отсутствие полноценного механизма наследования 2. отсутствие проверки на валидность переданных в функцию параметров 3. отсутствие возможности перегрузки методов (при разных входных параметрах разная логика) Нет нетолко вам. Но нет в мире совершенства!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 22:55 |
|
||
|
Одному мне не хватает этого в js?
|
|||
|---|---|---|---|
|
#18+
Проблема многих, кому чегото не хватает в javascript, в том что приходя в javascript они мыслят и пытаются использовать его как предыдущий язык. Чего греха таить - я тоже после C# хотел классов, но после изучения языка и многих лет работы мне становится смешно, когда ктото в очередной раз хочет классов в javascript) В монолитных приложениях, когда весь код сразу на месте - это может и необходимость, но в фронтэнде как правило необходимые модули подгружаются динамически, что сводит на нет использование классов. JavaScript тем и прекрасен, что в нем нет строгой типизации, помню сколько огорода приходилось городить на C# чтобы иметь возможность обрабатывать различные типы классов в одно коде. Чур меня чур от такого!) JavaScript гибок, легок и прекрасен именно в таком виде какой он есть и переделывать его не надо - надо переделывать программистов, которые хотят его переделать) Не хотите всех его плюшек - переходите на другие языки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 15:07 |
|
||
|
Одному мне не хватает этого в js?
|
|||
|---|---|---|---|
|
#18+
spПроблема многих, кому чегото не хватает в javascript, в том что приходя в javascript они мыслят и пытаются использовать его как предыдущий язык. Чего греха таить - я тоже после C# хотел классов, но после изучения языка и многих лет работы мне становится смешно, когда ктото в очередной раз хочет классов в javascript) В монолитных приложениях, когда весь код сразу на месте - это может и необходимость, но в фронтэнде как правило необходимые модули подгружаются динамически, что сводит на нет использование классов. JavaScript тем и прекрасен, что в нем нет строгой типизации, помню сколько огорода приходилось городить на C# чтобы иметь возможность обрабатывать различные типы классов в одно коде. Чур меня чур от такого!) JavaScript гибок, легок и прекрасен именно в таком виде какой он есть и переделывать его не надо - надо переделывать программистов, которые хотят его переделать) Не хотите всех его плюшек - переходите на другие языки Переход на другой язык не представляется возможным... Как-то я себе не представляю как клиентскую часть сайта возможно написать на С#, не написав собственный интерпретатор :) А как различные типы классов в одном коде то обрабатывать? Если вызывать методы класса, или обращаться к определённым свойствам, то для этого и придумали наследование и интерфейсы (просто структуру классов надо правильно строить). И как динамическая подгрузка сводит на нет использование классов? В пхп include тоже динамически код грузит, но там это никак не мешает использовать классовое ООП на полную катушку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 16:33 |
|
||
|
Одному мне не хватает этого в js?
|
|||
|---|---|---|---|
|
#18+
ПрограмёрА как различные типы классов в одном коде то обрабатывать? Если вызывать методы класса, или обращаться к определённым свойствам, то для этого и придумали наследование и интерфейсы (просто структуру классов надо правильно строить). javascript тем и хорош что в нем не нужна никакая структура классов, что в одном коде обработать любые, т.е. абсолютно любые заранее неизвестные структуры данных! И только благодаря отсутствию строгой типизации и прототипной структуре наследование такая гибкость доступна в этом языке. ПрограмёрИ как динамическая подгрузка сводит на нет использование классов? В пхп include тоже динамически код грузит, но там это никак не мешает использовать классовое ООП на полную катушку. Динамическая подгрузка в таком случае сводится не подгрузке одного класса а всей иерархии классов сразу - что лишает смысла динамическую подгрузку в целом! Перестаньте мыслить классами, думайте лучше о мелких функциональных модулях или о mixins - этот шаблон проектирования наиболее распространен в javascrip программировании - обратите внимание на Node.js - там этот шаблон используется на полную катушку и причем очень продуктивно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2014, 22:33 |
|
||
|
Одному мне не хватает этого в js?
|
|||
|---|---|---|---|
|
#18+
spjavascript тем и хорош что в нем не нужна никакая структура классов, что в одном коде обработать любые, т.е. абсолютно любые заранее неизвестные структуры данных то есть js Вам нравится тем, что перед тем как что-то написать не надо думать и проектировать? Начал писать, а дальше уж как пойдёт?! :) Но основная суть всё-же не в этом... Как уже писал, мне больше всего не хватает перегрузки методов, когда один метод с разными аргументами работает по-разному, при чём без дополнительной логики в теле метода. Этого я как-раз таки и добился (хотя пришлось в итоге некоторые изменения внести, так как IE как всегда не очень понравились некоторые моменты :)) + для оптимизации по скорости). spДинамическая подгрузка в таком случае сводится не подгрузке одного класса а всей иерархии классов сразу - что лишает смысла динамическую подгрузку в целом! Повторюсь... php также умеет грузить код частями и динамически, при этом классовое ООП и динамическая подгрузка кода там очень даже хорошо уживаются (взять тот же yii с его достаточно сложной структурой и "lazy loading"). При динамической загрузке грузить надо не всю иерархию классов (в моём случае модулей, так как у меня основная делёжка не по классам, а по модулям), а только зависимости для данного модуля. Насчёт mixin, а чем он лучше множественного наследования (чем так принципиально отличается)? Ведь в принципе то же самое, за исключением вызова конструкторов предков (подобно наследованию от нескольких классов без конструкторов). Нет, конечно на уровне языка, отличие в реализации очень большое... Но вот уже на уровне создания приложения - я не понимаю особой разницы. Ну да, паттерн mixin позволяет расширить функционал отдельного объекта, что не принято делать при классовом наследовании. Однако "не принято", не значит "запрещено" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 02:49 |
|
||
|
Одному мне не хватает этого в js?
|
|||
|---|---|---|---|
|
#18+
Програмёр, ну зачем вы специально все утрируете?)) если у вас есть молоток, но вы привыкли работать с топором - зачем переделывать молоток под топор. чтоб забивать им гвозди??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2014, 01:41 |
|
||
|
Одному мне не хватает этого в js?
|
|||
|---|---|---|---|
|
#18+
spПрограмёр, ну зачем вы специально все утрируете?)) если у вас есть молоток, но вы привыкли работать с топором - зачем переделывать молоток под топор. чтоб забивать им гвозди??? У меня есть опыт работы с топором (дэлфи и php), и есть в руках молоток (js), кстати, есть и опыт работы с ним. Так вот я как-раз хочу сделать молоток таким, что бы одной стороной можно было гвозди забивать удобно, а повернув - дрова рубить )). То есть я к молотку просто стараюсь прикрутить функцию топора, при этом как можно меньше ограничив оригинальные функции инструмента. Пока удаётся... )) в копилку кстати свалилась возможность быстрой выборки элементов DOM по селектору (по производительности сравнима с jQuery), а также инструмент для анимаций (он кстати по производительности не уступает jQuery, пока на глаз с анимированием в несколько десятков элементов). С новыми доработками пишется очень удобно... надеюсь что-то в итоге и получится )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2014, 02:05 |
|
||
|
Одному мне не хватает этого в js?
|
|||
|---|---|---|---|
|
#18+
Програмёрв копилку кстати свалилась возможность быстрой выборки элементов DOM по селектору (по производительности сравнима с jQuery), а также инструмент для анимаций (он кстати по производительности не уступает jQuery, пока на глаз с анимированием в несколько десятков элементов). С новыми доработками пишется очень удобно... надеюсь что-то в итоге и получится )) Выборка по DOM - querySelectorAll(), анимация - CSS3 Animation. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2014, 04:07 |
|
||
|
Одному мне не хватает этого в js?
|
|||
|---|---|---|---|
|
#18+
st_stПрограмёрв копилку кстати свалилась возможность быстрой выборки элементов DOM по селектору (по производительности сравнима с jQuery), а также инструмент для анимаций (он кстати по производительности не уступает jQuery, пока на глаз с анимированием в несколько десятков элементов). С новыми доработками пишется очень удобно... надеюсь что-то в итоге и получится )) Выборка по DOM - querySelectorAll(), анимация - CSS3 Animation. querySelectorAll() - это да... штука хорошая... Именно её и использовал у себя. Но сама по себе выборка не несёт смысла без методов быстрого изменения свойств элементов и тому подобное (как в jQuery) CSS3 Animation - до IE10 про неё можно забыть... если там и есть какая-либо поддержка, то как минимум animation-timing-function в ie ниже 10 не поддерживается. В итоге да, можно и его использовать, но ещё рано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2014, 22:51 |
|
||
|
Одному мне не хватает этого в js?
|
|||
|---|---|---|---|
|
#18+
ПрограмёрНо сама по себе выборка не несёт смысла без методов быстрого изменения свойств элементов и тому подобное (как в jQuery)да не сказал бы. "быстрое изменение свойств" (как я понимаю, методы вроде .css(), .val() и т.д.) и в цикле нетрудно сделать. а вот без селекторов иногда придется люто г-кодить. очень крутой механизм. хотя нативные селекторы несколько уступают jQuery. Основное отличие - jQuery умеет "заглядывать внутрь" - селекторы ":has" и т.д., которых нет в css. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2014, 23:56 |
|
||
|
Одному мне не хватает этого в js?
|
|||
|---|---|---|---|
|
#18+
Эх с точки зрения семантики, лаконичности и гибкости с моей субъективной точки зрения JavaScript лучший язык. Как я скучаю по его гибкости в Java. Как парит громоздкость в PL\SQL. Как устал от этих begin \ end в дельфи (хотя они же есть и в PL\SQL и в pgSQL и еще вопрос где они появились раньше). В С++ просто до смеху доходят с их "завихрениями" в ООП )) - вот реально надоела его STL и этот Boost, да еще и MS Visual IDE сделано ну не для RAD. Везде есть плюсы и минусы - ну вот к примеру кто видел крутой 3D движок на JavaScript с миллионом треугольников в сцене и материалами - а многопотоковость ? вот вот. Хочешь халяву юзай Java. Накопил штуку баксов купи MS Visual и пиши С++, накопил три штуки баксов купи Delphi. Накопил 548.913 $ купил оракл ))) Потом плюнул на тормоза и заменил бесплатным постгресом ) Но в любом случае я люблю эти языки - и они хороши по своему - в каждом своем отдельном применении. P.S> Да убережет Вас рука от холивара ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2014, 01:47 |
|
||
|
Одному мне не хватает этого в js?
|
|||
|---|---|---|---|
|
#18+
Judoс точки зрения семантики, лаконичности и гибкости с моей субъективной точки зрения JavaScript лучший язык.+1 (тоже субъективный) Judoну вот к примеру кто видел крутой 3D движок на JavaScript с миллионом треугольников в сцене и материаламиэто удел С++ - наверно, единственного языка, которому js не может составить конкуренцию. Judoа многопотоковость ?многопотоковость не относится к языку - это фича среды выполнения. и кстати в современных браузерах она есть - https://developer.mozilla.org/en-US/docs/Web/Guide/Performance/Using_web_workers ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2014, 11:40 |
|
||
|
Одному мне не хватает этого в js?
|
|||
|---|---|---|---|
|
#18+
Яростный МечJudoс точки зрения семантики, лаконичности и гибкости с моей субъективной точки зрения JavaScript лучший язык.+1 (тоже субъективный) Judoну вот к примеру кто видел крутой 3D движок на JavaScript с миллионом треугольников в сцене и материаламиэто удел С++ - наверно, единственного языка, которому js не может составить конкуренцию. тынц лучше всего в ff Яростный Мечмногопотоковость не относится к языку - это фича среды выполнения. и кстати в современных браузерах она естьИ используется как раз для подсчета треугольничков. Кроме матана, воркерам нечего делать, к dom'у из них нельзя обращаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2014, 12:16 |
|
||
|
Одному мне не хватает этого в js?
|
|||
|---|---|---|---|
|
#18+
AntonariyКроме матана, воркерам нечего делатьпо-хорошему это везде так. Ввод/вывод правильнее делать асинхронными, а все прочие долгие операции - вычисления. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2014, 12:24 |
|
||
|
Одному мне не хватает этого в js?
|
|||
|---|---|---|---|
|
#18+
Judoс миллионом треугольников в сценеТреугольники это дедушки шейдеров. Нафига нужны миллионы треугольников, если с помощью шейдеров можно имитировать любой рельеф на абсолютно плоской поверхности? Judoи материаламиНу вот конкретно материалы и шейдеры, но уже на другом движке. На нем же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2014, 12:35 |
|
||
|
Одному мне не хватает этого в js?
|
|||
|---|---|---|---|
|
#18+
Яростный МечJudoс точки зрения семантики, лаконичности и гибкости с моей субъективной точки зрения JavaScript лучший язык.+1 (тоже субъективный) Judoну вот к примеру кто видел крутой 3D движок на JavaScript с миллионом треугольников в сцене и материаламиэто удел С++ - наверно, единственного языка, которому js не может составить конкуренцию. Judoа многопотоковость ?многопотоковость не относится к языку - это фича среды выполнения. и кстати в современных браузерах она есть - https://developer.mozilla.org/en-US/docs/Web/Guide/Performance/Using_web_workers Меч тут ты прав, мне всегда подымают настроение люди которые говорят что Дельфи это паскаль)). Еще более интересно слышать от них новость что С++ быстрее в РанТайме на 30%. Да это возможно было во времена динозавров и Дельфи 3 но не позже )). Уже в 4 компилятор оптимизировали и VCL давно уж как снабдили ассемб вставками. Ну я полность за то чтобы большинство компании покупали себе MS C++ компайлер нанимали сотню програмегггов и писали годами ПО на своем псевдо RAD. Меньше конкуренция проще жить)) Людям не запретишь думать что земля плоская и мы единственные высшие существа во вселенной) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2014, 12:44 |
|
||
|
Одному мне не хватает этого в js?
|
|||
|---|---|---|---|
|
#18+
AntonariyJudoс миллионом треугольников в сценеТреугольники это дедушки шейдеров. Нафига нужны миллионы треугольников, если с помощью шейдеров можно имитировать любой рельеф на абсолютно плоской поверхности? Judoи материаламиНу вот конкретно материалы и шейдеры, но уже на другом движке. На нем же. Не путайте геометрию с материалами) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2014, 12:48 |
|
||
|
Одному мне не хватает этого в js?
|
|||
|---|---|---|---|
|
#18+
Judo, В общем, графических возможностей у браузеров уже больше, чем было 10 лет назад у целого компьютера с 3д-ускорителем :) Не в недостаче треугольников проблема — идей нет. Технологий выдумывается больше, чем конечных продуктов на них. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2014, 13:02 |
|
||
|
Одному мне не хватает этого в js?
|
|||
|---|---|---|---|
|
#18+
AntonariyJudo, В общем, графических возможностей у браузеров уже больше, чем было 10 лет назад у целого компьютера с 3д-ускорителем :) Не в недостаче треугольников проблема — идей нет. Технологий выдумывается больше, чем конечных продуктов на них. Покажи доказательство JavaScript с использованием Cuda и PhysX (тогда поболтаем про 10 лет)) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2014, 13:11 |
|
||
|
Одному мне не хватает этого в js?
|
|||
|---|---|---|---|
|
#18+
AntonariyНе в недостаче треугольников проблема — идей нет.+100 иногда думаю - эх, вернуться бы с накопленными знаниями лет на 10-15 назад - щас был бы владельцем всяких твиттеров-фейсбуков, а не г-кодером рядовым... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2014, 13:15 |
|
||
|
Одному мне не хватает этого в js?
|
|||
|---|---|---|---|
|
#18+
JudoПокажи доказательство JavaScript с использованием Cuda и PhysX (тогда поболтаем про 10 лет)) ?10 лет назад PhysX еще не было, так что за доказательствами проходи мимо. Вопрос в другом — нафига? Этими свистелками затыкают все тот же кризис идей. У нас реалистическая физическая модель!11 — вопят производители контента, соря релевантными аббревиатурами, а как взглянешь, ради чего эта физика — зальешься кровавыми слезами. Это во-первых, а во-вторых, что, без свистелок уже и физику посчитать невозможно? Да на . PhysX может работать без всякой куды, и я однажды специально гонял игрушку на видеокарте ATI (тогда еще) со включенной физикой и выключенной. Процессор разницы не заметил, фпс почти не изменился. Вклад физики в общую нагрузку настолько мал, что браузер с js ее так же не заметит, как и ЦП. Конечно, при реализации физики прямыми руками. К слову, 3d-движок BananaBread переведен на js как раз с с++, причем какой-то автоматизированной тулзой. Что мешает перевести тот кусок PhysX, который не юзает Куду? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2014, 15:34 |
|
||
|
Одному мне не хватает этого в js?
|
|||
|---|---|---|---|
|
#18+
AntonariyJudoПокажи доказательство JavaScript с использованием Cuda и PhysX (тогда поболтаем про 10 лет)) ?10 лет назад PhysX еще не было, так что за доказательствами проходи мимо. Вопрос в другом — нафига? Этими свистелками затыкают все тот же кризис идей. ...... Это все слова которые любят произносить теоретики. Вот приведи пример какой нибудь солидной 3D MMORPG минимум с хотя бы 30 игроками в локации, движок которой сделан на JavaScript ? а потом оценим ее качество графики )) Хорошая идея возникает у одного человека из тысячи, а может быть из десяти тысяч. И она еще может взлететь а может и нет, что зависит от страны где он живет, инвестиций и правильного продвижения. А может так и остаться никому не известной. Так было и так будет. А кризис идей это просто красивые слова. P.S> И чего он так взъелся ?))) ----- Не путайте самолеты с подводными лодками - каждый язык хорош в своей области применения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2014, 21:48 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=38530559&tid=1447460]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
162ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
71ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 516ms |

| 0 / 0 |
