Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> недостатки JavaScript, предлагаю собрать коллекцию :) 
:(
    Опции темы
Alx
Дата 9.2.2006, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



ну вот. предлагаю собрать коллекцию всех уязвимостей в JavaScript.
цель - вовсе не повредничать и обидеть программистов, а совсем наоборот.
сейчас мы все грани революции в web-программирование. я о том, что уже назвали web 2.0.
в скором времени JavaScript будет играть чуть- ли не решающую роль в разработке веб-страниц и тем более веб-приложений.
на мой взгяд, он к этому ещё не совсем готов.
предлагаю нам всем собраться и найти всё то, чего нам не хватает в JS.
затем мы сможем делать всё что угодно с нашим архивом: наивно отсылать разработчикам, писать плагины к браузерам, писать грамотные библиотеки с обходом лагов, и т.п. что в голову взбредёт.
мы будем знать свои проблемы.

нам ведь очень часто приходится отвечать в форуме "нет, невозможно", "к сожалению на сегодняшний день сделать это средствами JavaScript нельзя" и т.п.

ну вот.

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

предлагаю также собирать уязвимости и в HTML, а особенно по улучшению работы с веб-формами. такие как: добавление новых, ранее не сущесвовавших полей, улучшение работы с уже существующими и т.д.

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

итак, начну.
первое, что приходит в голову:
хотелось бы
1. цикл с возможностью задания паузы между единичными выполнениями, который мог бы возвращать результат после каждого из своих выполнений
как обходим: используем в качестве цикла функцию, в которой указываем счетчик и вызываем её с помощью setTimeout() или setInterval().
Добавлено @ 17:54
1. HTML: <SELECT> с возможностью ввода текста + подбор из опций соотвутствующих записей.
Добавлено @ 17:56
так же предлагаю договорится, что сюда НЕ пишем только то, что одинаково правильно функционирует в трех браузерах - MSIE, Firefox и Opera.

Это сообщение отредактировал(а) Alx - 9.2.2006, 17:51


--------------------
PM MAIL WWW ICQ   Вверх
12345c
Дата 9.2.2006, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Это называется не уязвимости, а недостатки или баги (или-или).

3. Медленное быстродействие как в вычислениях, так и в доступе к объектам.

4. Утечка памяти в анонимных функциях в ie.

5. неуклюжесть в определении свойств - margin - border - padding и очень оригинальное определение width c учётом этих свойств.

6. и там - и там - одни враги.

А давай потом организуем W3C 2.0, в котором этот список будет руководством к действию. Будем мировую моду определять, чем плохо?

По 1-му: здесь 2 подхода к описанию программ. Первый: сопрограммы - процесс описан в виде цикла с паузами. Это то же, что вместо пауз будут запросы на обмен с соседними процессами. Второй: пишем всё как программы, которые в идеале стремятся к нулевому времени исполнения. В JS реализован 2-й, а в других языках непоследовательно - элементы 1-го - паузы, например. Поэтому загвоздка не в паузах, а в чистом 1-м подходе - нигде не писать в стиле сопрогамм. Язык с сопрограммами - будет совсем другой язык.

По 2-му пункту (select, точнее, combo-box): с ним чаще вспоминается не отсутствие комбобокса, а особые функции добавления/убирания опций. В своё время их было сложно реализовать в общем порядке, сделали специальные add(). А в IE до сих пор все стили неприменимы к объекту select.

В общем - недостатков - сотни, их как раз хватит на нашу плодотворную работу в комитете W3C 2.0 в течение пары-тройки лет smile


--------------------
Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go
PM WWW   Вверх
Aliance
Дата 9.2.2006, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Скудная работа с картинками
Практически отсутсвие работы с файлами
Open-source
Кроссбраузерность
PM MAIL WWW ICQ Skype   Вверх
Alx
Дата 9.2.2006, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



12345c
я ничего такого глобального не предлагал, хотя в принципе, наверное, ты прав, я погорячился smile
я просто предлагаю обобщить всё то, что хотелось бы, а не работает.
не в глобальном плане, а конекретные примеры, которые очень связывают руки.

а с w3c это ты классно придумал smile


--------------------
PM MAIL WWW ICQ   Вверх
12345c
Дата 10.2.2006, 01:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Этого на толстую книгу хватит. Которые почти так и пишутся (Гудман - библия) - свойство - применимость в версиях и с какой версии. Пройтись по форумам - таких данных много наберётся, и работы много. Я тоже подумывал над тем, как это всё систематизировать, чтобы росла коллективная база знаний. Но не текстовая - книги писать некому, а некий движок IDE с контекстными подсказками. Пишешь метод в одном стиле - тебе подсказки совместимых подобных методов. Как бы туда ещё включить наводящие ключевые слова? Типа. сохранение в файл - > FileSystemObject


--------------------
Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go
PM WWW   Вверх
regis
Дата 10.2.2006, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 232
Регистрация: 12.12.2005
Где: Москва, Россия

Репутация: нет
Всего: 7



Давайте, давайте больше недостатков. Я их в свою статью вставлю ;)

