Будет ли работать JavaScript на стороне сервера? Какая реализация наиболее стабильна? [закрыто]

== проверяет ссылки на объекты, .equals() проверяет строковые значения.

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

Для Например:

String fooString1 = new String("foo");
String fooString2 = new String("foo");

// Evaluates to false
fooString1 == fooString2;

// Evaluates to true
fooString1.equals(fooString2);

// Evaluates to true, because Java uses the same object
"bar" == "bar";

Но будьте осторожны с нулями!

== обрабатывает строки null в порядке, но вызов .equals() из пустой строки приведет к исключению:

String nullString1 = null;
String nullString2 = null;

// Evaluates to true
System.out.print(nullString1 == nullString2);

// Throws a NullPointerException
System.out.print(nullString1.equals(nullString2));

Итак, если вы знаете, что fooString1 может но не менее очевидно, что он проверяет значение null (из Java 7):

System.out.print(Objects.equals(fooString1, "bar"));
13
задан Jim Puls 24 July 2009 в 03:02
поделиться

16 ответов

Мне нравится читать блог Сотрудника Google Steve Yegge, и недавно я столкнулся эта статья его , где он утверждает, что Mozilla Rhino является хорошим решением для серверной стороны JS. Это - несколько неаккуратная расшифровка стенограммы, Вы могли бы предпочесть смотреть видео разговора . Это также предлагает определенное понимание на том, почему он думает серверная сторона, JS является хорошей идеей во-первых (или скорее почему он думает, что это - хорошая идея использовать динамический язык для сценариев Java). Я думал точки, которые он делает, были убедительны, таким образом, Вы могли бы хотеть проверить его.

Некоторое время ранее, он также отправил что-то о динамических языках в общем (он - большой поклонник их), на всякий случай Вы задавались вопросом, почему использовать JS вообще.

12
ответ дан Hanno Fietz 24 July 2009 в 03:02
поделиться
  • 1
    или используйте хороший синтаксис хеша AR, например, where(quantity: 0) – sevenseacat 21 October 2013 в 14:42

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

JavaScript выжил и стал популярным просто, потому что у разработчиков есть очень мало выбора в вопросе - это - единственный язык, который может взаимодействовать с DOM. Его единственная конкуренция на стороне клиента от вещей как Flash и Silverlight, которые имеют совсем другую модель.

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

Для маленьких сценариев это прекрасно, но это - ужасный язык для записи больших сложных систем. То, что вещи как Firefox и Gmail (частично) записаны в нем, является героическим выполнением с их стороны, не знаком, что язык готов к реальной разработке приложений.

0
ответ дан Adam Bellaire 24 July 2009 в 03:02
поделиться

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

-1
ответ дан Cristian 24 July 2009 в 03:02
поделиться
  • 1
    Это было им. Это было феноменальной точкой Спасибо!! I' ll отмечают его корректный после двух минут. Спасибо!!!! – Alain Goldman 21 October 2013 в 14:43

, Почему Вы хотели бы обработать что-то в JavaScript, когда можно обработать его в PHP или ASP.NET, который специально разработан для этой задачи?

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

Steve Yegge занес в блог о портировании Ruby on Rails к серверной стороне JavaScript как внутренний проект в Google ("Носорог на направляющих"). Он сделал это, потому что ему нравятся направляющие, но использование Ruby не позволяется в Google.

5
ответ дан John Topley 24 July 2009 в 03:02
поделиться
  • 1
    но в случае paintComponent мы получаем копию Графики не Graphics2D. Как мы можем подтвердить, что данный параметр на самом деле имеет тот метод? – Mathew Kurian 21 October 2013 в 13:31

Ну, простой ASP поддерживал серверную сторону JavaScript несколько лет назад и всех onad, их собака использовала VBShiate вместо этого. Но я должен согласиться с другими: JS, кажется, не правильный инструмент здесь - и я люблю делать клиентский JS:)

1
ответ дан Björn 24 July 2009 в 03:02
поделиться
  • 1
    @mk2 В том сценарии g, вероятно, объявляется с супер типом этим doesn' t имеют drawLine() метод. – Sotirios Delimanolis 21 October 2013 в 13:26

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

, Почему Вы хотели бы обработать что-то в JavaScript, когда можно обработать его в PHP или ASP.NET, который специально разработан для этой задачи?

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

Так не, я не вижу, что он взлетает.

1
ответ дан Adam 24 July 2009 в 03:02
поделиться
  • 1
    @mk1, Таким образом, у нас может быть доступ к методам, которые не определяются в суперклассе. – arshajii 21 October 2013 в 13:27

Кажется, что большинство из Вас пугается этой идеи из-за того, насколько неприятный различные клиентские реализации JavaScript были. Я проверил бы существующие решения перед передающим суждением, тем не менее, потому что помнят, что никакое конкретное решение SS/JS, в настоящее время не связывается с реализациями JS используясь в браузерах. JavaScript основан на ECMAScript, помните, спецификация, которая в настоящее время находится в довольно зрелом состоянии. Я подозреваю, что решение SS/JS, которое поддерживает более свежие спецификации ECMA, не было бы более громоздким, чем использование других языков сценариев для задачи. Помните, Ruby не был записан, чтобы быть "веб-языком" первоначально, также.

1
ответ дан Brian Warshaw 24 July 2009 в 03:02
поделиться

Прежде чем это было получено Google, , JotSpot использовал серверную сторону JavaScript, чтобы позволить Вам запросить их базу данных и отобразить Ваши страницы. Они использовали Носорог , чтобы сделать это. CouchDB использует серверную сторону JavaScript для создания представления из их базы данных.

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

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

