Re[21]: Скорость JavaScript
От: Klapaucius  
Дата: 07.06.11 12:52
Оценка: +2
Здравствуйте, Cyberax, Вы писали:

C>Насколько я понял, у тебя просто создаются новые типы, а именованый тип изменить после создания нельзя.


Ну, в Хаскеле и значения создаются новые, а не меняются после создания. Никакого отношения к ограничениям статической типизации вообще это не имеет.
Да и непонятно, зачем нужно именно изменить тип?

C>Ну как бы, в динамике нет проблем с типами.


Ну правильно: нет типов — нет проблем с типами. Зато есть проблемы без типов. Т.е. явно не все ОК.
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[22]: Скорость JavaScript
От: Cyberax Марс  
Дата: 07.06.11 18:25
Оценка:
Здравствуйте, Klapaucius, Вы писали:

C>>Насколько я понял, у тебя просто создаются новые типы, а именованый тип изменить после создания нельзя

K>Ну, в Хаскеле и значения создаются новые, а не меняются после создания. Никакого отношения к ограничениям статической типизации вообще это не имеет.
K>Да и непонятно, зачем нужно именно изменить тип?
А каким образом к этому типу обращаться в остальном коде? Явно по версированому имени? Неудобно.

C>>Ну как бы, в динамике нет проблем с типами.

K>Ну правильно: нет типов — нет проблем с типами. Зато есть проблемы без типов. Т.е. явно не все ОК.
Ну кто же спорит. Нет человекатипов — нет проблем.
Sapienti sat!
Re[23]: Скорость JavaScript
От: Klapaucius  
Дата: 08.06.11 12:16
Оценка: +1
Здравствуйте, Cyberax, Вы писали:

C>А каким образом к этому типу обращаться в остальном коде?


Что значит "обращатся к типу"? Функция, читающая поля записи работает и с первоначальной записью и с той, в которой добавилось поле. И будет работать с любой записью, в которой есть поля, к которым функция обращается.

C>Явно по версированому имени?


И что значит "версированное имя"? Имени у типа записи можно сказать, что и нет. Это "утиная" типизация, реализованная в библиотеке.

C>Ну кто же спорит. Нет человекатипов — нет проблем.


Ну так в том и дело — от отсутствия типов все проблемы не исчезают, да еще и новые добавляются.
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[4]: Скорость JavaScript
От: serb Россия  
Дата: 15.07.11 12:01
Оценка: 2 (1)
Здравствуйте, fin_81, Вы писали:

_>java медленнее http://ideone.com/evyrW результат: успешно время: 2.03s


_>js рулит.

_>Хотя по выделенной памяти заметно, что js оптимизирует(забивает на) освобождение памяти
java:
http://ideone.com/LaLiT
время: 0.06s
Re[23]: Скорость JavaScript
От: Ночной Смотрящий Россия  
Дата: 17.07.11 16:54
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Ну кто же спорит. Нет человекатипов — нет проблем.


Ну и? В отличие от динамики, в статике динамически работать с данными можно. Можно даже сахарок синтаксический прикрутить, как в C#.
Re[12]: Скорость JavaScript
От: Ночной Смотрящий Россия  
Дата: 17.07.11 16:54
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Не клеит только потому, что библиотека не позволяет. Вариант со стрингбилдером слишком многословный для современного языка. Это очевидно, как день.


Ну, если тебе синтаксис покороче, то пожалуйста:
new string('a', 1000)


Бредовой задаче идиотское решение.
А для нормальных задач есть string.Join().
Re[24]: Скорость JavaScript
От: Cyberax Марс  
Дата: 17.07.11 18:03
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

C>>Ну кто же спорит. Нет человекатипов — нет проблем.

НС>Ну и? В отличие от динамики, в статике динамически работать с данными можно. Можно даже сахарок синтаксический прикрутить, как в C#.
То есть?
Sapienti sat!
Re[25]: Скорость JavaScript
От: Ночной Смотрящий Россия  
Дата: 17.07.11 20:16
Оценка: :)
Здравствуйте, Cyberax, Вы писали:

C>То есть?


