Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по Embarcadero RAD Studio XE5-XE8,10.x(Seattle, Berl

Автор: AlekXL
Дата сообщения: 14.01.2015 13:15
помните старые холивары Delphi vs C++? "А можно ли на Delphi написать операционную систему?" -- любимый аргрумент якобы крестовиков..
Обмельчало всё теперь. Теперь наш аргумент с доднетчиками и явистами:"а можно ли на <managed> писать программы?" И они взахлеб доказывают, что, мол, можно..
А разработчики на php, javascript вообще непонятно как программистами зовутся.
---

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

так прикладного, или на Delphi?

Цитата:
Net рулит
как когда-то Visual Basic..

Автор: Andryshok
Дата сообщения: 14.01.2015 13:32
Да что тут спорить - откройте любой рейтинг популярности языков, в некоторых забугорных даже нет такого понятия как делфа, вотвам и будет ответ на ваши убеждения
Автор: noisy
Дата сообщения: 14.01.2015 13:44
Andryshok
Ты молодец, как говориться барабан на шею и шарик в руки.
НО ты в втеке по Delphi уважай или не пиши...

Я зарабоатываю PHP, Perl, Go и .NET ... всему свое место и время

но если я в ветке по Delphi, то я уважаю форумчан и не кричу, в каждой теме форума, о том, что я такой молодец от Delphi отказался ...

Извините за фотоп
Автор: SuPriTo
Дата сообщения: 14.01.2015 13:51

Цитата:
Да что тут спорить - откройте любой рейтинг популярности языков

Компоненты пишутся сторонними разработчиками, много чего поддерживается. В своем родном городе работу программистом на Delphi находил. Хотя обычно использовал несколько языков программирования в работе.
Автор: MGAlex
Дата сообщения: 14.01.2015 14:17

Цитата:
я еще раз не пожалел что завязал с дельфей.

А что тогда делаете в этой теме?


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

Как правило, заказчики вообще понятия не имеют о программировании, а тем более, о разновидностях языков. Для них все, кто с ПК работают - программисты.
Те, кто соображают, сами пишут и никого не просят.
Автор: AlekXL
Дата сообщения: 14.01.2015 14:30
у меня отвлеченный вопросик:

а зачем вообще Бракодело купила FireDAC? Был же dbExpress, для чего плодить сущности? Что там такого, чего нет в dbExpress?
Автор: Alexey_Gawrilow
Дата сообщения: 14.01.2015 14:36
Andryshok

Цитата:
а что тут спорить - откройте любой рейтинг популярности языков,

вранье!
Twitter #code2012 Stats
What programming languages did people use during 2013
What programming languages did you use during 2014


Добавлено:
AlekXL

Цитата:
Был же dbExpress, для чего плодить сущности

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

Потому как крайняя DBX(4) - удалась.

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

и вот если насчет сетевых или там отчетных библиотек можно поговорить
то претензия к FireDAC, по сути одна - выпиливание поддержки FreePascal.

Автор: Eternal_Shield
Дата сообщения: 14.01.2015 16:37
Andryshok

Цитата:
Некорретное сравнение,

Соль моего поста: для решения конкретной задачи есть своё конкретное множество средств, которые помогут её решить. [more]
И если надо ехать с понтами, то это 12C, а если картошку везти, то ТАЗик. Неполучится у вас с понтами картошку везти: или объём маленький будет и понты не окупятся или засмеют за деревенский подход к перевозке картошки.

Никого не хочу обидеть, просто хочу обратить внимание на этот момент.[/more]

Поэтому сравнение предельно корректное.
Автор: Andryshok
Дата сообщения: 14.01.2015 16:53
Не будем продолжать многовековой спор... конкретно мне непонравилось в данном случае выпиливание компонентов шелла из XE7, также зачем то выпилили компоненты с для работы с сокетами, вопрос зачем?
Цитата:
а зачем вообще Бракодело купила FireDAC
- вообщето они купили AnyDac и назвали их FireDac.... знаете лично я предпочитаю UniDac - намного более удобное решение
Автор: ChSerg
Дата сообщения: 14.01.2015 21:50

Цитата:
UniDac - намного более удобное решение

Очень сомнительное утверждение, учитывая давнишнюю глючность и кривизну версий различных DAC-ов, с чем сталкивался не по наслышке.
Автор: xpin2013
Дата сообщения: 15.01.2015 05:24
Andryshok

Цитата:
зачем то выпилили компоненты с для работы с сокетами, вопрос зачем?

Если говорить про сокеты и TService, то их хранение в DFM 1) чаще всего не нужно 2) небезопасно для взлома той же DeDe. Основное 1. При программировании сокетов первыми нормальными шагами является вынос их свойств хотя бы в тот же INI, если не дадим настройку прокси, то и обломаем некоторых юзеров. В отличии от компонента базы данных, которому необходим коннект к базе в Design-time, держать сокеты на форме нужно разве для программы Hello World.


