Javascript+статика
От: Ziaw Россия  
Дата: 14.07.11 04:53
Оценка: +2
К сожалению, доля web-ui растет, а альтернатив js в этом плане практически не предвидится. Я думаю для многих js разработчиков наступал момент, когда код превращается в некого монстра, навигация по которому представлялась нетривиальной задачей, а запоминание методов и их параметров у используемых классов превращалось в нехилую тренировку памяти. Немного помогают хорошие IDE с интелисенсом, но только немного.

[javascript]
function f(x) {
x. // интелисенс?
}
[/javascript]

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

Вполне логичный постулат — "тесты нас спасут" тоже работает плохо. Потому, что в вышеописанной функции надо тестировать не поведение с f("hello world"), а вызывать ее по всему коду с реальными параметрами. Потому, что тесты сильно увеличивает кодовую базу которую тоже требуется поддерживать. Потому, что тестировать код на асинхронных событиях сама по себе сложная задача.

Сейчас стали как грибы появляться компиляторы всего чего угодно в javascript: Java, C#, F#, IL и т.д.

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

Все это была вводная, пора и к делу. Мне тут подумалось, что гораздо лучше проблему решил бы язык очень близкий к js, но хорошим синтаксисом (a la coffescript, который уже делает код читабельнее) и возможностью статической типизации. Причем типизации структурной и с мощным глобальным выводом типов, с которым сами типы придется указывать лишь в исключительных случаях. Динамику тоже можно будет использовать на полную как, например, в C#.

Чем он будет лучше того же websharper? Да тем, что скомпилированный js будет практически идентичен исходному коду (просто рассахареный исходник). Тем, что интеграция с любыми внешними js фреймворками будет абсолютно прямой и прозрачной. Для чего-то типы можно будет описать (типа хидера в C), для чего то забить на типизацию.

Какие основные проблемы вы видите у такого подхода? Может он принципиально невозможен?
Re: Javascript+статика
От: Sinix  
Дата: 14.07.11 05:52
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>Какие основные проблемы вы видите у такого подхода? Может он принципиально невозможен?

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

Кроме того, у нас всё равно останется тонна проблем, начиная с отсутствия стандартных библиотек/UI-фреймворка (только давайте не будем про canvas и меню на css) и заканчивая привязкой к принципиально нетипизируемому DOM.

А если мы явно разделим язык для логики и язык для декларативного описания ui/привязки к логике, то результат будет слишком сложным для большинства веб-дизайнеров, и, наоборот, слишком примитивным по сравнению с "взрослыми" явой и дотнетом.

Не взлетит, короче.
Re: Javascript+статика
От: silverwolf  
Дата: 14.07.11 05:57
Оценка: -2
Здравствуйте, Ziaw, Вы писали:

Z>[javascript]

Z>function f(x) {
Z> x. // интелисенс?
Z>}
Z>[/javascript]
Зачем вы передаете большие объекты?
Если таки надо передать большой объект -- пишите JsDoc-и, знакомый говорил что смог нормально настроить еклипс -- он подсвечивал поля как надо (у меня не получилось )

Z>Несмотря на то, что явно декларируемой целью является написание клиентского кода на то же языке, что и серверного, основным преимуществом тут является статическая типизация, которая позволяет управлять бОльшими объемами кода.

Ограничение областей видимости (куча маленьких файлов и все в псевдомодулях). Сборка джаваскриптовых файлов при сборке приложения и подключение уже результата (не всегда простая задача).

Z>Все это была вводная, пора и к делу. Мне тут подумалось, что гораздо лучше проблему решил бы язык очень близкий к js, но хорошим синтаксисом (a la coffescript, который уже делает код читабельнее) и возможностью статической типизации.

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

Z>Какие основные проблемы вы видите у такого подхода? Может он принципиально невозможен?

Помимо "детских проблем" (не эффективная трансляция) и не понятный код-результат (переменные с подчеркиваниями и индексами или просто однобуквенные):
Re: Javascript+статика
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 14.07.11 08:27
Оценка: 26 (2) +1
Здравствуйте, Ziaw

Уже все сделано:
http://haxe.org/doc/intro
Re[2]: Javascript+статика
От: Sinix  
Дата: 14.07.11 08:45
Оценка: 2 (1) +1
Здравствуйте, D. Mon, Вы писали:

DM>Уже все сделано:

DM>http://haxe.org/doc/intro

Что забавно, даже изобретая "правильный" язык, автор упорно топчется по граблям скриптовых языков. Из оф. документации:
    class C {
        static var x : Int;
        var x : Int;

        function new() {
            {
               // x at this point means member variable this.x
                var x : String;
                // x at this point means the local variable
            }
        }
    }
Re: Javascript+статика
От: vsb Казахстан  
Дата: 14.07.11 09:52
Оценка: 7 (2) +4 :)
Здравствуйте, Ziaw, Вы писали:

Z>Все это была вводная, пора и к делу. Мне тут подумалось, что гораздо лучше проблему решил бы язык очень близкий к js, но хорошим синтаксисом (a la coffescript, который уже делает код читабельнее) и возможностью статической типизации. Причем типизации структурной и с мощным глобальным выводом типов, с которым сами типы придется указывать лишь в исключительных случаях. Динамику тоже можно будет использовать на полную как, например, в C#.


Z>Чем он будет лучше того же websharper? Да тем, что скомпилированный js будет практически идентичен исходному коду (просто рассахареный исходник). Тем, что интеграция с любыми внешними js фреймворками будет абсолютно прямой и прозрачной. Для чего-то типы можно будет описать (типа хидера в C), для чего то забить на типизацию.


Z>Какие основные проблемы вы видите у такого подхода? Может он принципиально невозможен?


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

Джаваскрипт в роли языка ассемблера по-моему тонкий троллинг над всей абсурдностью сегодняшних веб-технологий.
Re: Javascript+статика
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 14.07.11 09:55
Оценка:
Собственно,
JavaScript + static types = ActionScript.
ActionScript + better static types + type inference + algebraic types & pattern matching = Haxe.

Я Haxe использую для компиляции во Flash. Очень приятный язычок, а компилятор значительно лучше, чем ActionScript'овский (как по скорости получаемого кода, так и по скорости компиляции). IDE с автокомплитом и прочими плюшками уже есть (FlashDevelop).
Re: Javascript+статика
От: fddima  
Дата: 14.07.11 12:42
Оценка:
Здравствуйте, Ziaw, Вы писали:

Отличная идея по моему.
Незнаю как там haxe — а в любом случае сейчас любой приличный фреймворк имеет свой собственный недо-js-компилятор (google-closure, dojo). Да и сам этим озаботился для своего fw. Правда пока что всё забросил подальше.
Re: Javascript+статика
От: Mamut Швеция http://dmitriid.com
Дата: 14.07.11 13:02
Оценка:
Z>К сожалению, доля web-ui растет, а альтернатив js в этом плане практически не предвидится. Я думаю для многих js разработчиков наступал момент, когда код превращается в некого монстра, навигация по которому представлялась нетривиальной задачей, а запоминание методов и их параметров у используемых классов превращалось в нехилую тренировку памяти. Немного помогают хорошие IDE с интелисенсом, но только немного.

Z>[javascript]

Z>function f(x) {
Z> x. // интелисенс?
Z>}
Z>[/javascript]

InteliJ'ные продукты неплохо справляются с интеллисенсом (до определенного момента, естественно).

Z>Все это была вводная, пора и к делу. Мне тут подумалось, что гораздо лучше проблему решил бы язык очень близкий к js, но хорошим синтаксисом (a la coffescript, который уже делает код читабельнее) и возможностью статической типизации. Причем типизации структурной и с мощным глобальным выводом типов, с которым сами типы придется указывать лишь в исключительных случаях. Динамику тоже можно будет использовать на полную как, например, в C#.