Ну то есть берешь динамическую структуру типа датасета и вперед.
Re[26]: Скорость JavaScript
От: Cyberax Марс  
Дата: 17.07.11 20:38
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

C>>То есть?

НС>Ну то есть берешь динамическую структуру типа датасета и вперед.
А ещё можно все структуры заменить хэш-таблицами, а все вызовы — на динамические. И получить динамический язык в итоге.

Вот недавно ещё одну фишку вспомнил, которая в статических языках плохо делается — реактивное программирование.
Sapienti sat!
Re[27]: Скорость JavaScript
От: Ночной Смотрящий Россия  
Дата: 17.07.11 20:40
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>>>То есть?

НС>>Ну то есть берешь динамическую структуру типа датасета и вперед.
C>А ещё можно все структуры заменить хэш-таблицами, а все вызовы — на динамические.

Все то зачем? Только те что нужно. В этом — цимус.

C> И получить динамический язык в итоге.


Зачем?

C>Вот недавно ещё одну фишку вспомнил, которая в статических языках плохо делается — реактивное программирование.


Чо, Rx уже отменили?
Re[28]: Скорость JavaScript
От: Cyberax Марс  
Дата: 17.07.11 20:51
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

C>>>>То есть?

НС>>>Ну то есть берешь динамическую структуру типа датасета и вперед.
C>>А ещё можно все структуры заменить хэш-таблицами, а все вызовы — на динамические.
НС>Все то зачем? Только те что нужно. В этом — цимус.
Для того, чтобы добиться гибкости динамического языка.

C>>Вот недавно ещё одну фишку вспомнил, которая в статических языках плохо делается — реактивное программирование.

НС>Чо, Rx уже отменили?
Примерно да. Он решает немного другие задачи, по сравнению с Trellis для Питона или http://knockoutjs.com/ для JS.
Sapienti sat!
Re[29]: Скорость JavaScript
От: Ночной Смотрящий Россия  
Дата: 17.07.11 21:47
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Для того, чтобы добиться гибкости динамического языка.


Какой такой гибкости?

C>>>Вот недавно ещё одну фишку вспомнил, которая в статических языках плохо делается — реактивное программирование.

НС>>Чо, Rx уже отменили?
C>Примерно да.



C> Он решает немного другие задачи, по сравнению с Trellis для Питона или http://knockoutjs.com/ для JS.


Ну так раскрой мысль, что такого не хватает статически типизированным языкам.
Re[30]: Скорость JavaScript
От: Cyberax Марс  
Дата: 17.07.11 22:00
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

C>> Он решает немного другие задачи, по сравнению с Trellis для Питона или http://knockoutjs.com/ для JS.

НС>Ну так раскрой мысль, что такого не хватает статически типизированным языкам.
Нельзя, к примеру, динамически поменять функциональность методов, чтобы отслеживать любое обращение к данным внутри наблюдаемого множества. Можно делать статический weaving, но проблема в том, что его придётся делать для всего кода и всех возможных ситуаций.
Sapienti sat!
Re[31]: Скорость JavaScript
От: Константин Б. Россия  
Дата: 18.07.11 05:11
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, Ночной Смотрящий, Вы писали:


C>>> Он решает немного другие задачи, по сравнению с Trellis для Питона или http://knockoutjs.com/ для JS.

НС>>Ну так раскрой мысль, что такого не хватает статически типизированным языкам.
C>Нельзя, к примеру, динамически поменять функциональность методов, чтобы отслеживать любое обращение к данным внутри наблюдаемого множества.

А PropertyChangedBuilder из BLToolkit разве не это как раз реализует?
Re[32]: Скорость JavaScript
От: Cyberax Марс  
Дата: 18.07.11 06:53
Оценка:
Здравствуйте, Константин Б., Вы писали:

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

C>>Нельзя, к примеру, динамически поменять функциональность методов, чтобы отслеживать любое обращение к данным внутри наблюдаемого множества.
КБ>А PropertyChangedBuilder из BLToolkit разве не это как раз реализует?
Нет, там хитрее.

