Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2015.09.10;
Скачать: [xml.tar.bz2];

Вниз

У кого есть Delphi > XE4, проверьте багу   Найти похожие ветки 

 
DVM ©   (2014-11-19 22:56) [40]


> Kerk ©   (19.11.14 22:51) [39]


> Замыкания более-менее адекватно без натяжек и недомолвок
> заменить можно только классами.

а вот здесь есть замыкание?

function A()
var
 x: integer;

 function B()
 begin
 
 end;

begin
 B()
end;


 
Kerk ©   (2014-11-20 01:07) [41]

Нет, простое обращение к переменным из более общей области видимости - это не замыкание. Это стало бы замыканием, если бы функция A смогла бы вернуть ссылку на функцию B. Но она не сможет.


 
Eraser ©   (2014-11-20 02:26) [42]


> Юрий Зотов ©   (19.11.14 21:57) [23]

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


 
han_malign ©   (2014-11-20 09:02) [43]


> Разница в форме записи анонимных функций в языках поддерживающих
> лямбда выражения и в не поддерживающих (Delphi).

- ествественно в Delphi - не пахнет лямбда-исчислением...
Как и в С++...
Тем не менее даже MS, называет синтаксический сахар для неявного создания функтора - Lambda Expression...
http://msdn.microsoft.com/ru-ru/library/dd293608.aspx
...
Many programming languages support the concept of an anonymous function, which is a function that has a body, but doesn"t have a name. A lambda is a programming technique that"s related to anonymous functions. A lambda implicitly defines a function object class and constructs a function object of that class type. For more information about function objects, see Function Objects.



> Callback никаких ссылок никуда не должен хранить.

- ключевые слова - "не должен"...

Просто - ровно такой же косяк в IE + ActiveX, после цепляния к ActiveX "функции обратного вызова" JScript(IDispatch)...
Все калбяки приходится вручную чистить, чтобы объект прибился(в нужное время).
(проблема с утечкой DOM Node известна с IE6 и продожает жить в IE11)

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

З.Ы.: Возможно если убрать "связывание" через переменную Callback, сделав "прямое вложение" анонимок - то однопроходный Delphi поймет степень локальности функтора...
(я бы поковырялся, да ХЕ у меня под рукой нет)


 
Ellisium ©   (2014-11-20 09:50) [44]


> См. [15].

так я то комментировал пост [10]


> Жека это такая специфическая болячка, он весь на IT отдел
> перетряхнул, причем таким образом, что даже

дык я тебе давно говорил, что ты вы даже не понимаете, как вам повезло, что Жэка у вас работает ))
Такой профи и такой скромный :)


 
jack128 ©   (2014-11-20 10:33) [45]


>  сделав "прямое вложение" анонимок

не, это работает, конечно.

begin
//  Callback := procedure begin end;
 ExecuteAction(procedure begin DoWork(procedure begin end); end);
end;

так мемлика нет. Но как тут влияет однопроходность компилятора - неясно. Даже однопроходный компилятор в состоянии понять, что Callback не должен держать никаких ссылок.


 
han_malign ©   (2014-11-20 11:22) [46]


>  Даже однопроходный компилятор в состоянии понять

- единственная, известная мне, оптимизирующая редукция кода в Delphi - это выкидывание методов begin inherited; end;
Всё остальное компилируется как есть - независимо от области видимости и связности объектов...

Издержки толстой унификации...


 
Rouse_ ©   (2014-11-20 19:47) [47]


> han_malign ©   (20.11.14 11:22) [46]
>
> >  Даже однопроходный компилятор в состоянии понять
>
> - единственная, известная мне, оптимизирующая редукция кода
> в Delphi - это выкидывание методов begin inherited; end;
>

Это ты за какой компилер говорил? В ХЕ,  особливо в старших версиях с компирером вообще беда...


 
Ellisium ©   (2014-11-20 19:51) [48]


> В ХЕ,  особливо в старших версиях с компирером вообще беда.
> ..

а чем там компилер хуже, чем например в Delphi 7?


 
Ellisium ©   (2014-11-20 19:53) [49]

а вот то, что какой-нибудь node.js на v8 обгоняет delphi на арифметических операциях - это забавно, конечно.


 
Rouse_ ©   (2014-11-20 21:21) [50]


> а чем там компилер хуже, чем например в Delphi 7?

Да тут все просто - компилер уныл по сути и скатывается в яму:
http://kazav.blogspot.ru/2013/05/delphi.html
http://kazav.blogspot.ru/2014/01/delphi-2.html

Непонятно к чему это приведет, с учетом что проект компилера покинул даже последний вменяемый разработчик (который и вводил дженерики, анонимки и прочее).


 
han_malign ©   (2014-11-21 09:01) [51]


> Это ты за какой компилер говорил?

- D4-D7 - forever


 
Ellisium ©   (2014-11-21 09:39) [52]


> Непонятно к чему это приведет

это уже привело. Сказать эти два магических слова? :)))


 
DVM ©   (2014-11-21 10:14) [53]


> Сказать эти два магических слова? :)))

в ветку призывается Пит :)


 
jack128 ©   (2014-11-21 10:31) [54]


> в ветку призывается Пит :)

Хм, а Ellisium - это разве не Пит??


 
Ellisium ©   (2014-11-21 13:26) [55]

jack128, ты кстати node.js не ковырял глубоко? Тебя можно мучать?


 
jack128 ©   (2014-11-21 13:28) [56]


> jack128, ты кстати node.js не ковырял глубоко?

Нет. Динамические языки - в топку.


 
Ellisium ©   (2014-11-21 13:33) [57]


> Динамические языки - в топку.

а на чем же под веб писать? Не рассказывай только, что под веб не пишешь, вопрос в том, на чем под веб писать ))


 
junglecat ©   (2014-11-21 13:44) [58]

