Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Почему так не любят Delphi? 
:(
    Опции темы
k0rvin
Дата 30.1.2013, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Zloxa @ 29.1.2013,  21:38)
not (false) = true ==> not (null < 1) = true
smile

PostgreSQL:
Код

select 'all', int_field from test.test
union all
select 'int_field < 1', int_field from test.test where int_field < 1
union all
select 'not (int_field > 1)', int_field from test.test where not (int_field > 1)

=>
Код

      ?column?       | int_field
---------------------+-----------
 all                 |
 all                 |         0
 int_field < 1       |         0
 not (int_field > 1) |         0
(4 rows)


Цитата(Zloxa @ 29.1.2013,  21:38)
В том то и дело, что в оракле со строками не так. В оракле пустая строка есть суть null и наоборот. Соответственно конкатенация с null эквивалентна конкатенации с пустой строкой, что чертовски удобно, но с-ка не по ANSI и вызывает жесточайший анальный зуд у тех, кто не привык к такой логике поведения после того, как внезапно обнаружат что length('') не равняется нулю, а является не определенным значением.

Ораклопроблемы. Стоит сменить БД по какой-нибудь причине и...
PostgreSQL:
Код

select 'all', string_field from test.test
union all
select 'concat', string_field || '123' from test.test

=>
Код

 ?column? | string_field
----------+--------------
 all      |
 all      |
 concat   |
 concat   | 123
(4 rows)

(как ты догадался, одна строка с null'ом, другая -- с пустой строкой.


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
k0rvin
Дата 30.1.2013, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(drkot @ 29.1.2013,  23:09)
это к оберону

При чем тут оберон? Мы про делфи тут говорим.


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
Zloxa
Дата 30.1.2013, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

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



Цитата(k0rvin @  30.1.2013,  10:56 Найти цитируемый пост)
PostgreSQL:

И что ты мне этим хочешь показать? Наверное то же, что я хотел показать тебе - что утверждение что null<1=false неверно, ибо тогда not, примененный к этому выражению возвращал бы true, но это с-ка не так?

В трехзначной логике вводится понятие unknown, и тогда все становится на свои места :
 - null < 1 = unknown; 
 - not(unknown) = unknown; 
 - true and unknown = unknown; 
 - false and unknown = fasle; 
 - true or unkown = true;
 - falce or unknown = unknown;

От утвреждения что null < 1 = false за версту пахнет ранней MSDNщиной, хотя и там уже, вроде как, исправились  smile 

Цитата(k0rvin @  30.1.2013,  10:56 Найти цитируемый пост)
Ораклопроблемы

Да не проблемы это - в том то и дело. Это замечательная и очень удобная фича. Стандарт ANSI и в этом отношении надо пересмотреть - однозначно. smile

Если ты check not null на FistName пишешь, нафиг тебе там пустые строки? А пустая строка прийдет. Либо из формы, где не определенное значение представленно пустой строкой, либо из XML или CSV либо еще откуда, где то же самое. Получается для строк, чтобы ограничение Not null действительно имело прикладной смысл, оно должно выглядить как check (field is not null and field != ''). И нафига этот комбайн нужен? Нужен только в том случае, если мы под пустой строкой подразумеваем действительно что-то осмысленное, что не может быть представлено в качестве null.

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

Это сообщение отредактировал(а) Zloxa - 30.1.2013, 11:26


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Akella
Дата 30.1.2013, 11:29 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



Интересно, сейчас уже есть универсальный недорогой язык программирования, с хорошей и удобной IDE, развивающийся, лишенный взрывающих мозг идиом, создающий быстрый native код?

Добавлено @ 11:29
Цитата(Freyzer @ 30.1.2013,  11:02)
Дельфисты, за вами наблюдаеш, ржеш  smile  smile  smile

Это хорошо, ибо смех продлевать жизнь smile
PM MAIL   Вверх
k0rvin
Дата 30.1.2013, 11:52 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Akella @ 30.1.2013,  11:29)
Интересно, сейчас уже есть универсальный недорогой язык программирования, с хорошей и удобной IDE, развивающийся, лишенный взрывающих мозг идиом, создающий быстрый native код?

