В защиту JavaScript

Написать этот пост меня побудила пара статей в последних номерах «КО», авторы которых весьма пренебрежительно отзывались об этом языке.

Я не большой знаток JavaScript, но у меня сложилось о нем очень даже хорошее мнение. Это, по крайней мере, полноценный язык, а не набор хаков под названием PHP. А такое отношение похоже на отношение некоторых к тикл.
Так что мне не очень понятно, когда жалуются, что JavaScript не поддерживает, к примеру, наследование. Ну и что? C++ не поддерживает type interference, но разве это проблема С++? Это, скорее, проблема программиста.

Как по мне, достаточно крупными недостатками языка являются: а) дурацкое название (так как с Java язык имеет очень мало общего) и б) отсутствие хорошей документации собственно по языку.

Технические проблемы наверняка тоже есть, но я с ними не сталкивался так как, повторюсь, очень немного на нем программировал.

P.S.: JavaScript: The World’s Most Misunderstood Programming Language

Маєте важливу новину про українське ІТ? Розкажіть спільноті. Це анонімно.І підписуйтеся на Telegram-канал редакції DOU

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
Підписатись на автора
LinkedIn



32 коментарі

Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.

Я бы хотел напомнить, что использование JavaScript не ограничивается браузерами. Я вот недавно автоматизирующий работу с фотографиями скрипт для фотошопа написал:) И я был «очень приятно удивлен», когда нашел поддеержку JavaScript’а, а то пришлось бы на VB писать...: (Что насчет «JS тормозит» — торомозит его реализация в среде исполнения, а не сам язык.Что касается споров что круче, то эти споры из разряда: «функциональный или процедурный? »" JavaScript: самый непонятый язык программирования в мире« — очень убедительная статья.Я не ПОЛНЫЙ КОДЕР:), а «околокодер», но и то мне удалось написать очень симпатичные вещи на JavaScript’е: интерактивную карту г.Мурманска и небольшую игру.Так что великие гении кодинга снизойдите до JavaScript’а и может вы сделаете че-дь покруче Гугла, который между прочим не гнушается его и делает современыый интерактивный «клиентский Интернет».

JavaScript, действительно более интересный язык чем PHP, по крайней мере я получаю массу удовольствия при работе на нем!

Помилка в назві посилання: система типізації Хіндлі-Мілнера (виведення типів), не

interference

, а, як вказано в URL посилання:

inference

.

Единстванная проблема с Javascript это неоднозначная поддержка онного разными браузерами. В остальном он просто гений

В случае JS — это не проблема. Если в случае C++ ваша программа не скомпилится в несовместимой среде, тут запросто написать программу которая сама (не вылетая по ошибке) поймет в какой среде она исполняется и воспользуется предлагаемыми конкретным броузером особенностями. Если лень это делать самому — есть достаточно кросс-броузерных библиотек (например DynApi) ps. почиталhttp://developer.mozilla.org/e...проникся:)

Единстванная проблема с Javascript это неоднозначная поддержка онного разными браузерами. В остальном он просто гений;)

Несмотря на то, что дед учил меня украинским названиям месяцев, я к своему стыду совершенно не помню, что такое «Червень», поэтому рискую влезть в давно остывшую дискуссию: -).Javascript называют «самым недооцененным языком в программировании». Он, на самом деле, дико мощный, хотя и не привычный для людей с нашим классическим образованием, где ОО объясняют на примере только в стиле С++.Javascript’овые closures и прототипы дают практически тот же функционал, что объекты. Очень рекомендую Reintroduction to Javascript. Специально для таких случаев написана.Очень удивила фраза, что «он медленный, потому что интерпретируемый, а значит UI на нем не напишешь». Как тогда люди пишут на Java, которая тоже интерпретируемая? Как тогда быть с интерфейсом XUL-браузеров, который работает именно на Javascript?

Ну и наслідування звичайно... 8)

Скажу по секрету, шо на JS можна реалізувати всі парадигми ООП. Навіть ad-hoc поліморфізм.8)

Кстати, с xotcl я как-то баловался. Там даже IDE какая-то была, на нем же писанная. Эх-х, молодость.; -)

Для все тех, кто здесь пишет.Для тех кто давно пользуется JS, но даже не пробовал его изучать (таких большинство) настоятельно рекомендую проч итать: http://www.jalix.org/ressource...Чтобы не говорили что это не ОО язык только потому что в нем нет классов. Классы — это вообще Хак, который возник из-за невозможности быстрой реализации полноценного ОО языка (такого как JS:). JS-у проще, он интерпретируемый.А вот другой язык с подобным ОО: http://media.wu-wien.ac.at/wha..."...The object system enables us to define objects, classes, and meta-classes. Classes are special objects with the purpose of managing other objects...«:) «...Классы — это определенный тип объектов, созданный для управления другими объектами...»