Цитата:
непонравилось в данном случае выпиливание компонентов шелла из XE7

Эти конечно нужны в Design-time, но они и ставятся как компоненты. Но то же самое ранее произошло с MS Office компонентами. Так понимаю они пытаются увеличить скорость загрузки среды, регистрация ActiveX библиотек отдельная песня. Если честно, то Shell весьма специфичные компоненты, которые мне не понадобились ни в одной программе. А вот отключать их как правило лень.
Автор: AlekXL
Дата сообщения: 16.01.2015 08:25
Alexey_Gawrilow
спасибо, познавательно.
насчет того, что быстрее: FireDAC или dbExpress -- интересно, есть ли исследования? Скажем, для Марии, СиквелСерва, или Постгресса?..
--------
еще один вопросик. Есть крестовая либа, изначально сделанная для VC и GCC, к-ю я намерен использовать в Delphi проекте.
Чтобы удобнее ее было использовать и подпиливать, я портировал ее в б-гомерзкий C++ Builder(2007, оказывается, туда даже буст 1.34 удается впердолить), а поскольку в либе LGPL инфекция, то привязывать статически ее не могу.

Суть в том, что я хотел бы подменить дефолтный для билдера MM на менеджер Delphi(по это FastMM с SF). Чтобы не множить сущности, и чтобы контролировать утечки.

В сущности, если бы дело было в VC++, то вероятно нужно было бы подменить malloc, free, и realloc, на свою реализацию.
Как сделать в билдере, я пока не знаю. Полагаю, нужно
1) сделать свою реализацию этих трех ф-й, с редиректом на TMemoryManager указатели
2) осуществить инициализацию подмены раньше, чем что-либо будет аллоцировано, то есть, вероятно, в DllMain, если не еще ниже. Что вообще первым исполняется при подгрузке DLL?

Короче, если у кого-то есть опыт либо соображения по вопросу этому, поделитесь, пожалуйста.
Автор: dred2k
Дата сообщения: 16.01.2015 09:00
AlekXL

Цитата:
Суть в том, что я хотел бы подменить дефолтный для билдера MM на менеджер Delphi(по это FastMM с SF).

А фастмм разве под билдером не работает ?
Во-всяком случае, я увидел в поставке каталог "CPP Builder Support" (еще есть примеры для билдера в каталоге "Replacement BorlndMM DLL"), что как бы намекает.
Не оно ?
Автор: Alexey_Gawrilow
Дата сообщения: 16.01.2015 11:30
AlekXL

Цитата:
насчет того, что быстрее: FireDAC или dbExpress -- интересно, есть ли исследования

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

Компоненты для доступа к БД. Кто быстрее? Часть 6

Можно посмотреть в каком-то конткетном разрезе, например
AnyDAC vs kbmMemTable, MemTableEh, dxMemData, ClientDataSet

В любом случае, это не показатель нифига, так просто FYI.

еще раз говорю: FireDAC хорош.

можно говорить о FireDAC vs UniDAC.
ближайшая opensource альтернатива, это ZeosLib.
развивается в сторону универсально машины баз данных mORMot.
Дизайн Zeos копирует JDBC.
Дизайн FireDAC копирует ADO.NET .

в любом случае, несмотря на удачный DBX4 - новые проекты начинать на нем не стал бы, ибо deprecated.

да и старые переписывать смысла нет.

у меня большинство на DOA

Добавлено:
AlekXL

Цитата:
насчет того, что быстрее

