20
May
misc. |
Раз уж руки дошли дописАть эту заметку, грех этого не сделать
Впервые услышал об этой штуке на презентации Windows Live 2008. Итак, что такое Script Sharp. S# интерпретирует C#-код в JavaScript (вместо MSIL). В результате получаем все преимущества работы с инструментарием Visual Studio при разработке, скажем, Ajax-приложений:
- Intellisense

- Поддержка MSBuild

- Обработка ошибок во время компиляции (не во время работы, как, скажем, с firebug’ом)

- Поддержка рефакторинга

- Интуитивно-понятный ООП-синтаксис (чем JavaScript похвастаться не может)

- Визуализация кода

- Достойный просмотр и поиск по коду

- xml-документированный код

- [скоро] Возможности для юнит-тестирования

S# бесплатен. Придумал его сторонний разработчик. Несмотря на это, им усиленно пользуются в Майкрософт.
Если Вы разрабатываете Ajax или RIA-приложения, попробуйте Script#, не пожалеете
Более подробно можно узнать со странички проекта и из блога разработчика.





Интересная штука. А на сколько читабельный JS код получается после этого? А поддается ли отладке именно сгенерированный JS? Насколько мне известно (с собственного опыта) Windows Live довольно громоздкий и тормозной, не есть ли это последствием? Собственно какова производительность такого решения в сравнении с самописным аналогичным JSом?
Ну блин. есть ведь код по-человечески-ООПшный, который до генерации жабаскрипта. Его, собсна, и будем сопровождать и отлаживать. Ибо, зачем же нам лезть в дебри generated-сорцов? А вот Win Live, насколько мне известно, гораздо старше S#’а, тут дело, видимо, не в том
А производительность, имхо, будет достаточно велика: при отладке во время компиляции, при средствах визуализации кода и рефакторинге, усилий разработчиков будет затрачено в разы меньше, нежели при написАнии продукта “вслепую”.
И вообще. Можно бесконечно долго обижать мелкомягких, но факт налицо: Студия - лучшая ИДЕ на сегодняшний день. Даже NetBeans (рядом с которым тот же Eclipse смотрится как ноутпад) очень серьёзно недотягивает до него.
Может быть это просто мне кажется, что код, сгенеренный из другого кода - немного ивращение. При том, что JavaScript вполне себе самостоятельный и самодостаточный язык. Плюс, где гарантия, что сгенеренный код будет хорошо работать на всех браузерах? И насколько велик дополнительный оверхед такого кода? Вот насколько тяжелый переход от человеческого ООП к функционально-ориентированому JS? Каким образом это достигается, ведь вариантов много. Единственное что, юнит-тесты для JS - это из разряда эзотерики. Нормальных тулзов не видел. Да и вообще, всё, что я видел в этом плане - это JsUnit.
Ну тут не поспорю, так как студией не пользуюсь уже очень давно (последней, которой пользовался кажись 7ая была:)). Что касается IDE для JS, то пока Aptana (в качестве плагина к Эклипс) очень даже устраивает. В конце-концов с JS-фреймворками ничего не работает лучше, чем Aptana. Для PHP тоже плагин к Эклипс - PDT. Может просто этого хватает для моих нужд
Драсте. %) А байт-код? А MSIL? Это не извращение, а отлично зарекомендовавшая себя технология
Ну..имхо, нет.
Так уже работает
А технические моменты можно просто посмотреть и потрогать самому
Байт-код и MSIL - это немного иное. Байт-код - совсем не язык программирования
Скорее машинно(/платформо)-независимый этап между собственно программой и машинным кодом. И это действительно оправдано. JS - совсем не из этой оперы.
Ну и чем JS не самодостаточный язык? Это прекрасно показано такими технологиями, как Jaxer.
Что касается потрогать это самому - лучше буду юзать оригинальный JS с человеческим IDE (Aptana, тоесть)
Плюс это ж Винду надо ставить тогда
Просто интересно, насколько хорошо это реализовано.
Ещё кстати, мне кажется (возможно я не прав), что S# ограничнивает в выборе фреймворка. Тоесть можно юзать только что-то встроенное. Это так? Про jQuery, Prototype, ExtJS, … можно забыть?