Компания Google анонсировала (http://blog.chromium.org/2013/12/ecma-forms-tc52-for-dart-st...) начало работ по приданию языку Dart (https://www.dartlang.org/) статуса международного стандарта. В рамках ассоциации Ecma International (http://www.ecma-international.org/), занимающейся стандартизацией информационных и коммуникационных технологий, уже сформирован специальный технический комитет TC52 (http://www.ecma-international.org/memento/TC52.htm), который займётся подготовкой спецификаций, стандартизирующих синтаксис и семантику языка, а также состав базовых библиотек и сопутствующих языку технологий.Сообщается, что стандартизация Dart подразумевает предоставление всех связанных с разработкой патентов в безвозмездное использование, не требующее оплаты отчислений (royalty free). В дополнение к спецификациям планируется подготовить тестовый набор, который сможет быть использован для проверки корректности соответствия различных реализаций Dart требованиям стандарта. Председателем комитета избран Андерс Сэндгольм (Anders Sandholm), лидер команды разработчиков Dart.
По мнению компании Google недавний выпуск (http://www.opennet.me/opennews/art.shtml?num=38432) Dart SDK 1.0 ознаменовал стабилизацию разработки и готовность для повсеместного использования и стандартизации. Придание Dart статуса стандарта Ecma позволит расширить область использования языка и ускорить обеспечение его поддержки в имеющихся на рынке браузерах и продуктах. Выбор Ecma International в качестве стандартизирующей организации обусловлен тем, что данная ассоциация уже развивает близкие к специфике Dart стандарты для языков JavaScript, Eiffel и C#.Напомним, что Dart позиционируется как язык структурированного программирования для Web, который в долгосрочной перспективе может стать прогрессивной заменой JavaScript, решающей имеющиеся в настоящее время проблемы с расширяемостью, производительностью и поддержкой разработки сложных приложений. Язык обладает похожим на Java синтаксисом, не требует явного определения типов и может использоваться для создания серверных и клиентских приложений. Для запуска внутри браузера код на языке Dart может быть преобразован в JavaScript-представление или запущен напрямую под управлением специального JavaScript-интерпретатора Dartboard. Поддерживается (http://www.dartlang.org/articles/embedding-in-html/) встраивание кода на языке Dart в HTML-страницы, используя mime-тип "application/dart". На стороне сервера приложение на языке Dart может быть выполнено внутри специальной виртуальной машины, которая обеспечивает производительность выполнения близкую к компилируемым в машинный код языкам. Виртуальную машину Dart планируется интегрировать в будущие версии браузера Chrome, что позволит выполнять приложения на языке Dart без компиляции в JavaScript.
Особенности языка Dart:- Привычный и простой для изучения синтаксис, естественный для программистов на JavaScript, Си и Java.
- Обеспечение быстрого запуска и высокой производительности для всех современных web-браузеров и различных типов окружений, от портативных устройств до мощных серверов;
- Возможность определения классов и интерфейсов, позволяющих использовать инкапсуляцию и повторно использовать существующие методы и данные;
- Необязательное указание типов, использовать или нет статические типы решает разработчик. Указание типов позволяет упростить отладку и выявление ошибок, делает код более ясным и читаемым, упрощает его доработку и анализ сторонними разработчиками.
- Среди поддерживаемых типов: различные виды хэшей, массивов и списков, очереди, числовые и строковые типы, типы для определения даты и времени, регулярные выражения (RegExp). Возможно создание своих (http://www.dartlang.org/articles/optional-types/) типов;
- Для организации параллельного выполнения предлагается использовать классы с атрибутом isolate, код которых выполняется полностью в изолированном пространстве в отдельной области памяти, взаимодействуя с основным процессом через отправку сообщений;
- Поддержка использования библиотек, упрощающих поддержку и отладку больших web-проектов. Сторонние реализации функций могут подключаться в виде разделяемых библиотек. Приложения можно разбить на части и поручить разработку каждой из частей отдельной команде программистов;- Набор готовых инструментов для поддержки разработки на языке Dart, включая реализацию средств динамической разработки и отладки с исправлением кода на лету ("edit-and-continue");
- Возможность создавать однородные системы, охватывающие как клиентскую, так и серверную часть. Использование одного языка и инструментария для клиентских и серверных компонентов упрощает процесс кодирования и избавляет от постоянной смены контекста.URL: http://blog.chromium.org/2013/12/ecma-forms-tc52-for-dart-st...
Новость: http://www.opennet.me/opennews/art.shtml?num=38656
а go когда стандартизируют?
go ещё не стабилизировался, постоянно новые фишки, поэтому разумнее подождать пару лет
синтаксис Go уже вполне стабилен и предсказуем, а новые фишки сводятся или к допиливанию уже существующих вещей вроде планировщика горутин, или добавлению чего-нибудь в прикладную библиотеку
Это Rust нифига не стабилизирован, а не Go. Он стабилен, а новые версии совместимости не ломают, а по большей части добавляют какие-то новые библиотеки или не очень нужные (в смысле для большей части задач) возможности.
Самое главное не понятно, что будет с Go если/когда Dart наберет обороты как серверный язык.
Самое прикольное - что благодаря вашей же собственной парадигме о свободе выбора, языки будут плодиться и множиться. То по принципу NIH, то по принципу "одному нравится поп, другому попадья а третьему свиной хрящик".
А что плохого во множестве языков программирования? Если их создают, значит, они нужны, так?
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>---.+++++++.-------.>+++...>.
Существование брейнфака как-то мешает вам программировать?
<?php
echo 'Hello world!';
А ведь популярный язык ;-)
Среди тех, кто забывает теги закрывать
К сожалению, не все понимают, что разработать хороший ЯП намного сложнее, чем хорошую программу. А когда за это берется комитет, вспоминается шутка про верблюда.
Ну вот поэтому пусть их будет побольше, что-нибудь да окажется толковым. А там рынок решит, что нужнее.
> К сожалению, не все понимают, что разработать хороший ЯП намного сложнее, чем
> хорошую программу. А когда за это берется комитет, вспоминается шутка про
> верблюда.Да все это понимают.
Если язык плохой (какие вообще тут критерии?), но лучше других покрывает нужды конкретного разработчика, то почему бы ему не воспользоваться именно этим "плохим" языком?
Язык *уже* разработан. Задачей комитета является его стандартизация.Я не очень сложные слова использовал, ты можешь осилить *этот* текст без толкового словаря?
ничего он не наберет. По крайней мере - не с нынешними разработчиками, которые не только запилили для него редактор на платформе Eclipse, отжирающий по 500 метров оперативки при первом запуске, но и обозвали этот редактор легковесным
Приковать бы этим умникам с эклипсом к ноге пудовую гирю. И начать забег. "Налегке", ага.
http://plugins.jetbrains.com/plugin/6351 не?
А зачем стандартизировать язык, который не получил широкого распространения, не поддерживается нативно ни одним популярным бразуером и имеет одну единственную реализацию Dart SDK? Кто-то серьёзно задумывается о нём как о замене JavaScript?
языку только два года, подождите
Пока стандарта нет, никто его юзать не будет. Так как сегодня твой код работает корректно, а завтра что-то поменяют, и он будет работать иначе. Или, как в свое время, Miscrosoft делала свою java-машину, которая не соответствовала машине Sun, в итоге многие аплеты работали только на ее машине.
Многие? Если б многие, то у них бы выгорело. А оно у них тихо слилось вместо этого. Вот когда Java от Sun к Oracle перешла было забавно так-как Oracle прописали в новый дистрибутив, что оно Oracle Java… а быдлокодеры в старых апплетах проверяли наличие строки Sun, чтоб быть уверенными, что их код запускают на «правильной» Java-машине. -_-
> в старых апплетах проверяли наличие строки Sunэпический фэйл :) ... это же надо было додуматься до такого :)
> не поддерживается нативно ни одним популярным бразуеромБолее того, никто, кроме хрома, принципиально не собирается его поддерживать.
>> не поддерживается нативно ни одним популярным бразуером
> Более того, никто, кроме хрома, принципиально не собирается его поддерживать.хоть я и не особый сторонник Dart -- но хочу признать что работать он будет во всех браузерах.
где-то нативно, а где-то через Javascript...
и особо ни чего плохого в этом не будет (компы мощные щаз, всё потянут).
однако если вдруг случится ситуация что где-то кроме Google Chrome встроят ТОЖЕ НАТИВНУЮ поддержку Dart, и если вдруг она окажется не совместимой -- то вот смеху то будет :)
Это коронная фишка ИТ: пишешь любую ахинею (или не ахинею, это не важно), создаёшь НКО, твоя НКО называет твою ахинею "стандартом", ты и твоё НКО начинают PR и форсинг "стандарта" на всех открытых ресурсах. С учётом того, что журналисты не в теме, а большинство интернет-пользователей (вкл. ИТ-"специалистов") верят поисковикам и википедии больше, чем самим себе, то "стандартом" будет тот, кто кричит громче.Крупная компания знает как из популярности и известности сделать деньги.
> твоя НКО называет твою ахинею "стандартом"точно. ток не "стандартом", а "будущим стандартом" (так лучше.. типа "готовтесь ребята уже сегодня к будущему стандарту").
собственно так и появился на свет JavaScript))
Не понимаю концептуального отличия его от JS. Да, там есть много всяких плюшек, которые хотелось бы иметь и в JS, но не лучше и проще было бы запилить новый стандарт JS?
с чистого листа всегда приятно начать
JS => Dart = google
Java => Ceylon = redhat
JS должен умереть
Тебе хочется заниматься обратной совместимостью? Вот и им не хочется. В вебе вот так просто deprecated на старые ненужные фичи (eval() -_-) не повесишь и ещё сложнее их потом будет выпилить, а потому проще создать новый язык, чем исправить старый. Такие дела.
> В вебе вот так просто deprecated на старые ненужные фичи (eval() -_-) не повесишькстате.. а как же
event.preventDefault()
???теперь оно deprecated , и что будет с кучей сайтов я даже не знаю.
теперь надо пейсать
event.defaultPrevented = true
Это jQuery, а не JavaScript и штатные браузерные API. Хочешь писать event.preventDefault() — сиди на старой версии либы и не обновляйся. Зайди на любой сайт с jQ и посмотри — все и всегда (ну кроме совсем бешеных) линкуют себе конкретную версию jQ, а не самую свежую.
Причём функция стала не нужна потому, что в браузерах появилась собственная реализация через свойство. Сейчас нормальные веб-девелоперы вообще стараются не пользоваться jQ так-как появились нормальные API в браузерах.А вот если из JS выпилить тот же eval() (аналогов которого в Dart'е попросту нет) то сломается очень много чего и где. Причём буквально везде написано, что eval это опечатка от evil, но разве ж кто-то слушает? На какой второсортный сайт ни зайди — обязательно наткнёшься на eval(function(p,a,c,k,e,d){… или подобный идиотизм.
Это к вопросу обратной совместимости было, а не к вопросу джаваскрипта как такового.
Изменения в одной конкретной либе касаются лишь пользователей этой либы. Причём только тех, кто желает её обновить. А вот кардинальные изменения в JS приведут к тому, что придётся держать две версии JS или не получится реализовать всех задумок из-за необходимости поддерживать ненужный и несовместимый с новыми идеями функционал. Причём на новую версию будут материться все без исключения даже если она будет существенно лучше старой. Причём по-умолчанию движки JS должны будут работать в «старом» режиме, а на новый переключаться только если специально это указать. А вот если эту другую версию назвать иначе, то и проблемы нет. Вот Google и сделали другой JS с другим названием, чтоб революция прошла гладко и все остались довольны.
>Изменения в одной конкретной либе касаются лишь пользователей этой либы. Причём только тех, кто желает её обновить.Изменения в одном конкретном браузере касаются лишь пользователей этого браузера. Причём только тех, кто желает его обновить.
>А вот кардинальные изменения в JS приведут к тому, что придётся держать две версии JS или не получится реализовать всех задумок из-за необходимости поддерживать ненужный и несовместимый с новыми идеями функционал.
Дарт эту проблему не решает. Если я ничего не путаю, то прямо сейчас в клоуниуме есть и JS, и сам дарт. Точно такая же ситуация.
>Вот Google и сделали другой JS с другим названием, чтоб революция прошла гладко и все остались довольны.
С какого перепугу-то она гладко пройдет?
> Изменения в одном конкретном браузере касаются лишь пользователей этого браузера. Причём
> только тех, кто желает его обновить.Изменения в языке предполагают принятие нового стандарта, а это раньше или позже тянет за собой изменения во всех браузерах — новую версию стандарта со временем придётся поддерживать всем. Да и на старых версиях слишком долго не посидишь или придётся терпеть проблемы на разных сайтах. В то же время обновлять библиотеку на одном конкретном сайте без обновления кодовой базы сайта причин обычно крайне мало (разве что ставить обновления безопасности).
> Дарт эту проблему не решает. Если я ничего не путаю, то прямо
> сейчас в клоуниуме есть и JS, и сам дарт. Точно такая
> же ситуация.В том-то и соль, что два языка могут спокойно сосуществовать и параллельно развиваться сколь угодно долго, тогда как две разные версии одного языка будут только лишь мешать друг-другу. Это идеальный вариант обратной совместимости, когда новый несовместимый продукт выпускают отдельно.
> С какого перепугу-то она гладко пройдет?
Да, желающие устроить турнир в метании говен всегда найдутся, но это мелочи. А вот все старые скрипты как работали, так и будут работать, и не нужно будет ничего ломать и перекраивать в существующих JS-движках. Возможно лет через 20 JS совсем отомрёт, а может эволюционирует по-своему, а Dart просто не приживётся. Зато его всегда можно будет выкинуть со спокойной душой, если дела так пойдут.
>> Дарт эту проблему не решает. Если я ничего не путаю, то прямо
>> сейчас в клоуниуме есть и JS, и сам дарт. Точно такая
>> же ситуация.
> В том-то и соль, что два языка могут спокойно сосуществовать и параллельно
> развиваться сколь угодно долго, тогда как две разные версии одного языка
> будут только лишь мешать друг-другу. Это идеальный вариант обратной совместимости, когда
> новый несовместимый продукт выпускают отдельно.Приехали. А JS, значит, не развивается и сейчас в том же состоянии, в каком был на момент девяносто-какого-то там года? Раньше при выходе нового стандарта как-то никто никому не мешал, а сейчас вот вдруг помешает.
С чего вы вообще взяли, что новый гипотетический стандарт JS будет несовместим со старым?>> С какого перепугу-то она гладко пройдет?
> А вот все старые скрипты как работали, так и будут работать,
> и не нужно будет ничего ломать и перекраивать в существующих JS-движках.Во-первых, с чего вы решили, что для развития джаваскрипта в нем надо обязательно что-то сломать?
Во-вторых, моду задают не "JS-движки", а браузеры. Это быдлoкодеры подстраиваются под браузеры пользователей, а не наоборот. Как хром и файрфокс скажут: "вот у нас поддержка нового стандарта JS, а поддержку старого выкинем через N версий", так все и перепишут свои поделки под угрозой выпасть из интернета.
Я искренне не понимаю, почему вы на протяжении всей ветки так переживаете за eval и убогих, которые его используют. Никуда они не денутся с подводной лодки, перепишут.
> Приехали. А JS, значит, не развивается и сейчас в том же состоянии, в каком был на момент девяносто-какого-то там года?Развивается, конечно, но код написанный по стандартам живёт годами без изменений. Смысл в том, что в JS реализуют новый функционал стараясь не ломать старый, даже если он плох. Тут нет поля для серьёзных изменений. Можно наращивать API для решения разных задач, но особо не развернуться — обязательно сломаешь что-нибудь важное.
> С чего вы вообще взяли, что новый гипотетический стандарт JS будет несовместим со старым?
Мы тут о том, что наделали в Dart говорим, а там не только eval убрали. Они выкинули getElementsBy*, document.links/images/… и заменили весь этот зверинец двумя функциями querySelector/querySelectorAll (они есть и JS, но тут это всё, что есть и в принципе это всё, что нужно). Они привели к одному виду массивы и коллекции, которые возвращает DOM (что позволило выкинуть целую плеяду специфичных для них функций), да и DOM почистили и дали более лаконичные имена (HTMLElement стал Element, XMLHttpRequest стал HttpRequest, …). Вместо document.createElement() они сделали целую плеяду конструкторов для всех или почти всех элементов, возможных на странице (new DivElement(), например). Хотя ничто не мешает сделать new Element.html('тут кусок кода'). Они провели чистку в том, как события цепляются к элементам и запретили префиксы, и сделали ещё массу всего.
Кстати, они рассматривают возможность добавить функционал аналогичный eval, но он будет работать в своём изолированном контексте.
В общем, они провели глобальную уборку. То, что в JS сделать не сломав вообще всё просто невозможно. JS не плох, в нём просто слишком много хлама собралось и который пора наконец выкинуть, сделав язык более лаконичным и понятным, а заодно избавиться от массы проблем «родителя».
Если всё это сделать новым стандартом JS, то это будет революция, которую воспримут в штыки. Думаешь корпоративный сектор вот так сходу кинется переписывать свои сайты на новый стандарт? Они скажут «а не пошли бы вы, у нас есть Internet Explorer, в котором это всё не сделают» и будут правы. И что бы там «Хром и Фаерфокс» ни сказали, а многие сайты просто выведут табличку «This site is best viewed with Internet Explorer», как в старые времена. Оно тебе надо? Это вообще хоть кому-то надо?
Так что нет, с JS нельзя сделать то, что сделали в Dart. Нельзя даже половину того и гипотетический новый стандарт для JS будет просто всё тем же старым JS с новыми фичами и не более того. Иначе нас ждёт новый виток доминирования IE из-за «лентяев» не желающих переходить на новый стандарт и посетителей их сайтов.
>Если всё это сделать новым стандартом JS, то это будет революция, которую воспримут в штыки. Думаешь корпоративный сектор вот так сходу кинется переписывать свои сайты на новый стандарт?Теперь объясни, почему дарт "корпоративный сектор" примет с хлебом-солью и под него все кинутся переделывать свои поделки, а под новый js - нет.
>Они скажут «а не пошли бы вы, у нас есть Internet Explorer, в котором это всё не сделают» и будут правы. И что бы там «Хром и Фаерфокс» ни сказали, а многие сайты просто выведут табличку «This site is best viewed with Internet Explorer», как в старые времена.
Конечно, вывесят, как же. И все это время будут недоступны 90% пользователям интернета. В то время, как конкуренты уже все перепишут и продолжат работать. Вот уж кому-кому, а бизнес такой расклад точно не устроит.
Слабо обоснована ваша гипотеза, короче говоря.
> Теперь объясни, почему дарт "корпоративный сектор" примет с хлебом-солью и под него
> все кинутся переделывать свои поделки, а под новый js - нет.А они и не примут. Как сидели на JS, так и будут, пока сами не сдохнут или пока кто-нибудь не поменяет всю систему на что-нибудь другое так-как старая перестанет справляться с необходимыми задачами. А там уже могут и на Dart писать.
Просто и JS в его «современном» виде от них никуда не денется ни сейчас, ни через 5 лет. Его объявят устаревшим и выкинут только и если подавляющее большинство сайтов перейдёт на Dart, а всё это время они будут спокойно сосуществовать.> Конечно, вывесят, как же. И все это время будут недоступны 90% пользователям
> интернета. В то время, как конкуренты уже все перепишут и продолжат
> работать. Вот уж кому-кому, а бизнес такой расклад точно не устроит.~70%, но ты не учитываешь того момента, что многие просто свалят обратно на IE. Особенно с Хрома (~40%) — IE 11 не сильно-то от него и отличается, как для пользователя. А Хром будут запускать для той пары онлайн-игр на NaCl.
Все банки, все гос-учереждения, все сайты писанные Васей Пупкиным. Все они будут показывать такую табличку. Ты ещё посмотри сколько извращенцев до сих пор верстают через TABLE. Хотя соц-сети и современная тенденция использовать браузер на смартфоне могут вытянуть. Хоть какая-то от них польза будет.
Альтернативный вариант (и наиболее реалистичный) это введение необходимости указывать версию JS, под которую пишется код, прямо в коде. Но знаешь, с DOCTYPE (которых целый зоопарк и которые не всегда влияют на результат) и с UA (когда браузеры мимикрировали друг под друга) урок уже выучен, как мне кажется. Всем будет проще если просто назвать по-другому.
Так и не надо рубить с плеча и выкидывать старый JS сразу же. Я же предложил вариант "через N версий".
А для различение программ для одного и другого можно вполне использовать>введение необходимости указывать версию JS
И вообще, говорите конкретными мыслями, а не туманными "урок уже выучен". Ну вот как я должен такое понимать? Какой еще урок? Применим ли он к этой ситуации? Если да, то что можно сделать? И прочее.
Урок состоит в том, что такими переключателями часто либо пользуются как хотят, либо они меняют своё значение в разном контексте (в IE6, например, добавление <?xml version="1.0" encoding="iso-8859-1"?> перед доктайпом переводило его в Quirks Mode), либо разные браузеры имеют разное значение по-умолчанию, либо… много разных либо. Проще новую версию обозвать новым языком.Кстати, MS и тут в стороне не остались и сделали свой TypeScript. Вот только вместо того, чтоб навести порядок, они лишь ограничили набор команд и ввели статическую типизацию (прямо и через специальные заголовочные файлы). Не хочется им анализировать код, на сколько я понимаю. Вроде ещё что-то сделали для ООП на основе классов, но я не разбирался что именно.
Их подход в чём-то напоминает как-раз гипотетическую «новую версию стандарта». Но вот фундаментальных проблем он не исправляет. Я бы даже сказал, что добавляет (как минимум для сторонних библиотек переменные объявляются теперь дважды).
>Урок состоит в том, что такими переключателями часто либо пользуются как хотят, либо они меняют своё значение в разном контекстеТеперь объясните, зачем в принципе может понадобиться пользоваться условным переключателем "old JS/new JS" не по назначению, и как он в принципе может менять свое смысловое значение и от какого контекста. Просто пример приведите.
>либо разные браузеры имеют разное значение по-умолчанию
Иметь значение "new JS" по умолчанию никакого смысла не имеет, иначе эти ваши Васи Пупкины будут страдать и вывешивать таблички. Только один разумный выход: по дефолту "old JS", а если указано явно, то "new JS".
>Проще новую версию обозвать новым языком.
У которой будет точно такой же переключатель, только не в самом коде, а в теге script: script type="application/dart". Чем это проще-то получается? Можно и для нового JS сделать отдельный script type, кстати.
Остальные два абзаца вообще мимо кассы. Для чего это было написано?
А потом нам понадобится ввести переключатель на ещё более новый JS (да, я гарантирую, что лет через 10-15 так и случится) и у нас будет переключатель по редакциям ECMAScript (и хорошо если его сразу сделают по номерам редакций), потом появится ещё одна версия и у нас будет единый интерпретатор и компилятор для всего этого бардака из разных по разному несовместимых между собой версий. Ой погоди, у нас будет как минимум 3 таких компилятора в разных браузерах и как в каждом разрулят переход в более новый режим та ещё загадка. И всё это великолепие будет именоваться JavaScript. Причём для использования актуальной версии его нужно будет указывать эту самую версию, а иначе будет использоваться говно мамонта. Потом кто-то наконец решит, что самую старую версию можно наконец выкинуть и будет форсировать переход всех на новые редакции и вот тут хардкод версии в script type и отсутствие его у самой старой редакции сыграют злую шутку, отправив весь старый код в самый новый компилятор с непредсказуемыми последствиями. На подобное говно уже не раз наступали с доктайпами в HTML. Кстати, там пошли по принципе «если версия не указана, то использовать самую свежую» и доктайп HTML5 выглядит как <!DOCTYPE html>. Так что дефолт на старой версии вовсе не гарантирован и могут решить, что нужно продвигать новую, а желающие сидеть на старой должны будут явно это указать.Нет уж, пусть они развиваются параллельно как два раздельных языка с раздельными интерпретаторами и компиляторами. Иначе со временем это превратится в кучу геморроя. Заодно если захочется встроить куда-то Dart, то не придётся брать движок JS и выпиливать из него поддержку старых редакций, а можно будет просто взять движок Dart.
> Все банки, все гос-учереждения, все сайты писанные Васей Пупкиным. Все они будут
> показывать такую табличку. Ты ещё посмотри сколько извращенцев до сих пор
> верстают через TABLE.Что плохого в TABLE? ;)
> А они и не примут. Как сидели на JS, так и будут,
> пока сами не сдохнут или пока кто-нибудь не поменяет всю систему
> на что-нибудь другое так-как старая перестанет справляться с необходимыми задачами. А
> там уже могут и на Dart писать.
> Просто и JS в его «современном» виде от них никуда не денется
> ни сейчас, ни через 5 лет. Его объявят устаревшим и выкинут
> только и если подавляющее большинство сайтов перейдёт на Dart, а всё
> это время они будут спокойно сосуществовать.Ну и ладно - 10 лет достаточно для перехода. А JS должен сдохнуть, как самый паршиво разработанный из современных языков.
> Альтернативный вариант (и наиболее реалистичный) это введение необходимости указывать
> версию JS, под которую пишется код, прямо в коде. Но знаешь,
> с DOCTYPE (которых целый зоопарк и которые не всегда влияют на
> результат) и с UA (когда браузеры мимикрировали друг под друга) урок
> уже выучен, как мне кажется. Всем будет проще если просто назвать
> по-другому.Согласен. Тут совместимость будет злом.
> Что плохого в TABLE? ;)Куча мусора (TBODY, TR, TD), полное отсутствие гибкости и излишнее совмещение структуры с оформлением. Сейчас верстать таблицами — разновидность мазохизма. Нужно самого себя не любить и не уважать, чтоб так делать. Благо все современные браузеры уже умеют работать с более удобными способами вёрстки. Вёрстка таблицами (и отступы картинками 1x1.gif) пришли со времён царствования Internet Explorer и пора бы им уже сдохнуть наконец.
А ещё это приводит к тому, что на таких сайтах практически невозможно указать на какой-то конкретный блок или класс блоков собственным стилем так-как их назначают даже не всем TABLE. Приходится выписывать многоэтажные конструкции из TABLE > TBODY > TR > TD и их свойств, чтоб выбрать то, что хочется.
>> Что плохого в TABLE? ;)
> Куча мусора (TBODY, TR, TD), полное отсутствие гибкости и излишнее совмещение структуры
> с оформлением. Сейчас верстать таблицами — разновидность мазохизма. Нужно самого
> себя не любить и не уважать, чтоб так делать. Благо все
> современные браузеры уже умеют работать с более удобными способами вёрстки. Вёрстка
> таблицами (и отступы картинками 1x1.gif) пришли со времён царствования Internet Explorer
> и пора бы им уже сдохнуть наконец.Я правильно понял, что речь не про таблицы как таковые, а использование TABLE для оформления текстов, расстановки картинок и т.д.?
У меня нет и, возможно, не будет причин выходить в своих страницах за рамки HTML 3.2, соответственно мне все эти новые требования - тёмный лес чужого мира... к слову, гифки 1x1 тоже не использую:)
Да, ты правильно понял.А новые не требования, а возможности. Хочешь и дальше заниматься этим мазохизмом — твоё право. ;)
> Да, ты правильно понял.
> А новые не требования, а возможности. Хочешь и дальше заниматься этим мазохизмом
> — твоё право. ;)Мазохизма нет, есть использование ровно того, что нужно:)
Это когда таблицы нужны именно как таблицы? :)
> Это jQuery, а не JavaScript и штатные браузерные API. Хочешь писать event.preventDefault() — сиди на старой версии либы и не обновляйся.event.preventDefault() ---- это вообще-то ванильный браузерный API .. :)
всю жизнь -- event.preventDefault() -- работал в браузере БЕЗ jQuery... и тут вдруг оказывается что теперь надо писать event.defaultPrevented = true ..
а вот в jQuery тоже есть event.preventDefault() , название которого взято по аналогии от оригинального ванильно-браузерного event.preventDefault()..
> сиди на старой версии либы и не обновляйся.
старые версии jQuery -- рано или поздно тоже перестанут работать.
так как в старых jQuery для реализации "event.preventDefault()" используется как раз "event.preventDefault() из браузера" (а не event.defaultPrevented = true)
загляни вобщем в исходники jQuery :)
> event.preventDefault() ---- это вообще-то ванильный браузерный API .. :)Забавно, не знал.
Сейчас покопался внимательнее и теперь не могу понять откуда было взято предположение о том, что event.preventDefault() объявлено deprecated. Таковым объявили event.returnValue (передаём привет Internet Explorer, в котором не было preventDefault() до 9й версии). В jQ же (включая версии 2.0.х) находится полифил, который вызывает preventDefault() если он есть и устанавливает event.returnValue = true если такового нет.А присваивать defaultPrevented = true и вовсе странно. Я даже не уверен будет ли так работать (и мне лень проверять). В WebAPI Мозиллы говорится, что это свойство используется для того, чтоб узнать блокируется ли стандартное поведение или нет и рекомендуется использовать вместо нестандартного getPreventDefault().
https://developer.mozilla.org/en-US/docs/Web/API/event.defau...Мне кажется ты попутал preventDefault() с getPreventDefault() и сделал неправильные выводы. Объявлять deprecated нестандартные фичи это нормально. А вот что-то выкинуть из самого стандарта куда сложнее.
> А вот что-то выкинуть из самого стандарта куда сложнее.ну собственно -- да -- надеюсь оно так и будет 15 лет лежать в deprecated и всё также продолжать работать :)
> Мне кажется ты попутал preventDefault() с getPreventDefault()
похоже на то
> кстате.. а как жеКстати, выучите уже как пишется "кстати". Задолбали школяры-прогульщики уже.
А вот Гвидо взял и сделал.
> А вот Гвидо взял и сделал.Python3 как раз стал языком где ушли все старые противоречия и двусмысленности, "причесали" все модули теперь на интерпрайз (JEE) похоже.
Ну да, я про то и говорю. Безболезненная эволюция языка вполне возможна, и гвидобейсик это доказал на собственном примере.Но нет, давайте вместо развития JS будем делать новый JS! СЕРЕЖКА-то лучше нас знает как надо! Обратная совместимость две версии не уживутся кокок!
> "причесали" все модули теперь на интерпрайз (JEE) похоже.В энтерпрайзе не принято ломать совместимость между каждой версией языка, так что бидон стал символом глючной наколенщины, не более.
>> "причесали" все модули теперь на интерпрайз (JEE) похоже.
> В энтерпрайзе не принято ломать совместимость между каждой версией языка,Вот начиная с 3.0 она и не ломается.
> так что бидон стал символом глючной наколенщины, не более.
То-то его использование только растёт.
Google в Android использовал Java, имел её собственную реализацию и собственный компилятор.12.08.2010 Oracle на Google за это в суд. Официально за то, что Google "осознанно, прямо и постоянно нарушала интеллектуальную собственность Oracle, связанную с используемыми в языке Java технологиями".
Google сделал Darts, который то же самое, но свой. Теперь любой, кто использует Darts, будет платить Google'у.
Концептуальное отличие для вас: никакого. Концептуальное отличие для Google: платит он или платят ему.
Пойди проспись. Для Android они создали Dalvik. -_-
А про Dart перечитай статью, когда проспишься.
Если твоя идея в том, что для того, чтобы избавиться от каждой старой возможности нужно обязательно создавать новый ЯП или программный продукт - я не уверен кто из нас трезв.
Прежде чем вещать что то столь эпохальное, неплохо сначала уяснить разницу между Java и JavaScript.
Историю с Бидоном 3 который несовместим с Бидоном 2 напомнить? До сих пор можно встретить рекомендации писать на втором так-как подавляющее большинство софта написано (сюрприз! кто б сомневался) под второй. Ты хоть представляешь что будет если сейчас пойти и выкинуть eval() из JS и браузеров, например? Кто-нибудь будет пользоваться новой версией JS? А браузером, в котором половина сайтов не работает? А в Dart далеко не только это выкинули. В таких случаях лучше начать с нуля, а не портить себе репутацию.
Не, сейчас уже не всё так плохо с Python - 3.3 уже можно пользоваться, и даже писать код, который по большей части совместим с 2.7! :)А в 3.4 запилят стандартный asyncio и Enum(!!!), так что у народа таки будет стимул переходить! :)
Остаётся надеяться, а то этот раскол на два лагеря только проблемы создаёт.
> Остаётся надеяться, а то этот раскол на два лагеря только проблемы создаёт.сразу видно ты не в теме про Python, стадия поддержки различных библиотек третьей версией очень большая. начать писать проект на нём уже вполне можно.
Да, я его давненько уже не трогал. Больше как-то с Qt и JS.
>>Не, сейчас уже не всё так плохо с Python - 3.3 уже можно пользоваться, и даже писать код, который по большей части совместим с 2.7! :)Героическое преодоление проблем созданных по причини собственной тупости - достойное занятие.
>>>Не, сейчас уже не всё так плохо с Python - 3.3 уже можно пользоваться, и даже писать код, который по большей части совместим с 2.7! :)
> Героическое преодоление проблем созданных по причини собственной тупости - достойное занятие.Питон как язык вобрал себя многие паттерны проектирования и хорошего стиля написания кода, поэтому python3 как раз убрали все недоразумения, что бы новички не использовали сомнительных возможностей.
Вот у Ecma-то двери для всех открыты, только бабки несите. Я лично не считаю ее стандарты за стандарты после того, что я увидел в описании Office Open XML (который, кстати, ISO до сих пор не стандартизирован, потому что это - бредятина). Не ожидал, что Google до такого опустится...
ECMA-262 ты стандартом тоже не считаешь?
Нет, не считаю. Я считаю стандартом ISO/IEC 16262.
> ISO/IEC 16262:2011 defines the ECMAScript scripting language.А им вот понравилось, например.
Понравится Dart — утвердят и его тоже.
http://www.fosspatents.com/2013/12/federal-patent-court-of-g...
И запилите уже нормальную форму для забрасывания ссылок, которые могут быть новостями
Во вторник новость про это уже была http://www.opennet.me/opennews/art.shtml?num=38631
ECMA уже с JavaScript "удачно" отметилась.
> ECMA уже с JavaScript "удачно" отметилась.коммерческая структура, за деньги занимающаяся стандартизацией
Я когда 1,5 года назад на Dart стал поглядывать, мне говорили - ты что? сырая фигня, которая, непонятно, взлетит ли вообще, нафиг тебе оно надо. Лучше бы не слушал никого, а ковырял Dart. Глядишь к этому моменту уже плавал бы в нём, как рыба в воде
Что-то мне подсказывает, что у тебя ещё как минимум года два на его изучение есть. Если не все 5.
Я бы не стал утверждатьь, что dart стабилизировался.
Reflection там сейчас только формируется и еще сто раз поменяется. А без него там грустно.