Почему JavaScript, а не стандартная виртуальная машина браузера?

Исключение нулевого указателя генерируется, когда приложение пытается использовать null в случае, когда требуется объект. К ним относятся:

  1. Вызов метода экземпляра объекта null.
  2. Доступ или изменение поля объекта null.
  3. Принимая длину null, как если бы это был массив.
  4. Доступ или изменение слотов null, как если бы это был массив.
  5. Бросок null как будто это было значение Throwable.

Приложения должны бросать экземпляры этого класса, чтобы указать на другие незаконные использования объекта null.

Ссылка: http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html

165
задан 9 revs, 3 users 100% 9 June 2016 в 09:55
поделиться

14 ответов

Ну, да. Конечно, если бы у нас была машина времени, возвращаясь и удостоверяясь, что много функций Javascript было разработано, то по-другому было бы главное времяпрепровождение (что, и обеспечение людей, которые разработали механизм CSS IE, никогда не входил в IT). Но это не собирается происходить, и мы застреваем с ним теперь.

я подозреваю, вовремя, это станет "Машинным языком" для сети, с другой лучше разработанной компиляцией языков и API вниз к нему (и обслужит различные недостатки механизма исполнения).

я не думаю, однако, любой из этих "лучше разработанных языков" будет Java, Python или Ruby. JavaScript, несмотря на способность, которая будет использоваться в другом месте, язык сценариев веб-приложения. Учитывая, что вариант использования, мы можем добиться большего успеха, чем любой из тех языков.

28
ответ дан 2 revs, 2 users 89% 23 November 2019 в 21:10
поделиться

JavaScript является Вашим единственным собственным компонентом, стандартная доступная опция. Если Вы хотите много питания, захватываете jQuery, но если необходимо сделать набор больше, рассмотрите запись дополнения для Firefox? или подобный для IE и т.д.

-2
ответ дан scunliffe 23 November 2019 в 21:10
поделиться

IMO, JavaScript, язык, не является проблемой. JavaScript является на самом деле вполне выразительным и мощным языком. Я думаю, что это получает плохого представителя, потому что это не получило классические функции OO, но для меня, чем больше я иду с канавкой prototypal, тем больше мне нравится он.

проблемой, поскольку я вижу его, являются облупленные и непоследовательные реализации через многие браузеры, которые мы вынуждены поддерживать в сети. Библиотеки JavaScript как jQuery имеют большое значение для смягчения что грязное чувство.

-1
ответ дан Andrew Hedges 23 November 2019 в 21:10
поделиться

Я не думаю, что Вы "понимаете прагматическую проблему, что JavaScript просто, с чем мы должны работать теперь". На самом деле это - очень мощный язык. У Вас был свой апплет Java в браузере в течение многих лет, и где это теперь?

Во всяком случае, Вы не должны "пачкаться" для работы над клиентом. Например, попробуйте GWT.

0
ответ дан Marko Dumic 23 November 2019 в 21:10
поделиться

Я думаю, что это не так легко проблема. Мы можем сказать, что застреваем с JS, но он действительно настолько плохо с jQuery, Прототипом, scriptaculous, MooTools и всеми фантастическими библиотеками?

Помнят, JS легкий вес , еще больше с V8, TraceMonkey, SquirrelFish - новые механизмы JavaScript, используемые в современных браузерах.

Это также , доказал - да, мы знаем, что это имеет проблемы, но у нас есть многие из них, в которых разбираются, как ранние проблемы безопасности. Обработка изображений разрешения браузера выполнить код Ruby или что-либо еще. Тестовая среда безопасности должна была бы быть сделана для царапины. И Вы знаете что? Люди Python уже перестали работать два раза в нем.

я думаю, что JavaScript будет пересмотренным и улучшался со временем, точно так же, как HTML и CSS. Процесс может быть долгим, но не все возможно в этом мире.

0
ответ дан Paweł Hajdan 23 November 2019 в 21:10
поделиться

Реалистично, JavaScript является единственным языком, который любые браузеры будут использовать в течение долгого времени, поэтому в то время как было бы очень хорошо использовать другие языки, я не вижу, что он происходит.

Это "стандартизировало VM", Вы говорите, было бы очень большим и должен будет быть принят всеми главными браузерами, и большинство сайтов только продолжило бы использовать JavaScript так или иначе, так как это больше подходит для веб-сайтов, чем много других браузеров.

необходимо было бы поиграть в песочнице каждый язык программирования в этом VM и уменьшить сумму доступа, который каждый язык имеет к системе, требуя большого количества изменений на языках и удалении или переопределении многих функций. Принимая во внимание, что JavaScript уже имеет это в виду и делал в течение долгого времени.

1
ответ дан HappySmileMan 23 November 2019 в 21:10
поделиться

Ну, у нас уже есть VBScript, не так ли? Ожидайте, только IE поддерживает его!
То же для Вашей хорошей идеи VM. Что, если я пишу сценарий своего использования страницы, Lua и Ваш браузер не имеют синтаксическим анализатором для преобразования его в байт-код? Конечно, мы могли вообразить тег script, принимающий файл байт-кода, который даже будет довольно эффективен.
, Но опыт показывает, что трудно принести что-то новое для сети: потребовались бы годы для принятия радикального нового изменения как это. Сколько браузеров поддерживает SVG или CSS3?

Около, я не вижу то, что Вы находите "грязными" в JS. Это может быть ужасно, если кодировано любителями, распространив плохую практику, скопированную в другом месте, но ведущие устройства, показанные его, могут быть изящным языком также. Немного как Perl: часто похож на запутываемый язык, но может быть сделан совершенно читаемым.

2
ответ дан PhiLho 23 November 2019 в 21:10
поделиться