Было бы неплохо иметь в JS не обязательно статику, но type hints или type specs, имхо.


dmitriid.comGitHubLinkedIn
Re[2]: Javascript+статика
От: Ziaw Россия  
Дата: 14.07.11 16:21
Оценка:
Здравствуйте, Sinix, Вы писали:

Z>>Какие основные проблемы вы видите у такого подхода? Может он принципиально невозможен?

S>Теоретически возможен, только это чудо уже не будет яваскриптом, и, следовательно, будет совместимо только с самим собой, да и то частично

Да нет же, это будет просто сахар для js. Типы для которого будут заданы либо выведены и проверены на этапе компиляции. Выполняться будет обычный js без проверок на тип.

S>Кроме того, у нас всё равно останется тонна проблем, начиная с отсутствия стандартных библиотек/UI-фреймворка (только давайте не будем про canvas и меню на css) и заканчивая привязкой к принципиально нетипизируемому DOM.


И в чем проблема? Принципиально нетипизируемый DOM прекрасно обрабатывается jquery со вполне типизируемым АПИ.

S>А если мы явно разделим язык для логики и язык для декларативного описания ui/привязки к логике, то результат будет слишком сложным для большинства веб-дизайнеров, и, наоборот, слишком примитивным по сравнению с "взрослыми" явой и дотнетом.


Не надо этих наворотов. Язык для декларативного описания UI это html, привязать его к логике уже умеет куча фреймворков и еще большая куча появится.
Re[2]: Javascript+статика
От: Ziaw Россия  
Дата: 14.07.11 16:28
Оценка:
Здравствуйте, D. Mon, Вы писали:

Спасибо, я его видел раньше, но поставил на одну полку с компиляторами в js из java/c#/f#/ur. Думаю надо рассмотреть поближе.

Основная идея у меня — язык должен транслироваться в js почти один в один, без нечитаемого кода со спецтипами и собственным фреймворком.
Re[2]: Javascript+статика
От: Ziaw Россия  
Дата: 14.07.11 16:32
Оценка:
Здравствуйте, vsb, Вы писали:

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


Если бы, да кабы. Я не вижу даже движения в эту сторону.

vsb>Джаваскрипт в роли языка ассемблера по-моему тонкий троллинг над всей абсурдностью сегодняшних веб-технологий.


+1 только никто не желает отливать против ветра и я их понимаю.
Re[2]: Javascript+статика
От: Ziaw Россия  
Дата: 14.07.11 16:34
Оценка: +1
Здравствуйте, Mamut, Вы писали:

M>Было бы неплохо иметь в JS не обязательно статику, но type hints или type specs, имхо.


Именно. Ни о какой полной статике речь идти не может, динамика должна быть в шаговой доступности. Нужны и type hints и type specs и мощный вывод.
Re[3]: Javascript+статика
От: Sinix  
Дата: 15.07.11 01:18
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>Да нет же, это будет просто сахар для js. Типы для которого будут заданы либо выведены и проверены на этапе компиляции. Выполняться будет обычный js без проверок на тип.


А, типа такого
Автор: Sinix
Дата: 07.06.11
? Ну, тогда это не тру — как же ошибки приведения типов?

Z>И в чем проблема? Принципиально нетипизируемый DOM прекрасно обрабатывается jquery со вполне типизируемым АПИ.

В языке со строгой типизацией — это тонна писанины и прооверок, спасает или паттерн-матчинг, или поздний биндинг, вы же сами пишете:

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

Кроме того, как насчёт библиотек? Будем их все вызывать через dynamic? Писать к ним врапперы? Портировать? Воистину,

Джаваскрипт в роли языка ассемблера по-моему тонкий троллинг




Z>Не надо этих наворотов. Язык для декларативного описания UI это html, привязать его к логике уже умеет куча фреймворков и еще большая куча появится.


