Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.03.2010, 10:06
Интересующийся
Отправить личное сообщение для Дубров Олег Посмотреть профиль Найти все сообщения от Дубров Олег
 
Регистрация: 17.03.2010
Сообщений: 12

Другой взгляд на javascript
Здравствуйте Илья!
Хочу поделиться с вами своим дерзким другим взглядом на javascript.
Долго выбирал на каком форуме написать, решил написать на форуме javascript.ru - он, на мой взгляд самый демократичный, а автор не предвзятый.

Меня зовут Олег, я занимаюсь интеграцией системных функций и javascript. Мы с вами виделись (я вас видел) на прошлогодней конференции PHPConf, и я смотрю сайт ваш стал заметно лучше с тех пор!

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

Допустим вы программист хорошо знающий javascript и хотите написать свой winamp? Я говорю - нет проблем.

Перечислим, какие мы можем видеть преимущества javascript, перед другими интерпретируемыми языками:
* javascript исполнится на любой windows платформе, не требуя дополнительной закрузки каких-либо компонентов.
* javascript активно развивается и программирование на javascript просто преобразилось благодаря библиотекам-помошникам, таким как jquery
* разработка пользовательского интерфейса на javascript в связке с HTML+CSS превращается в приятную детскую забаву. А ведь именно эта часть разработки зачастую отнимает большую часть времени "не веб-программиста".

Хотелось бы иметь обсуждения этой темы. Моя реализация идеи системного javascripta находится здесь - http://samosat.ru/muml/agentshell.exe.zip.
Я попытался сразу предложить писать на javascript программу-агент, живущую в трее. Но есть и опции по отключению этого режима. Не вижу смысла не ставить этот режим по-умолчанию. При запуске приложения можно выбрать демонстрацию возможностей.

Базовыми функциями я считаю возможность создавать дочерние окна, дополнять системное меню и меню ярлыка в трее, запись-чтение из файлов конфигурации (сейчас реализованно в виде ini-файлов). Создавать "специальные" окна - окна всплывающих сообщений (навеяно всплывающими окнами qip и mail.ru агент).

Интерпретатор всего этого вышел довольно легкий, около 150кб, что есть мелочь, но приятная

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

Спасибо за внимание, жду критики от вас

Последний раз редактировалось Дубров Олег, 24.03.2010 в 08:32.
Ответить с цитированием
  #2 (permalink)  
Старый 17.03.2010, 10:15
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Зачем ограничиваться Windows?
http://gluescript.sourceforge.net/ -- порт wxWidget на JavaScript
https://developer.mozilla.org/en/Get...with_XULRunner -- движок от Mozilla для создания кроссплатформенных приложений, на котором, в частности, написаны Firefox, Thunderbird, KomodoIDE.
Ответить с цитированием
  #3 (permalink)  
Старый 17.03.2010, 10:44
Интересующийся
Отправить личное сообщение для Дубров Олег Посмотреть профиль Найти все сообщения от Дубров Олег
 
Регистрация: 17.03.2010
Сообщений: 12

Да, тут вы правы, ограничиваться не стоит.
Я долго ходил вокруг XULRunner и облизывался - уж очень мне полюбился XUL. Именно мои эксперименты с ним меня сподвигли сделать то, что сделал.
В перспективе поддержка XUL. Но на данный момент ограничивает внушительный размер библиотеки.
В настоящее время довольно внункциональное приложение может занимать 500кб вместе(!) с интерпретатором. А в случае с xul-runnero-ом оно бы весило около 6 мб. Впрочем как и мозилла, и зендербёрд.

Ведутся работы по поиску решений для linux-подобных ОС
Ответить с цитированием
  #4 (permalink)  
Старый 17.03.2010, 10:54
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Дубров Олег
В настоящее время довольно внункциональное приложение может занимать 500кб вместе(!) с интерпретатором.
А функциональность интерпретатора?

Кстати, если в системе установлен Firefox 3, то xulrunner не нужен.
Ответить с цитированием
  #5 (permalink)  
Старый 17.03.2010, 10:59
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Дубров Олег
кроссдоменных запросах
Что такое кроссдоменный запрос в терминах локального приложения?

И интересней всё же исходники, а не exe'шник.
Ответить с цитированием
  #6 (permalink)  
Старый 17.03.2010, 11:07
Интересующийся
Отправить личное сообщение для Дубров Олег Посмотреть профиль Найти все сообщения от Дубров Олег
 
Регистрация: 17.03.2010
Сообщений: 12

Сообщение от Kolyaj Посмотреть сообщение
А функциональность интерпретатора?
Функциональность интерпретатора ограничивается функциональностью Internet Explorer-a, установленного в системе, т.к. используется ole-компонент от создателей windows.
И, также, набором системных функций самой связующей системы (через специальный JavaScript объект "exe"). Последний не велик, только самое необходимое - работа с фалами, окнами, треем, меню. Пока только то, что понадобилось.
В планах драг-энд-дроп.