> дурацкое название (так как с Java язык имеет очень мало общего) Название действительно неудачное — половина вебмастеров до сих пор не может понять, чем отличается Ява от ЯваСкрипта, и что это разные языки.На мой взгляд, с ПХП его сложно сравнивать, т.к. они решают совершенно разные задачи.И самое главное: юзер может отключить ЯваСкрипт легко и просто, чего не скажешь про ПХП. Это сильно ограничивает его применение. Ну, сделали вы сайт со всеми наворотами, Аяксами и прочим. А юзер зашел, и ничего не понял — он просто не в курсе, что сисадмин борется за безопасность его компьютера (вчера нашли свежую дырку в ИЕ, а хакеры уже выложили эксплойт), и отключил все скрипты в браузере.А вы потеряли посетителя.

Не любят JavaScript те кто его не знают и сталкиваются с использованием этого языка таких же не знающих. Наверное это самый «незнаемый» из популярных ЯП.Здесь сравнение прототипного подхода и ООП

Вот уж если бы не xedus никто бы и не узнал что

наследования, интерфейсов и пр. — наличие оных существенно облегчает разработку и повышает надежность приложений

.2xedus: Коллега, (а я все-таки надеюсь что так оно и есть), прочтите внимательнее пост, потом ещё пару раз прочтите и до вас дойдет, что никто не обсуждал тут особенности и специфику использования того или иного языка.Говорилось о «правильности дизайна» JavaScript, и его нотации.А вы начинаете устраивать тут holy-wars даже не попытавшись вникнуть в в ту мысль, какую пытался выразить автор.А подобную фразочку я уже слышал на 4-й PHPConf от одного из докладчиков.

мда, автор реально опозорился. он бы еще javascript с pl/sql сравнил и с ассемблером.на счет наследования, интерфейсов и пр. — наличие оных существенно облегчает разработку и повышает надежность приложений. и это понятно каждому кто программил чуть больше чем «очень немного »" набор хаков под названием PHP" — мда, это конечно не превед, но думаю фразочка разойдется широко:))

Что-то не увидел ни аргументов в защиту, не против.

Ладно, проехали. Я не утверждаю, что JavaScript — верх совершенства. Просто он значительно лучше, чем о нем принято думать. То, что C#/.NET/VS на порядок прогрессивнее я тоже спорить не буду.Тем не менее. В дизайне языка JavaScript виден «дизайн». Он наверное странноват и несовершенен, но он есть. В PHP его нет, есть просто нагромождение функциональности. Сравнивать же JavaScript и PHP я не собирался, это apples and oranges.

Да, похоже так и есть.Предлагаю не разводить флейм, а дружненько сходить вот по этому адресу: http://www.rsdn.ru/article/? 79...И почитать всем полезную статью на очень близкую тему, ну, а потом можно и впечатлениями поделиться. Хотя по поводу «лучше/хуже» для языка программирования я все-таки приведу очень хорошее высказывание, которое является эпиграфом к параграфу 4.1 «Выбор языка программирования» книги Стива Макконелла «Совершенный код»:

Избавляя разум от всей ненужной работы, хорошая нотация позволяет сосредоточится на более сложных проблемах и в конечном счете повышает интеллект человечества. До появления арабской нотации умножение было весьма сложным, а деление даже целых числе требовало усилий ведущих математиков. Возможно, ничто в современном мире не смогло бы удивить греческого математика сильнее, чем то, что большинство европейцев умеют делить крупные числа. Это показалось бы ему абсолютно невозможным... Легкость выполнения операций над десятичными дробями — почти сверхъестественный результат постепенного обнаружения отличной нотации... (Alfred North Whitehead)

Так что нет смысла доказывать того, что интерпретируемый скриптовый язык — верх совершенства, а все остальное — проблемы программиста. Не разумно это, господа программисты — прогресс не стоит на месте, и JavaScript в текущей реализации устарел — это есть свершившийся факт.:)

Ну все, началось...Предлагаю запретить постинг комментов в этот пост:)

  1. php — не набор хаков. это язык.2. js поддерживает наследование. можно этот список и продолжить...но статья, как минимум, некомпетентна.

Нуууу просто не могу удержаться: JS — плохой язык потому что: 1. ОН оооооооочень медленный, потому что он интерпретируемый, и с этим ничего не поделаешь отсюда простой вывод: на JS невозможно писать UI сложнее определенного предела (в который многие уже уперлись).2. Он не поддерживает OO. Отсюда простой вывод: на нем не возможно писать программ большого объема потому как они становятся неуправляемые.Сложите 1+2 и вы получите следующие: JS отлично справляется с тем для чего он был создан, но с требованиями сегодняшнего дня он справляется со скрипом или не справляется вовсе.

Поддержу мнение Макса об элегантности JavaScript.Не так давно решил написать что-то Ajax-овое — получил массу удовольствия от того, насколько можно элегантно и просто решать некоторые задачи. Сразу оговорюсь что использовал библиотеку Prototype, но от этого JavaScript не становится хуже:) Мнение о «php — набор хаков» — тоже готов отстаивать, хотя последний год только php меня и кормит.Может я тоже прагматик?:)

