Ой, чего с JavaScript-то деется...
От: Left2 Украина  
Дата: 01.03.07 10:09
Оценка: 19 (3) +1
Вот, наткнулся на статейку о нововведениях в JavaScript:
http://developer.mozilla.org/presentations/xtech2006/javascript/

Честно говоря, глаза разбегаются
И первым делом — возникла мысль — а стоит ли оно того?
Получается, что JavaScript вырастает во что-то вроде питона/руби.
Исчезает самое ценное в нём (ценное на мой субьективный взляд, конечно) — предельная чистота концепций. Хотя писать что-то более-менее обьёмное на JS, похоже, станет проще .
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Ой, чего с JavaScript-то деется...
От: Mamut Швеция http://dmitriid.com
Дата: 01.03.07 10:22
Оценка:
L>Вот, наткнулся на статейку о нововведениях в JavaScript:
L>http://developer.mozilla.org/presentations/xtech2006/javascript/

То, что там написано, частично реализовано в JavaScript 1.7 в Firefox 2: http://developer.mozilla.org/en/docs/New_in_JavaScript_1.7

L>Честно говоря, глаза разбегаются

L>И первым делом — возникла мысль — а стоит ли оно того?
L>Получается, что JavaScript вырастает во что-то вроде питона/руби.
L>Исчезает самое ценное в нём (ценное на мой субьективный взляд, конечно) — предельная чистота концепций. Хотя писать что-то более-менее обьёмное на JS, похоже, станет проще .

Самое главное мне не нравится type annotations. Dynamic typing в Яваскрипте рулит.


dmitriid.comGitHubLinkedIn
Re: Ой, чего с JavaScript-то деется...
От: Gajdalager Украина  
Дата: 01.03.07 10:23
Оценка:
Здравствуйте, Left2, Вы писали:

L>Вот, наткнулся на статейку о нововведениях в JavaScript:

L>http://developer.mozilla.org/presentations/xtech2006/javascript/

L>Честно говоря, глаза разбегаются

L>И первым делом — возникла мысль — а стоит ли оно того?
L>Получается, что JavaScript вырастает во что-то вроде питона/руби.
Я бы предпочел чтобы он вырос во что-то вроде Java Лично мне нравиться путь, которым идет GWT, думаю. для AJAX — это то, что доктор прописал.. Если еще можно будет исполнять GWT-код без трансляции в JavaScript — вообще круто будет
Re: Ой, чего с JavaScript-то деется...
От: Disappear  
Дата: 01.03.07 10:34
Оценка:
Здравствуйте, Left2, Вы писали:

L>Вот, наткнулся на статейку о нововведениях в JavaScript:

L>http://developer.mozilla.org/presentations/xtech2006/javascript/

L>Честно говоря, глаза разбегаются

L>И первым делом — возникла мысль — а стоит ли оно того?
L>Получается, что JavaScript вырастает во что-то вроде питона/руби.
L>Исчезает самое ценное в нём (ценное на мой субьективный взляд, конечно) — предельная чистота концепций. Хотя писать что-то более-менее обьёмное на JS, похоже, станет проще .

С развитием Web 2.0 все к тому и будет идти. Вот толь, непонятно как дела будут обстоять с поддержкой этого чуда у Microsoft, Apple и Opera
Re[2]: Ой, чего с JavaScript-то деется...
От: Left2 Украина  
Дата: 01.03.07 10:39
Оценка:
D>С развитием Web 2.0 все к тому и будет идти. Вот толь, непонятно как дела будут обстоять с поддержкой этого чуда у Microsoft, Apple и Opera

Ну, там есть идеи насчёт того чтобы иметь транслятор JS 2.0 -> JS 1. То есть, на сервере лежит JS 2.0, а если пришёл старый (некошерный) браузер — ему отдают JS 1.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Ой, чего с JavaScript-то деется...
От: Left2 Украина  
Дата: 01.03.07 10:46
Оценка:
M>Самое главное мне не нравится type annotations. Dynamic typing в Яваскрипте рулит.

Согласен. Боюсь, не превратится ли таким путём язык в помойку типа Perl.
Лично мне JavaScript понравился именно тем что это был первый язык в который ничего не захотелось добавить
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Ой, чего с JavaScript-то деется...
От: Mamut Швеция http://dmitriid.com
Дата: 01.03.07 11:34
Оценка:
Здравствуйте, Left2, Вы писали:

M>>Самое главное мне не нравится type annotations. Dynamic typing в Яваскрипте рулит.


L>Согласен. Боюсь, не превратится ли таким путём язык в помойку типа Perl.

L>Лично мне JavaScript понравился именно тем что это был первый язык в который ничего не захотелось добавить

Ну, из 1.7 мне нравится destructuring assignment. А еще я не отказался бы от packages. Вот только зачем мешать в кучу packages и namespaces, как предложено для Js2, я не понимаю.