(Хотя, по моему, весь JS-это один большой недостаток... но это мое ИМХО)

По поводу отсутствия delay (или чего-то в этом роде): это, по-моему, вполне намеренная фича. Скрипт не должен захватывать управление (по кр. мере, на продолжительное время) -- соответственно, весь тайминг может быть реализуем только через setTimeout() / setInterval().

По поводу отсутствия работы с файлами: безопасность. Вы представьте, что будет, если любой скрипт на любом сайте сможет с вашими системными файлами работать? smile

По поводу быстродействия (вернее, медленнодействия): а чего еще ждать от языка, в котором все (включая даже числа) является объектами? (Причем в каждом -- хэш-словарь для компонент/аттрибутов, и т.п.)


--------------------
В. В чем разница между hardware и software?О. В отличие от второго, по первому можно двинуть кулаком или пнуть ногой.
PM MAIL WWW   Вверх
Zeroglif
Дата 10.2.2006, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 644
Регистрация: 22.9.2005

Репутация: 28
Всего: 66



Цитата(regis @ 10.2.2006, 13:27 Найти цитируемый пост)
По поводу быстродействия (вернее, медленнодействия): а чего еще ждать от языка, в котором все (включая даже числа) является объектами?


Откуда такая уверенность? smile
PM MAIL WWW   Вверх
Innuendo
Дата 11.2.2006, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 24.12.2005
Где: Молдова

Репутация: 2
Всего: 6



А эти недостатки будут услышаны людьми свыше? smile

Я напишу не недостаток языка, а такую штуку:
так как пишем мы это дело в блокноте (ну или другом редакторе) возникают часто проблемы с кодом, и их бы проследить, а такой возможности нету. То есть Отладка программы... (Debug вроде называется). Может я конечно ошибаюсь- в некоторых редакторах это есть, ноя не видел...
А то иногда в циклах путаешься (когда они громоздкие) а следиьт одними alert'ами не удобно smile


--------------------
=)
PM MAIL ICQ Jabber   Вверх
Alx
Дата 11.2.2006, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



Innuendo,
ну, может, просто смотреть на какой строке ошибка и исправлять?
а то ведь с дебагером и писать не интересно...


--------------------
PM MAIL WWW ICQ   Вверх
Innuendo
Дата 11.2.2006, 23:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 24.12.2005
Где: Молдова

Репутация: 2
Всего: 6



Alx,
ну не знаю... очнеь часто пишет строку, а ты понимаешь что это только при каком-то условии цикла...
всё равно видеть все ходы цикла гораздо удобнее smile


--------------------
=)
PM MAIL ICQ Jabber   Вверх
sergejzr
Дата 12.2.2006, 00:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



Берёшь Firefox, ставишь плагин venkman и вот тебе полноценный дибагер smile
Добавлено @ 00:11
Цитата(Alx @ 11.2.2006, 20:36 Найти цитируемый пост)
а то ведь с дебагером и писать не интересно...

Саня, ты прикалываешься smile))) Не интересно, когда 10 строк, а если 20 кБ кода, то с распечаткой с ума сойти можно.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Alx
Дата 12.2.2006, 01:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



ну не наю)))
я как-то всю жизнь пока обходился...) smile


--------------------
PM MAIL WWW ICQ   Вверх
Innuendo
Дата 12.2.2006, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 24.12.2005
Где: Молдова

Репутация: 2
Всего: 6



Цитата(Alx @ 12.2.2006, 01:08 Найти цитируемый пост)
ну не наю)))
я как-то всю жизнь пока обходился...)

можн и дальше обходится.. зато с ней можно скэономить время поиска ошибки.


--------------------
=)
PM MAIL ICQ Jabber   Вверх
Sardar
Дата 12.2.2006, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(Alx @ 9.2.2006, 16:45 Найти цитируемый пост)
1. цикл с возможностью задания паузы между единичными выполнениями, который мог бы возвращать результат после каждого из своих выполнений
как обходим: используем в качестве цикла функцию, в которой указываем счетчик и вызываем её с помощью

