> Чем принципиально отличается то? {} вместо begin..end? Чего Вам в JS не хватает?
Вы утрируете.
PHP — динамический язык со средним уровнем ООП.
JS — прототипо-ориентированный, что я в общем-то не считаю ООП в полной мере.
Ruby — динамический с сильно развитым ООП и элементами функциональной парадигмы.
Подходы и способы решения задач в этих языках могут очень сильно отличаться. Скажем, пытаться делать замыкания в PHP — верх безумия. Более того, я даже скажу, что Actionscript очень сильно отличается от Javascript, хотя и то, и то — часть ECMAscript.
А если предположить, что в Web'е на стороне клиента можно будет, например, использовать какой-нибудь Erlang, лично я буду очень рад :-) Для программирования системы, элементы которой работает полностью в асинхронном режиме, он лучше всего подходит.
> Называть это костылем по крайней мере глупо.
Я имел в виду несколько иное. Против GWT я ничего не имею, но сама идея конвертации полноценного ОО-языка в прототипо-ориентированный, чтобы потом это скомпилировалось в промежуточный байт-код, который затем будет выполняться, — лично мне кажется странной.
Microsoft здесь вообще не причем, всё-таки Microsoft не разрабатывает Mono.
Причины закрытия Volta мне не известны, но сомневаюсь, что причина в том, что не потянули. Я знаю несколько конвертеров MSIL->JS, которые со своей задачей справляются не хуже GWT.
И да, Javascript сильно отличается и от PHP и от Ruby, а GWT — это и есть попытка использования Javascript в качестве CLI, но в силу специфики и истории Javascript'а, преобразование Java в Javascript — это скорее костыль и лишняя прослойка.
Code Contracts? Это было бы логичным, но к ним нет доступа из reflections, а следовательно по ним невозможно сгенерироватоь соответствующие валидаторы в web application.
Больше всего меня расстраивает отсутствие возможности сделать атрибут вида
[Validator(v => v >= 10)]
int MyProp { get; set; }
ну или хотя бы просто генериков в атрибутах, или хотя бы адекватных параметров по умолчанию, так как те, что появились в C# 4.0 не работают с атрибутами.
А что вы имеете в виду под автофлагами? Назначение атрибута [Flags] всем enum'ам по умолчанию? Зачем?
На практике на C#+Linq достаточно длинная программа получается, имхо лучше какой-нибудь функциональный нетипизированный скриптовый язык с изотерическим синтаксисом. Какой-нибудь J :-)
Вынужден согласиться :-) Эх, если бы не свойства и методы… Впрочем, тот же RavenDb, несмотря на документо-ориентированную направленность с учетом автоматической сериализации/дессериализации хранит свойства объектов. И, если честно, я пока что не встречал настолько объекто-ориентированных баз данных, которые бы хранили и методы сохраняемого объекта.
В случае ООБД вы получите аналогичное поведение. Поменяли поле — проект не компилируется (в случае языка со статической типизацией), или падает (в динамическом языке).
Вы как-то растеклись мыслею по древу, и фактически не произвели сравнения Реляционных БД и ООБД. Мало фактов, процентов на 90 ваш пост состоит из воды.
Ну и плюс, в результате интегрированности, достаточно легко найти разработчиков, так как десктопная/мобильная и веб-разработка в итоге ведётся практически на одних и тех же технологиях и языках.
Вы утрируете.
PHP — динамический язык со средним уровнем ООП.
JS — прототипо-ориентированный, что я в общем-то не считаю ООП в полной мере.
Ruby — динамический с сильно развитым ООП и элементами функциональной парадигмы.
Подходы и способы решения задач в этих языках могут очень сильно отличаться. Скажем, пытаться делать замыкания в PHP — верх безумия. Более того, я даже скажу, что Actionscript очень сильно отличается от Javascript, хотя и то, и то — часть ECMAscript.
А если предположить, что в Web'е на стороне клиента можно будет, например, использовать какой-нибудь Erlang, лично я буду очень рад :-) Для программирования системы, элементы которой работает полностью в асинхронном режиме, он лучше всего подходит.
> Называть это костылем по крайней мере глупо.
Я имел в виду несколько иное. Против GWT я ничего не имею, но сама идея конвертации полноценного ОО-языка в прототипо-ориентированный, чтобы потом это скомпилировалось в промежуточный байт-код, который затем будет выполняться, — лично мне кажется странной.
Причины закрытия Volta мне не известны, но сомневаюсь, что причина в том, что не потянули. Я знаю несколько конвертеров MSIL->JS, которые со своей задачей справляются не хуже GWT.
И да, Javascript сильно отличается и от PHP и от Ruby, а GWT — это и есть попытка использования Javascript в качестве CLI, но в силу специфики и истории Javascript'а, преобразование Java в Javascript — это скорее костыль и лишняя прослойка.
[Validator(v => v >= 10)]
int MyProp { get; set; }
ну или хотя бы просто генериков в атрибутах, или хотя бы адекватных параметров по умолчанию, так как те, что появились в C# 4.0 не работают с атрибутами.
А что вы имеете в виду под автофлагами? Назначение атрибута [Flags] всем enum'ам по умолчанию? Зачем?