Еще раз повторю, исполнением javascript и обработкой HTML+CSS занимается компонент IE - он установлен на большем числе компьютеров, именно поэтому был сделан выбор в его пользу.
Ответить с цитированием
  #7 (permalink)  
Старый 17.03.2010, 11:15
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

С интерпретатором IE замучаешься ошибки отлаживать.

Вот если бы движок Gecko, да JavaScript'овый какой-нибудь нормальный, вроде TraceMonkey или V8, да асинхронный ввод/вывод, цены бы не было
Ответить с цитированием
  #8 (permalink)  
Старый 17.03.2010, 11:53
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

А зачем этот exe-шник запрашивает исходящее соединение и пытается прослушивать порт?
Ответить с цитированием
  #9 (permalink)  
Старый 17.03.2010, 13:12
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Сообщение от Дубров Олег
исполнением javascript и обработкой HTML+CSS занимается компонент IE
Тогда чем все это разительно отличается от HTA?
Ответить с цитированием
  #10 (permalink)  
Старый 17.03.2010, 13:28
Интересующийся
Отправить личное сообщение для Дубров Олег Посмотреть профиль Найти все сообщения от Дубров Олег
 
Регистрация: 17.03.2010
Сообщений: 12

Да, я услышал, Вас, отвечу чуть позже.

Насколько мне известно, подобных реализаций существует несколько:

1. HTA и WSH — HTML Applications и Windows Script Host — это, вероятно, самые известные технологии. HTA фактически представляет собой HTML страницу с расширенными правами в системе — возможностью лазить в сеть, гадить в реестр, файловую систему и подключать к этим делам ActiveX. С использованием HTA сделаны многие компоненты самой Windows.
2. .NET Framework — этому вообще по барабану, на чем вы пишете, лишь бы итогом был MSIL. Возможно, JScript.NET вместе с Windows.Forms могут вызвать у кого-то ощущение родного виндового интерфейса. Лично меня они совсем не радуют — ни визуально, ни скоростью.
3. XULRunner — framework от Mozilla предлагает Gecko вместо IE, XpCOM вместо COM/ActiveX. Это всего за 20 мегабайт оверхеда.
4. wxJavascript — известная кросс-платформенная библиотека wxWidgets теперь и для JavaScript. Все это благодаря JS-движку SpiderMonkey от Mozilla и стараниям одного бельгийца. Кстати, этот же уважаемый — автор mod_js для Apache.
5. WindowSystemObject (WSO) — это универсальный программный комплекс для обеспечения доступа к оконной подсистеме Windows на базе архитектуры COM, для создания оконных интерфейсов в программах, написанных на сценарных (скриптовых) языках, а также в программах, написанных на других языках и в других системах программирования. С помощью WSO можно легко создавать оконные интерфейсы на JScript, VBScript, Perl, Python. Российский автор.

Источник: http://habrahabr.ru/blogs/javascript/52027/

Интересно было бы услышать реальных пользователей этих систем. Обсудить недостатки и достоинства. И, в последствии, выяснить, чем может быть действительно полезна 7-ая реализация.


По поводу порта - программа слушает порт, это используется внутренним компонентом для обработки данных, полученных через интернет или с локального диска. Это позволяет добавить в HTML специальные команды перепроцессора. Например
<#include http://yandex.ru#> - загрузит и включит страницу яндекса в вашу


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

В папке local находятся папки доменов. Какждое имя папки - это виртуальный домен.

допустим если вам нужно подключить файл
c:\program files\samosat\local\example.com\ooo.html
то он будет доступен по адресу http://example.com/ooo.html

Естественно, только для программы samosat будет работать такая подмена домена (но вы можете и в браузере прописать прокси-сервер localhost:1520, тогда и обычный баузере пойдет через обработчик samosat и в нем тоже будут работать команды перепроцессора)

При запуске приложения впервые, открывается "Галерея приложений". Это страничка расположенная на samosat.ru/muml/. На данный момент туда может добавить свое приложение любой желающий, пройдя предварительно регистрацию.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с javascript andruhin Общие вопросы Javascript 12 04.05.2012 09:05
Регулярка не должна воспринимать текст JavaScript в теге Script alexKniaz Общие вопросы Javascript 5 30.10.2009 20:59
JavaScript на Яндекс.Фотки - почему тормозит браузеры? ZavFirefox Javascript под браузер 23 27.09.2009 18:24
Программист на JavaScript (удалённо) Vadym Работа 1 28.01.2009 12:57
Нужен Старший разработчик JavaScript Yandex Работа 17 19.08.2008 15:43