Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   JavaScript 2.0 (https://javascript.ru/forum/misc/4727-javascript-2-0-a.html)

JSprog 17.08.2009 08:57

JavaScript 2.0
 
Как вам новость что во второй версии Явыскрипта хотят сделать строгий контроль типов и механизм истинного наследования на основе классов. Мне кажется язык теряет свою индивидуальность :help: .

B~Vladi 17.08.2009 11:05

Цитата:

Сообщение от JSprog
второй версии Явыскрипта хотят сделать строгий контроль типов и механизм истинного наследования на основе классов

На счёт первого против. Теряется гибкость.
На счёт второго не против. Появляется гибкость.

Цитата:

Сообщение от JSprog
Мне кажется язык теряет свою индивидуальность

Согласен. Лучше уж старые, добрые, непонятные прототипы.

Riim 17.08.2009 11:20

Цитата:

Сообщение от JSprog
сделать строгий контроль типов

var никуда не исчезнет, но можно будет жестко задать тип переменной.

Цитата:

Сообщение от B~Vladi
На счёт первого против. Теряется гибкость.

Так только кажется, на самом деле это удобно и к этому быстро привыкаешь, например в C# как и в javascript-е можно объявлять переменные через "var", но я ни разу не видел, что бы этим кто-то пользовался, да и у меня самого желания нет.

x-yuri 23.08.2009 15:51

Цитата:

Сообщение от B~Vladi
На счёт первого против. Теряется гибкость.

объявление типа каждой переменной будет обязательным?

Цитата:

Сообщение от B~Vladi
На счёт второго не против. Появляется гибкость.

где же она появляется? За счет чего?

Riim 23.08.2009 16:00

Цитата:

Сообщение от x-yuri
объявление типа каждой переменной будет обязательным?

Цитата:

Сообщение от Riim
var никуда не исчезнет, но можно будет жестко задать тип переменной.

//

Андрей Параничев 23.08.2009 19:52

http://flash-ripper.com/archives/002535.php

JSprog 23.08.2009 19:59

Интересная статейка. Я например только рад. кому нужна четвертая редакция пусть на Экшен идут

x-yuri 24.08.2009 14:16

Цитата:

Сообщение от x-yuri
объявление типа каждой переменной будет обязательным?

Цитата:

Сообщение от Riim
var никуда не исчезнет, но можно будет жестко задать тип переменной.

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

B~Vladi 24.08.2009 14:58

Цитата:

Сообщение от x-yuri
Теряется она, если тип должен быть задан всегда

Я про это подумал, еси чесно:)

Riim 25.08.2009 21:45

Цитата:

Сообщение от x-yuri
я говорил это к тому, что никакая гибкость не теряется. Теряется она, если тип должен быть задан всегда

Тогда понятно, согласен.

FINoM 23.05.2011 04:10

Хотя топик мертв, вопрос остался актуальным. Как на сегодняшний день обстоят дела у JS2.0? Есть ли браузеры, поддерживающие эту спецификацию? Я так понимаю, что скрипты должны подключаться как-то по-особенному (не text/javascript), так как в консоли большая часть примеров из спецификации не работает.

monolithed 23.05.2011 08:51

Цитата:

неймспейсы, пакеты.
только в AS
Цитата:

биндинг, новый синтаксис и новые семантические конструкции
ES5
Цитата:

классы. Взамен классов будет элегантная штука "Object.freeze()", которая "замораживает" объект.
ES5
привидение типов, на сколько мне известно уже работает с WebGL и имеет очень извращенную нотацию
Цитата:

Сообщение от FINoM
Как на сегодняшний день обстоят дела у JS2.0?

как показывает практика, JS развивается отдельно от ES и имплементируется только Geko и еще каким-то движком.
Цитата:

Сообщение от FINoM
Я так понимаю, что скрипты должны подключаться как-то по-особенному (не text/javascript)

text/javascript можно, и даже рекомендовано уже давно не использовать
Цитата:

Сообщение от FINoM
большая часть примеров из спецификации не работает.

где вы нашли спецификацию JS2.0?

FINoM 23.05.2011 12:15

Цитата:

Сообщение от monolithed
где вы нашли спецификацию JS2.0?

Тут не написано что это JS2.0, но многие статьи 2008 года говорят что это именно оно: http://www.ecmascript.org/es4/spec/overview.pdf

monolithed 23.05.2011 14:30

Цитата:

Сообщение от FINoM
Тут не написано что это JS2.0

JavaScript реализован только в Geko.
ECMA-262 Edition 3 - то к чему вы привыкли

x-yuri 23.05.2011 18:00

есть таблица совестимости

Цитата:

Сообщение от monolithed
text/javascript можно, и даже рекомендовано уже давно не использовать

хм, а где написано или какие недостатки?

а вопрос я бы задал по-другому: что уже можно использовать?

monolithed 23.05.2011 21:10

Цитата:

Сообщение от x-yuri
есть таблица совестимости

