Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flasher.ru > Флейм

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 13.05.2011, 05:12
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 1  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
По умолчанию ECMA ужас

Котярин линк - http://www.addconf.ru/event.sdf/ru/a...ySoshnikov/368
Ваши мнения, господа.

Старый 13.05.2011, 12:26
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 2  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
ну это не то что бы новшества ecma. просто это коснулось js и рашен js-сообщество проснулось.

Старый 13.05.2011, 12:28
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 3  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Понравилось то, что после просмотра Vimeo предложил посмотреть другое видео "Коммуникативные ошибки ИТшников и как их избежать".

А по содержанию... не знаю, это все больше и больше выглядит так, что есть несколько разработчиков, которые не могут договориться, как сделать хорошо, поэтому делают много. На уровне полезностей - ну, чего-то есть стоящее, чего-то видится как, наоборот лишнее / плохое. Как бы энтузиазма особо не вызывает... особо дибильным выглядит #(this) { this.чегоТоТам(); } - явно же костыль, уже изначально, еще на этапе проектирования заложеный в язык... эх. Еще более дибильно то, что во многих языках # начинает комментарий. Если там кто-то пытался использовать яваскрипт через CGI, то облом будет с такими именами. Да и вообще не понятно, чем слово function было так плохо и непонятно, что его нужно было заменить каким-то левым значком.
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 13.05.2011 в 12:31.
Старый 13.05.2011, 12:29
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 4  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
лично мне не кажется, что let-ы, #-функции с неявными ретурнами и обилие прототипов облегчат жизнь)
И второе - интуация подсказывает, что кол-во js Г-кода возрастет на порядок, после начала поддержи этого всего в js.

Добавлено через 4 минуты
Цитата:
Да и вообще не понятно, чем слово function было так плохо и непонятно
слишком длинное и создающее "синтаксический" шум.)


Последний раз редактировалось i.o.; 13.05.2011 в 12:56.
Старый 13.05.2011, 12:43
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 5  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Про длину слов и сокращений - как раз недавно пример вспомнил. Как-то меня попросили передать сценарий для мультфильма, и я решил его по-дороге прочитать. Сценарий был про маленькую девочку Женю, у которой то складывалась то не складывалась ее незатейливая детская жизнь. В общем и целом сценарий не предполагал быть смешным... но автор решил, что писать полное имя действующих лиц, в то время как читатель их уже наверное запомнил и так, да и вообще действующее лицо было-то всего одно... вобщем, решил сэкономить. И текст поэтому изобиловал следующими фразами: "В детстве Ж. была сркомной и застенчивой, но когда подросла..."
__________________
Hell is the possibility of sanity

Старый 13.05.2011, 12:57
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 6  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
Цитата:
"В детстве Ж. была сркомной и застенчивой, но когда подросла..."
вот ведь

Добавлено через 13 минут
Проблема:
Код:
let object = {
	start: function(){
		setTimeout(function(){this.continue();}, 500);
	},
	continue: function(){...}
}
object.start();

Решение через #
Код:
let object = {
	start: #(this){
		setTimeout(#{this.continue();}, 500);
	},
	continue: #(this){...}
}
object.start();

Традиционные варианты решения:

вариант 1:
Код:
let object = {
	start: function(){
		setTimeout( (function(){this.continue();}).call, 500, this );
	},
	continue: function(){...}
}
object.start();
вариант 2:
Код:
let object = {
	start: function(){
		setTimeout(this.continue.call, 500, this);
	},
	continue: function(){...}
}
object.start();
Выходит, что проблема на пустом месте?

Добавлено через 16 минут
импорты:
Код:
import Library.*; // импортировать все
import Library.{query,ajax:xhr}; // импортировать только нужное
омг

Добавлено через 23 минуты
ПС: Кто-то уже исправил название темы... "УжОс" - ошибка была допущена намеряно


Последний раз редактировалось i.o.; 13.05.2011 в 13:28.
Старый 13.05.2011, 21:22
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 7  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
@i.o. читайте правила форума. "удафизмы" запрещены.

Старый 13.05.2011, 21:44
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 8  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
я не знаком с лексикой "удава"

Старый 13.05.2011, 21:45
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 9  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Есть такое понятие, как "синтаксический сахар"...
Код AS3:
[1,2,3].map(#(x){x*x});
это вроде и сладко, но что-то аж зубы сводит..
__________________
Отряд Котовскага

Старый 14.05.2011, 02:08
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 10  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Тут еще фишка с этим сахаром в чем... Изначальная идея создания ECMAScript, да и вообще любого языка с Си-подобным синтаксисом была в том, чтобы за "мета данными" спрятать какие-то низкоуровневые повторяющиеся опреации. Т.е if-else это сокращенная форма записи из трех goto, function - тоже "мета данные" языка. И в этом есть какая-то идея и общий смысл. Т.е. язык работает как своего рода фреймворк, с уже заготовленными шаблонами в виде примитивов этого языка. Есть языки более "простые", в которых этого нет. И в них для того, чтобы объявить функцию, ее действительно нужно описать со всеми регалиями. Чтобы объявить свойство, его нужно описать и описать кучу правил к нему. Достоинство такого подхода - большое разнообразие и неограниченный полет фантазии. Недостаток - сложность, как восприятия, так и реализации.
Я вот не могу понять зачем в языке, который будет в 99% случаев использоваться для манипуляций HTML нужно так подробно описывать свойства объектов, но мало того, они еще и двух типов будут. А при этом еще и нестрогой типизации. Как будто мало было всяких уродских решений, как проверить значение присвоенное переменной - так сейчас к этому добавится еще и проверка на то, что объект реализует toString(), что он перечисляемый, не запечатанный, не замороженный...
И вот тут у меня возникает когнитивный диссонанс Почему объявления свойств нужно было неимоверно усложнить, (при этом объявление методов осталось очевидно по-старому простым), и в то же время нужно "упростить" слово function, которое и понятно, и универсально, и да не мешало оно никому...
Тоесть, что получается, вместо const FOO = "bar" предлагается писать Object.createProperty(foo { FOO: "bar" }), а вместо function(), #() - почему?
Мне так кажется, что все это потому, что в C++0x и в C# есть специфический синтаксис для анонимных функций, и тут в ECMAScript приспичило сделать "как у них", вообще не разобравшись что к чему.

"Старые" языки, откуда собственно растут ноги этих новшеств страдают от собственных недостатков - результатов именно тех самых вещей, которые тут предлагается добавить. При этом другие языки, чуть по-моложе, но все же с приличным опытом нашли вполне приемлимые решения. Это я о модулях JavaScript изначально объектно-ориентированный, и самый напрашивающийся вариант инкапсуляции - да такой же как в Java, C#. Не понятно, как они собираются решать коллизии имен, которые естесственным образом возникнут при использовании таких модулей. В том смысле, что мне не понятно, как при той системе, которую они придумали они смогут, например, загрузить два модуля с одинаково назваными экспортированными функциями и как они их смогут использовать внутри третей функции без танцев с бубном.
Export / intern предполагают наличие так же shadows, import-from-package, nicknames и use Ну в том смысле, что если уже копировать, так полностью, скопированное наполовину не будет работать.
__________________
Hell is the possibility of sanity

Создать новую тему Ответ Часовой пояс GMT +4, время: 13:26.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 13:26.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.