можно дубль, вдруг на соседнюю ветку не подписан?
Подход performance first затуманил взгляд многим тысячам программистов, ведь когда слышишь «зато мы можем кодировать 120Mb/sec», из рассмотрения уходят любые другие факторы. Включая, к сожалению, и вопрос «а наберется ли у нас эти 120 Мб в секунду»?
Автор: AlekXL
Дата сообщения: 16.01.2015 13:43
dred2k


Цитата:
Во-всяком случае, я увидел в поставке каталог "CPP Builder Support" (еще есть примеры для билдера в каталоге "Replacement BorlndMM DLL"), что как бы намекает.

да, все верно, это помогло, спасибо, но ответ не полный.
чтобы расшарить один MM на все, нужно
1) установить FastMM в билдер проект. Я запнулся, не знаю куда вставить USEOBJ, вместо этого поставил
#pragma link "FastMM4BCB"
(там упоминается USEFORM, прежде к-х должен быть USEOBJ, но у меня там ATL проект.

2) нужно настроить FastMMOptions, я добавил

Код:
{$define AttemptToUseSharedMM}
{$define ShareMM}
Автор: Alexey_Gawrilow
Дата сообщения: 16.01.2015 13:58
AlekXL

Цитата:
А про какую ветку вы говорите

Вопросы по компонентам для Delphi, C++ Builder разных версий


Добавлено:
AlekXL

Цитата:
Что там такого, чего нет в dbExpress?

Дизайн и эволюция AnyDAC с Дмитрием Арефьевым


Добавлено:
AlekXL

Цитата:
у меня комплекс неполноценности от ваших ответов развивается

тогда контрольный


Цитата:
Суть в том, что я хотел бы подменить дефолтный


http://rsdn.ru/forum/delphi/5819538

HeapAlloc-based memory manager    
PSD Memory Manager (based on RecyclerMM )
RecyclerMM
NexusDB
MultiMM
FastMM
FastSharemem
ProcessMemMgr
qmem на торри, и еще
HPMemMgr home, codecentral
SapMM
ScaleMM
SynScaleMM
SafeMM

PS. Претензии по ссылкам не принимаются, все были актуальны на момент сохранения.
Автор: dred2k
Дата сообщения: 16.01.2015 19:35
Alexey_Gawrilow
Представляю, какая толковая шапка могла бы получиться,
возьмись ты в нее оформить свою базу ссылок!
Нет желания ?
Было бы мощно...
Автор: landy
Дата сообщения: 16.01.2015 20:58

Цитата:
Подход performance first затуманил взгляд многим тысячам программистов, ведь когда слышишь «зато мы можем кодировать 120Mb/sec», из рассмотрения уходят любые другие факторы. Включая, к сожалению, и вопрос «а наберется ли у нас эти 120 Мб в секунду»?

К сожалению, слишком часто мы наблюдаем другой подход, "рюшечки-first", при котором на хоть какую-нибудь оптимизацию производительности ПО не остается ни времени, ни ресурсов. Уж лучше пусть будет performance-first, объемы данных, знаешь ли, удваиваются каждые несколько лет.
Автор: SuPriTo
Дата сообщения: 16.01.2015 22:07
[more=Будет ли данный код (очередь) потокобезопастным при условии, что один поток только читает, другой только пишет]
unit Queue;

interface

type
PCMQueueNode = ^TCMQueueNode;
TCMQueueNode = packed record
P: Pointer;
NextNode: PCMQueueNode;
end;

TCMQueue = class(TObject)
strict private
FCount: Integer;
FHead: PCMQueueNode;
FTail: PCMQueueNode;
strict protected
function NewNode(P: Pointer): PCMQueueNode;
public
constructor Create; virtual;
destructor Destroy; override;
//Очистить очередь
procedure Clear; virtual;
procedure Enqueue(P: Pointer); virtual;
function Dequeue: Pointer; virtual;
function Peek : Pointer; virtual;
//Очистить указатель
class procedure DisposePointer(P: Pointer); virtual;
property Count : Integer read FCount;
end;

implementation

{ TCMQueue }

procedure TCMQueue.Clear;
var Node: PCMQueueNode;
begin
// Free all the items in the stack
while Assigned(FHead) do
begin
// Get the head node and push forward
Node := FHead;
FHead := FHead^.NextNode;
// Free the pipe write data
if Node^.P <> nil then
DisposePointer(Node^.P);
// Free the queued node
FreeMem(Node);
end;
// Set the tail to nil
FTail := nil;
// Reset the count
FCount := 0;
end;

