Разработан ли Javascript за пределами того, для чего он изначально предназначен?

10

Я разговаривал с другом о цели Javascript, когда и как его следует использовать и т. Д. Он процитировал это:

JavaScript был разработан для добавления интерактивности на HTML-страницы

[...]

JavaScript предоставляет HTML-дизайнерам инструмент программирования

  • Авторы HTML обычно не программисты, но JavaScript - это язык сценариев с очень простым синтаксисом! Почти каждый может поместить небольшие фрагменты кода в свои HTML-страницы, JavaScript может реагировать на события
  • JavaScript может быть настроен на выполнение, когда что-то происходит, например, когда страница закончила загрузку или когда пользователь нажимает на элемент HTML, JavaScript может читать и писать элементы HTML.
  • JavaScript может читать и изменять содержимое элемента HTML. JavaScript может использоваться для проверки данных.
  • JavaScript можно использовать для проверки данных формы перед ее отправкой на сервер. Это спасает сервер от дополнительной обработки
  • JavaScript может использоваться для обнаружения браузера посетителя - JavaScript может использоваться для обнаружения браузера посетителя и - в зависимости от браузера - загрузить другую страницу, специально предназначенную для этого браузера.
  • JavaScript можно использовать для создания файлов cookie. JavaScript можно использовать для хранения и получения информации на компьютере посетителя.

Тем не менее, похоже, что Javascript привык делать намного больше, чем в наши дни. Мой друг также выступает против использования функциональности ООП Javascript, утверждая, что «вы не должны обрабатывать данные, а просто проверять». Действительно ли Javascript ограничен проверкой данных и созданием яркой графики на веб-странице?

Он продолжает утверждать, что «вы не должны пытаться получить доступ к базам данных через javascript», а также говорит «в общем, вы не хотите выполнять свою тяжелую работу в javascript». Не могу сказать, что согласен с его мнением, но я хотел бы получить дополнительную информацию по этому вопросу.

Итак, мой вопрос: развился ли Javascript из приведенного выше определения к чему-то более мощному, изменилось ли то, как мы его используем, или я просто ошибаюсь? Хотя я понимаю, что это субъективный вопрос, я не могу найти больше информации по нему, поэтому было бы неплохо несколько ссылок, если ничего больше. Я не ищу дебаты, просто ответ.

Эллиот Бонневиль
источник
Мне также было интересно, «кто» заставляет это делать и почему?
NoChance
1
Я хотел бы разместить исходный материал для того, что ваш друг понял в JavaScript примерно в 1998 году.
Эрик Реппен

Ответы:

21

Люди, которые думают, что JavaScript не является языком программирования, - это люди, которые не должны уважать мнение о JavaScript.

JavaScript - это язык, который органически вдохновлен семантикой Scheme и синтаксисом Java. Его первоначальная цель не была общей, но теперь она стала таковой.

JavaScript как язык подходит для решения практически любых задач, если он подходит для него. Посмотрите на примеры, такие как node.js, где JavaScript имеет доступ к хост-среде, состоящей из функций ввода-вывода, которые позволяют использовать его для общего программирования на стороне сервера.

Мой друг также выступает против использования функциональности ООП Javascript, утверждая, что «вы не должны обрабатывать данные, а просто проверять». Действительно ли Javascript ограничен проверкой данных и созданием яркой графики на веб-странице?

Нет, JavaScript - это язык программирования, если вы хотите представить структуры данных, алгоритмы и логику, используйте инструменты, предлагаемые языком. В частности, функции и прототипы первого класса являются мощными инструментами.

Он продолжает утверждать, что «вы не должны пытаться получить доступ к базам данных через javascript», а также говорит «в общем, вы не хотите выполнять свою тяжелую работу в javascript». Не могу сказать, что согласен с его мнением, но я хотел бы получить дополнительную информацию по этому вопросу.

Неправильно, в браузере у нас есть база данных с именем indexedDB, к которой мы получаем доступ с помощью JavaScript. Это база данных, встроенная прямо в браузер, и если вы хотите использовать ее (и вам следует), то вы используете JavaScript.

Также обратите внимание, что и mongodb, и couchdb позволяют вам использовать javascript для непосредственного запуска запросов adhoc к базе данных.

Что касается поднятия тяжестей, он отчасти прав. Если вы делаете тяжелую атлетику, вы должны делать это на C или Erlang. Хотя обратите внимание, что термин «тяжелая работа» является расплывчатым, например, я не буду кодировать или декодировать видео в JavaScript, я не буду выполнять обработку изображений в JavaScript (используйте C). Я бы не стал ничего ломать в JavaScript (используйте фортран).

Изменилось ли Javascript из приведенного выше определения к чему-то более мощному, изменилось ли то, как мы его используем, или я просто ошибаюсь?

JavaScript был написан в течение 2 недель только для того, чтобы добавить незначительную функциональность сценариев в HTML. С тех пор он сильно вырос. Начиная с ES3 (1999) это был мощный язык программирования общего назначения.

Raynos
источник
Я тоже так думал. Теперь мне просто нужно выяснить, как передать это моему другу.
Эллиот Бонневиль
@ElliotBonneville Могу ли я предложить большой пенный cluebat ?
Хахаха, да, вы можете. :) Это весело.
Эллиот Бонневиль
"мощный язык программирования общего назначения", который полон ошибок, которые останутся там навсегда из-за обратной совместимости: codeproject.com/Articles/182416/…
Ден
@ Да, у него есть кое-что, но также и C, C ++, PHP и Java.
Raynos
9

Видение вашего друга, по сути, очень устарело и упускает все, что произошло с тех пор, как Google выпустил GMail.

Теперь, означает ли это, что Javascript развивался сверх того, для чего он изначально был предназначен? Вроде. Но не забывайте, что дизайн тем временем изменился и будет меняться в будущем в соответствии с новыми потребностями разработчиков. Это также действительно для других популярных языков. Например, когда была выпущена первая версия C #, никто не ожидал разрешить динамический код в дизайне. Теперь DLR доступен на несколько лет.

Арсений Мурзенко
источник
2

Язык всегда идет вразрез с тем, что мы думали с самого начала. Поговорите с кем-нибудь в начале C (или C ++), кто-то думал, что язык теперь можно найти почти везде. Я так не думаю.

Каждый язык побеждает, чтобы учиться больше / продвигаться дальше.

Я согласен, что Javascript был / все еще недооцененным языком, ваш друг не единственный. Проблема не в том, что язык X или Y плохой / бесполезный, проблема в том, чтобы сохранить эту идею навсегда. В области компьютерных наук и информационных технологий все быстро меняется, и в будущем все еще многое изменится.

Вот почему важно продолжать учиться / мыслить нестандартно ...

Nettogrof
источник
Я не думаю, что многие могли бы разумно сказать, что JavaScript все еще недооценивается. На самом деле, я думаю, что это самый популярный язык в мире.
Джим Г.