3
ответ дан pottedmeat 24 July 2009 в 03:02
поделиться
  • 1
    Тип, к которому Вы бросаете объект, только используется компилятором при определении, можно ли назвать тот метод (и если бросок законен). Это означает бросать String к Object, удаляет способность звонить String функции на переменной (потому что компилятор видит Object). Это похоже на компилятор с помощью Object как интерфейс для определения то, что может быть сделано к ячейке памяти, не, что находится в том месте. Работы Upcasting с той же логикой пока бросок законны. – Brandon Buck 21 October 2013 в 13:44

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

  • проверка параметров
  • объектное моделирование
  • объектный транспорт

Вместе с высокоуровневым инструментом моделирования и генералом кода, я весело провел время с тем проектом.

у меня нет чисел на перфекте, к сожалению, так как он используется только на интранет. Однако я должен предположить, что производительность на одном уровне с поддержанными сайтами ASP VBScript.

1
ответ дан Frank Krueger 24 July 2009 в 03:02
поделиться
  • 1
    В этом случае, почему мы можем сделать вещи как ((Graphics2D) g).drawLine(...)... для использования обновленных методов в Graphics2D. Upcasting. – Mathew Kurian 21 October 2013 в 13:25

кто-либо провожает Серверную сторону взятие JavaScript?

Попытка, смотрящая http://www.appjet.com , запуск, делающий, разместил приложения JavaScript для получения ощущения того, что можно сделать. Мне особенно нравится процесс обучения, который мягко пошагово перемещает пользователя для создания вещей с минимальными издержками ~ http://appjet.com/learn-to-program/lessons/intro

Теперь, это могло бы казаться странной идеей в данный момент, чтобы использовать JavaScript, но вспомнить когда запущенный выход ПК. Каждый компьютерный фанат, о котором я знал, вводил далеко в их новом Мусор 80 , Commodore64, Apple] [ ввод в играх или простые приложения в ОСНОВНОМ.

, Где сегодняшний основной для младшего хакера?

просто возможно, что JavaScript мог сделать для Веб-серверных приложений, как ОСНОВНОЙ сделал для ПК.

1
ответ дан bootload 24 July 2009 в 03:02
поделиться
  • 1
    @mk1 Перед кастингом, необходимо проверить, ли аргумент instanceof Graphics2D. – Sotirios Delimanolis 21 October 2013 в 13:32

Медиасервер Flash задан сценарием при помощи Серверного Сценария Действия, который является действительно просто JavaScript (ECMAScript). Так, я делаю это много. На самом деле большая часть моего дня имела дело с SSAS.

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

0
ответ дан 1 December 2019 в 20:58
поделиться

Поддержка JS на сервере становилась более сильной, и количество платформ становится больше еще быстрее.

Просто недавно serversideJS группа была основана. У них есть много умных людей, которые работали над серверной стороной JS в течение многих лет (некоторые из них более затем 10).

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


людям, которые говорят, "почему Вы предпочли бы JS Java или какому-либо другому языку?" - необходимо считать эту Реинтродукцию Crockford и забыть о DOM - DOM суперужасен, но это не отказ JS, и JS не является DOM.

3
ответ дан 1 December 2019 в 20:58
поделиться

Я думаю, что серверный Javascript гарантированно заработает. Это только вопрос времени.

Mozilla, Google и Adobe настолько заинтересованы в Javascript, что потребуется чудо, чтобы вытеснить его из мира браузеров. Следующим логическим шагом будет перенос этого на серверную сторону.

Это шаг к отходу от мешанины Интернет-технологий, которая обычно включает все эти

  • HTML
  • CSS
  • Javascript
  • Серверный язык J2EE / ASP / Ruby / Python / PHP
  • SQL

Я мало что слышал о текущем состоянии фреймворков сервера Javascript, за исключением того, что они в основном неполные.

0
ответ дан 1 December 2019 в 20:58
поделиться
  • XChat может запускать плагины Javascript.
  • У меня есть программное обеспечение для бухгалтерского учета, полностью написанное на Javascript.
  • Есть интересная библиотека ввода-вывода для V8: http: // tinyclouds. org / node /
  • CouchDB - это база данных документов с «запросами», написанными на Javascript (TraceMonkey).

Учитывая это, я полагаю, серверный Javascript сделал популярным.

1
ответ дан 1 December 2019 в 20:58
поделиться

Я вижу, что серверные js-файлы будут предлагать значительные преимущества в будущих приложениях. Почему? Веб-приложения, которые могут отключаться, клиентские хранилища баз данных, механизмы Google и т. Д.

Следуя этой тенденции, все больше и больше логики перемещаются на клиентскую сторону. Используйте ORM, который работает на стороне клиента, и другой на стороне сервера (будь то PHP / Ruby / что-то еще), напишите логику синхронизации дважды на двух разных языках, напишите свою бизнес-логику дважды на двух разных языках?

Как насчет использования js на стороне клиента И на стороне сервера и написать код один раз?

Убедительно?

0
ответ дан 1 December 2019 в 20:58
поделиться

Лично я разрабатываю и использую собственный JavaScript-фреймворк около 4 лет .

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

Не только для проверки данных, но также, скажем, динамические конструкции HTML или CSS могут выполняться на стороне клиента или сервера, по крайней мере, с моей структурой.

Пока он работает быстро, мне не о чем жаловаться или сожалеть, кроме его отличного удобства использования и масштабируемости, которыми я наслаждался последние 4 года, до того момента, когда я изменение моего кода ASP Classic на код javascript.

Вы можете увидеть это на практике по адресу http://www.laferia.com.do

0
ответ дан 1 December 2019 в 20:58
поделиться
Другие вопросы по тегам:

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