constructor TCMQueue.Create;
begin
FCount := 0;
FHead := nil;
FTail := nil;
end;

function TCMQueue.Dequeue: Pointer;
var Node: PCMQueueNode;
begin
// Remove the first item from the queue
if not (Assigned(FHead)) then
Result := nil
else
begin
// Set the return data
Result := FHead^.P;
// Move to next node, update head (possibly tail), then free node
Node := FHead;
if (FHead = FTail) then
FTail := nil;
FHead := FHead^.NextNode;
// Free the memory for the node
FreeMem(Node);
Dec(FCount);
end;
end;

destructor TCMQueue.Destroy;
begin
Clear;
inherited Destroy;
end;

class procedure TCMQueue.DisposePointer(P: Pointer);
begin
FreeMem(P);
end;

procedure TCMQueue.Enqueue(P: Pointer);
var node: PCMQueueNode;
begin
// Create a new node
node := NewNode(P);
// Make this the last item in the queue
if (FTail = nil) then FHead := node
else FTail^.NextNode := node;
// Update the new tail
FTail := node;
end;

function TCMQueue.NewNode(P: Pointer): PCMQueueNode;
begin
// Allocate memory for new node
Result := AllocMem(SizeOf(TCMQueueNode));
// Set the structure fields
Result^.P := P;
Result^.NextNode := nil;
// Increment the count
Inc(FCount);
end;

function TCMQueue.Peek: Pointer;
begin
if not (Assigned(FHead)) then Result := nil
else Result := FHead^.P; // Set the return data
end;

end.
[/more]
И если нет, то что нужно поправить.
Автор: Alexey_Gawrilow
Дата сообщения: 16.01.2015 22:46
dred2k
Delphi3000.com
delphizine.com - был просто великолепен.
delphiplus.org
МЕРТВЫ!

Torry.net - большая часть FWS качались и хотя бы бегло просматривались.
DelphiKingdom.com до сих пор хожу каждый день, чеще уже зря.
ПОЧТИ МЕРТВЫ!

Чего говорить - RSDN.RU - еле жив.
Там хотя бы рейтинг глаз радует http://rsdn.ru/account/info/16863

А тут пока до 400 постов доберешься - вся жизнь пройдет.
Я 12 (с 2003)лет здесь... и?


Цитата:
возьмись ты в нее оформить свою базу ссылок!

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

Добавлено:
landy

Цитата:
"рюшечки-first"


Так в том и дело, что занявщись преждевременно отптимизацией, упускают из вида "слона".

По практике - узкое место в производительности чаще всего не там где кажется на первый взгляд.

<Без отсылок к конкретным сообщениям>
Логов(таймингов кода) - нет.
Профилирования - нет.
Для БД:
Планов запросов - нет.
Количественных прикидок по росту базы - нет.
А все туда же...
</Без отсылок к конкретным сообщениям>

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

Несколько минут смотрели запрос, я его первый раз видел.
Поправили запрос(ну просто по-человечески написали).
Поправили таблицы(привели типы данных в соответсвие).
Удалили "горе от ума"(3 ненужных индекса и 1 кластерный), добавили композитный индекс - взлетело.
Надо было видеть их глаза!

Этих примеров - over9000, большая часть пересекается с КНИГАМИ.
Но (можно? мне можно, я верю , не сочтите за брюзжание )

Цитата:
без гуглоплагина уже написать ничего не получается.
"бери этот код, он у меня работает, я гарантирую это!"


Добавлено:
landy

Цитата:
Уж лучше пусть будет performance-first

засада в том, что чаще всего это ничего не значит.

Как пример.
Мне всегда хватало производительности TClientDataSet.
Потому как узкое горлышко при работе с данными в памяти - это применение изменений, например.
Или время тратилось на криптование и выгрузку на FTP.

[more=можно соплей?]На текущем месте работы.
Был процесс обработки данных и экспорта их результатов.
Процесс занимал десятки минут - и экспорт столько же.

Мне поставили задачу ускорить процесс обработки.
Это первое задание, на испытательном сроке.

Я переписал процесс - за 6 лет никогда время не переваливало за 2 мин 44 сек(это максимум).
Босс был доволен.
Я был горд.

А над процессом экспорта я власти не имею!!
Переписать его нет никакой возможности!
И чего?

Было 30 + 40 минут.
Стало 1-2 + 40 минут.
С точки зрения оператора - разницы никакой [/more]

Добавлено:
dred2k

Цитата:
какая толковая шапка могла бы получиться

Хороших [шапок] не бывает — бывает не худший вариант.
Автор: X11
Дата сообщения: 17.01.2015 09:13

Цитата:
А тут пока до 400 постов доберешься - вся жизнь пройдет.
Я 12 (с 2003)лет здесь... и?

4
400 - это не 400 сообщений, а 400 баллов, стаж тоже учитывается
можно, например, что-то сделать что-то для копилки и повысить кол-во баллов
Автор: AlekXL
Дата сообщения: 17.01.2015 12:37

Цитата:
можно, например, что-то сделать что-то для копилки и повысить кол-во баллов

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

или сломать приблуду? У нас, у большинства, нет квалификации..

То ли ума не хватает(реально выносит мозг это копание в IDA, особенно если там какой-нибудь алгоритмический антиотладочный прием), то ли ум не на то настроен(спасительная мысль, но объективно маловероятная)

---
я вот тут посмотрел, вроде ни в одной библиотеке, ни в Omni, ни в AsyncCalls нет использования QueueUserAPC .. это почему так? Вроде полезная функция..


Автор: AlekXL
Дата сообщения: 17.01.2015 15:24
а есть ли на qc тикет по
http://stackoverflow.com/questions/23581241/why-do-i-have-generic-anonymous-method-incompatible-type
Автор: SuPriTo
Дата сообщения: 17.01.2015 17:56
Выложите список, что нового в XE8.
Автор: landy
Дата сообщения: 17.01.2015 18:46
Загрузчик XE8
Автор: SuPriTo
Дата сообщения: 17.01.2015 19:08
landy
Я устанавливаю, только хотелось бы список узнать, что они нового понаделали.
Отредактировано:
Установил, в хелпе практически ничего не написано.
Автор: AlekXL
Дата сообщения: 17.01.2015 22:39
надо у этих сцук требовать обновленный RoadMap!
Автор: SolidSnakeRU
Дата сообщения: 17.01.2015 23:50
Чтобы что-то требовать надо сперва купить.
Купить, значит согласится с форматом их работы и смириться с отношением к клиентам.
Выходит, надо молча брать то что есть.
Придет время и чудесным образом по слову "абракадабра" появятся рекламные материалы про то что есть в новой версии и даже про то, что доделать не успели или не смогли, но продать хочется.
Автор: gmaclafer
Дата сообщения: 18.01.2015 00:38
Помогите решить проблему. Шеф дал задание написать на XE7 простенькую программу отображающую страничку в TWebBrowser. Все работает под iOS, но под андроидом какой то глюк... в обычном броузере страничка открывается, а под TWebBrowser вылезает фон и дальше ничего не реагирует. URL странички http://cdot-nntu.ru/basebook/eLServ/
Автор: AlekXL
Дата сообщения: 18.01.2015 01:52
gmaclafer


Цитата:
Помогите решить проблему. Шеф дал задание написать на XE7 простенькую программу отображающую страничку в TWebBrowser. Все работает под iOS, но под андроидом какой то глюк... в обычном броузере страничка открывается, а под TWebBrowser вылезает фон и дальше ничего не реагирует. URL странички http://cdot-nntu.ru/basebook/eLServ/

я не спец по этому вопросу, но я бы протестировал на эмуляторе, с последней версией Андроида..
Если там все нормально, то это проблема на стороне Андроида.

SolidSnakeRU
нетучки, чтобы купить, нужно знать что ты покупаешь, и во что вкладываешь. А без RoadMap ни одна серьезная контора Delphi не купит


Цитата:
Купить, значит согласится с форматом их работы и смириться с отношением к клиентам.
так и не покупают.

Цитата:
появятся рекламные материалы про то что есть в новой версии

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

Боже, сделайте простой, но быстрый и железобетонно стабильный интерфейс. А рюшечки отдайте на откуп DevExpress-ам и Альфаскинам. Они лучше сделают.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129

Предыдущая тема: Отмена встречи в Outlook из Excel VBA


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.