Показать сообщение отдельно
Старый 05.10.2002, 00:30
Entropy вне форума Посмотреть профиль Отправить личное сообщение для Entropy Посетить домашнюю страницу Entropy Найти все сообщения от Entropy
  № 93  
Entropy

Регистрация: May 2001
Адрес: Мосва
Сообщений: 34
Отправить сообщение для Entropy с помощью ICQ
Для Infinity.
>>> внешне переменная не имела бы типа, тип имел бы лишь внутреннее ее представление.

Угу, а кто ее будет преобразовывать к нужному типу? Пушкин? Предположим есть код
Код:
a = 0.2;
b = new Class;
a = b;
Таким образом, переменная "a" была вещественного типа (8 - 10 байт, в зависимости от представления), а стала указателем (4 байта), и что прикажете делать интерпретатору? Заниматся преобразованием? С компилятором все понятно: там переменные определяются на этапе компиляции, а предлагаемом вами языке нет типов, есть только их "внутреннее представление". А преобразование удет время, так какая выгода? Тем более, что именно так нынешний интерпретатор и работает.


>>> я придрался, к тому, повторю еще раз, что спецификация прекрасно подходящая для Web-браузера не подходит для Флэш, при чем здесь структура данных

А при чем здесь Макромедиа? Кто Вам сказал, что ECMA-Script и его конкретные релизации, такие как Java-Script, JScript, Action Script сделаны для браузеров? Они могут использоваться где угодно, и ECMA-Script специально был сделан как ПРОСТОЙ и УДОБНЫЙ скриптовый язык, а то что предлагаете Вы просто никому не нужно.


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

Естесственно я так его себе и представляю. А это не одно и тоже? Указатель, как известно занимает 4 байта, сооответственно, массив указателей это массив 'единоразмерных элементов'. А иначе и быть не может. Кроме того, именно так это и сделано в АС.


>>> obj.field аналогично obj["field"] тоесть индексация членов объекта по строкам.получается некий нездоровый симбиоз объекта и массива

Угу, а если Вы откажетесь от этого симбиоза, то можете навсегда забыть про добавление и удаление членов класса в ран-тайм. Этот нездоровый симбиоз называется хэшем, и уже давно везде используется, это такая СТРУКТУРА ДАННЫХ и ее перимушество в том, что можно добавлять удалять и искать значения, по СТРОКОВЫМ ключам. А какую замену можете предложить Вы?

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

А вообще говоря Вы не там ищете - тормознутость Флэша объясняется вовсе не строковыми ключами, там все гораздо хуже, вот пример.

Код:
var a = 0.5;

function assign() {
	startTime = getTimer();
	var b;
	for (var i = 0; i < 10000; i++) {
		b = a + a;
	}
	trace(getTimer() - startTime);
}

function sin() {
	startTime = getTimer();
	var b;
	for (var i = 0; i < 10000; i++) {
		b = Math.sin(a);
	}
	trace(getTimer() - startTime);
}

assign();
sin();
Прокрутите этот тест несколько раз - на моем компьютере время исполения обоих функций практически одинаковое. Хотя сложение должно бы выполняться намного быстрее, чем вычисление синуса, да еще и вызов медода объекта Math.