C++ же, ну =)


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
Akella
Дата 30.1.2013, 12:01 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



Цитата(k0rvin @ 30.1.2013,  11:52)
Цитата(Akella @ 30.1.2013,  11:29)
Интересно, сейчас уже есть универсальный недорогой язык программирования, с хорошей и удобной IDE, развивающийся, лишенный взрывающих мозг идиом, создающий быстрый native код?

C++ же, ну =)

Я же просил: лишенный взрывающих мозг идиом

Добавлено через 49 секунд
Цитата(Zloxa @  30.1.2013,  11:54 Найти цитируемый пост)
Смех, может быть и да, а что британские ученые говорят о ржаче? Не от ржача ли всамделе кони дохнут - интересно - ктонить проверял?

Добавлено через 33 секунды
фрезя,  smile  



Ты ошибся разделом, здесь не песочница ;)

Добавлено через 1 минуту и 42 секунды
Цитата(k0rvin @ 30.1.2013,  11:52)
Цитата(Akella @ 30.1.2013,  11:29)
Интересно, сейчас уже есть универсальный недорогой язык программирования, с хорошей и удобной IDE, развивающийся, лишенный взрывающих мозг идиом, создающий быстрый native код?

C++ же, ну =)

А IDE какая? Или нужно QT использовать?
PM MAIL   Вверх
LSD
Дата 30.1.2013, 16:01 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

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



Цитата(Zloxa @  29.1.2013,  21:45 Найти цитируемый пост)
Я думаю функционален.
Может быть не все функции, но основные должны бы были работать.
Не работали бы плуги....., которые елси честно, я даже пречислить ен могу, ибо ими не пользуюсь. Разве что пробовал пользовался когда-то сравнением схем и бьютифайлиером.

Без клиента он все равно не фунционален. Но даже если есть клиент, от замены "не функционален" на "не полнофунционален", суть не изменится. Разработчику надо использовать инсталятор, а если используется инсталятор ...

Цитата(Akella @  29.1.2013,  21:50 Найти цитируемый пост)
У меня домашний конотеатр Пионер на базе Java

Это что-то новенькое, что за модель такая?

Цитата(Alexeis @  29.1.2013,  22:15 Найти цитируемый пост)
Такую фигню можно на делфи забабахать. Выглядит и работает примерно также.

Ура! Наконец-то конкретика. А список методов, пропертей, переменных получить можно?

Цитата(Akella @  29.1.2013,  22:48 Найти цитируемый пост)
Есть ли смысл писать такие приложения на яве, как фотошоп, лайтрум, текстовый процессор типа Word, электронные таблицы типа Excel, видеоредакторы типа SonyVegas, Maya

Офисный пакет есть. Смысла писать "еще один" фотошоп, офис и т.д. немного (независимо от языка).

Цитата(drkot @  30.1.2013,  00:09 Найти цитируемый пост)
кода не вижу

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

Цитата(drkot @  30.1.2013,  00:09 Найти цитируемый пост)
И что там проверяли? Расчет факториала? Глубокий тест... не спорю

Расчет факториала нормальная вычислительная задача: простая в реализации, с минимумом побочных эффектов от среды.

Добавлено через 2 минуты и 27 секунд
З.Ы. И хватит флудить, все таки не песочница.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
drkot
Дата 30.1.2013, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


Профиль
Группа: Завсегдатай
Сообщений: 1042
Регистрация: 5.5.2006

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



Цитата(LSD @  30.1.2013,  16:01 Найти цитируемый пост)
Ура! Наконец-то конкретика. А список методов, пропертей, переменных получить можно?

Дык... всегда можно было. Что доказывает Ваше глубокое незнание в данном вопросе.

Цитата(LSD @  30.1.2013,  16:01 Найти цитируемый пост)
Офисный пакет есть. 

А какова распространенность среди пользователей? например у скольких из 1000 пользователей установлен?

Цитата(LSD @  30.1.2013,  16:01 Найти цитируемый пост)
дизассемблировать бинарники я не собираюсь, слишком много усилий

то-есть не умею. Похвально. Собственно о многом говорит.

Добавлено через 1 минуту и 6 секунд
Цитата(LSD @  30.1.2013,  16:01 Найти цитируемый пост)
З.Ы. И хватит флудить, все таки не песочница.

в этом деле тебя сложно переплюнуть ;)


--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
Alexeis
Дата 30.1.2013, 17:32 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Цитата(drkot @  30.1.2013,  18:05 Найти цитируемый пост)
Дык... всегда можно было.

Что значит всегда? Всегда нельзя было. Вызывать функции по текстовому названию можно было только при специальных ключах компилятора. Полноценно эта фича появилась в одной из последних версий да и то думаю для совместимости с .NET . 

LSD, язык Delphi сделали максимально совместимым с Delphi.NET по функциям. Так что возможности рефлексии должны быть практически идентичными. Проперти можно было давно перечислять, это основной механизм для интеграции написанного компонента в редактор свойств Object Inspector, а также механизм сериализации форм. Любой сторонний компонент автоматически умеет сериализоваться в форму с последующей бинарной упаковкой текстовой формы в ресурсы. 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
LSD
Дата 30.1.2013, 19:06 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

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



Alexeis, тогда ОК, будем считать что RTTI в последних версиях не уступает Reflection.


Цитата(drkot @  30.1.2013,  18:05 Найти цитируемый пост)
А какова распространенность среди пользователей? например у скольких из 1000 пользователей установлен?

Цитата(drkot @  30.1.2013,  18:05 Найти цитируемый пост)
то-есть не умею. Похвально. Собственно о многом говорит.

Тебе что-то надо: дизасемблировать там или узнать количество установок и т.д. сам и делай/выясняй, я тебе не бесплатная раб сила.


Цитата(drkot @  30.1.2013,  18:05 Найти цитируемый пост)
в этом деле тебя сложно переплюнуть ;)

Это было сказано не тебе, но тебя это тоже касается.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Akella
Дата 30.1.2013, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



Цитата(Alexeis @  30.1.2013,  17:32 Найти цитируемый пост)
Вызывать функции по текстовому названию можно было только при специальных ключах компилятора. Полноценно эта фича появилась в одной из последних версий



я что-то пропустил ?   smile 
PM MAIL   Вверх
Alexeis
Дата 30.1.2013, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Цитата(Akella @  30.1.2013,  21:38 Найти цитируемый пост)
я что-то пропустил ?

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

А, вот кстати и нагуглил
Цитата(http://hallvards.blogspot.ru/2006/05/david-glassborow-on-extended-rtti.html)

As has been mentioned earlier, Delphi (since version 7) supports extended RTTI on the methods of a class - by compiling the class with $METHODINFO ON defined. This RTTI includes the signature information of the public and published methods. Delphi uses this to implement scripting of Delphi code in the WebSnap framework - see ObjAuto and friends for the details.



--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Akella
Дата 30.1.2013, 21:08 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



Получается, что в D2010+ можно выполнить процедуру, зная её имя и передать параметры для выполнения?

Код

procedure ExecMethod(MethodName:string; const Args: array of TValue);
var
 R : TRttiContext;
 T : TRttiType;
 M : TRttiMethod;
begin
  T := R.GetType(TuThread);
  for M in t.GetMethods do
    if (M.Parent = t) and (M.Name = MethodName) then
      M.Invoke(Self,Args);
end;


или я не прав?
PM MAIL   Вверх
Alexeis
Дата 30.1.2013, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Можно, но вроде как только для методов. Обычные функции работать не будут.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Zloxa
Дата 30.1.2013, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

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



Цитата(Alexeis @  30.1.2013,  22:14 Найти цитируемый пост)
Обычные функции работать не будут. 

Разве что только обычные.

Я помню лет десять, то и более назад демуху докрутки к делфевой поделке MS скрипт контролла разбирал. Даже не помню для какой делфи, толи шестой, толи седьмой. Суть сводилась к тому, что java/vb скритам предоставлялся делфевый класс, методы/пропсы которого те дергали через RTTI. Вемьма, весьма няшная чтука была.

Это сообщение отредактировал(а) Zloxa - 30.1.2013, 21:26


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Религиозные войны | Следующая тема »


 




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


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

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