ну посмотри на тот же nodejs, который взял за основу Javascript. Чтобы реализовать классический ООП интерфейс наследования, например, нужно использовать отдельные модули. Это разве Ъ?
Хм, а по мне так там самое что ни есть достаточное ООП. А вообще да, потому что переносимый и почти везде есть из коробки. В этом смысле на нём писать портируемо даже проще, чем на С, хотя не без нюансов конечно.
Ну во-первых в ноде уже условно нормальный es6, а на клиенте можно через babel пропустить и писать на том же es6. Твои данные устарели.
А выбирают когда надо для браузера и сервера одновременно лепить. Довольно удобно получается. Если б я разрабатывал только для сервера, взял бы что-то другое.
Я понимаю, если б ты математику делал и плакался что с типами тухло, или что proxy еще не сделали (ни то ни другое не костыляется). А негодовать про классы, для которых давно есть стандартные костыли - это фигня.
Хм, не понятно зачем в прототипном языке делать классическое ООП и да, с точки зрения классического ООП, жабаскрипт куда ближе к классике, чем С++ или жаба.
Меня наоборот раздражает, когда люди пишут на жабаскрипте как на С++, городя аналоги абстрактных классов, наследования и даже виртуальных методов:) Зачем? Потому что с С++ пришли? Так куда лучше тогда и писать на С++, он и эффективнее и куда шире как язык, в компайл тайм там много можно сделать.
Ничего не понял. В JS нет модулей. Чтобы реализовать наследование, надо просто сделать наследование прототипа и всё. До ES6 надо было писать немного мишуры, впрочем совсем немного. Начиная с ES6/TypeScript всё получается совсем лаконично.
Но имея такой аватар, я, в отличии от тебя, не создаю такие «глубокомысленные» темы. Хорошо хоть эта фтолксах. Иди лучше пивка попей и жизнь наладится.
Тоже мне проблема. Создатель Java (вот уж оплот ООП) сказал не так давно, что внедрение ООП в его детище его самая большая ошибка. Типа тогда в 90х это казалось универсальным оружием, а сейчас стало очевидно, что это не так.
Просто дедушка немного больше понимает в вопросе, нежели ты. Ссылку не дам, сам ищи. Возможно он это для лулзов сказал, а возможно усилил свою давнюю идею, что наследование в java сделано не оптимально, но не ясно до конца как сделать лучше, да и поздно пить баржоми. И да, он лиспер со стажем, если ты не знал.
JavaScript, not to be confused with Java, was created in 10 days in May 1995 [..] JavaScript was not always known as JavaScript: the original name was Mocha.
Если дедушка начал ругать ооп в принципе-он поехал. Если реализацию-да, не очень, но на тот момент была одна из лучших и с тех пор как-то эволюционировала.
Энивей, джава попала в нужную нишу, и в не в последнюю очередь-благодаря тупорылой простоте восприятия.
Ты про лиспера вставил шобы я впечатлился? А чему тут впечатляться-то?
Язык будущего это ты загнул конечно.
Но почему это у него нет ООП ? Он самое что нинаесть ООП и есть, только с функциональной точки зрения.
Есть у него так же наследование через прототипы, но как мы недавно в одной теме смотрели наследование через него очень негативный эффект дает, часто просто ломает код, при этом очень декларативно наворачивается и очень трудно куда то выносится. Однако очень полезным бывает при задании особых свойств для таких объектов как Date NodeList Array HTMLCollection - то есть которые либо веб апи либо браузером предоставляются. В иных же случаях лучше в функцию лишний раз обернуть, ничего в этом страшного нет, а к своим объектам вообще лучше стараться не лепить.
Потому что лысые обезьяны под воздействием буржуазного общества потребления и вседозволенности деградируют и не могут осилить C++ и даже жаву. Ситуация плачевная, только массовые расстрелы и принудительный труд для тунеядцев спасут человечество.