А вот тут я категорически не согласен. В HTML даже лэйауты документов не всегда нормально можно описать — когда у нас был последний холивар div vs table? Если речь пойдёт о нормальном UI — где контейнеры, докинг, контролы, биндинг, драг-дроп, декларативное описание анимаций и прочее-прочее-прочее? Пока что html как язык описания UI не дотягивает даже до ранних дельфи/vbasic-а. И, такими темпами, ещё лет 10 дотягивать не будет.

Единственное преимущество html — то, что веб-браузеры сейчас не пихают только в чайники (хотя в разделочную доску уже засунули). И нет, это не делает html+js хорошим средством для разработки UI.

Посмотрите сами: весь успешный веб-софт занимается одним и тем же — развлекает несколько сотен миллионов людей, которым скучно на работе. Редкие исключения сильны в первую очередь уникальным контентом или серверной составляющей.

Скажете, гугль, wolphram|alpha, wiki, слешдот, твиттер и прочая-прочая популярны из-за html-я? Зачем играть в культ карго и упорно тащить html туда, где ему делать нечего?
Re: Javascript+статика
От: FR  
Дата: 15.07.11 03:18
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>Сейчас стали как грибы появляться компиляторы всего чего угодно в javascript: Java, C#, F#, IL и т.д.


Z>Несмотря на то, что явно декларируемой целью является написание клиентского кода на то же языке, что и серверного, основным преимуществом тут является статическая типизация, которая позволяет управлять бОльшими объемами кода.


Существование и достаточная популярность таких же трансляторов для питона:

http://www.skulpt.org/
http://pyjs.org/
http://code.google.com/p/pyv8/

Показывает что дело не только и не столько в динамической типизации.
Скорее виноваты другие особенности JavaScript и его общая далекость от мейнстримных языков вообще.
Re[4]: Javascript+статика
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 15.07.11 03:41
Оценка:
Здравствуйте, Sinix, Вы писали:

S>Единственное преимущество html — то, что веб-браузеры сейчас не пихают только в чайники (хотя в разделочную доску уже засунули).


Сначала подумал, что речь про iPad.
Re[2]: Javascript+статика
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 15.07.11 03:42
Оценка:
Здравствуйте, FR, Вы писали:

FR>Существование и достаточная популярность таких же трансляторов для питона:


FR>http://www.skulpt.org/

FR>http://pyjs.org/
FR>http://code.google.com/p/pyv8/

...показывает, что есть много питонистов, которые очень любят свой язык, и им нечем заняться.
Re[3]: Javascript+статика
От: FR  
Дата: 15.07.11 04:03
Оценка:
Здравствуйте, D. Mon, Вы писали:

DM>...показывает, что есть много питонистов, которые очень любят свой язык, и им нечем заняться.


То же самое можно сказать и про явистов и остальных
А для камлистов это точно так и есть
Re[5]: Javascript+статика
От: Sinix  
Дата: 15.07.11 04:30
Оценка:
Здравствуйте, D. Mon, Вы писали:

DM>Сначала подумал, что речь про iPad.

Не-не-не, не надо забывать первопроходцев

Re[4]: Javascript+статика
От: Ziaw Россия  
Дата: 15.07.11 05:13
Оценка: +1
Здравствуйте, Sinix, Вы писали:

Z>>Да нет же, это будет просто сахар для js. Типы для которого будут заданы либо выведены и проверены на этапе компиляции. Выполняться будет обычный js без проверок на тип.


S>А, типа такого
Автор: Sinix
Дата: 07.06.11
? Ну, тогда это не тру — как же ошибки приведения типов?


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

Z>>И в чем проблема? Принципиально нетипизируемый DOM прекрасно обрабатывается jquery со вполне типизируемым АПИ.

S>В языке со строгой типизацией — это тонна писанины и прооверок, спасает или паттерн-матчинг, или поздний биндинг, вы же сами пишете:

Настолько строгой типизации не нужно. Dom узел это dom узел, а не div|table|h1.

S>

S>Именно. Ни о какой полной статике речь идти не может, динамика должна быть в шаговой доступности. Нужны и type hints и type specs и мощный вывод.

S>Кроме того, как насчёт библиотек? Будем их все вызывать через dynamic? Писать к ним врапперы? Портировать? Воистину,
S>

S>Джаваскрипт в роли языка ассемблера по-моему тонкий троллинг

S>

Еще раз. Динамика никуда не девается, она остается в шаговой доступности. Джаваскрипт тут не в роли ассемблера, а в роли основного языка. Просто припудрен сахаром и конструкциями помогающими выводу типов. Если ты хочешь описать сигнатуру метода $.ajax() — пожалуйста, если не хочешь, компилятор попробует вывести сам либо переделает в динамику.

S>А вот тут я категорически не согласен. В HTML даже лэйауты документов не всегда нормально можно описать — когда у нас был последний холивар div vs table? Если речь пойдёт о нормальном UI — где контейнеры, докинг, контролы, биндинг, драг-дроп, декларативное описание анимаций и прочее-прочее-прочее? Пока что html как язык описания UI не дотягивает даже до ранних дельфи/vbasic-а. И, такими темпами, ещё лет 10 дотягивать не будет.


Тем не менее в очень большом сегменте альтернативы ему не предвидится. Не надо сгущать краски. Далеко не всем требуется UI в стиле десктопа (контейнеры, докинг), это вообще годится только для ентерпрайз оперденей. А контролы, биндинг и драг-дроп существуют вполне приличные.
Re[2]: Javascript+статика
От: Ziaw Россия  
Дата: 15.07.11 05:15
Оценка:
Здравствуйте, FR, Вы писали:

FR>Существование и достаточная популярность таких же трансляторов для питона:

FR>Показывает что дело не только и не столько в динамической типизации.
FR>Скорее виноваты другие особенности JavaScript и его общая далекость от мейнстримных языков вообще.

И в этом тоже. Общую далекость предлагаю исправить сахаром типа кофесрипта.
Re[5]: Javascript+статика
От: Sinix  
Дата: 15.07.11 05:47
Оценка:
Здравствуйте, Ziaw, Вы писали:

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

От-от.
[c#]
var duck = (Duck)hunter;

hunter2.Shoot(duck);
[c#]
Или пишем проверки в Shoot (и в прочих методах), или ой. На тру-статическую типизацию это ну совсем не похоже.

Z>Еще раз. Динамика никуда не девается, она остается в шаговой доступности.

Так я только за Вопрос — как быть с существующими библиотеками под яваскрипт?

Z>Если ты хочешь описать сигнатуру метода $.ajax() — пожалуйста, если не хочешь, компилятор попробует вывести сам либо переделает в динамику.


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

Z>Тем не менее в очень большом сегменте альтернативы ему не предвидится.

Угу, но это весьма специфический сегмент — "жертвуем качеством ради массовости".

Z>Не надо сгущать краски. Далеко не всем требуется UI в стиле десктопа (контейнеры, докинг), это вообще годится только для ентерпрайз оперденей.

Из того, что открыто сейчас (студию и ко так и быть опустим) — acrobat reader, golden dict, opera, paint.net, qip — ничуть не страдают от наличия вышеперечисленного. Я бы сказал — наоборот
Re[5]: Javascript+статика
От: FR  
Дата: 15.07.11 06:34
Оценка: 22 (1)
Здравствуйте, Ziaw, Вы писали:

Z>Еще раз. Динамика никуда не девается, она остается в шаговой доступности. Джаваскрипт тут не в роли ассемблера, а в роли основного языка. Просто припудрен сахаром и конструкциями помогающими выводу типов. Если ты хочешь описать сигнатуру метода $.ajax() — пожалуйста, если не хочешь, компилятор попробует вывести сам либо переделает в динамику.


Создатели PyPy примерно так и сделали создав для питона статически типизированное (вывод типов + аннотации в виде декораторов и вызовов псевдофункций) подмножество питона — RPython.
Re[6]: Javascript+статика
От: Mamut Швеция http://dmitriid.com
Дата: 15.07.11 07:04
Оценка: +2
Z>>Сейчас с ними тоже никак. Ты смотришь с точки зрения ортодоксальной типизации. А я хочу ее использовать только там, где она меньше мешает, чем помогает. Проверки на соответствие типу для выполнения в рантайме придется писать явно.
S>От-от.
S>[c#]
S>var duck = (Duck)hunter;

S>hunter2.Shoot(duck);

S>[c#]
S>Или пишем проверки в Shoot (и в прочих методах), или ой. На тру-статическую типизацию это ну совсем не похоже.

Строгой (не статической) типизации вполне достаточно. См. Erlang


dmitriid.comGitHubLinkedIn
Re[6]: Javascript+статика
От: Ziaw Россия  
Дата: 15.07.11 07:33
Оценка:
Здравствуйте, FR, Вы писали:

FR>Создатели PyPy примерно так и сделали создав для питона статически типизированное (вывод типов + аннотации в виде декораторов и вызовов псевдофункций) подмножество питона — RPython.


Вобщем да, это именно то, что не помешало сделать для js.
Re[6]: Javascript+статика
От: Ziaw Россия  
Дата: 15.07.11 07:36
Оценка:
Здравствуйте, Sinix, Вы писали:

S>От-от.

S>[c#]
S>var duck = (Duck)hunter;

S>hunter2.Shoot(duck);

S>[c#]
S>Или пишем проверки в Shoot (и в прочих методах), или ой. На тру-статическую типизацию это ну совсем не похоже.

Это вообще не похоже на статическую типизацию. Для утиной типизации это будет похоже на использование C# dynamic без dynamic.

S>А вот это как раз неправильно. Или у нас статическая типизация везде и мы явно указываем dynamic, когда он нужен, или мы опять скатываемся к тотальному покрытию тестами ради нахождения неверно названной переменной.


Если мы не указываем типы явно и не можем вывести это будет функция params array[object] -> object

S>Из того, что открыто сейчас (студию и ко так и быть опустим) — acrobat reader, golden dict, opera, paint.net, qip — ничуть не страдают от наличия вышеперечисленного. Я бы сказал — наоборот


А из открытых сайтов многие такой подход используют? Фреймворков для эмуляции десктопного UI хватает. В том же extjs есть даже приличное IDE для формоклепания.
Re[7]: Javascript+статика
От: Sinix  
Дата: 15.07.11 08:07
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>Это вообще не похоже на статическую типизацию. Для утиной типизации это будет похоже на использование C# dynamic без dynamic.

Ну да. Я ведь правильно понял, что именно такой подход вы и предлагаете вот тут:

Проверки на соответствие типу для выполнения в рантайме придется писать явно.

?

Z>Если мы не указываем типы явно и не можем вывести это будет функция params array[object] -> object

Ну да. Следовательно, мы можем ошибиться в количестве/типах параметров и (при известном везении) узнать об этом только на третью неделю продакшна

Z>А из открытых сайтов многие такой подход используют? Фреймворков для эмуляции десктопного UI хватает. В том же extjs есть даже приличное IDE для формоклепания.

Да никто почти
Re[2]: Javascript+статика
От: Klatu  
Дата: 15.07.11 09:38
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Джаваскрипт в роли языка ассемблера по-моему тонкий троллинг над всей абсурдностью сегодняшних веб-технологий.


Слишком тонкий.
Я временами гадаю, до какого еще абсурда сможет дойти развитие новейших эффективных технологий. Но моей извращенности для этого не хватает.
Re[8]: Javascript+статика
От: Ziaw Россия  
Дата: 15.07.11 15:41
Оценка: +1
Здравствуйте, Sinix, Вы писали:

S>Ну да. Я ведь правильно понял, что именно такой подход вы и предлагаете вот тут:

S>

S>Проверки на соответствие типу для выполнения в рантайме придется писать явно.

S>?

Я предлагаю их вообще не писать. Но если уж сильно хочется только статикой тут все равно особо не пахнет.

Z>>Если мы не указываем типы явно и не можем вывести это будет функция params array[object] -> object

S>Ну да. Следовательно, мы можем ошибиться в количестве/типах параметров и (при известном везении) узнать об этом только на третью неделю продакшна

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

Z>>А из открытых сайтов многие такой подход используют? Фреймворков для эмуляции десктопного UI хватает. В том же extjs есть даже приличное IDE для формоклепания.

S>Да никто почти

Вот и ответ, на сайтах не особо нужны такие вещи. Это в первую очередь информационный ресурс.
Re[2]: Javascript+статика
От: mymuss  
Дата: 15.07.11 16:36
Оценка:
Здравствуйте, silverwolf, Вы писали:

Z>> x. // интелисенс?


S>Если таки надо передать большой объект -- пишите JsDoc-и, знакомый говорил что смог нормально настроить еклипс -- он подсвечивал поля как надо (у меня не получилось )


Кстати да, подтверждаю, в IDEA и подсветка, и интелисенс в принципе приемлемо работает
Re[2]: Javascript+статика
От: Gaperton http://gaperton.livejournal.com
Дата: 19.07.11 11:43
Оценка:
Здравствуйте, D. Mon, Вы писали:

DM>Уже все сделано:

DM>http://haxe.org/doc/intro

Как там на практике с отладкой в браузере и стыковке с популярными фрейморками, вроде ExtJS и Dojo?
Re[3]: Javascript+статика
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 19.07.11 15:59
Оценка:
Здравствуйте, Gaperton, Вы писали:

DM>>http://haxe.org/doc/intro


G>Как там на практике с отладкой в браузере и стыковке с популярными фрейморками, вроде ExtJS и Dojo?


Представления не имею. Я из бэкендов haxe только флэш использовал.
Re[3]: Javascript+статика
От: silverwolf  
Дата: 20.07.11 14:49
Оценка:
Здравствуйте, mymuss, Вы писали:

M>Здравствуйте, silverwolf, Вы писали:


Z>>> x. // интелисенс?


S>>Если таки надо передать большой объект -- пишите JsDoc-и, знакомый говорил что смог нормально настроить еклипс -- он подсвечивал поля как надо (у меня не получилось )


M>Кстати да, подтверждаю, в IDEA и подсветка, и интелисенс в принципе приемлемо работает

Вот, кстати, инструкция "по настройке" для Еклипс. Попробую ишо раз мо заведетсо.
Re[2]: Javascript+статика
От: novitk США  
Дата: 23.07.11 13:55
Оценка:
Здравствуйте, vsb, Вы писали:

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


Самое смешное, что с этого все начиналось и это все пока еще есть — Java applets. Просто изначально они были направлены не на то (прямой рендеринг вместо манипуляции DOM-om) и реализация хромала по части ресурсов, скорости, совместимости и старта. В новых версиях плагина многое починено (быстрый старт, скорость hotspot-a, исполнение вне процесса). ИМХО нужно немного обновить API и сделать поддержку в IDE для доводки этого до уровеня, скажем, WPF.
Re[3]: Javascript+статика
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 24.07.11 06:29
Оценка:
Здравствуйте, novitk, Вы писали:

N>Здравствуйте, vsb, Вы писали:


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


N>Самое смешное, что с этого все начиналось и это все пока еще есть — Java applets.


Сейчас это лишь один из плагинов, в одном ряду с флэшем и сервелатом. И из этих троих сегодня худший — умеет мало, а стартует долго. Сервелат тоже долго запускается, но там хоть есть ради чего — WPF.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.