Pull to refresh

Comments 67

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

Открытый и доступный код, Apache 2 license, компилятор для node.js… казалось бы, при чем тут Microsoft?

Количество сторонних библиотек для Dart в несоизмеримо меньшем числе чем для JS, но язык и инструменты прилагающиеся к нему настолько хороши, что за новыми проектами не заржавеет.

Дада, а отклоненный вами TypeScript просто умеет использовать существующие JS-библиотеки (через простенький адаптер, который можно написать и самому).

Так у кого печеньки?
Открытый и доступный код, Apache 2 license, компилятор для node.js… казалось бы, при чем тут Microsoft?

Dart опубликован под BSD лицензией, я не нахожу эту лицензию существенно хуже чем Apache 2. Компилятор под Node.js это хорошо, но как это поможет с клиентской частью приложения?
Дада, а отклоненный вами TypeScript просто умеет использовать существующие JS-библиотеки

Здесь вы можете взять библиотеку для Dart которая поможет взаимодействовать с JS библиотеками.
Выбор Dart или TypeScript это исключительно дело вкуса. Мне понравился Dart, но это не значит что TypeScript хуже, я даже не считаю что JS хуже, просто на мой взгляд Dart немного удобнее.
как это поможет с клиентской частью приложения?

Компилируйте в js, и будет вам счастье.

Мне понравился Dart, но это не значит что TypeScript хуже, я даже не считаю что JS хуже, просто на мой взгляд Dart немного удобнее.

Тем не менее вы какие-то очень уж странные критерии выбора озвучиваете.
Для вас странные критерии выбора, для меня нет. Для меня главным критерием выбора была следующая запись:
int a = 0;
вместо
var a:int =0;
Я программирую большую часть времени на AS3, но второй вариант записи мне нравится меньше. Еще раз повторюсь, данный выбор — дело вкуса, кому-то ничего ближе JS нет и для него что Dart, что TypeScript это не более чем баловство.
А озвучили вы критерии «Microsoft, который разрабатывает этот язык, очень любит играть в одни ворота» и «пошаговая отладка кода, это сокровище для начинающих программистов» (в том числе).
Разве я соврал? Хотя бы DirectX, нигде кроме продуктов Microsoft он не работает.
А пошаговая отладка кода, которая запускается прямо из IDE на мой взгляд это очень удобно.
Разве я соврал?

В отношении TS — да. Microsoft вообще сейчас очень активно открывает свои разработки, особенно в части веба.

А пошаговая отладка кода, которая запускается прямо из IDE на мой взгляд это очень удобно.

… и Dart, честное слово, не эксклюзивный обладатель этой возможности.
Признаю свою ошибку, постараюсь в будущем проверять каждое своё слово.
Если вы свою ошибку признали, может и статью поправите?
Вы наверное пропустили то, что это немного разные вещи. TypeScript по сути синтаксический сахар для js, и все его прелести заканчиваются после «компиляции» в js. Для Dart'а же компиляция в js это временное средство. Это если в общем, а если углубится в детали, то они вообще не похожи, ни по целям, пи ро текущей реализации.
Нет ничего более постоянного, чем временно :)
Dart в контексте JS не имеет ни малейшего смысла. Для этого есть CoffeScript и TypeScript. Dart VM отличная вещь, с очень высокой производительностью, если ее не включать в браузеры, то языку прямая дорога на сервера взамен v8 и на андроиды в дополнение к Джаве, ну или на свалку истории :)
А с какого перепугу его будут включать куда-то кроме хрома?
Ну не обязательно гугловскую реализацию, производители браузеров могут свою написать. Более того, если я не ошибаюсь, то Dart VM лицензируется под BSD, так что проблем никаких ни у кого нету. Это вопрос того, выстрелит или нет сам язык.
Dart двигается только гуглом, зачем он нужен другим вендорам? Зачем к примеру включать VM Дарта Мозиле? ЧТо бы Firefox еще больше оперативки стал жрать?
А почему бы тогда сразу VM Java не включить в браузер?
Насколько я помню для Mozilla — Google основной спонсор так что если дойдет до дела я уверен что они смогут договориться.
Google никакой не спонсор для Mozilla, они им деньги платят за переходы. Это здоровые торговые отношения.
С того момента, когда Гугл Мозиллу спонсировал много лет прошло. Сейчас есть только плата за переходы. Так же Гугл платит за переходы Опере и другим браузерам.
Ну а зачем включили WebRTC, VP8 и SPDY? Это все требование времени, будут хорошо видны серьезные плюсы — включат и никуда не денутся.
Я в курсе. Теперь расскажите это автору поста, который их ставит на одну полку.
Так и не понял в чем прелесть и красота в сравнении с JS. Даже банально вот такая вещь:

gl = (canvas.getContext("webgl")!=null)?canvas.getContext("webgl") :  
canvas.getContext("experimental-webgl");


в JS выглядела бы намного няшней:
gl = canvas.getContext("webgl")  || canvas.getContext("experimental-webgl");

Здесь красоты не будет, она будет когда реальную игру будут писать, в функции main будет только браться канвас и отдаваться в класс Game. На этом работа с HTML будет окончена. А внутри класса игры уже будет логика всякая, классы, методы…
Только вот от OpenGL никуда не денешься. Он нечитабелен в любом языке. Поэтому следует подождать пока напишут какой-нибудь игровой движок на дарте.
Все тоже самое можно сделать и JS, так что опять таки не понимаю подобного аргумента. Говорю не голословно, знаю людей, которые работают над JS проектами в 10к+ строк и особо проблем никаких не испытывают. Сам нахожусь в их числе.
Вы проблем не испытываете потому, что уже привыкли писать на JS, попробуйте написать крупный проект на C# и поймёте в чем разница. Или попробуйте разобраться в чужом коде крупного проекта. Типизация делает своё дело, она не творит волшебство, но ускоряет разработку и отладку.
3 года работал и над крупным проектом на C#, последние полгода переключился на JS. Хорошие IDE вполне адекватно умеют всю навигацию по JS-коду и без интроспекции (которая и позволяет в шарпе так хорошо работать автокомплиту и навигации). В конце-концов, люди десятилетиями писали и продолжают писать на тех же C/C++, где с навигацией по коду все те же проблемы что и в JS (в силу отсутствия метаданных) и все живы здоровы. Что касается статического анализа — тут в JS вам опять таки помогут, например, JSLint + юнит-тестирования. От семантических же ошибок не спасет и полноценный компилятор. Ну а то, что кто-то не в силах приспособиться к инструменту, принять его слабые стороны, уметь их невелировать и брать на вооружение сильные, говорит лишь о профессиональной компетенции этой личности. Такие дела.
Вы проблем не испытываете потому, что уже привыкли писать на JS, попробуйте написать крупный проект на C# и поймёте в чем разница.

А вы проблемы испытываете потому что привыкли писать на C#. Я пишу в команде крупную игру на JS+AtomJS+LibCanvas и не испытываю сложностей из-за отсутствия типизации. TypeScript — это вообще костыль редкостный. Всё-равно что в Мерседес рыгач переключения передач с розочкой ставить
Что бы ваше заявление не было голословным приведите аргументы почему «TypeScript — это вообще костыль редкостный»
А потому что единственное, что он меняет — это «классы», которые в JS и так есть и типизацию, которая в JS и так есть, пусть и другая. В нём смысла как в розочке — «ценителям» кажется красивее. Только сложнее поддерживается, меньше специалистов и люди, которые серьёзно заняты JSом считают это баловством.
«и люди, которые серьёзно заняты JSом считают это баловством» — еще одно голословное утверждение. Ради интереса почитайте это.
Мне кажется вы не совсем верно воспринимаете назначение TypeScript. По большей части это действительно просто синтаксический сахар. Но с другйо стороны хорошее прототипирование, и использование этого синтаксического сахара, позволит отловить много ошибок на этапе компиляции в JS.
Плюс, вам никто не мешает писать чистый JS в TypeScript.
Не совсем понятно, почему вы считаете что TypeScript сложнее поддерживается.
Не совсем понятно, почему вы считаете что TypeScript сложнее поддерживается.

Потому что это лишний ненужный уровень абстракции.
Почему не нужный? Если вы не понимаете какие плюсы может дать статическая типизация и интерфейсы, то это еще не значит что это ненужный уровень абстракции. Пойдите джавистам расскажите, что у них пол языка это ненужный уровень абстракции.
Эти самые джависты перейдя на JavaScript написали 100500 реализаций классов на JavaScript-е, потому что им прототипы не угодили.

Вот для них то Дарт с TypeScript-ом и сделали.
А пошаговая отладка кода, это сокровище для начинающих программистов.

Только сейчас заметил. А что, в JS нет пошаговой отладки кода?
Есть. Отладчик в ie очень выручал, когда неожиданно наступал на очередные аккуратно расставленные Microsoft грабли.
Вот и мне казалось, что есть. Настолько казалось, что я ей пользуюсь с завидной регулярностью.
Я немного неточно выразился. В Dart есть пошаговая отладка кода прямо из IDE, для этого не надо запускать сторонних инструментов.
В JS тоже есть.
UFO just landed and posted this here
WebStorm просить деньги за себя, хотя цена копеечная, но халява в виде Dart Editor греет душу. WebStorm в целом сильно сглаживает недостатки JS.
WebStrom — инструмент для работы. Странно, зарабатывая при его помощи деньги не заплатить разработчикам за прекрасную IDE. Для opensource-проектов он вообще бесплатен.

Я за всю жизнь купил две программы — Касперского (я параноик) и PHPStorm. :)
Полностью с вами согласен, WebStorm стоит гораздо больше чем за него просят.
В том что Вы сидите на пиратской ОС, особо гордиться не чем.
Винду я всегда хотел купить, только никак денег не хватало. Абсурдная ситация, куча людей плюется от винды, однако используют взломанную версию и ни на что другое не уходят.

Я, кстати, не ставил активатор. Честно терплю напоминания о необходимости покупки.
Ну а у меня по DreamSpark есть ключики ко многим продуктам MS. Судя по вашему возрасту — вы тоже студент и имеете право попросить
вот это все
:-)
Hint: у JetBrain-овских IDE часто есть Early Access Program и Community Edition-ы.
Во всех вебкитах встроенный пошаговый отладчик.
«К тому же Google разрабатывает VirtualMachine для Dart, что в перспективе может дать значительное преимущество в производительности этого языка.»

Эээ, когда это Гугл славился разработкой виртуальных машин и компиляторов? Это как раз вотчина MS.
Ну, если жить в 2009-ом, то да. Но тогда MS этим и не занимался особо, в то время как для Гугла это было приоритетное направление.

А сегодня все далеко не так однозначно:
www.zdnet.com/the-big-browser-benchmark-all-the-latest-browsers-tested_p2-7000007401/

Что ещё есть кроме V8?
Я долго сочинял вам в ответ комментарий, но бросил эти тщетные попытки, в силу того, что не очень улавливаю смысла этой дискуссии.
Если Вам мало V8 и Go, то есть еще GWT, Closure.
Где у Гоу виртуальная машина? Это компилируемый в бинарник язык.
Эээ, когда это Гугл славился разработкой виртуальных машин и компиляторов?
Если я верно понял, то TypeScript это исключительно надстройка над JS, т.е. TypeScript будет работать с той же скоростью что JS или медленнее. Dart в свою очередь может заработать однажды быстрее. Сейчас же что TypeScript, что Dart это всего-лишь удобочитаемый код на этапе разработки.
TypeScript имеет смысл сравнивать с Java/GWT, хотя GWT это все таки несколько более широкий инструмент, за счет интеграции с серверной частью, в этом плане он будет похож на js + Node.js.
>TypeScript будет работать с той же скоростью что JS или медленнее
А вот тут вы не совсем правы. TypeScript генерирует код который легче оптимизировать(к примеру массивы из элементов одного типа, локальные переменные которые не меняют свой тип, более предсказуемые бренчи исполнения) и соответственно TypeScript код будет быстрее «обычного» JS т.к. играет по правилам оптимизатора который компилирует JS.
Так. А зачем же тогда гугловский Native Client нужен, если будет Dart? Развивали бы лучше его.
Слава богу для веба сделали еще один язык с немного другим синтаксисом.
Теперь-то будем, наконец, делать хорошие веб-приложения!
> напоминает жизнь Энакена Скайуокера
ЭнакИн вообще-то :)

> Печеньки на стороне Dart и вскоре он станет властелином всего интернета.
Вам кажется. Ну, собственно, выше уже сказали.

> status.innerHtml = 'Добро пожаловать в мир Dart.'
Вообще-то innerHTML.
Sign up to leave a comment.

Articles