В виде псевдокода:
var a = 10;
var b = 20;

//Указываем как мы рассчитываем текст на поле ввода
form.displayField.text = function() { 
   return a+b; //Обычный код, может включать вызовы других функций и т.п.
} 
...
a=11; //И значение в поле ввода тут же меняется.


От Rx отличие в том, что нет никакой завязки в коде на него.
Sapienti sat!
Re[27]: Скорость JavaScript
От: Klapaucius  
Дата: 18.07.11 08:00
Оценка: +1
Здравствуйте, Cyberax, Вы писали:

C>Вот недавно ещё одну фишку вспомнил, которая в статических языках плохо делается — реактивное программирование.


Ну конечно. Наверное поэтому большая часть работ по реактивному программированию делалась и делается на базе языков со стат.типизацией.

Да, вы, кстати, все еще на мои вопросы
Автор: Klapaucius
Дата: 08.06.11
не ответили.
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[33]: Скорость JavaScript
От: Klapaucius  
Дата: 18.07.11 08:00
Оценка: +1 :)
Здравствуйте, Cyberax, Вы писали:

C>В виде псевдокода:

C>var a = 10;
C>var b = 20;

C>//Указываем как мы рассчитываем текст на поле ввода
C>form.displayField.text = function() { 
C>   return a+b; //Обычный код, может включать вызовы других функций и т.п.
C>} 
C>...
C>a=11; //И значение в поле ввода тут же меняется.


Ну правильно, как я и сказал выше, динамическая типизация сопутствует плохому решению. Т.е. это такие костыли для костылей. Реактивное программирование с неконтролируемым состоянием вообще не очень хорошо сочетается.
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[33]: Скорость JavaScript
От: Константин Б. Россия  
Дата: 18.07.11 09:39
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, Константин Б., Вы писали:


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

C>>>Нельзя, к примеру, динамически поменять функциональность методов, чтобы отслеживать любое обращение к данным внутри наблюдаемого множества.
КБ>>А PropertyChangedBuilder из BLToolkit разве не это как раз реализует?
C>Нет, там хитрее.

C>В виде псевдокода:

C>
C>var a = 10;
C>var b = 20;

C>//Указываем как мы рассчитываем текст на поле ввода
C>form.displayField.text = function() { 
C>   return a+b; //Обычный код, может включать вызовы других функций и т.п.
C>} 
C>...
C>a=11; //И значение в поле ввода тут же меняется.
C>


C>От Rx отличие в том, что нет никакой завязки в коде на него.


Ну и на шарпе это выглядело бы как-нибудь так:

public abstract class Foo : IPropertyChanged {
    public abstract int a {get;set;}
    public abstract int b {get;set;}
    public string c
    {
       get {return (a + b).ToString();}
    }
}

foo = TypeAccessor.CreateInstance<Foo>()
form.displayField.DataBindings.Add(new Binding("Text", foo, "c"))
foo.a = 11
Re[6]: Скорость JavaScript
От: ononim  
Дата: 18.07.11 10:13
Оценка:
S>>http://ideone.com/xbIqq, результат: Успешно время: 0.03s
D>http://ideone.com/eQV6I
D>

D>result: Success time: 0.02s

D>

http://ideone.com/pEaKh

result: success time: 0s

Как много веселых ребят, и все делают велосипед...
Re[34]: Скорость JavaScript
От: Cyberax Марс  
Дата: 18.07.11 17:23
Оценка:
Здравствуйте, Константин Б., Вы писали:

C>>От Rx отличие в том, что нет никакой завязки в коде на него.

КБ>Ну и на шарпе это выглядело бы как-нибудь так:
Не пройдёт. Во-первых, тебе надо будет всё помещать в один большой контекст.

Во-вторых:
var a = 10;
var b = 20;

//Указываем как мы рассчитываем текст на поле ввода
form.displayField.text = function() { 
   return a+b; //Обычный код, может включать вызовы других функций и т.п.
} 
form.displayField2.text = function() { 
   return b^2;
} 

a=11; //Пересчитается первое поле
b=12; //Пересчитаются оба поля
Sapienti sat!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.