dmitriid.comGitHubLinkedIn
Re[2]: Ой, чего с JavaScript-то деется...
От: anonymous Россия http://denis.ibaev.name/
Дата: 01.03.07 12:11
Оценка:
Здравствуйте, Disappear, Вы писали:

D>Вот толь, непонятно как дела будут обстоять с поддержкой этого чуда у Microsoft, Apple и Opera


JavaScript 2 это ECMAScript 4. А ECMAScript стараются поддерживать все разработчики.
Re[4]: Ой, чего с JavaScript-то деется...
От: Left2 Украина  
Дата: 01.03.07 12:14
Оценка:
M>Ну, из 1.7 мне нравится destructuring assignment.
Киньте в меня камнем если подобное не делается (с чуть другим синтаксисом) на обычном JS:

var a, b, c;
destructuring_assignment([a, b, c], arr);


M>А еще я не отказался бы от packages. Вот только зачем мешать в кучу packages и namespaces, как предложено для Js2, я не понимаю.

Packages...
Ну мне тоже кажется что это решабельно — из каждого файла выставляется один обьект, который имеет все нужные функции-переменные:

var MyPackage = {
    MyFunction: function() { };
    MyIntVariable: 0;
}

// В другом пакете:
MyPackage.MyFunction(MyPackage.MyIntVariable);


Зато не разводим лишние сущности в языке
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Тормозная презентация?
От: igna Россия  
Дата: 01.03.07 12:18
Оценка:
Здравствуйте, Left2, Вы писали:

L>Вот, наткнулся на статейку о нововведениях в JavaScript:

L>http://developer.mozilla.org/presentations/xtech2006/javascript/

Спасибо, а то что у меня очень медленно слайды прорисовываются, это я сам дурак?
Re[5]: Ой, чего с JavaScript-то деется...
От: Mamut Швеция http://dmitriid.com
Дата: 01.03.07 12:25
Оценка:
M>>Ну, из 1.7 мне нравится destructuring assignment.
L>Киньте в меня камнем если подобное не делается (с чуть другим синтаксисом) на обычном JS:

L>
L>var a, b, c;
L>destructuring_assignment([a, b, c], arr);
L>


Это откуда? Поиск по javascript destructuring_assignment ничего не дал, если только такую функцию не писать самому ручками. На самом деле возможность написать

function get_array()
{
    return [1, 2, 3];
}

[a, b, c] = get_array();

[a, b] = [b, a]

это всего лишь синтаксический сахар, имхо. Но приятный

M>>А еще я не отказался бы от packages. Вот только зачем мешать в кучу packages и namespaces, как предложено для Js2, я не понимаю.

L>Packages...
L>Ну мне тоже кажется что это решабельно — из каждого файла выставляется один обьект, который имеет все нужные функции-переменные:

L>
L>var MyPackage = {
L>    MyFunction: function() { };
L>    MyIntVariable: 0;
L>}

L>// В другом пакете:
L>MyPackage.MyFunction(MyPackage.MyIntVariable);
L>


L>Зато не разводим лишние сущности в языке


Тут такая фишка, что иногда пишешь что-то вроде фреймворка И не хочется делать один гигантский класс. И не хочется засорять глобальное пространство. А так — упаковал все в package aka модуль и радуешься


dmitriid.comGitHubLinkedIn
Re[2]: Тормозная презентация?
От: Left2 Украина  
Дата: 01.03.07 12:25
Оценка:
I>Спасибо, а то что у меня очень медленно слайды прорисовываются, это я сам дурак?
Я лично её PgDown-ом проталкивал.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[6]: Ой, чего с JavaScript-то деется...
От: Left2 Украина  
Дата: 01.03.07 12:31
Оценка:
M>Это откуда? Поиск по javascript destructuring_assignment ничего не дал, если только такую функцию не писать самому ручками.
Ручками, естественно. Сорри, это я невнятно выразился

M>это всего лишь синтаксический сахар, имхо. Но приятный

Ага, именно — всего лишь сахар

M>Тут такая фишка, что иногда пишешь что-то вроде фреймворка И не хочется делать один гигантский класс. И не хочется засорять глобальное пространство. А так — упаковал все в package aka модуль и радуешься


Почему один гигантский класс? Можно ж всё это вложеным делать:

var MyPackage = {
    MyFunction: function() { };        
    MyIntVariable: 0;
        MySubPackage1 {
            MyClass : function(par1, par2) {}            
        }
        MySubPackage2 {
            MyClass : function(par1, par2) {}            
        }
}

// и потом:

var a = new MyPackage.MySubPackage1.MyClass(1, 2); 
var b = new MyPackage.MySubPackage2.MyClass(1, 2);
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[7]: Ой, чего с JavaScript-то деется...
От: Left2 Украина  
Дата: 01.03.07 12:33
Оценка:
С синтаксисом чуть наплужил, там вместо ";" должны быть запятые, но в целом идея должна быть понятна
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Тормозная презентация?
От: igna Россия  
Дата: 01.03.07 12:33
Оценка:
Здравствуйте, Left2, Вы писали:

L>Я лично её PgDown-ом проталкивал.


А я мышью, но не в этом дело. При изменении размеров шрифта задержка ощутима, а при изменении размеров окна браузера последний и вовсе задумывается на пару секунд. Может это и есть Web 2.0? А не ну его тогда?
Re[2]: Ой, чего с JavaScript-то деется...
От: elmal  
Дата: 01.03.07 12:34
Оценка:
Здравствуйте, Mamut, Вы писали:

L>>Вот, наткнулся на статейку о нововведениях в JavaScript:

L>>http://developer.mozilla.org/presentations/xtech2006/javascript/
У меня что-то ссылка не работает

M>Самое главное мне не нравится type annotations. Dynamic typing в Яваскрипте рулит.

А можно спросить чем не нравится type annotations? И что такого хорошего в Dynamic typing? На скриптах довольно много приходилось писать, но Dynamic typing мягко говоря не полюбил.
Re[3]: Ой, чего с JavaScript-то деется...
От: Left2 Украина  
Дата: 01.03.07 13:40
Оценка: +1
M>>Самое главное мне не нравится type annotations. Dynamic typing в Яваскрипте рулит.
E>А можно спросить чем не нравится type annotations? И что такого хорошего в Dynamic typing? На скриптах довольно много приходилось писать, но Dynamic typing мягко говоря не полюбил.

Можно я попробую ответить насчёт Dynamic typing?
Чисто сугубо моё личное ИМХО.
Сама по себе возможность иметь статическую типизацию для языка типа JS — это, в целом, хорошо. Во-1 — уходит часть ошибок, во-2 — теоретически это должно повысить производительность. Вот только лично мне кажется что наличие статической типизации очень сильно усложнит язык. На данный момент в JavaScript все переменные равны, то есть для того чтобы пройтись по всем полям обьекта — мне нужно только написать:
 for (var strName in obj)
 {
    var oMethodOrFunc = obj[strName];
 }

Введение статической типизации потребует наличия полновесных механизмов reflection и boxing/unboxing. И это существенно усложнит язык. А этого сильно не хотелось бы. Сила JS — именно в его простоте.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[7]: Ой, чего с JavaScript-то деется...
От: Mamut Швеция http://dmitriid.com
Дата: 01.03.07 14:10
Оценка:
L>Почему один гигантский класс? Можно ж всё это вложеным делать:

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


dmitriid.comGitHubLinkedIn
Re[4]: Ой, чего с JavaScript-то деется...
От: anonymous Россия http://denis.ibaev.name/
Дата: 01.03.07 14:22
Оценка: 12 (1) +1
Здравствуйте, Left2, Вы писали:

L>Можно я попробую ответить насчёт Dynamic typing?

L>Чисто сугубо моё личное ИМХО.
L>Сама по себе возможность иметь статическую типизацию для языка типа JS — это, в целом, хорошо. Во-1 — уходит часть ошибок, во-2 — теоретически это должно повысить производительность. Вот только лично мне кажется что наличие статической типизации очень сильно усложнит язык. На данный момент в JavaScript все переменные равны, то есть для того чтобы пройтись по всем полям обьекта — мне нужно только написать:
L>Введение статической типизации потребует наличия полновесных механизмов reflection и boxing/unboxing. И это существенно усложнит язык. А этого сильно не хотелось бы. Сила JS — именно в его простоте.

Насколько я понял, никто не собирается отменять динамическую типизацию. Более того, статическая типизация была введена как раз для удобства разработки и поддержки больших проектов. Т. е. каждый сам для себя решает в зависимости от задачи, какую типизацию выбрать. Главное, что можно продолжать писать скрипты по-старинке, при этом даже не подозревая о наличии статической типизации. Получаем как бы 2 уровня языка: простой (то, что имеем сейчас) и продвинутый (статическая типизация и т. п.).
Re[4]: Ой, чего с JavaScript-то деется...
От: Mamut Швеция http://dmitriid.com
Дата: 01.03.07 14:22
Оценка:
L>Введение статической типизации потребует наличия полновесных механизмов reflection и boxing/unboxing. И это существенно усложнит язык. А этого сильно не хотелось бы. Сила JS — именно в его простоте.

Помимо этого есть сложность и в другом. Я лично не хочу изучать все прелести DOM и писать:

str: String;
el: HTMLElement;

el = document.getElementById("myEl");
str = el.innerHTML;


И еще кастить все это дело к HTMLHtmlElement, HTMLHeadElement, HTMLLinkElement, HTMLTitleElement, HTMLMetaElement... в то время, как я могу написать:

var str;
var el;

el = document.getElementById("myEl");
str = el.innerHTML;


dmitriid.comGitHubLinkedIn