Странное сравнение JS и PHP, да и скрытое желание подыграть холиварс.

Скажу так — кричат, что JS плохой те, кто 1) не писал на нем что-то интересное (сам видел глаза ребят за соседними столами, когда что-то напишешь несложное на JS, но красиво работающее) 2) кто не знает его вообще и потому, следуя тому же mainstream, «за глаза» ругают.Не могу сказать, что знаю JS «от, а до я», но знаний пока хватает, благо всегда есть под рукой google и разум, которые позволяют решить большое кол-во проблем.Кстати, может кто не в курсе — под FireFox есть отличный отладчик этих самыж скриптов. Ну, а под Explorer — в MSVisualStudio тем более есть.И оба неплохо справляются с проблемой ALERT ():)

«Есть такое мнение, что полиморифзм, инкапсуляция и наследование это неразрывные понятия.» — к сожалению большинство с этим согласно, и рассматривают все через поддерживает/не поддерживает. Так сложилось. Но хуже то, что для многих ActionScript — это что-то мощное, а JavaScript это чтобы цвет DIVа поменять. Оказывается можно писать код под FLASH и DOM и ничего общего не видеть. Обидно то, что такой стиль разработки это почти mainstream. Только единицы пытаются понять как что-то работает глубже.

Соглашусь с тем, что «JS не полноценный OO язык программирования». JavaScript — просто «полноценный язык программирования». И с тем, что отсутствие «ОО» есть достаточная причина для его замены — не согласен абсолютно.В Cи/Haskell/Lua тоже нет ОО, ну и что? Если программист говорит, что язык без наследования для него не язык, то для меня это не программист.; -) Так как даже чтобы быть хорошим ОО-программистом необходимо знать другие языки/парадигмы программирования.

Есть такое мнение, что полиморифзм, инкапсуляция и наследование это неразрывные понятия. JavaScript простой, элегантный и очень мощный язык. К сожалению все воспринимают его как язык сценариев для web страниц. И даже в таком смысле используют как топор. Хотя модно посмотреть на cores разных AJAX frameworkов. Наверное JavaScript надо сравнивать по цонцепции со SmallTalkом.

Дык в КО как-раз говорили не столько о том что JS плохой язык, там как раз рассказывают о том почему ему нужна смена, так-как JS не полноценный OO язык программирования.

CVS вийшла не з SCCS, а з RCS, який був повним редизайном SCCS.

Саня: конечно я провокатор.; -) А насчет «набора хаков» — ничего личного, голые факты.; -) То же можно сказать и насчет, например, CVS — которая вышла родом из SCCS которая вышла из набора sh-скриптов.

PHP/WordPress я использую как раз потому, что прагматик.;) В значительной степени ради эксперимента я даже пишу проект база зарплат на PHP. И пришел выводу что пользоваться PHP/MySQL вполне можно — если осторожно, хотя я все же предпочитаю Python/PostgreSQL.А Солженицына, тьфу, JavaScript я все-таки использовал/использую и мнение свое составил.Другое дело — исторический багаж browser-related проблем. Ну так 90% уже можно выкинуть на свалку истории. А использование JavaScript браузером не ограничивается.

Провокатор ты, Макс:] Так и подмывает начать спорить про PHP...Да, меня тоже всегда удивляло, насколько JS грамотно придуман.

Ну что тут скажешь — религиозные войны абсолютно бессмыссленны, поскольку в них права каждая сторона.Вот тут сейчас придут товарищи, для которых «набор хаков под названием PHP» не совсем верное утверждение, и такое начнется:) Но я все же позволю обратить внимание на такой момент:

«Технические проблемы наверняка тоже есть, но я с ними не сталкивался так как, повторюсь, очень немного на нем программировал».

Не понятен смысл поста в защиту — поскольку получается из той же оперы «Я Солженицына не читал, но осуждаю»:) Собственно моя «пренебрежительность» проявляется в том, что я пропагандирую прагматичный подход, важным критерием которого является соотношение «время/деньги», так вот, у JavaScript это соотношение далеко не самое лучшее, и здесь «проблемных» программистов будет IMHO поболе, чем даже у PHP, но не только по их вине, сколько по той причине, что «в одном браузере эта фенечка не работает, в другом работает, но не так, а в третьем — это же самое можно сделать, но с помощью другой фенечки». Конечно, сам JavaScript как язык тут совсем не причем, но это в чем-то похоже и на коммунизм — «идейка-то хорошая, только реализация прихрамывает».:) Так что мой коммент можно тоже рассматривать в защиту JavaScript:) PS. Да, и еще, Max, в целях политкорректности, позволю себе еще одно замечание: вот если я, к примеру, говорю, что мне не нравится ни JavaScript, ни PHP, то мой блог крутится под ASP.NET, который мне нравится. А вот Вы говорите про «набор хаков», но все-же не пренебрегаете использовать пхпшный-WordPress. Это прям как «мыши плакали, кололись, но продолжали есть кактус»:))

Підписатись на коментарі