если честно не понимаю, что opera хочет доказать c HTML5/CSS3 у них еще куда нишло, а с ES5 жопа((
Цитата:

Сообщение от x-yuri
хм, а где написано или какие недостатки?

Цитата:

Use of the "text" top-level type for this kind of content is known to be problematic. This document thus defines text/javascript and text/ecmascript but marks them as "obsolete". Use of experimental and unregistered media types, as listed in part above, is discouraged.

The media types,

application/javascript
application/ecmascript


which are also defined in this document, are intended for common use and should be used instead.
из RFC-4329
вообще об этом во многих книгах по JS пишут.
Д. Фленаган говорит писать application/x-javascript, т.к. MIME-тип javascript еще не стандартизирован, а Д. Крокфод вовсе рекомендует не писать type (по крайней мере для HTML4+).

x-yuri 23.05.2011 23:41

Цитата:

Сообщение от monolithed
если честно не понимаю, что opera хочет доказать

а что опера хочет доказать?

Цитата:

Сообщение от monolithed
из RFC-4329

это 2006 год, а в последней версии спецификации в качестве значения по умолчанию указывается как раз таки text/javascript. И указывать type действительно не обязательно, если нужен javascript

Цитата:

Сообщение от monolithed
Д. Фленаган говорит писать application/x-javascript, т.к. MIME-тип javascript еще не стандартизирован,

то что он упоминается в html5 важнее, я считаю

Цитата:

Сообщение от monolithed
а Д. Крокфод вовсе рекомендует не писать type (по крайней мере для HTML4+).

почему?

monolithed 24.05.2011 09:26

Цитата:

Сообщение от x-yuri
а что опера хочет доказать?

мне тоже это интересно узнать :)
Цитата:

Сообщение от x-yuri
это 2006 год, а в последней версии спецификации в качестве значения по умолчанию указывается как раз таки text/javascript. И указывать type действительно не обязательно, если нужен javascript

вот-то то и оно, хз кому больше верить RFC или W3C

Цитата:

Сообщение от http://www.w3.org/TR/html5/infrastructure.html
The term "JavaScript" is used to refer to ECMA262, rather than the official term ECMAScript, since the term JavaScript is more widely known. Similarly, the MIME type used to refer to JavaScript in this specification is text/javascript, since that is the most commonly used type, despite it being an officially obsoleted type according to RFC 4329. [RFC4329]
Media Queries

однако W3C все-таки следует RFC и text/javascript'ом не ограничивает:

Цитата:

Сообщение от http://www.w3.org/TR/html5/infrastructure.html
4.3.1.1 Scripting languages

A user agent is said to support the scripting language if the script block's type is an ASCII case-insensitive match for the MIME type string of a scripting language that the user agent implements.

The following lists some MIME type strings and the languages to which they refer:

"application/ecmascript"
"application/javascript"
"application/x-ecmascript"
"application/x-javascript"
"text/ecmascript"
"text/javascript"
"text/javascript1.0"
"text/javascript1.1"
"text/javascript1.2"
"text/javascript1.3"
"text/javascript1.4"
"text/javascript1.5"
"text/jscript"
"text/livescript"
"text/x-ecmascript"
"text/x-javascript"

JavaScript. [ECMA262]
"text/javascript;e4x=1"
JavaScript with ECMAScript for XML. [ECMA357]

Цитата:

Сообщение от x-yuri
почему?

потому что в отличии от XHTML в HTML допускается отсутствие type

x-yuri 24.05.2011 18:39

Цитата:

Сообщение от monolithed
мне тоже это интересно узнать

а что Konqueror хочет доказать? Ничего она не хочет доказать. Если она чего-то не реализует, значит для нее есть более приоритетные задачи или другие причины. Или ты думаешь, что ее цель - тормознуть развитие? К тому же, что такого в этом es5, чтобы его реализовывать? ;)

Цитата:

Сообщение от monolithed
вот-то то и оно, хз кому больше верить RFC или W3C

спецификации, потому что: 1) кто знает про этот rfc? 2) rfc говорит про mime-type в целом и 3) ограничивает свою применимость:
Цитата:

The types defined in this document are applicable to scripts written
in [JS15] and [ECMA], respectively, as well as to scripts written in
a compatible language or profile such as [EcmaCompact].

This document does not address scripts written in other languages.
In particular, future versions of JavaScript, future editions of
[ECMA], and extensions to [ECMA], such as [E4X], are not directly
addressed. This document may be updated to take other content into
account.

[ECMA] European Computer Manufacturers Association,
"ECMAScript Language Specification 3rd Edition",
December 1999, <http://www.ecma-international.org/
publications/standards/Ecma-262.htm>
[JS15] Netscape Communications Corp., "Core JavaScript
Reference 1.5", September 2000,
<http://web.archive.org/*/http://
devedge.netscape.com/library/manuals/2000
/javascript/1.5/reference/>.
а спецификация говорит про частный случай использования в атрибуте type тэга script, она не говорит учитывать Content-Type запрашиваемого файла (по-крайней мере я не нашел этого места)

но, вариант с application/... был бы уместнее, так что согласен, лучше не указывать :)

pauluss 25.05.2011 11:17

Строгая типизация это благо. Всеми конечностями за.
По второму пункту тоже.

FINoM 25.05.2011 18:20

Я кстати придумал говноспособ клонирования объекта:
newObj = JSON.parse(JSON.stringify(oldObj))
Есть ли в новых версиях ES встроенный для этого метод? Реализация в браузерах интересует не меньше.

Sweet 25.05.2011 18:38

Интересно, почему я никогда не сталкивался с такой проблемой?:-?

x-yuri 25.05.2011 20:03

Цитата:

Сообщение от pauluss
Строгая типизация это благо. Всеми конечностями за.

и что же в ней хорошего? Что плохого?

Цитата:

Сообщение от pauluss
По второму пункту тоже.

аналогично

Цитата:

Сообщение от Sweet
Интересно, почему я никогда не сталкивался с такой проблемой?

ты просто разучился создавать себе проблемы ;)


Часовой пояс GMT +3, время: 21:55.