Подавляющее большинство devs я говорил приблизительно с ECMAScript и. al. заканчивают тем, что признали, что проблемой не является язык сценариев, это - смешной HTML DOM, который это представляет. Соединение DOM и языка сценариев является общим источником боли и разочарования относительно ECMAScript. Кроме того, не забывайте, IIS может использовать JScript для сценариев серверной стороны, и вещи как Носорог позволяют Вам создавать автономные приложения в ECMAScript. Попытайтесь работать в одной из этих сред с ECMAScript некоторое время и посмотрите, изменяется ли Ваше мнение.

Этот вид отчаяния распространялся вокруг в течение некоторого времени. Я предложил бы, чтобы Вы отредактировали это, чтобы включать, или повторно отправить с, конкретные вопросы. Вы можете быть приятно удивлены частью облегчения, которое Вы получаете.

А старый сайт, но все еще великолепное место для запуска: сайт Douglas Crockford .

2
ответ дан Dustman 23 November 2019 в 21:10
поделиться

Вероятно, но сделать так мы должны были бы заставить главные браузеры поддерживать их. Поддержку IE было бы самым трудным получить. JavaScript используется, потому что это - единственная вещь, можно рассчитывать на то, чтобы быть доступным.

2
ответ дан Jeff Olhoeft 23 November 2019 в 21:10
поделиться

Как Вы определяете лучше всего? Лучше всего для браузера, или лучше всего для разработчика? (Плюс ECMAScript отличается, чем JavaScript, но это - техническая особенность.)

я нахожу, что JavaScript может быть мощным и изящным одновременно. К сожалению, большинство разработчиков, которых я встретил, рассматривает его как необходимое зло вместо реального языка программирования.

Некоторые функции, которыми я пользуюсь:

  • обработка функционирует как граждан первого класса
  • способность добавить и удалить функции к любому объекту в любое время (не полезный очень, но сногсшибательный, когда это)
  • , это - динамический язык.

Интересно иметь дело с, и это устанавливается. Наслаждайтесь им, в то время как это вокруг, потому что, в то время как это не может быть "лучшим" для клиента, пишущего сценарий его, конечно, приятно.

я действительно соглашаюсь, что это печально при создании динамических страниц из-за несовместимостей браузера, но это может быть смягчено библиотеками UI. Это не должно быть сохранено против самого JavaScript больше, чем Swing должен быть сохранен против Java.

3
ответ дан Rontologist 23 November 2019 в 21:10
поделиться

Если Вы чувствуете, что пачкаете руки, то Вам или промыли мозги или все еще чувствуете после влияния "лет DHTML". JavaScript очень мощен, и подходит хорошо для его цели, которая должна написать сценарий стороны клиента интерактивности. Поэтому JavaScript 2.0 получил такой плохой рэп. Я имею в виду, почему пакеты, интерфейсы, классы, и т.п., когда те - ясно аспекты языков серверной стороны. JavaScript очень хорошо как основанный на прототипе язык, не будучи полноценным объектно-ориентированный.

, Если существует отсутствие прозрачности к Вашим приложениям, потому что серверная сторона и клиентский не связывается хорошо, тогда Вы могли бы хотеть пересмотреть, как Вы проектируете свои приложения. Я работал с чрезвычайно устойчивыми веб-сайтами и веб-приложениями, и я никогда не говорил, "Хм, мне действительно жаль, что JavaScript не мог сделать (xyz)". Если бы это могло бы сделать это, то это не был бы JavaScript - это будет ActionScript или AIR или Silverlight. Мне не нужно это, и ни один не делает большинство разработчиков. Те - хорошие технологии, но они пытаются решить проблему с технологией, не... хорошо, решение.

10
ответ дан 2 revsuser4903 23 November 2019 в 21:10
поделиться

В то время как JavaScript является единственным хорошо поддерживаемым языком сценариев, можно управлять страницей непосредственно от, Flash имеет некоторые очень хорошие функции больших программ. В последнее время это имеет JIT и может также генерировать байт-код на лету (выезд вычисление выражения во время выполнения для примера, где они используют флэш-память для компиляции математических выражений ввода данных пользователем полностью в собственный двоичный файл). Язык Haxe дает Вам статический контроль типов с выводом и со способностями к поколению байт-кода, Вы могли реализовать почти любую систему во время выполнения по Вашему выбору.

6
ответ дан jjrv 23 November 2019 в 21:10
поделиться

В Windows можно зарегистрировать другие языки в Хосте Сценариев и иметь их в наличии для IE. Например, VBScript поддерживается из поля (хотя это никогда не получало много популярности, как это в большинстве целей, еще хуже, чем JavaScript).

расширения Python win32 позволили добавлять Python к IE как это довольно легко, но это не была действительно хорошая идея, поскольку Python довольно трудно поиграть в песочнице: много функций языка представляют достаточно рычагов реализации, чтобы позволить предположительно-ограниченному-приложению вспыхивать.

Это - проблема в целом это, чем больше сложности Вы добавляете к стоящему с сетью приложению как браузер, тем большая вероятность проблем безопасности. Набор новых языков, конечно, соответствовал бы тому описанию, и это новые языки, которые также все еще разрабатывают быстро.

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

14
ответ дан bobince 23 November 2019 в 21:10
поделиться

Таким образом, что Вы сделали бы со всеми теми Pythons и Rubys в браузере?!

1). Все еще запись написала сценарий клиентских приложений? Ну, это приятно сделано с JavaScript.

2). Запись приложений клиент-сервер с помощью сокетов? Почему не пишут им только без браузера?

3). Запись автономных приложений? Просто сделайте это, как Вы делаете теперь.

-3
ответ дан Thevs 23 November 2019 в 21:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: