Типизированный Superset javascript от Андерса Хейлсберга,
— компилируется в javascript
— типизация, классы, интерфейсы, наследование, модульность
— компилятор написан на нем самом
— полная поддержка в Visual Studio
Здравствуйте, achmed, Вы писали:
A>Здравствуйте, Евгений Акиньшин, Вы писали:
ЕА>>Но с аргументами на счет каши не согласен. Ну то есть натурально конечно каша получается, но туда смотреть не обязательно, зато можно писать на высокоуровневом языке и код шарить. Мы вот Script# вполне успешно в нескольких проектах использовали, но напрягает, что там только подмножество си-шарпа реализовано.
A>Ого, таки Script# живет. Совершенно случайно обнаружил его следы в SharePoint 2012, конкретно в ректоре страниц и веб-частей, был удивлен.
По словам сотрудников MS сам MS активно юзает Script# в различных продуктах. Вся клиентская объектная модель SharePoint на нем сделана. Вот только референсные сборки от нее не дали.
Здравствуйте, Евгений Акиньшин, Вы писали:
ЕА>Типизированный Superset javascript от Андерса Хейлсберга,
ЕА>- компилируется в javascript ЕА>- типизация, классы, интерфейсы, наследование, модульность ЕА>- компилятор написан на нем самом ЕА>- полная поддержка в Visual Studio
ЕА>http://www.typescriptlang.org/ ЕА>http://channel9.msdn.com/posts/Anders-Hejlsberg-Introducing-TypeScript
ЕА>По мне, так лучше бы он нормальный транслятор си-шарпа в яваскрипт сделал, но так тоже прикольно
Интересная штука, порадовали intellisense в браузере http://www.typescriptlang.org/Playground/ и поддержка в visual studio.
Но как и многие упомянутые выше проекты этот делается под девизом "на jаvаscript неудобно писать масштабные приложения".
Практика показывается что эффективнее будет перестроить мозг на динамический язык и писать стразу на JavaScript.
Здравствуйте, __SPIRIT__, Вы писали:
__S>Здравствуйте, sergeyt4, Вы писали:
S>>Почему-то все забывают про отладку таких проектов. Пробовал ли кто-нибудь реально это делать? Я пробовал. Не понравилось. А работа с большими фреймворками типа ExtJS — кто будет вам interop-ы писать и поддерживать?
__S>Как минимум в хроме можно отлаживаться по коду TypeScript.
Да, я посмотрел примеры.
В Хроме, действительно, можно отлаживаться в TS (если добавить опцию для генерации source maps), а вот в VS оно почему-то отлаживает в JS. Брекпонты на исходных TS файлах не срабатывают.
__S>В TypeScript есть аналог плюсовых хэдеров. Пощупать еще не успел, но как минимум заявлялось. И, если не ошибаюсь, сразу дали хэдеры для JQuery.
jQuery — это конечно хорошо, но катастрофически недостаточно, чтобы писать приложения с полноценным UI, ни для десктопов, ни для touch-девайсов.
В общем, на TS имеет смысл переходить только если писать проект для Windows8. Там уже и библиотеки готовые есть (WinJS)...
Здравствуйте, Ziaw, Вы писали:
Z>Здравствуйте, Ikemefula, Вы писали:
I>>Язык намного компактнее чем JS, благодаря выводу типов аннотации нужны довольно редко + есть сахар для многих вещей.
Z>За счет чего компактнее, да еще и намного? Мне правда интересно, я все никак не могу им нормально проникнуться. Где описание языка? Где почитать про этот самый сахар для многих вещей?
За счет чего он компактнее, я тоже не понял. Судя по примеру Raytracer(http://www.typescriptlang.org/Playground/#ex1) TS — 318 строк, а JS — 293.
Что там заметно компактнее — так это Inheritance
Здравствуйте, achmed, Вы писали:
A>В js свои прелести, надо просто полюбить его. Раньше я нетерпимо относился к этому языку. A>Но когда появились prototype, jquery и пр. я проникся тем насколько хорошо он подходит именно к HTML.
+1 с хорошими библиотеками он довольно приятен, хоть и остается слегка многословен. Я сейчас пользуюсь coffescript который просто убирает ненужный синтаксический оверхед, оставляя все прелести метапрограммирования (которые и делают этот язык приятным, позволяя создавать отличные фреймворки).
Z>>Ну и типизация с контролем компилятора ему совершенно не повредит.
A>А еще поддержка асинхронности и много чего, но что имеем то имеем
Асинхронность через deffered уже достаточно неплохо выглядит, любая поддержка будет просто сахаром над этим механизмом (как сделано в C#).
Здравствуйте, Евгений Акиньшин, Вы писали:
ЕА>По мне, так лучше бы он нормальный транслятор си-шарпа в яваскрипт сделал, но так тоже прикольно
в данном случае у них упор на похожесть с JS. Всякие дженерики, оверлоады и тд вещи присущие стат. типизированным языкам — чужды джава скрипту и потому при трансляции того же C# в JS получается каша.
А вот TypeScript типа как спецом разрабатывается для абсолютно прозрачной трансляции в JS.
Здравствуйте, Ziaw, Вы писали:
Z>Здравствуйте, achmed, Вы писали:
A>>Практика показывается что эффективнее будет перестроить мозг на динамический язык и писать стразу на JavaScript.
Z>Настроиться надо именно на JavaScript, который даже для динамики немного того.
В js свои прелести, надо просто полюбить его. Раньше я нетерпимо относился к этому языку.
Но когда появились prototype, jquery и пр. я проникся тем насколько хорошо он подходит именно к HTML.
Z>Ну и типизация с контролем компилятора ему совершенно не повредит.
А еще поддержка асинхронности и много чего, но что имеем то имеем
Здравствуйте, Евгений Акиньшин, Вы писали:
ЕА>Типизированный Superset javascript от Андерса Хейлсберга,
ЕА>- компилируется в javascript ЕА>- типизация, классы, интерфейсы, наследование, модульность ЕА>- компилятор написан на нем самом ЕА>- полная поддержка в Visual Studio
Хорошее дело. Радует то, что аннотации типов сделаны через ":", а не в С стиле. Не радует слабый вывод типов.
ЕА>По мне, так лучше бы он нормальный транслятор си-шарпа в яваскрипт сделал, но так тоже прикольно
Не нужен такой транслятор. C# без фреймворка менее удобен чем javascript, а фреймворк нормально не перенесешь.
Здравствуйте, Ziaw, Вы писали:
ЕА>>По мне, так лучше бы он нормальный транслятор си-шарпа в яваскрипт сделал, но так тоже прикольно Z>Не нужен такой транслятор. C# без фреймворка менее удобен чем javascript, а фреймворк нормально не перенесешь.
Есть вполне нормальный GWT — там перенесли заметную часть фреймворка.
Здравствуйте, Ziaw, Вы писали:
ЕА>>По мне, так лучше бы он нормальный транслятор си-шарпа в яваскрипт сделал, но так тоже прикольно
Z>Не нужен такой транслятор. C# без фреймворка менее удобен чем javascript, а фреймворк нормально не перенесешь.
Нужен, когда хочется зашарить код между сервером, десктопным клиентом и вебом (писать сервер и десктоп на js не предлагать)
Здравствуйте, Евгений Акиньшин, Вы писали:
ЕА>Нужен, когда хочется зашарить код между сервером, десктопным клиентом и вебом (писать сервер и десктоп на js не предлагать)
<troll mode>
А как же новая технология нодежээс?
</troll mode>
ЕА> По мне, так лучше бы он нормальный транслятор си-шарпа в яваскрипт сделал, но так тоже прикольно
Возможно это очередной шаг к закату .net, c# -> js самое очевидное решение, но похоже они осознанно хотят сделать отдельную инфраструктуру. Metro, note.js как замена asp.net
Так же не понятно, Хейлсберг все уже сделал что хотел с C# или у него времени хватает что бы заниматься двумя языками?
Здравствуйте, Jack128, Вы писали:
J>Здравствуйте, Евгений Акиньшин, Вы писали:
ЕА>>По мне, так лучше бы он нормальный транслятор си-шарпа в яваскрипт сделал, но так тоже прикольно
J>в данном случае у них упор на похожесть с JS. Всякие дженерики, оверлоады и тд вещи присущие стат. типизированным языкам — чужды джава скрипту и потому при трансляции того же C# в JS получается каша. J>А вот TypeScript типа как спецом разрабатывается для абсолютно прозрачной трансляции в JS.
Да понял я, почему они так сделали. Еще для нативного использования уже написанных библиотек и кода на js
Но с аргументами на счет каши не согласен. Ну то есть натурально конечно каша получается, но туда смотреть не обязательно, зато можно писать на высокоуровневом языке и код шарить. Мы вот Script# вполне успешно в нескольких проектах использовали, но напрягает, что там только подмножество си-шарпа реализовано.
Здравствуйте, Евгений Акиньшин, Вы писали:
ЕА>Но с аргументами на счет каши не согласен. Ну то есть натурально конечно каша получается, но туда смотреть не обязательно, зато можно писать на высокоуровневом языке и код шарить.
Ну вот тут и начинается холливар. Ты не согласен, кто то согласен.
ЕА>Мы вот Script# вполне успешно в нескольких проектах использовали, но напрягает, что там только подмножество си-шарпа реализовано. http://www.saltarelle-compiler.com/
Здравствуйте, Евгений Акиньшин, Вы писали:
ЕА>Здравствуйте, Jack128, Вы писали:
J>>Здравствуйте, Евгений Акиньшин, Вы писали:
ЕА>Но с аргументами на счет каши не согласен. Ну то есть натурально конечно каша получается, но туда смотреть не обязательно, зато можно писать на высокоуровневом языке и код шарить. Мы вот Script# вполне успешно в нескольких проектах использовали, но напрягает, что там только подмножество си-шарпа реализовано.
http://sharpkit.net/ смотрели? Он практически весь C# поддерживает, и несколько популярных фреймворков, включая ExtJS. К тому же активно развивается в отличие от Script#.
Здравствуйте, sergeyt4, Вы писали:
S>Здравствуйте, Евгений Акиньшин, Вы писали:
ЕА>>Здравствуйте, Jack128, Вы писали:
J>>>Здравствуйте, Евгений Акиньшин, Вы писали:
ЕА>>Но с аргументами на счет каши не согласен. Ну то есть натурально конечно каша получается, но туда смотреть не обязательно, зато можно писать на высокоуровневом языке и код шарить. Мы вот Script# вполне успешно в нескольких проектах использовали, но напрягает, что там только подмножество си-шарпа реализовано.
S>http://sharpkit.net/ смотрели? Он практически весь C# поддерживает, и несколько популярных фреймворков, включая ExtJS. К тому же активно развивается в отличие от Script#.
Когда-то давно смотрели, уже не помню, почему не подходил. Надо будет новую версию глянуть
Здравствуйте, Евгений Акиньшин, Вы писали:
ЕА>Типизированный Superset javascript от Андерса Хейлсберга,
ЕА>- компилируется в javascript ЕА>- типизация, классы, интерфейсы, наследование, модульность ЕА>- компилятор написан на нем самом ЕА>- полная поддержка в Visual Studio
ЕА>http://www.typescriptlang.org/ ЕА>http://channel9.msdn.com/posts/Anders-Hejlsberg-Introducing-TypeScript
ЕА>По мне, так лучше бы он нормальный транслятор си-шарпа в яваскрипт сделал, но так тоже прикольно
Почему-то все забывают про отладку таких проектов. Пробовал ли кто-нибудь реально это делать? Я пробовал. Не понравилось. А работа с большими фреймворками типа ExtJS — кто будет вам interop-ы писать и поддерживать?
В общем, мы пришли к тому что, проще забить на все эти кросс-компилеры и писать на чистом JS (с помощью хорошей IDE, разумеется). По крайней мере, пока браузеры не начнут нативно поддерживать C# в качестве скриптового языка (уж не для этого ли делают проект Roslyn?)
Здравствуйте, Jack128, Вы писали:
J>Здравствуйте, Евгений Акиньшин, Вы писали:
ЕА>>Но с аргументами на счет каши не согласен. Ну то есть натурально конечно каша получается, но туда смотреть не обязательно, зато можно писать на высокоуровневом языке и код шарить. J>Ну вот тут и начинается холливар. Ты не согласен, кто то согласен.
Ну так тема холиварная
ЕА>>Мы вот Script# вполне успешно в нескольких проектах использовали, но напрягает, что там только подмножество си-шарпа реализовано. J>http://www.saltarelle-compiler.com/
Ага, знаю — но там тоже есть некоторые ограничение по языку, сам не щупал, но мои сотрудники пробовали, сказали компилятор еще сырой, много ошибок
Здравствуйте, Евгений Акиньшин, Вы писали:
ЕА>Здравствуйте, Jack128, Вы писали:
ЕА>Но с аргументами на счет каши не согласен. Ну то есть натурально конечно каша получается, но туда смотреть не обязательно, зато можно писать на высокоуровневом языке и код шарить.
Код то можно шарить, но только скрипт шарповский. А вот если тайп скрипт взлетит, то если я напишу на нем очередную деревяшку на jQuery, то этим кодом смогут воспользоваться любой JS-программист. и даже подправить под себя. В случае Script# и ежи с ними — возникнут проблемы из-за генерируемой каши.
Здравствуйте, Евгений Акиньшин, Вы писали:
ЕА>Нужен, когда хочется зашарить код между сервером, десктопным клиентом и вебом (писать сервер и десктоп на js не предлагать)
А много такого кода-то? Обычно кажется, что много, но начинаются нюансы. В итоге тащим и поддерживаем не шибко беспроблемный инструмент, затачиваем инфраструктуру под него, а выхлоп сравним с ручной копипастой или самописным генератором.
Здравствуйте, Ziaw, Вы писали:
Z>Здравствуйте, Евгений Акиньшин, Вы писали:
ЕА>>Нужен, когда хочется зашарить код между сервером, десктопным клиентом и вебом (писать сервер и десктоп на js не предлагать)
Z>А много такого кода-то? Обычно кажется, что много, но начинаются нюансы. В итоге тащим и поддерживаем не шибко беспроблемный инструмент, затачиваем инфраструктуру под него, а выхлоп сравним с ручной копипастой или самописным генератором.
Беда не в том, что много, а в том, что необходимо следить за тем, что при изменении логики в одном месте, не забыть исправить все копипасты. А самописные генераторы очень быстро стремятся превратиться в полноценный язык, поддержка которого слишком дорога в рамках среднего проекта.
Здравствуйте, Евгений Акиньшин, Вы писали:
ЕА>Беда не в том, что много, а в том, что необходимо следить за тем, что при изменении логики в одном месте, не забыть исправить все копипасты. А самописные генераторы очень быстро стремятся превратиться в полноценный язык, поддержка которого слишком дорога в рамках среднего проекта.
Следить могут тесты. А полноценный язык не такая уж страшная штука, обычно общая логика это валидаторы, их как раз лучше всего описывать декларативно и генерировать код на всех нужных языках.
Здравствуйте, Евгений Акиньшин, Вы писали:
ЕА>Но с аргументами на счет каши не согласен. Ну то есть натурально конечно каша получается, но туда смотреть не обязательно, зато можно писать на высокоуровневом языке и код шарить. Мы вот Script# вполне успешно в нескольких проектах использовали, но напрягает, что там только подмножество си-шарпа реализовано.
Ого, таки Script# живет. Совершенно случайно обнаружил его следы в SharePoint 2012, конкретно в ректоре страниц и веб-частей, был удивлен.
Здравствуйте, Lazin, Вы писали:
L><troll mode> L>А как же новая технология нодежээс? L></troll mode>
Технология не так плоха, как многие малюют. Но большие проекты требуют лучшего контроля кода при внесении изменений, которую как раз дают типы. Впрочем, Хейлсберг зря пошел по пути номинативной типизации, когда js явно заточен под структурную. В данном случае упоминаемый тут Roy гораздо приятнее.
Z>+1 с хорошими библиотеками он довольно приятен, хоть и остается слегка многословен. Я сейчас пользуюсь coffescript который просто убирает ненужный синтаксический оверхед, оставляя все прелести метапрограммирования (которые и делают этот язык приятным, позволяя создавать отличные фреймворки).
A>>А еще поддержка асинхронности и много чего, но что имеем то имеем Z>Асинхронность через deffered уже достаточно неплохо выглядит,
За deffered спасибо, не знал про него. Мы свои вело комбинаторы написали .
Z>любая поддержка будет просто сахаром над этим механизмом (как сделано в C#).
Этот сахар ощутимо повышает эффективность, особенно для новичков. И для этого уже есть надстройки над js streamlinejs и пр.
Здравствуйте, gandjustas, Вы писали:
A>>Ого, таки Script# живет. Совершенно случайно обнаружил его следы в SharePoint 2012, конкретно в ректоре страниц и веб-частей, был удивлен. G>По словам сотрудников MS сам MS активно юзает Script# в различных продуктах. Вся клиентская объектная модель SharePoint на нем сделана. Вот только референсные сборки от нее не дали.
Здравствуйте, gandjustas, Вы писали:
A>>Ого, таки Script# живет. Совершенно случайно обнаружил его следы в SharePoint 2012, конкретно в ректоре страниц и веб-частей, был удивлен.
G>По словам сотрудников MS сам MS активно юзает Script# в различных продуктах. Вся клиентская объектная модель SharePoint на нем сделана. Вот только референсные сборки от нее не дали.
Нахрена было выпускать typescript если был вроде как хороший script# ?
Шота мне кажется, одно из этих двух точно издохнет
Здравствуйте, Ikemefula, Вы писали:
I>Здравствуйте, gandjustas, Вы писали:
A>>>Ого, таки Script# живет. Совершенно случайно обнаружил его следы в SharePoint 2012, конкретно в ректоре страниц и веб-частей, был удивлен.
G>>По словам сотрудников MS сам MS активно юзает Script# в различных продуктах. Вся клиентская объектная модель SharePoint на нем сделана. Вот только референсные сборки от нее не дали.
I>Нахрена было выпускать typescript если был вроде как хороший script# ?
Видимо потому что typescript это типизированный JS, а Script# — C#.
I>Шота мне кажется, одно из этих двух точно издохнет
Мне кажется что будут спокойно сосуществовать, другие дело что чем больше людей будет знать JS, тем меньше потребность в Script#. TypeScript тут не при чем.
Здравствуйте, gandjustas, Вы писали:
G>>>По словам сотрудников MS сам MS активно юзает Script# в различных продуктах. Вся клиентская объектная модель SharePoint на нем сделана. Вот только референсные сборки от нее не дали.
I>>Нахрена было выпускать typescript если был вроде как хороший script# ? G>Видимо потому что typescript это типизированный JS, а Script# — C#.
Это как понимать, целевая аудитория не знает и не хочет знать C# ? Или может Script# дает на выходе грязный JS ?
Здравствуйте, Ikemefula, Вы писали:
I>Здравствуйте, gandjustas, Вы писали:
G>>>>По словам сотрудников MS сам MS активно юзает Script# в различных продуктах. Вся клиентская объектная модель SharePoint на нем сделана. Вот только референсные сборки от нее не дали.
I>>>Нахрена было выпускать typescript если был вроде как хороший script# ? G>>Видимо потому что typescript это типизированный JS, а Script# — C#.
I>Это как понимать, целевая аудитория не знает и не хочет знать C# ? Или может Script# дает на выходе грязный JS ?
Целевая аудитория чего? Script# как раз для программистов на C# создавался. А TypeScript для программистов на JS. То что пресечение множеств непустое не имеет значения.
Здравствуйте, gandjustas, Вы писали:
I>>Это как понимать, целевая аудитория не знает и не хочет знать C# ? Или может Script# дает на выходе грязный JS ?
G>Целевая аудитория чего? Script# как раз для программистов на C# создавался. А TypeScript для программистов на JS. То что пресечение множеств непустое не имеет значения.
Целевая аудитория TypeScript. То есть, типичный JS-программист не хочет связываться с С#.
Здравствуйте, Ikemefula, Вы писали:
I>Здравствуйте, gandjustas, Вы писали:
I>>>Это как понимать, целевая аудитория не знает и не хочет знать C# ? Или может Script# дает на выходе грязный JS ?
G>>Целевая аудитория чего? Script# как раз для программистов на C# создавался. А TypeScript для программистов на JS. То что пресечение множеств непустое не имеет значения.
I>Целевая аудитория TypeScript. То есть, типичный JS-программист не хочет связываться с С#.
Это твое утверждение или логический вывод? В обоих случаях в корне лежит необоснованные доводы.
Здравствуйте, gandjustas, Вы писали:
G>>>Целевая аудитория чего? Script# как раз для программистов на C# создавался. А TypeScript для программистов на JS. То что пресечение множеств непустое не имеет значения.
I>>Целевая аудитория TypeScript. То есть, типичный JS-программист не хочет связываться с С#.
G>Это твое утверждение или логический вывод? В обоих случаях в корне лежит необоснованные доводы.
Это я хочу выяснить, что кроется под мантрой "JS это JS, а С# это C#"/
Здравствуйте, sergeyt4, Вы писали:
S>Почему-то все забывают про отладку таких проектов. Пробовал ли кто-нибудь реально это делать? Я пробовал. Не понравилось. А работа с большими фреймворками типа ExtJS — кто будет вам interop-ы писать и поддерживать?
Как минимум в хроме можно отлаживаться по коду TypeScript.
В TypeScript есть аналог плюсовых хэдеров. Пощупать еще не успел, но как минимум заявлялось. И, если не ошибаюсь, сразу дали хэдеры для JQuery.
S>В общем, мы пришли к тому что, проще забить на все эти кросс-компилеры и писать на чистом JS (с помощью хорошей IDE, разумеется). По крайней мере, пока браузеры не начнут нативно поддерживать C# в качестве скриптового языка (уж не для этого ли делают проект Roslyn?)
это вам еще лет 10 ждать. Потом, по идее, должно надоесть ждать.
Здравствуйте, Ziaw, Вы писали:
Z>Технология не так плоха, как многие малюют. Но большие проекты требуют лучшего контроля кода при внесении изменений, которую как раз дают типы. Впрочем, Хейлсберг зря пошел по пути номинативной типизации, когда js явно заточен под структурную. В данном случае упоминаемый тут Roy гораздо приятнее.
Хейлсберг вроде как пошел по пути структурной типизации
Здравствуйте, Ikemefula, Вы писали:
I>Хейлсберг вроде как пошел по пути структурной типизации
Ввел интерфейсы? Молодец, что пошел. Не стал справлять нужду против ветра. Язык становится интересным, хотя и многословным. Вот его бы с кофескрипт скрестить, получится то, о чем я мечтал полтора года назад
Здравствуйте, Ziaw, Вы писали:
I>>Хейлсберг вроде как пошел по пути структурной типизации
Z>Ввел интерфейсы? Молодец, что пошел. Не стал справлять нужду против ветра. Язык становится интересным, хотя и многословным. Вот его бы с кофескрипт скрестить, получится то, о чем я мечтал полтора года назад
Здравствуйте, Ikemefula, Вы писали:
I>Язык намного компактнее чем JS, благодаря выводу типов аннотации нужны довольно редко + есть сахар для многих вещей.
За счет чего компактнее, да еще и намного? Мне правда интересно, я все никак не могу им нормально проникнуться. Где описание языка? Где почитать про этот самый сахар для многих вещей?