Очень хочеться поддержки многозадачности, что то типа:
Код
//код что должен выполняться паралельно с переодическими задержками и т.п.
var t = Thread.create(func);
t.run(); //сразу же выходим из вызова и продолжаем выполнение
alert('OK');

function func() {
  //здесь код что работает паралельно с другими потоками
  //значит его можно блочить без проблем =)
  alert('step 1');
  Thread.sleep(2*1000); //спим 2 секунды
  alert('step 2');
}

Возникнет масса проблем с синхронизацией, для решения можно ввести synchronized ключевое слово. Dead lock'и можно отследить, хотя если копнуть глубже можно найти кск другие скрипты поддерживающие треды решили сии проблемы. В любом случе множество тредов просто необходимо в AJAX приложениях, уже сейчас сам XMLHttpRequest и его события отрабатываються в отдельном треде.

Цитата(Alx @ 9.2.2006, 16:45 Найти цитируемый пост)
1. HTML: <SELECT> с возможностью ввода текста + подбор из опций соотвутствующих записей.

Это не задача JS, а компонент браузера. Стили, разметку, фичи, всё это к JS не приписываем, язык только управляет этими обьектами smile

Цитата(12345c @ 9.2.2006, 17:35 Найти цитируемый пост)
5. неуклюжесть в определении свойств - margin - border - padding и очень оригинальное определение width c учётом этих свойств.

В смысле? В CSS стилях названия содержат '-' что являеться оператором в JS, потому именование типа backgroundColor ИМXО очень даже подходящее. Если ты о формате общих свойств border, margin и т.д., то это не к JS, а к спецификации CSS smile

Цитата(Aliance @ 9.2.2006, 20:59 Найти цитируемый пост)
Скудная работа с картинками

Это опять же браузерный обьект smile Мозилла(Gecko) и Safari имеют canvas, очень даже удобно рисовать. Xотя когдабраузеры начнут свободно понимать SVG и подключат API к JS, то можно будет из JS работать с SVG примитивами, вот это будет действительно "Флешевая анимация" smile

От себя добавлю:
  • скудный язык, приходиться много работать с DOM коллекциями, а удобных итераторов нет. Самая плохая реализация for in тоже в JS, т.к. не удобно, перечисляет всё, что правильно для JS, т.к. у обьектов и методы и поля это одно и тоже.
  • нет хороших коллекций, всё что имеем это массивы и обьекты. Обьекты наследуют прототип Object, так что даже пустой обьект полон всего, отсюда понимаем почему for in не удобно. Требуеться словарь (ключь=>значение), множества, кортежи и другое.
  • нет человеческого API у существующих коллекций, в языке где в основе лежат closures пользуем for(var i; i<length; i++) для перебора, а с ключами вообще лажа. Вообще это позорно... smile
  • нет пространств имён/пакетов/модулей или любого другого механизма контроля видимости кода. Сейчас ещё не актуально, но в будущем может понадобиться. Сюда хорошо бы дополнить загрузку кода с сервера (только с домена страницы) нормальным API, а не создаванием скриптов в ручную, что не везде работает, да и "грязно"
В целом язык уже не молод, но ещё сырой на текущее время, а учитывая что вводиться он везде и повсеместно (вернее ECMA Script или pure JS без браузерного API), то требуеться под шумок его расширить smile JS 2.0 ИМXО лажа, полная. Не хочу видеть видеть классы в языке без типов, это провал, притянуто за уши под моду. Читаем Fortress и traits, почти это реализовано уже в JS, осталось ввести контроль импорта окружения в функции, так что бы не приходилось "извращаться" делая "приватные" переменные. Xотя текущие подходы извратами не нахожу. Xочеться что бы JS начал по своей гибкости напоминать Python smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Destruction
Дата 12.2.2006, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 12.2.2006

Репутация: нет
Всего: нет



Цитата(Zeroglif @ 10.2.2006, 14:42)
Цитата(regis @  10.2.2006,  13:27 Найти цитируемый пост)
По поводу быстродействия (вернее, медленнодействия): а чего еще ждать от языка, в котором все (включая даже числа) является объектами?


Откуда такая уверенность? smile

Код

<script>
alert(Number('123').constructor);
alert(Number('123').constructor.constructor);
</script>


Это сообщение отредактировал(а) Destruction - 12.2.2006, 21:28
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1410 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.