> а на чем же под веб писать?

на шарпе например


 
DVM ©   (2014-11-21 14:20) [59]


> Ellisium ©   (21.11.14 13:33) [57]


> а на чем же под веб писать?

C# в лице ASP.NET MVC + Web Services - сервер
JavaScript в лице jQuery - клиент

Учитывая последние новости с портированием NET в целом и ASP.NET MVC в частности под линукс эта связка будет только набирать популярность.


 
DVM ©   (2014-11-21 14:26) [60]


> jack128 ©   (21.11.14 13:28) [56]


> Динамические языки - в топку.

TypeScript с легкостью превращает динамический JavaScript в язык со статической типизацией и синтаксисом с привычным человеческим лицом. Разработчик тот же что у C# и Delphi

https://ru.wikipedia.org/wiki/TypeScript


 
DVM ©   (2014-11-21 14:35) [61]


> Ellisium ©   (21.11.14 13:26) [55]


> node.js

я, честно говоря не понимаю. чего все носятся с этим node.js в то время как он даже со всеми оптимизациями является очень медленным по сравнению с IIS а тем более ngnix.

Да что там IIS, вот исходники сервера на Delphi с использованием портов завершения ввода-вывода (IOCP) так node.js в 10-200 раз медленнее его.
https://code.google.com/p/delphi-iocp-framework/


 
jack128 ©   (2014-11-21 14:55) [62]


> TypeScript с легкостью превращает динамический JavaScript
> в язык со статической типизацией и синтаксисом с привычным
> человеческим лицом.

Да, typescript - это тема. Я слежу за ним.


>  честно говоря не понимаю. чего все носятся с этим node.

Возможно потому что front-end разработчики хотят писать server side, а ничего кроме js не умеют.


 
junglecat ©   (2014-11-21 15:02) [63]

> front-end разработчики хотят писать server side

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


 
Ellisium ©   (2014-11-21 15:18) [64]


> он даже со всеми оптимизациями является очень медленным

а я наоборот читал, что он очень быстрый. Один из немногих, который выдерживает проблему 10`000... или я что-то не то читал?


 
DVM ©   (2014-11-21 15:38) [65]


> Ellisium ©   (21.11.14 15:18) [64]


> а я наоборот читал, что он очень быстрый. Один из немногих,
>  который выдерживает проблему 10`000

Я чего то не заметил что он быстрый.

https://code.google.com/p/delphi-iocp-framework/
Там есть результаты сравнения.


 
jack128 ©   (2014-11-21 16:00) [66]


> Один из немногих, который выдерживает проблему 10`000...
>  или я что-то не то читал?

http://habrahabr.ru/post/145796/


 
Ellisium ©   (2014-11-21 18:08) [67]

Жэк, ну по крайней мере ты же сам приводил примеры как node.js уделывает Delphi по какой-то арифметике...


 
jack128 ©   (2014-11-21 18:42) [68]

Меня это интересовало в контексте дельфи, а не нода.жс. и то что та нода сделала Дельфи по производительности-это не победа ноды. Это проигрыш Дельфи.


 
Ellisium ©   (2014-11-21 19:32) [69]

Ну понятно.

В целом, это все обсуждение сферических коней. Тот же PHP, который недоязык, который для хоумпейдж, который для былокодеров. Но вся фишка в том, что есть крупнейшие ресурсы с сотнями миллионов пользователей, которые отлично живут на PHP. Да, там есть специальные заточки, свои фреймворки, свои шаблонизаторы, но тем не менее. И всё это работает на PHP + MySQL с шардированием и прекрасно себя чувствует, причем для определения шарда зачастую используется одна БД, которая всё тянет (в том числе, например, в яндексе так). Так что всё гораздо проще, чем многие думают и зачастую сложнее, чем представляют :)


 
Rouse_ ©   (2014-11-21 19:43) [70]

Что такое "шардирование"?
ЗЫ: я реально не в курсе.


 
Rouse_ ©   (2014-11-21 19:46) [71]

ЗЗЫ: я просто в курсе что у Яндекса охрененный такой датацентр в количестве "многа штук", о чем они писали на хабре, но не знал что у них всего одна база данных.


 
junglecat ©   (2014-11-21 21:26) [72]

> с шардированием

от слова shard - осколок?


 
DVM ©   (2014-11-21 22:11) [73]


> Ellisium ©   (21.11.14 19:32) [69]
> Ну понятно.
>
> В целом, это все обсуждение сферических коней.

Почему сферических? Вполне реальных. Я ж тебе приводил ссылку, там код с примером, запускаешь - видишь как сервер на IOCP быстрее такого же на node.js в 10 раз минимум.
Но быстродействие это ерунда, мало где нужны сотни тысяч подключений в секунду.
Но как скажите мне поддерживать большое приложение на этом чертовом JavaScript. Исключений нет, эти дурацкие коллбеки для мазохистов. Не понимаю я.


 
junglecat ©   (2014-11-21 22:41) [74]

> на этом чертовом JavaScript. Исключений нет

как нет?
http://javascript.ru/try-catch


 
DVM ©   (2014-11-21 23:06) [75]


> junglecat ©   (21.11.14 22:41) [74]

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



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2015.09.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.61 MB
Время: 0.044 c
2-1392639364
Васька
2014-02-17 16:16
2015.09.10
Открытие формы


15-1412763614
alexdn
2014-10-08 14:20
2015.09.10
Php и пдф отчет


2-1397985451
Andrey5
2014-04-20 13:17
2015.09.10
Проверка пароля


15-1414396225
Kilkennycat
2014-10-27 11:50
2015.09.10
на форуме часы врут


15-1414870399
Pavia
2014-11-01 22:33
2015.09.10
Переопределение класса.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский