Можно ли использовать JavaScript в качестве основного языка сценариев?


18

Я использовал JavaScript и некоторые фреймворки (jQuery, Prototype, некоторые node.js) для веб-программирования на стороне клиента, но никогда не на рабочем столе, где я выполняю большую часть своих скриптовых работ на Python или Bash.

Но ИМХО, JavaScript мог бы стать отличным скриптовым языком, если бы он использовался вне браузера. Кто-нибудь пробовал это? Может ли JavaScript быть адекватной заменой Python / Perl / Bash для быстрых и грязных сценариев?


7
В статье Википедии по Javascript есть раздел под названием « Использование внешних веб-страниц », в котором описывается довольно много случаев использования Javascript в точности так, как вы описываете. Пожалуйста, сделайте некоторое исследование, прежде чем спрашивать.
Яннис

7
Яннис, есть ли такое правило на сайтах SE? Я думаю, что SE также стремится быть одной частью вики, то есть, должны быть закрыты только болтливые, не относящиеся к теме, не отвечающие на вопросы или вопросы с очень низким качеством.
Тамас Селеи

3
@ TamásSzelei На самом деле есть правило , которое вкратце называется «Сделай свою домашнюю работу». И SE является частью вики, но в том смысле, что каждый пост доступен для редактирования всем, а не в смысле построения общей ссылки. Джефф Этвуд суммирует «официальную» политику в этом мета-ответе .
Яннис

3
@Yannis: Я сам изучил эту тему, и ресурсы в Интернете, относящиеся к этой теме, сильно отсутствуют. Кроме того, я ценю, что этот вопрос был задан на форуме, где умные, знающие члены компьютерного сообщества могут поделиться своим опытом, мнениями и предложениями. Что касается тем, которые в значительной степени зависят от субъективного мнения, я бы доверял словам члена stackexchange с 20 тысячами повторений в статье в Википедии ЛЮБОЙ ДЕНЬ.
Мистер JavaScript

3
@ ajax81 Если бы в этом вопросе были доказательства предыдущих исследований, это был бы очень хороший вопрос. Если вы действительно цените сообщество столько, сколько говорите, я уверен, что вы не хотите тратить чье-то время, и вы были бы любезны поделиться своими исследованиями с нами и спросить только о том, что недостаточно ответили в различных общие справочные сайты. Я не предлагаю Википедию в качестве альтернативы улей SE, я говорю прямо противоположное, мы не альтернатива, спрашивайте, когда Википедии недостаточно (но, пожалуйста, расскажите нам, как и почему этого недостаточно) ,
Яннис

Ответы:


22

Да! Вы определенно можете сделать это с Node.js или Rhino. Например, компилятор coffeescript - это не что иное, как скрипт node.js.

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


11

В Windows есть компонент Windows Scripting Host, который позволяет автоматизировать администрирование и даже до некоторой степени имитировать активность пользователя с помощью JScript.

Обновление в 2017 году: OSX теперь позволяет автоматизировать задачи рабочего стола с помощью Javascript. То, что раньше было возможно через AppleScript, теперь возможно через Javascript.


5

Я использую javascript в основном для всего, потому что мне это нравится, и это сильно влияет на мою повседневную работу. Теперь, что я имею в виду, говоря все:

  1. Пользовательские инструменты (с помощью node-webkit вы можете создавать настольные приложения)

  2. Пользовательские сценарии для запуска на моей машине через node.js

  3. Мобильные приложения. Мне даже не нужен PhoneGap, так как я довольно удобен при посещении URL.

  4. Бэкенд для моих веб-приложений с помощью node.js. Я могу получить доступ к файловой системе и базам данных, чего мне не хватает? Хорошо .. Достаточно зрелая структура, и я надеюсь, что это будет исправлено в функции.

  5. Ну, конечно, модные вещи jQuery для веб-сайтов.

Разное:

  1. Я решаю все кодирования катов с помощью JavaScript (Project Euler, CodeWars)

  2. Я реализую алгоритмы, которые меня интересуют в Javascript

  3. 3D эксперименты с three.js и webgl.

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

А что касается рабочего стола, для меня работа с HTML и CSS для пользовательского интерфейса является наиболее приятным способом.


4

Qt предлагает QtScript. Википедия сказала:

QtScript - это механизм сценариев, который является частью кроссплатформенной среды приложений Qt с версии 4.3.0.

Язык сценариев основан на стандарте ECMAScript с несколькими расширениями, такими как сигнальные соединения типа QObject и соединения слотов. [1] Библиотека содержит механизм и API C ++ для оценки кода QtScript и предоставления QtScript пользовательских классов C ++, полученных из QObject.

Если вы не знаете, что такое Qt: это кроссплатформенная прикладная среда на C ++. Он полезен для извлечения сложности из фронт-энда разработки на C ++, а также поддерживается в мобильных системах. Это было давно с тех пор, как я в последний раз разрабатывал с Qt, но мне понравилось.

С QtScript я мог представить, что каждый пишет минимальный графический интерфейс и выполняет логику приложения на JavaScript.


1
С Qt5 javascript get играет еще большую роль с новой структурой QML / QtQuick GUI (использует встроенный javascript для управления пользовательским интерфейсом).
Маке

0

Если вы говорите «просто вне браузера», посмотрите на такие инструменты, как Appcelerator и Servoy, которые используют Javascript для кодирования, которое в конечном итоге превращается в Java.


-1

Я использую JScript.net прямо сейчас, чтобы создать интеллектуальный интерфейс командной строки. Это хорошо работает для этого проекта, потому что eval () пригодится, но не все работает так, как вы ожидаете (это не чистый js). Но он предлагает немного RAD. Я думаю, что это сделало бы хорошую платформу для прототипирования. Это своего рода странное нахождение в ничейной стране между js и .net. (Он тоже устарел, поэтому трудно найти на нем хорошие ресурсы)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.