Watch, Follow, &
Connect with Us

For forums, blogs and more please visit our
Developer Tools Community.


Welcome, Guest
Guest Settings
Help

Thread: Delphi FMX chief developer fired



Permlink Replies: 83 - Last Post: Dec 7, 2016 3:14 AM Last Post By: Arthur Hoornweg
Ralf Stocker

Posts: 121
Registered: 12/24/04
Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 20, 2016 11:48 AM
Evgeny Kryukov, father and chief developer of FMX has been fired. Bad times
for Delphi and FMX.
http://www.kryukov.org/looking-for-job/
http://www.kryukov.org/about-me/
Brian Hamilton ...

Posts: 556
Registered: 10/14/04
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 20, 2016 12:33 PM   in response to: Ralf Stocker in response to: Ralf Stocker
Ralf Stocker wrote:
Evgeny Kryukov, father and chief developer of FMX has been fired. Bad times
for Delphi and FMX.
http://www.kryukov.org/looking-for-job/
http://www.kryukov.org/about-me/

fired or contract came to end/completed or not renewed or?
Eli M

Posts: 1,346
Registered: 11/9/13
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 20, 2016 1:23 PM   in response to: Ralf Stocker in response to: Ralf Stocker
Maybe double buffering and/or bitmap caching will be added to FireMonkey with a changing of the guard.
Luigi Sandon

Posts: 353
Registered: 10/15/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 21, 2016 11:39 AM   in response to: Ralf Stocker in response to: Ralf Stocker
Evgeny Kryukov, father and chief developer of FMX has been fired. Bad times

Not inside Popov's "Development Network", probably. Siberia is too East... It looks that guy is trying to lock everything inside his business... Good luck to the German guys who sold their business to Idera...
Ralf Stocker

Posts: 121
Registered: 12/24/04
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 21, 2016 12:22 PM   in response to: Luigi Sandon in response to: Luigi Sandon
Luigi Sandon wrote:
Evgeny Kryukov, father and chief developer of FMX has been fired. Bad times

Not inside Popov's "Development Network", probably. Siberia is too East... It looks that guy is trying to lock everything inside his business... Good luck to the German guys who sold their business to Idera...

do you mean the Delphi 64 bit compiler?
Markus Humm

Posts: 5,113
Registered: 11/9/03
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 21, 2016 1:17 PM   in response to: Ralf Stocker in response to: Ralf Stocker
Am 21.11.2016 um 21:22 schrieb Ralf Stocker:
Luigi Sandon wrote:
Evgeny Kryukov, father and chief developer of FMX has been fired. Bad times

Not inside Popov's "Development Network", probably. Siberia is too East... It looks that guy is trying to lock everything inside his business... Good luck to the German guys who sold their business to Idera...

do you mean the Delphi 64 bit compiler?

No. he ment those guys with test automation/test management software.
Was the name Gurock? Not sure...

Greetings

Markus
Luigi Sandon

Posts: 74
Registered: 2/22/08
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 22, 2016 1:47 AM   in response to: Markus Humm in response to: Markus Humm
No. he ment those guys with test automation/test management software.
Was the name Gurock? Not sure...

Correct, I didn't remember the name.
Dalija Prasnikar

Posts: 2,325
Registered: 11/9/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 21, 2016 1:05 PM   in response to: Ralf Stocker in response to: Ralf Stocker
Ralf Stocker wrote:
Evgeny Kryukov, father and chief developer of FMX has been fired. Bad times
for Delphi and FMX.
http://www.kryukov.org/looking-for-job/
http://www.kryukov.org/about-me/

To repeat what I said on G+

Well, I don't want to be rude, but if he is also the father of FMX kitchen sink design
then this is no bad news after all.

--
Dalija Prasnikar
https://twitter.com/dalijap
https://plus.google.com/+DalijaPrasnikar
Luigi Sandon

Posts: 74
Registered: 2/22/08
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 22, 2016 1:52 AM   in response to: Dalija Prasnikar in response to: Dalija Prasnikar
Well, I don't want to be rude, but if he is also the father of FMX kitchen sink design
then this is no bad news after all.

I never liked FMX, but I'm quite sure the reason of shutting down all development at Embarcadero isn't the actual product quality. It's shifting everything to an outsourced business model, in which Mr. Popov has a great personal interest.

It's not the first guy of this kind I encounter - usually management is enticed by the cost savings, and when they realize all skills, experience, and IP have flown out of the windows, and the company became an empty shell - which usually still delivers bad software - is too late.
Kim Madsen

Posts: 362
Registered: 12/13/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 22, 2016 2:06 AM   in response to: Luigi Sandon in response to: Luigi Sandon
Den 11/22/2016 kl. 10:52 skrev Luigi Sandon:
Well, I don't want to be rude, but if he is also the father of FMX kitchen sink design
then this is no bad news after all.

I never liked FMX, but I'm quite sure the reason of shutting down all development at Embarcadero isn't the actual product quality. It's shifting everything to an outsourced business model, in which Mr. Popov has a great personal interest.

It's not the first guy of this kind I encounter - usually management is enticed by the cost savings, and when they realize all skills, experience, and IP have flown out of the windows, and the company became an empty shell - which usually still delivers bad software - is too late.

I like FMX very much actually.
It works very well in what Im using it for, and I wouldnt like it not
being around.

I have used it from before it was Firemonkey on D2010, later changed to
use FMX on XE2, then XE8 and now D10.1 and D10.2.

And the quality has improved vastly over time, and I havnt found a
better, more feature rich and flexible framework anywhere.

At one time I quite much liked Adobe Flex and its GUI features, but I
would say that FMX is on par in most areas and in many areas surpass it.
And compared to WPF, there is no contest... WPF is horrible compared to FMX.

I think its such a shame that people keeps dissing FMX, when its such a
great framework despite what bugs has been in it over time.

Im primarely using it on the Windows platform, but has also worked with
it on Android, on a lesser scale. On the Windows platform it does all I
need and more, and its not a small nor simple application that its being
used for. Its realtime multichannel video, audio and visual analytics,
with lots of homegrown visual and non visual components and classes.
(and ofcourse with kbmMW doing all the hard data persistency and
streaming work underneath).

best regards
Kim/C4D
Dominique Willems

Posts: 591
Registered: 10/26/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 22, 2016 4:27 AM   in response to: Kim Madsen in response to: Kim Madsen
Kim Madsen wrote:
I like FMX very much actually.

+1

I think its such a shame that people keeps dissing FMX, when its such
a great framework despite what bugs has been in it over time.

+1

Im primarely using it on the Windows platform

+1

lots of homegrown visual and non visual
components and classes

+1

I, too, started using it when it was still VGScene and DXScene, and I
can't help but muse about what those would look like today, if Eugene
hadn't caved to the EMBT offer...
Dalija Prasnikar

Posts: 2,325
Registered: 11/9/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 22, 2016 1:29 PM   in response to: Luigi Sandon in response to: Luigi Sandon
Luigi Sandon wrote:
Well, I don't want to be rude, but if he is also the father of FMX kitchen sink design
then this is no bad news after all.

I never liked FMX, but I'm quite sure the reason of shutting down all development at Embarcadero isn't the actual product quality. It's shifting everything to an outsourced business model, in which Mr. Popov has a great personal interest.

It's not the first guy of this kind I encounter - usually management is enticed by the cost savings, and when they realize all skills, experience, and IP have flown out of the windows, and the company became an empty shell - which usually still delivers bad software - is too late.

I don't know what is the reason. While I don't approve every Idera move,
some of them have been good ones. At least they look like that. What will
be final outcome is unknown.

After takeovers there is usually very small window of opportunity to make drastic
changes. Just like when Embarcadero took over they brought glimpse of light to
Delphi future, but afterward they heavily mismanaged the company, Idera takeover
also brought some new light.Or at least so it seems... most of the time...

--
Dalija Prasnikar
https://twitter.com/dalijap
https://plus.google.com/+DalijaPrasnikar
Rudy Velthuis (...


Posts: 7,731
Registered: 9/22/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 22, 2016 11:56 PM   in response to: Dalija Prasnikar in response to: Dalija Prasnikar
Dalija Prasnikar wrote:

After takeovers there is usually very small window of opportunity to
make drastic changes. Just like when Embarcadero took over they
brought glimpse of light to Delphi future, but afterward they heavily
mismanaged the company

Huh?

--
Rudy Velthuis http://www.rvelthuis.de

"Friends applaud, the Comedy is over."
-- Ludwig von Beethoven, dying words

Dalija Prasnikar

Posts: 2,325
Registered: 11/9/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 23, 2016 1:00 AM   in response to: Rudy Velthuis (... in response to: Rudy Velthuis (...
Rudy Velthuis (TeamB) wrote:
Dalija Prasnikar wrote:

After takeovers there is usually very small window of opportunity to
make drastic changes. Just like when Embarcadero took over they
brought glimpse of light to Delphi future, but afterward they heavily
mismanaged the company

Huh?

Embarcadero started firing good developers (US based) around XE2/XE3
time frame and off-shoring work to other lower wage countries, and more
important hiring inexperienced developers. We have all seen Delphi RTL
code screaming "written by Java freshmen" that made into release.

They also started to add more and more half-baked features, just to say they
have new features in, and then they would almost forget about them leaving
them full of bugs and missing basic features. They also wasted tons of
money on idiotic moves like Appmethod and similar... and squeezing as
much as money they possibly could from existing customers. Not having
timely roadmaps, removing features from SKUs, changing licensing
policies to absurd levels and similar.

Now people seem to be upset because a lot of those off-shored devs got fired...
yes, they maybe gained some knowledge in the meantime, they are probably
not all bad developers, maybe some gold will be taken out with the trash.
But, Delphi already survived worse... so having contractors do their job
does not have to be such bad thing after all. At least they might put more
effort in producing higher quality product than bunch of non motivated
developers on payroll.

I am always sorry when someone loses their job. It is people we are talking about.

But as customer I also want high quality product that satisfies my needs. Bottom
line is I don't care how they do it, I just want results. Last few years before
Idera takeover there were no satisfying results, so I will not shed any tears
watching current development.

There is only one way to go and that is up... so I am optimistic on that part...

The only other possible resolution is complete train wreck, but if that is so,
disaster already happened and we are just not feeling the effects yet.

Anyway, well know soon enough... in another 6-12 monts we will see
the effects and could pass our judgement then.

--
Dalija Prasnikar
https://twitter.com/dalijap
https://plus.google.com/+DalijaPrasnikar

Rudy Velthuis (...


Posts: 7,731
Registered: 9/22/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 23, 2016 2:50 AM   in response to: Dalija Prasnikar in response to: Dalija Prasnikar
Dalija Prasnikar wrote:

Embarcadero started firing good developers (US based) around XE2/XE3
time frame and off-shoring work to other lower wage countries, and
more important hiring inexperienced developers. We have all seen
Delphi RTL code screaming "written by Java freshmen" that made into
release.

But the freshmen did not remain so. <g>

Later versions got quite some good updates and corrections.

--
Rudy Velthuis http://www.rvelthuis.de

"I prayed for twenty years but received no answer until I
prayed with my legs."
-- Frederick Douglass, escaped slave
Remy Lebeau (Te...


Posts: 9,447
Registered: 12/23/01
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 22, 2016 2:04 PM   in response to: Luigi Sandon in response to: Luigi Sandon
Luigi wrote:

It's not the first guy of this kind I encounter - usually management
is enticed by the cost savings, and when they realize all skills,
experience, and IP have flown out of the windows, and the
company became an empty shell - which usually still delivers bad
software - is too late.

And it is really sad when it happens. I'm actually in that very boat right
now :-(

--
Remy Lebeau (TeamB)
Dan Barclay

Posts: 889
Registered: 11/9/03
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 22, 2016 5:30 PM   in response to: Luigi Sandon in response to: Luigi Sandon
Luigi Sandon wrote:
Well, I don't want to be rude, but if he is also the father of FMX kitchen sink design
then this is no bad news after all.

I never liked FMX, but I'm quite sure the reason of shutting down all development at Embarcadero isn't the actual product quality. It's shifting everything to an outsourced business model, in which Mr. Popov has a great personal interest.

It's not the first guy of this kind I encounter - usually management is enticed by the cost savings, and when they realize all skills, experience, and IP have flown out of the windows, and the company became an empty shell - which usually still delivers bad software - is too late.

I liked it, but didn't jump into it other than tinkering on mobile apps some time back.

The interface was a bit of a red flag (or maybe just orange)... in Delphi where it is soooo easy to create an interface that emulates another (VCL) it was beyond me why they didn't do that. Same properties named differently, etc, just didn't seem to fit how it "should have been". It just didn't seem like longer term strategy was weighed very heavily. Likely that was on account of short deadlines.

Think of its adoption if it had been a "drop in".

Dan
Dominique Willems

Posts: 591
Registered: 10/26/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 22, 2016 4:36 AM   in response to: Dalija Prasnikar in response to: Dalija Prasnikar
Dalija Prasnikar wrote:
Well, I don't want to be rude, but if he is also the father of FMX
kitchen sink design then this is no bad news after all.

He's a guy who, pretty much by himself, managed to finally create a
vector-based GUI library for Delphi, which was long overdue. It's guys
like him who are really innovating, often more so than a team of ten
averagely motivated developers.
Dalija Prasnikar

Posts: 2,325
Registered: 11/9/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 23, 2016 12:41 AM   in response to: Dominique Willems in response to: Dominique Willems
Dominique Willems wrote:
Dalija Prasnikar wrote:
Well, I don't want to be rude, but if he is also the father of FMX
kitchen sink design then this is no bad news after all.

He's a guy who, pretty much by himself, managed to finally create a
vector-based GUI library for Delphi, which was long overdue. It's guys
like him who are really innovating, often more so than a team of ten
averagely motivated developers.

I am not saying that he didn't put a lot of time and effort in the product.
I know how long it takes to makes something like that,

Regardless, his core design is far from stellar. I have tried to use FMX on several
occasions, but mostly in XE2 when it was fresh. Since it was only few months
between time Embarcadero bought FMX and XE2 release, I am sure that
code and design were mostly his.

I didn't mind bugs that much, bugs can be fixed... I am talking about how
all code is so entangled together in most horrible ways. You touch some
most basic class in there and you drag the whole framework. It is
circular dependency on top of circular dependency.

I always thought that VCL design was rigid, unflexible and that it could be
much better. But VCL design is light years ahead of FMX.

So you have one guy "maybe" innovating and doing a lot of work, but then you
need the army to polish and fix his work. Thanks, but no thanks.

--
Dalija Prasnikar
https://twitter.com/dalijap
https://plus.google.com/+DalijaPrasnikar
Dominique Willems

Posts: 591
Registered: 10/26/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 23, 2016 1:11 AM   in response to: Dalija Prasnikar in response to: Dalija Prasnikar
Dalija Prasnikar wrote:
It is circular dependency on top of circular dependency.

Really?

But VCL design is light years ahead of FMX.

Really?! VCL has been around for two decades, FMX was around for a year
or two. I still picked the latter and dropped the former completely.
When the VCL was stuck on Pluto, FMX had already reached Sirius, if you
need to use the unit of light years, which measures distance, btw, not
time.

So you have one guy "maybe" innovating and doing a lot of work, but
then you need the army to polish and fix his work. Thanks, but no
thanks.

I'd say thanks and much much much more of it.
Dalija Prasnikar

Posts: 2,325
Registered: 11/9/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 23, 2016 1:22 AM   in response to: Dominique Willems in response to: Dominique Willems
Dominique Willems wrote:
Dalija Prasnikar wrote:
It is circular dependency on top of circular dependency.

Really?

Yep.

But VCL design is light years ahead of FMX.

Really?! VCL has been around for two decades, FMX was around for a year
or two. I still picked the latter and dropped the former completely.
When the VCL was stuck on Pluto, FMX had already reached Sirius, if you
need to use the unit of light years, which measures distance, btw, not
time.

I am not talking how it looks on screen - your app (I have to add here
that FMX font rendering sucks). I am talking how code is written and organized.
It is utter and complete mess. On more than one occasion I thought
that Embarcadero would be better off if they just hire someone that
well versed in complex OOP design to start things from scratch and
just reuse parts of lower level FMX code that can be reused.

And you can go a long, long way with VCL, I am not saying that VCL
could replace FMX (in sense VCL is not cross-platform) but VCL can
be easily expanded to use some of features FMX offers. You can have
VCL controls harnessing 2D/3D vector drawing side by side with
classic VCL componnets. If VCL Styles were any better you could have
nice styling too. Currently they does not scale on high DPI.

--
Dalija Prasnikar
https://twitter.com/dalijap
https://plus.google.com/+DalijaPrasnikar
Dominique Willems

Posts: 591
Registered: 10/26/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 23, 2016 3:21 AM   in response to: Dalija Prasnikar in response to: Dalija Prasnikar
Dalija Prasnikar wrote:
I am not talking how it looks on screen - your app (I have to add
here that FMX font rendering sucks).

Works fine here. Do you use GlobalUseGDIPlusClearType := True?

And you can go a long, long way with VCL, I am not saying that VCL
could replace FMX (in sense VCL is not cross-platform)

I'm not interested in the cross-platform aspect. Just its transforms,
opacity, animation, paths, etc.

but VCL can
be easily expanded to use some of features FMX offers. You can have
VCL controls harnessing 2D/3D vector drawing side by side with
classic VCL componnets.

Eeeeeeeew.

In any case, I'm not saying EMBT/Idera did a good job with it. Totally
on the contrary: they bungled up major big time. I'm saying that
something like FMX was long overdue. What they did with it over the
last four year is really really depressingly little, as your testimony
indicates.
Dalija Prasnikar

Posts: 2,325
Registered: 11/9/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 23, 2016 4:21 AM   in response to: Dominique Willems in response to: Dominique Willems
Dominique Willems wrote:
Dalija Prasnikar wrote:
I am not talking how it looks on screen - your app (I have to add
here that FMX font rendering sucks).

Works fine here. Do you use GlobalUseGDIPlusClearType := True?

Hmmm... I don't remember... it has been a while. Problem is it only chooses
between ClearType aliasing and grayscale aliasing and I need none.

And you can go a long, long way with VCL, I am not saying that VCL
could replace FMX (in sense VCL is not cross-platform)

I'm not interested in the cross-platform aspect. Just its transforms,
opacity, animation, paths, etc.

Quite similar here. Problem is that FMX is all or nothing. It does not mix
with VCL, if it could (I know there is MonkeyMixer for doing weird stuff)
but I didn't want to depend on potentially fragile code. And I could not use
FMX alone for millions of reasons.

In the meantime, some parts of FMX got better - at least as far as some
bugs are concerned, but I got entangled in mobile development so project
that could use FMX ended up on hold and I didn't investigate further.

Of course, the fact that VCL and FMX don't mix has very little to do
with my original criticism of the code.

but VCL can
be easily expanded to use some of features FMX offers. You can have
VCL controls harnessing 2D/3D vector drawing side by side with
classic VCL componnets.

Eeeeeeeew.

In any case, I'm not saying EMBT/Idera did a good job with it. Totally
on the contrary: they bungled up major big time. I'm saying that
something like FMX was long overdue. What they did with it over the
last four year is really really depressingly little, as your testimony
indicates.

I haven't seen original original VGScene (or whatever was its name) code,
but if Embarcadero had better designed code to start with they might have
gone further in development than they did. It is hard to say who is to blame,
but probably guilt is on all sides.

If your house is cracking up because of bad foundations, then no amount of
paint can fix it. You have to buld it all over again.

My original point is, having original FMX author out of the picture most likely
will not have any major negative impact on FMX. On the contrary, I hope
that someone more competent will step in and be able to straighten up
at least some of deficiencies. And if not then nothing bad will happen either,
FMX will just continue its natural evolution on the bad foundations like it has
already been doing.

--
Dalija Prasnikar
https://twitter.com/dalijap
https://plus.google.com/+DalijaPrasnikar
Dominique Willems

Posts: 591
Registered: 10/26/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 23, 2016 5:17 AM   in response to: Dalija Prasnikar in response to: Dalija Prasnikar
Dalija Prasnikar wrote:
My original point is, having original FMX author out of the picture
most likely will not have any major negative impact on FMX.

Maybe, but without the lad, there would have been nothing, if you ask
me.
Dalija Prasnikar

Posts: 2,325
Registered: 11/9/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 23, 2016 7:12 AM   in response to: Dominique Willems in response to: Dominique Willems
Dominique Willems wrote:
Dalija Prasnikar wrote:
My original point is, having original FMX author out of the picture
most likely will not have any major negative impact on FMX.

Maybe, but without the lad, there would have been nothing, if you ask
me.

I am not quite sure whether that particular cat is dead or alive...

On one hand I tend to agree with you, on the other...

Maybe they would not have cross-platform framework and OSX support
at XE2 release. But since that release had long awaited 64 bit compiler
it would not matter much on how people would perceived it. It would
still be great release and maybe even better with better 64 bit debugger,
and more VCL bugs fixed....

Maybe they would not fire VCL devs and would have to roll out their own
cross-platform framework. Maybe those devs would design better framework
from the start...

Maybe they would have to take native platform controls approach sooner...
controls approach sooner...

Maybe they would not waste theri money on AppMethod...

Maybe we would not have 2D/3D Windows vector framework, that is mostly
unusable anyway...

Maybe those those that need it would be much happier with VGScene....

--
Dalija Prasnikar
https://twitter.com/dalijap
https://plus.google.com/+DalijaPrasnikar
Dominique Willems

Posts: 591
Registered: 10/26/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 23, 2016 2:41 PM   in response to: Dalija Prasnikar in response to: Dalija Prasnikar
Dalija Prasnikar wrote:
Maybe we would not have 2D/3D Windows vector framework, that is
mostly unusable anyway...

WTH? Speak for yourself.

Maybe those those that need it would be much happier with VGScene....

If he hadn't caved, for sure.
Kim Madsen

Posts: 362
Registered: 12/13/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 23, 2016 8:12 AM   in response to: Dalija Prasnikar in response to: Dalija Prasnikar
Of course, the fact that VCL and FMX don't mix has very little to do
with my original criticism of the code.

Anyway you mention it as a significant point affecting your judgement of
FMX.

If your house is cracking up because of bad foundations, then no amount of
paint can fix it. You have to buld it all over again.

Which is IMO a totally (sorry to say) stupid remark and comparison.
If it is a design goal to use native GPU rendering on various platforms,
then Firemonkey is designed correctly.

That it is even capable of falling back to old basically obsolete 20
year old rendering methods, is just a testament of its flexibility and
that it generally has been very well designed.

best regards
Kim/C4D
Dalija Prasnikar

Posts: 2,325
Registered: 11/9/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 23, 2016 9:58 AM   in response to: Kim Madsen in response to: Kim Madsen
Kim Madsen wrote:
Of course, the fact that VCL and FMX don't mix has very little to do
with my original criticism of the code.

Anyway you mention it as a significant point affecting your judgement of
FMX.

No. I never said that. I said that some FMX feature would be usable for
VCL applications as such, but since two don't mix then it cannot be used
and FMX standalone is not good enough to replace VCL.

If your house is cracking up because of bad foundations, then no amount of
paint can fix it. You have to buld it all over again.

Which is IMO a totally (sorry to say) stupid remark and comparison.
If it is a design goal to use native GPU rendering on various platforms,
then Firemonkey is designed correctly.

That it is even capable of falling back to old basically obsolete 20
year old rendering methods, is just a testament of its flexibility and
that it generally has been very well designed.

You clearly don't understand what I mean by badly designed. I am
talking about darn code. If you have unit A that uses unit B that uses unit
C that uses unit D that uses unit A it is screams crap before you even
take one step further and look at the code on class level. That is what I am
talking about. Not whether or not it is supposed to use native GPU
rendering. Of course it is supposed to do that and accommodate for various
platforms.

Yes, I know I mentioned GDI font rendering but I am aware that is rather
specific requirement I have on Windows. If that would be the only issue
I could look beyond it.

FMX as idea is good, it is its implementation that has major flaws.

--
Dalija Prasnikar
https://twitter.com/dalijap
https://plus.google.com/+DalijaPrasnikar
Kim Madsen

Posts: 362
Registered: 12/13/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 23, 2016 2:41 PM   in response to: Dalija Prasnikar in response to: Dalija Prasnikar
No. I never said that. I said that some FMX feature would be usable for
VCL applications as such, but since two don't mix then it cannot be used
and FMX standalone is not good enough to replace VCL.

And anyway it was a major issue for you as far as I read it.

You clearly don't understand what I mean by badly designed.
<snip>
FMX as idea is good, it is its implementation that has major flaws.

It generally really doesnt matter if there are circular references
between units, as long as those units are always to be used in combo.
Sure, I can agree, that when possible its a good idea to have as few
circular requirements as possible, but whats important to me, is how the
framework is to use, and if it does whats its supposed to do.

I happen to look at Java code quite alot lately, and digs into libraries
and frameworks that are considered the designtemplate for everything
code these days.... and boy... do I see stuff that is less than
desirable within that code. Stuff that would be frown upon if shown in
the Delphi world.... like goto (via break to label) and such nastiness ;)

However the point of it is, that it basically doesnt matter how the
inside looks as long as it works. It matters how one interacts with the
inside and that the inside performs well enough within the requirements
that has been set.

Everything else is a matter of purism.

In fact the rest of the work (specially driven by the Java world)
believes alot in semi automatic refactoring. Why has that been invented?
Because the front runners of the Java world have found that they just
want to make some code quickly. Functionality first. At some point they
may decide that the code is becoming unmanagable, and needs to be split
up, or renamed or .... and so its refactored.

Firemonkey is nothing different... It receives refactoring when someone
decides its current structure prevents extending it, and thats how it
should be imo.

best regards
Kim/C4D
Dalija Prasnikar

Posts: 2,325
Registered: 11/9/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 24, 2016 7:19 AM   in response to: Kim Madsen in response to: Kim Madsen
Kim Madsen wrote:
No. I never said that. I said that some FMX feature would be usable for
VCL applications as such, but since two don't mix then it cannot be used
and FMX standalone is not good enough to replace VCL.

And anyway it was a major issue for you as far as I read it.

No. It was just final drop that makes it completely unusable for me. And
believe me I tried to use it - both as complete VCL replacement and
partially to complement VCL.

And again my assesment of its code quality has absolutely nothing to
do with how usable or not it is for me.

You clearly don't understand what I mean by badly designed.
<snip>
FMX as idea is good, it is its implementation that has major flaws.

It generally really doesnt matter if there are circular references
between units, as long as those units are always to be used in combo.
Sure, I can agree, that when possible its a good idea to have as few
circular requirements as possible, but whats important to me, is how the
framework is to use, and if it does whats its supposed to do.

I happen to look at Java code quite alot lately, and digs into libraries
and frameworks that are considered the designtemplate for everything
code these days.... and boy... do I see stuff that is less than
desirable within that code. Stuff that would be frown upon if shown in
the Delphi world.... like goto (via break to label) and such nastiness ;)

However the point of it is, that it basically doesnt matter how the
inside looks as long as it works. It matters how one interacts with the
inside and that the inside performs well enough within the requirements
that has been set.

Everything else is a matter of purism.

In fact the rest of the work (specially driven by the Java world)
believes alot in semi automatic refactoring. Why has that been invented?
Because the front runners of the Java world have found that they just
want to make some code quickly. Functionality first. At some point they
may decide that the code is becoming unmanagable, and needs to be split
up, or renamed or .... and so its refactored.

Firemonkey is nothing different... It receives refactoring when someone
decides its current structure prevents extending it, and thats how it
should be imo.

Yo can write crap code in any language so what. That also has nothing
to do with FMX code.

I am not talking about some puristic theoretical stuff. That code is bad
no matter how you look at it. You may say it works, but it does not do
even that. Just take a look at QP and number of bugs related to FMX.
Bad code is hard to understand, hard to maintain, hard to fix bugs.
All that has impact on how end customer can successfully use that code.

You may be happy with it, I am not.

I am sympathizing with Eugene as person that lost his job, but as customer
I don't see that as bad thing at all.

--
Dalija Prasnikar
https://twitter.com/dalijap
https://plus.google.com/+DalijaPrasnikar
Kim Madsen

Posts: 362
Registered: 12/13/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 24, 2016 7:39 AM   in response to: Dalija Prasnikar in response to: Dalija Prasnikar

I am not talking about some puristic theoretical stuff. That code is bad
no matter how you look at it. You may say it works, but it does not do

And so you continues to diss it despite quite a number of applications
have proven the contrary.

As I understand you, you havnt even attempted to work with it since XE2
according to your statements... and you STILL continue to claim it
doesnt work.
Sheesh...

Why not stop talking about stuff you have no real experience with. You
obviously do not like FMX, but thats a far cry away from claiming that
it doesnt work, and that its crap. It works and its not crap.

best regards
Kim/C4D
Dalija Prasnikar

Posts: 2,325
Registered: 11/9/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 24, 2016 8:02 AM   in response to: Kim Madsen in response to: Kim Madsen
Kim Madsen wrote:

I am not talking about some puristic theoretical stuff. That code is bad
no matter how you look at it. You may say it works, but it does not do

And so you continues to diss it despite quite a number of applications
have proven the contrary.

As I understand you, you havnt even attempted to work with it since XE2
according to your statements... and you STILL continue to claim it
doesnt work.
Sheesh...

I also said it improved over time, but since we are talking about original
author, then my assesment of code published with XE2..XE4 is perfectly
valid.

I didn't look at FMX code as code lately, so I cannot say how it looks right
now, but it still has plenty of critical bugs. If your app crashes when you use
it then it is hadrly "it works". This is just one issue as example, you are
free to dig out more if you like.

Edit and Memo issue on Teclast Android device
https://quality.embarcadero.com/browse/RSP-9720

Why not stop talking about stuff you have no real experience with. You
obviously do not like FMX, but thats a far cry away from claiming that
it doesnt work, and that its crap. It works and its not crap.

I have more than enough experience to say things I am saying.
Feel free to think otherwise.

CODE is crap. You can have something that works perfectly and it can
still have CRAP code behind it. But FMX also still does not fully work
as it should. I am not talking about minor issues and annoyances.

--
Dalija Prasnikar
https://twitter.com/dalijap
https://plus.google.com/+DalijaPrasnikar
Brian Hamilton ...

Posts: 556
Registered: 10/14/04
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 24, 2016 1:16 PM   in response to: Dalija Prasnikar in response to: Dalija Prasnikar
more controls now have option to use Platform, with the latest compiler versions
instead of styled
including Tmemo
so it now does not matter if the performance of tmemo in FMX is not good
Markus Humm

Posts: 5,113
Registered: 11/9/03
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 25, 2016 8:18 AM   in response to: Brian Hamilton ... in response to: Brian Hamilton ...
Am 24.11.2016 um 22:16 schrieb Brian Hamilton Hamilton:
more controls now have option to use Platform, with the latest compiler versions
instead of styled
including Tmemo
so it now does not matter if the performance of tmemo in FMX is not good

Yes but afaik not for Android yet.
That's still planned only.

Greetings

Markus
Brian Hamilton ...

Posts: 556
Registered: 10/14/04
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 25, 2016 9:36 AM   in response to: Markus Humm in response to: Markus Humm

Yes but afaik not for Android yet.

there is /was a set of components that were developed to give Native Andriod look at feel
the author was a MVP....
Dave Nottage

Posts: 1,850
Registered: 1/7/00
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 25, 2016 4:06 PM   in response to: Brian Hamilton ... in response to: Brian Hamilton ...
Brian Hamilton Hamilton wrote:

there is /was a set of components that were developed to give Native Andriod look at feel
the author was a MVP....

Stephane Vanderclock (aka loki loki) has done some work on producing a "native" TEdit for Android:

https://forums.embarcadero.com/thread.jspa?threadID=229696&tstart=30

I believe he had plans for doing a TMemo also, however others could learn from his work. There is also possibly DPF for
Android (TDPFJEditText):

https://sourceforge.net/projects/dpfdelphiandroid/

Recently I had the need to do my own "native" control (an inline DateTime picker) for Android, and I could see this
being expanded into including others, like TEdit, TMemo etc. It's still very much a work in progress, though

--
Dave Nottage [MVP, TeamB]
Hints, tips and tricks at: http://www.delphiworlds.com/blog
Brian Hamilton ...

Posts: 556
Registered: 10/14/04
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 25, 2016 9:22 PM   in response to: Dave Nottage in response to: Dave Nottage
DPF for
Android
was what I was thinking of ;)
Markus Humm

Posts: 5,113
Registered: 11/9/03
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 25, 2016 10:43 PM   in response to: Brian Hamilton ... in response to: Brian Hamilton ...
Am 25.11.2016 um 18:36 schrieb Brian Hamilton Hamilton:

Yes but afaik not for Android yet.

there is /was a set of components that were developed to give Native Andriod look at feel
the author was a MVP....

That may well be, but that will have it's issues when FMX further
evolves as it has to adapt etc. or it might look vastly different
property wise and we have to keep it updated etc.

Nah, I'm rather for an out of box EMBT solution.

Greetings

Markus
Dalija Prasnikar

Posts: 2,325
Registered: 11/9/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 27, 2016 6:50 AM   in response to: Markus Humm in response to: Markus Humm
I am hijacking this thread for a moment...

Markus could you please check one potential issue with Android TMemo.

I was cleaning device and found old Android demo I made with Delphi.

It had TMemo control and I tried typing in it. All good, but when I pressed
enter cursor jumped in new line, but when I continued typing it moved back
in previous line and continued there instead in new line.

I don't know with which Delphi version was this demo created nor I have its code.

If you can repeat issue with latest version, could you also submit bug report.

Thanks.

--
Dalija Prasnikar
https://twitter.com/dalijap
https://plus.google.com/+DalijaPrasnikar
Markus Humm

Posts: 5,113
Registered: 11/9/03
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 27, 2016 9:11 AM   in response to: Dalija Prasnikar in response to: Dalija Prasnikar
Am 27.11.2016 um 15:50 schrieb Dalija Prasnikar:
I am hijacking this thread for a moment...

Markus could you please check one potential issue with Android TMemo.

I was cleaning device and found old Android demo I made with Delphi.

It had TMemo control and I tried typing in it. All good, but when I pressed
enter cursor jumped in new line, but when I continued typing it moved back
in previous line and continued there instead in new line.

I don't know with which Delphi version was this demo created nor I have its code.

If you can repeat issue with latest version, could you also submit bug report.

Thanks.

Hello,

I'll make a note about this an will test it as soon time permits.
Which platform? Win32 or Android? Others I can't test (except Win64).

Greetings

Markus
Dalija Prasnikar

Posts: 2,325
Registered: 11/9/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 27, 2016 11:20 AM   in response to: Markus Humm in response to: Markus Humm
Markus Humm wrote:
Am 27.11.2016 um 15:50 schrieb Dalija Prasnikar:
I am hijacking this thread for a moment...

Markus could you please check one potential issue with Android TMemo.

I was cleaning device and found old Android demo I made with Delphi.

It had TMemo control and I tried typing in it. All good, but when I pressed
enter cursor jumped in new line, but when I continued typing it moved back
in previous line and continued there instead in new line.

I don't know with which Delphi version was this demo created nor I have its code.

If you can repeat issue with latest version, could you also submit bug report.

Thanks.

Hello,

I'll make a note about this an will test it as soon time permits.
Which platform? Win32 or Android? Others I can't test (except Win64).

This was Android app, I don't have any leftover demos on iPad so I am not
sure whether issue exists there or not. Android would suffice, I guess...
if you reproduce the issue you can always mention that you could not
check for other platforms.

I tried to reproduce it on Windows with XE4 and I could not, but since XE4
there was a whole lot of new versions so anything is possible.

--
Dalija Prasnikar
https://twitter.com/dalijap
https://plus.google.com/+DalijaPrasnikar
Brian Hamilton ...

Posts: 556
Registered: 10/14/04
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 27, 2016 6:41 PM   in response to: Dalija Prasnikar in response to: Dalija Prasnikar
I tried to reproduce it on Windows with XE4 and I could not, but since XE4
there was a whole lot of new versions so anything is possible.

alot has improved with FMX since XE4
Dalija Prasnikar

Posts: 2,325
Registered: 11/9/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 27, 2016 11:20 PM   in response to: Brian Hamilton ... in response to: Brian Hamilton ...
Brian Hamilton Hamilton wrote:
I tried to reproduce it on Windows with XE4 and I could not, but since XE4
there was a whole lot of new versions so anything is possible.

alot has improved with FMX since XE4

I know. And I tried later editions too. But XE4 is the last one I own.

So at the moment I cannot test the mentioned issue without installing
a trial first....

--
Dalija Prasnikar
https://twitter.com/dalijap
https://plus.google.com/+DalijaPrasnikar

Markus Humm

Posts: 5,113
Registered: 11/9/03
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Dec 2, 2016 10:28 AM   in response to: Dalija Prasnikar in response to: Dalija Prasnikar
Hello,

sorry for taking a few days for such a simplistic test.
Here's a download link to a ZIP file:

https://webmail.freenet.de/Cloud/?shareToken=c633f097b61819a6f8682934d5bb261248e07b99d31214f5ef7c54e839616efb

The link is valid for 30 days and it would be nice if you could inform me after downloading it so I can delete it.

What does it contain?

1. a demo project with a memo
2. the APK for Android based on that demo project, the other generated files have been
deleted to reduce the file size

As far as I can tell the memo works good, but I didn't test yet what happens when it has to scroll.
Additionally the demo shows you a TMultiView. Just tap the button in the toolbar...

Greetings

Markus

Edited by: Markus Humm on Dec 2, 2016 7:29 PM - link valid for 30 days added
Markus Humm

Posts: 5,113
Registered: 11/9/03
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Dec 2, 2016 10:32 AM   in response to: Markus Humm in response to: Markus Humm
Hello,

I misused the link generator of this cloud storage so the original one got deleted.
here's another one:

https://webmail.freenet.de/Cloud/?shareToken=c633f097b61819a6f8682934d5bb261248e07b99d31214f5ef7c54e839616efb

Greetings

Markus
Dalija Prasnikar

Posts: 2,325
Registered: 11/9/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Dec 2, 2016 10:37 AM   in response to: Markus Humm in response to: Markus Humm
Markus Humm wrote:
Hello,

I misused the link generator of this cloud storage so the original one got deleted.
here's another one:

https://webmail.freenet.de/Cloud/?shareToken=c633f097b61819a6f8682934d5bb261248e07b99d31214f5ef7c54e839616efb

I already downloaded from the first one. You can delete them both.

But I don't see any toolbar buttons only empty panels and label "I am a TMulti..."
- and when I type into memo nothing shows at all....

device is Samsung SMT210 tablet, Android KitKat 4.4.2

--
Dalija Prasnikar
https://twitter.com/dalijap
https://plus.google.com/+DalijaPrasnikar
Markus Humm

Posts: 5,113
Registered: 11/9/03
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Dec 2, 2016 11:38 AM   in response to: Dalija Prasnikar in response to: Dalija Prasnikar
Am 02.12.2016 um 19:37 schrieb Dalija Prasnikar:
Markus Humm wrote:
Hello,

I misused the link generator of this cloud storage so the original one got deleted.
here's another one:

https://webmail.freenet.de/Cloud/?shareToken=c633f097b61819a6f8682934d5bb261248e07b99d31214f5ef7c54e839616efb

I already downloaded from the first one. You can delete them both.

But I don't see any toolbar buttons only empty panels and label "I am a TMulti..."
- and when I type into memo nothing shows at all....

device is Samsung SMT210 tablet, Android KitKat 4.4.2

Hello,

that's strange.
I'll upload a screenshot of my cheap LG L50 I've currently got connected
to the PC which shows the application on that one.

https://webmail.freenet.de/Cloud/?shareToken=7c48c4abc350dbc6bf5d51a672711595ea9665cd21315136ee906410262c9ed1

1. Blank app
2. after click on button of toolbar to demo multiview
3. closing multiview (e.g. by swiping left on it) and showing multiline
text on a LG L50 Sporty Android 4.4.2 smartphone. (800x600 Pixel
screen resolution)

Greetings

Markus
Dalija Prasnikar

Posts: 2,325
Registered: 11/9/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Dec 2, 2016 12:12 PM   in response to: Markus Humm in response to: Markus Humm
Markus Humm wrote:
Am 02.12.2016 um 19:37 schrieb Dalija Prasnikar:
Markus Humm wrote:
Hello,

I misused the link generator of this cloud storage so the original one got deleted.
here's another one:

https://webmail.freenet.de/Cloud/?shareToken=c633f097b61819a6f8682934d5bb261248e07b99d31214f5ef7c54e839616efb

I already downloaded from the first one. You can delete them both.

But I don't see any toolbar buttons only empty panels and label "I am a TMulti..."
- and when I type into memo nothing shows at all....

device is Samsung SMT210 tablet, Android KitKat 4.4.2

Hello,

that's strange.
I'll upload a screenshot of my cheap LG L50 I've currently got connected
to the PC which shows the application on that one.

https://webmail.freenet.de/Cloud/?shareToken=7c48c4abc350dbc6bf5d51a672711595ea9665cd21315136ee906410262c9ed1

1. Blank app
2. after click on button of toolbar to demo multiview
3. closing multiview (e.g. by swiping left on it) and showing multiline
text on a LG L50 Sporty Android 4.4.2 smartphone. (800x600 Pixel
screen resolution)

Ok, I figured it out... it does not work in landscape, but it works in portrait mode.

I am not sure if that is as intended or some other bug...

But as far as memo itself is concerned, i tested it now in portrait mode and
it works fine...

--
Dalija Prasnikar
https://twitter.com/dalijap
https://plus.google.com/+DalijaPrasnikar
Markus Humm

Posts: 5,113
Registered: 11/9/03
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Dec 2, 2016 12:29 PM   in response to: Dalija Prasnikar in response to: Dalija Prasnikar
Am 02.12.2016 um 21:12 schrieb Dalija Prasnikar:
Markus Humm wrote:
Am 02.12.2016 um 19:37 schrieb Dalija Prasnikar:
Markus Humm wrote:
Hello,

I misused the link generator of this cloud storage so the original one got deleted.
here's another one:

https://webmail.freenet.de/Cloud/?shareToken=c633f097b61819a6f8682934d5bb261248e07b99d31214f5ef7c54e839616efb

I already downloaded from the first one. You can delete them both.

But I don't see any toolbar buttons only empty panels and label "I am a TMulti..."
- and when I type into memo nothing shows at all....

device is Samsung SMT210 tablet, Android KitKat 4.4.2

Hello,

that's strange.
I'll upload a screenshot of my cheap LG L50 I've currently got connected
to the PC which shows the application on that one.

https://webmail.freenet.de/Cloud/?shareToken=7c48c4abc350dbc6bf5d51a672711595ea9665cd21315136ee906410262c9ed1

1. Blank app
2. after click on button of toolbar to demo multiview
3. closing multiview (e.g. by swiping left on it) and showing multiline
text on a LG L50 Sporty Android 4.4.2 smartphone. (800x600 Pixel
screen resolution)

Ok, I figured it out... it does not work in landscape, but it works in portrait mode.

I am not sure if that is as intended or some other bug...

But as far as memo itself is concerned, i tested it now in portrait mode and
it works fine...

Hello,

I did anchor the memo to all sides, but didn't test landscape. SO I did
this now. It sort of works, it's just that the LG L50's small 800x600
screen is a bit small for this scenario when the keyboard is open.
But that's not the fault of the app.

What does not work in landscape mode for you?

Greetings

Markus
Dalija Prasnikar

Posts: 2,325
Registered: 11/9/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Dec 2, 2016 12:51 PM   in response to: Markus Humm in response to: Markus Humm
Markus Humm wrote:

I did anchor the memo to all sides, but didn't test landscape. SO I did
this now. It sort of works, it's just that the LG L50's small 800x600
screen is a bit small for this scenario when the keyboard is open.
But that's not the fault of the app.

What does not work in landscape mode for you?

Drawer starts opened. But only kind of - it does not respond to anything, nor
it covers (shades) the whole screen. It is just displayed over the memo and
there is no drawer button. I can only see text you put in the drawer. Also memo
can be activated and I can type text in, but I cannot see it because it is covered
by drawer - if I type long enough then it starts to show...

Seems like drawer is part that is malfunctioning here.

--
Dalija Prasnikar
https://twitter.com/dalijap
https://plus.google.com/+DalijaPrasnikar
Markus Humm

Posts: 5,113
Registered: 11/9/03
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Dec 2, 2016 12:55 PM   in response to: Dalija Prasnikar in response to: Dalija Prasnikar
Am 02.12.2016 um 21:51 schrieb Dalija Prasnikar:
Markus Humm wrote:

I did anchor the memo to all sides, but didn't test landscape. SO I did
this now. It sort of works, it's just that the LG L50's small 800x600
screen is a bit small for this scenario when the keyboard is open.
But that's not the fault of the app.

What does not work in landscape mode for you?

Drawer starts opened. But only kind of - it does not respond to anything, nor
it covers (shades) the whole screen. It is just displayed over the memo and
there is no drawer button. I can only see text you put in the drawer. Also memo
can be activated and I can type text in, but I cannot see it because it is covered
by drawer - if I type long enough then it starts to show...

Seems like drawer is part that is malfunctioning here.

Sigh!
I wanted to showcase something to you but didn't look at it carefully
enough abnd thus failed :-(
Ok, but you learned that TMemo works as intended and I can assure you
that the drawer works as such as well, if the developer properly
configures it for the task at hand.

means: that drawer has several available modes.

Greetings

Markus
Dalija Prasnikar

Posts: 2,325
Registered: 11/9/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Dec 2, 2016 1:00 PM   in response to: Markus Humm in response to: Markus Humm
Markus Humm wrote:
Am 02.12.2016 um 21:51 schrieb Dalija Prasnikar:
Markus Humm wrote:

I did anchor the memo to all sides, but didn't test landscape. SO I did
this now. It sort of works, it's just that the LG L50's small 800x600
screen is a bit small for this scenario when the keyboard is open.
But that's not the fault of the app.

What does not work in landscape mode for you?

Drawer starts opened. But only kind of - it does not respond to anything, nor
it covers (shades) the whole screen. It is just displayed over the memo and
there is no drawer button. I can only see text you put in the drawer. Also memo
can be activated and I can type text in, but I cannot see it because it is covered
by drawer - if I type long enough then it starts to show...

Seems like drawer is part that is malfunctioning here.

Sigh!
I wanted to showcase something to you but didn't look at it carefully
enough abnd thus failed :-(
Ok, but you learned that TMemo works as intended and I can assure you
that the drawer works as such as well, if the developer properly
configures it for the task at hand.

means: that drawer has several available modes.

Ok. All is good then :)

--
Dalija Prasnikar
https://twitter.com/dalijap
https://plus.google.com/+DalijaPrasnikar
Markus Humm

Posts: 5,113
Registered: 11/9/03
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 24, 2016 9:06 AM   in response to: Kim Madsen in response to: Kim Madsen
Am 24.11.2016 um 16:39 schrieb Kim Madsen:

I am not talking about some puristic theoretical stuff. That code is bad
no matter how you look at it. You may say it works, but it does not do

And so you continues to diss it despite quite a number of applications
have proven the contrary.

Maybe those apps work despite all the bugs and performance issues which
are still in?

And I did use it until that project which uses it got less priority a
few weeks ago. It will be taken up again in the near future and it is on
the newest version of that time, 10.1 upd. 1.

Oh, I even did something in it yesterday evening and this morning and I
used the async MessageDlgs to wonder why the error dialog on Win32
doesn't have the icon the VCL one has indicating the type of dialog.

I thought FMX should mimick the underlying platform as closely as possible?

Greetings

Markus
Kim Madsen

Posts: 362
Registered: 12/13/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 24, 2016 2:17 PM   in response to: Markus Humm in response to: Markus Humm
Den 11/24/2016 kl. 18:06 skrev Markus Humm:
I thought FMX should mimick the underlying platform as closely as possible?

I think that is a misunderstanding imo. FMX is its own. If one uses it
as a VCL2 then its wrong. One should use it as it is... FMX with the
benefits and differences that results in compared to VCL.

best regards
Kim/C4D
Markus Humm

Posts: 5,113
Registered: 11/9/03
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 25, 2016 8:19 AM   in response to: Kim Madsen in response to: Kim Madsen
Am 24.11.2016 um 23:17 schrieb Kim Madsen:
Den 11/24/2016 kl. 18:06 skrev Markus Humm:
I thought FMX should mimick the underlying platform as closely as possible?

I think that is a misunderstanding imo. FMX is its own. If one uses it
as a VCL2 then its wrong. One should use it as it is... FMX with the
benefits and differences that results in compared to VCL.

Hm? But EMBT markets the styles as "pixel perfect". So they shall
definitely look like real platform native apps.

Greetings

Markus
Kim Madsen

Posts: 362
Registered: 12/13/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 25, 2016 11:27 AM   in response to: Markus Humm in response to: Markus Humm
Den 11/25/2016 kl. 17:19 skrev Markus Humm:
Am 24.11.2016 um 23:17 schrieb Kim Madsen:
Den 11/24/2016 kl. 18:06 skrev Markus Humm:
I thought FMX should mimick the underlying platform as closely as possible?

I think that is a misunderstanding imo. FMX is its own. If one uses it
as a VCL2 then its wrong. One should use it as it is... FMX with the
benefits and differences that results in compared to VCL.

Hm? But EMBT markets the styles as "pixel perfect". So they shall
definitely look like real platform native apps.

Greetings

Markus

I personally havnt bothered at all looking for anything pixel perfect...
even Windows is not pixel perfect... details changes on each version or
even on each update (in specific areas/apps), so that term really doesnt
make much sense.

In fact I have not used Firemonkey to make something that looks like a
regular windows app... why should I? If that would have been a goal,
then Id used VCL and regular old fashioned controls.

No... I wanted something that was fluid, with my choise of look and
design, specifically matching the needs that the endusers have for this
application, and the absolute freedom in how to make something look and
feel in Firemonkey, while still being RAD, is not comparable to anything
Ive tried.

In fact, I have made quite an effort to design the app for its purpose,
which were not only accepted but made endusers drop their jaws, because
they were used to using something that was more regular Windows like,
and much much less user friendly for this particular purpose.

So Im happy if people state Firemonkey not to be 100% pixel perfect... I
prefer it to be its own one of a kind, where you can make your dreams
come true... or at least some of them ;)

best regards
Kim/C4D
Alexandre Machado

Posts: 1,754
Registered: 8/10/13
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 23, 2016 2:25 PM   in response to: Dominique Willems in response to: Dominique Willems
Dominique Willems wrote:
Dalija Prasnikar wrote:
Well, I don't want to be rude, but if he is also the father of FMX
kitchen sink design then this is no bad news after all.

He's a guy who, pretty much by himself, managed to finally create a
vector-based GUI library for Delphi, which was long overdue. It's guys
like him who are really innovating, often more so than a team of ten
averagely motivated developers.

Well said.

I've seen many developers here talking about "bad design" but very few have ever written a commercial library used by thousands of people (I'm not saying about you, Dalija, specifically). Someday you see a protected field and you realize that it should be private, because that's what good OO dictates. Then you change it. In the very next day you receive DOZENS of e-mails complaining that they rely on that and they need that because of this and that. Other day you see a virtual method which should never be overridden in descendant classes, and make it private. And suddenly you broke 50 applications out there and someone will wake you up in the middle of the night and the only explanation that you have is "oh, I decided to remove it because this how we do in OOP-Land".

Many decisions that involve the actual code which is shipped has nothing to do with "correctness" in terms of OOP. Sometimes you just need to "make it work", fast, and you might take shortcuts, and you expect to have time to revist that later and do it better. But sometimes this "idle time" never comes, and the shortcut is now part of the product. This is how things work in real world. I would never hire a programmer that doesn't know when/how to take a shortcut to solve an urgent problem, if I was in charge of hiring, of course :-)
Dominique Willems

Posts: 591
Registered: 10/26/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 23, 2016 2:44 PM   in response to: Alexandre Machado in response to: Alexandre Machado
Alexandre Machado wrote:
<summary of reality and things that actually work>

Even better said. ;)
Rudy Velthuis (...


Posts: 7,731
Registered: 9/22/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 24, 2016 5:21 AM   in response to: Alexandre Machado in response to: Alexandre Machado
Alexandre Machado wrote:

Many decisions that involve the actual code which is shipped has
nothing to do with "correctness" in terms of OOP. Sometimes you just
need to "make it work", fast, and you might take shortcuts, and you
expect to have time to revist that later and do it better. But
sometimes this "idle time" never comes, and the shortcut is now part
of the product. This is how things work in real world. I would never
hire a programmer that doesn't know when/how to take a shortcut to
solve an urgent problem, if I was in cha rge of hiring, of course :-)

Well said. Still, you can make private things accessible while
retaining encapsulation by making them properties with accessors that
safeguard the integrity of the code. You just have to know which items
must be encapsulated like that. That is usually only possible in a
dialogue with your customers. As a lone developer you are bound to make
decisions your users may not like. Sometimes you must remain strict,
but often you will listen to your users.

--
Rudy Velthuis http://www.rvelthuis.de

ICTOARTCYAODHTIOTSSIWRTNCAHICGAWI, Acronym: "I Can't Think Of
Anything Reasonable To Counter Your Argument Or Don't Have The
Least Inkling Of The Subject So I Will Resort To Name Calling
And Hope I Can Get Away With It."
-- Ken de Camargo, borland.public.off-topic
Arthur Hoornweg

Posts: 414
Registered: 6/2/98
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Dec 2, 2016 4:01 AM   in response to: Rudy Velthuis (... in response to: Rudy Velthuis (...
Rudy Velthuis (TeamB) wrote:

Well said. Still, you can make private things accessible while
retaining encapsulation by making them properties with accessors that
safeguard the integrity of the code. You just have to know which items
must be encapsulated like that.

I'd prefer to have everything interface based instead of class-based. The underlying implementation can remain hidden and be optimized for the platform.

Alexandre Machado

Posts: 1,754
Registered: 8/10/13
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Dec 2, 2016 1:56 PM   in response to: Arthur Hoornweg in response to: Arthur Hoornweg
I'd prefer to have everything interface based instead of class-based. The underlying implementation can remain hidden and be optimized for the platform.

There is another issue with "everything interface based" though. When you create an interface in a library and many classes (yours and 3rd parties as well) use that interface, and then you need to extend that interface, say, add a single method to it. What do you do? You can just add one method there and let users fix their code. This is the best path, IMO, but causes a lot of problems for everyone else.
I can tell you from my own experience: IntraWeb is mostly interface based and it is not easy to extend it without breaking everything (3rd party stuff based on IW). Then someone comes with a "bright" solution, like: "Create a new interface". Let's say that this is the chosen approach. Then you end up with:
- You have to add this new interface to every single class out there, in order to support this method.
- Where you call that method you now have to check for this interface as well.
- You don't break 3rd party code, but their code also won't support the new intended behavior.
- Another nasty side effect: memory usage:

  IMyInterface1 = interface(IInterface)
    ['{CFF8DFE3-1535-43B7-A8AE-AD59B3ED3CE8}']
  end;
 
  IMyInterface2 = interface(IInterface)
    ['{4F35D9A1-4397-4100-82B7-64FD034B1EED}']
  end;
 
  TMyClass = class(TObject)
  end;
 
  TMyClass1 = class(TInterfacedObject, IMyInterface1)
  end;
 
  TMyClass2 = class(TInterfacedObject, IMyInterface1, IMyInterface2)
  end;


TMyClass.InstanceSize = 8
TMyClass1.InstanceSize = 20
TMyClass2.InstanceSize = 24

It is easy to see that, if you have one baziilion objects in your application, Interfaces are not the solution.
David Keith

Posts: 196
Registered: 12/10/99
Re: Delphi FMX chief developer fired [Edit]
Click to report abuse...   Click to reply to this thread Reply
  Posted: Dec 4, 2016 8:16 AM   in response to: Alexandre Machado in response to: Alexandre Machado
On 12/2/2016 16:58, Alexandre Machado wrote:
I'd prefer to have everything interface based instead of class-based. The underlying implementation can remain hidden and be optimized for the platform.
There is another issue with "everything interface based" though. When you create an interface in a library and many classes (yours and 3rd parties as well) use that interface, and then you need to extend that interface, say, add a single method to it. What do you do? You can just add one method there and let users fix their code. This is the best path, IMO, but causes a lot of problems for everyone else.
I can tell you from my own experience: IntraWeb is mostly interface based and it is not easy to extend it without breaking everything. Then someone comes with a "bright" solution, like: "Create a new interface". Let's say that this is the chosen approach. Then you end up with:
- You have to add this new interface to every single class out there, in order to support this method.
- Where you call that method you now have to check for this interface as well.
- You don't break 3rd party code, but their code also won't support the new intended behavior.
- Another side nasty side effect: memory usage:

   IMyInterface1 = interface(IInterface)
     ['{CFF8DFE3-1535-43B7-A8AE-AD59B3ED3CE8}']
   end;
 
   IMyInterface2 = interface(IInterface)
     ['{4F35D9A1-4397-4100-82B7-64FD034B1EED}']
   end;
 
   TMyClass = class(TObject)
   end;
 
   TMyClass1 = class(TInterfacedObject, IMyInterface1)
   end;
 
   TMyClass2 = class(TInterfacedObject, IMyInterface1, IMyInterface2)
   end;


TMyClass.InstanceSize = 8
TMyClass1.InstanceSize = 20
TMyClass2.InstanceSize = 24

It is easy to see that, if you have one baziilion objects in your application, Interfaces are not the solution.

Thanks for sharing this. I worked on an app many years ago that used
interfaces extensively. Worked extremely well, very modular, easy to
deploy, easy to update in production, easy to add modules to etc. As
long as every module followed existing interfaces exactly.

Once we realized that we needed to modify existing interfaces, we had to
add an additional interface that was a subsequent version of an existing
interface, with new fields/methods etc. So now we have two copies of the
original interface under two different names, and the newer software
modules used the new interface, while the existing modules used the old
interface version. Over time this gets rather ugly.

M$ uses a lot of interface inheritance as their way of solving this.
It's not pretty, but it works ok. Import Microsoft Terminal Services
Active Client 1.0 Type Library, and take a gander at the structure pane;
note all of the interface versions. Not sure how well this approach
works for code maintenance.

I guess it's a trade off; this approach works very well for modularizing
your code, but you'd better be a heck of a prophet when it comes to
designing your common interfaces; miss one thing after you are deployed
and you'll have to touch everything again to update/add methods to the
interface, or add new duplicate interfaces and get very messy with
maintenance.

A useful tool, but certainly not a panacea.

Arthur Hoornweg

Posts: 414
Registered: 6/2/98
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Dec 5, 2016 2:38 AM   in response to: Alexandre Machado in response to: Alexandre Machado
Alexandre Machado wrote:
I'd prefer to have everything interface based instead of class-based. The underlying implementation can remain hidden and be optimized for the platform.

There is another issue with "everything interface based" though. When you create an interface in a library and many classes (yours and 3rd parties as well) use that interface, and then you need to extend that interface, say, add a single method to it. What do you do? You can just add one method there and let users fix their code. This is the best path, IMO, but causes a lot of problems for everyone else.

I have DLL's containing (interface-based) class libraries that are shared among several programs and services. The interfaces only use "safe" data types (no Delphi-managed types) to avoid heap manager issues.

This is my way of staying binary compatible with existing applications: Appending new methods to the end of an existing interface appears to be safe. Just don't move any existing methods around. Applications compiled against the old interface declarations still work. But I do make sure that all interfaces have a "version" property so that the applications and DLLs can detect/avoid breaking changes when interfaces are passed around.

If parameter lists of existing methods need to change, it's often possible to avoid creating a new interface by implementing the new version of the method as an overload of the old version.

Type iOverloadedinterface=interface
['{967781D7-C0D4-40FD-9206-5B59F70129C3}']
   Function Version:integer;Stdcall;
   Function A ():Integer; Overload; Stdcall;   {original version1} 
   Function A (handle:integer):Integer;Overload;  Stdcall; {enhanced version2} 
   Function A (handle:integer; const caption:Widestring):Integer;Overload; Stdcall; {super duper version3} 
end;
 
 
 
   Function tOverloadedClass.A:Integer;   {version1} 
   Begin
     A ( 0 ); {call newer, improved version}
   End;
 
   Function tOverloadedClass.A (handle:integer):Integer; {version2} 
   Begin
          A (handle, '(c) Mycompany 2016');  {call newer, improved version}
   End;
 
 
   Function tOverloadedClass.A (handle:integer; const caption:Widestring):Integer;  {version3} 
   Begin
     // put real functionality here
   End;
 
Rudy Velthuis (...


Posts: 7,731
Registered: 9/22/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Dec 5, 2016 12:23 AM   in response to: Arthur Hoornweg in response to: Arthur Hoornweg
Arthur Hoornweg wrote:

Rudy Velthuis (TeamB) wrote:

Well said. Still, you can make private things accessible while
retaining encapsulation by making them properties with accessors
that safeguard the integrity of the code. You just have to know
which items must be encapsulated like that.

I'd prefer to have everything interface based instead of class-based.
The underlying implementation can remain hidden and be optimized for
the platform.


I used to think that too, but not anymore.

--
Rudy Velthuis http://www.rvelthuis.de

"Give a man a fire and he's warm for the day, but set fire to him
and he's warm for the rest of his life."
-- Terry Pratchett (Jingo)
Arthur Hoornweg

Posts: 414
Registered: 6/2/98
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Dec 5, 2016 1:07 AM   in response to: Rudy Velthuis (... in response to: Rudy Velthuis (...
Rudy Velthuis (TeamB) wrote:

I'd prefer to have everything interface based instead of class-based.
The underlying implementation can remain hidden and be optimized for
the platform.

I used to think that too, but not anymore.

Please elaborate.

In what respects is a tSomething superior to an iSomething? Interfaces are "cleaner" IMHO, they are less leak-prone because there is no "ownership", they don't enforce a class hierarchy and they enable me to do some things that just aren't possible with "regular" objects in Delphi. Such as putting class libraries in DLL's. Packages suck.

Dalija Prasnikar

Posts: 2,325
Registered: 11/9/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Dec 5, 2016 1:37 AM   in response to: Arthur Hoornweg in response to: Arthur Hoornweg
Arthur Hoornweg wrote:
Rudy Velthuis (TeamB) wrote:

I'd prefer to have everything interface based instead of class-based.
The underlying implementation can remain hidden and be optimized for
the platform.

I used to think that too, but not anymore.

Please elaborate.

In what respects is a tSomething superior to an iSomething? Interfaces are "cleaner" IMHO, they are less leak-prone because there is no "ownership", they don't enforce a class hierarchy and they enable me to do some things that just aren't possible with "regular" objects in Delphi. Such as putting class libraries in DLL's. Packages suck.


Because classes are not only methods but fields, too. Declaring interface for
fields means introducing get/set methods even when you don't need them.

Interfaces are not a silver bullet, sometimes they make sense sometimes
they don't. Writing a lot of boilerplate code just to support interfaces is not
my way of having fun.

I use interfaces a lot, but sometimes class hierarchy and abstract classes
are better fit. Sometimes you don't need any at all.

It is not question of superiority. It is question of using right thing in right
place. Sometimes you can go either way, sometimes classes are better
fit than interfaces, sometimes it is the other way around.

There is always ownership. True shared instances that have no real owner
are quite rare. If you have to write code for full ARC compiler, the ownership is
the first thing you will have to think about. Ownership implies usage of strong
vs weak references that are crucial for avoiding reference cycles and memory
leaks.

--
Dalija Prasnikar
https://twitter.com/dalijap
https://plus.google.com/+DalijaPrasnikar
Arthur Hoornweg

Posts: 414
Registered: 6/2/98
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Dec 5, 2016 3:57 AM   in response to: Dalija Prasnikar in response to: Dalija Prasnikar
Dalija Prasnikar wrote:

Interfaces are not a silver bullet, sometimes they make sense sometimes
they don't. Writing a lot of boilerplate code just to support interfaces is not
my way of having fun.

You're right, it isn't. Especially getters and setters are tedious typing work but I put up with them. To minimize typing, I mostly write the method declarations in the class first, then press Ctrl-Alt-C to create the skeleton implementation, then copy the method declaration from the class to the interface. It would be nice to have an IDE expert for this.

There is always ownership. True shared instances that have no real owner
are quite rare. If you have to write code for full ARC compiler, the ownership is
the first thing you will have to think about. Ownership implies usage of strong
vs weak references that are crucial for avoiding reference cycles and memory
leaks.

Yeah, circular references such as in parent/child relationships are a pitfall in the case of reference counted objects. But I solved that problem for interfaces, developed a little class that implements an "iWeakRef" interface that acts as a proxy. It is type safe and thread safe. It's some additional overhead, but what the heck. And I had to develop it only once.

What I really dislike about "regular" classes are pitfalls like this one.

Type tPrinter=Class
   ...
   Function getPrinters:tStrings;
End;

The declaration doesn't tell me what to do with the result when I'm done with it. Should I free it or not? I need to go into the documentation or dive into the source code to tell. Or maybe it's a matter of convention. There just isn't a rule of thumb that the class that creates an object owns it (class factories almost never do) .

Or this one. Leak or not?

form.canvas.pen:=tPen.create(.....).  

It sure looks like an assignment... so maybe I shouldn't free the tPen (or tCanvas.pen would point to a freed object). But in reality it isn't an assignment, the pen's style is just copied. So it is a leak.

None of this ever happens with interfaces.

Dalija Prasnikar

Posts: 2,325
Registered: 11/9/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Dec 5, 2016 4:43 AM   in response to: Arthur Hoornweg in response to: Arthur Hoornweg
Arthur Hoornweg wrote:

What I really dislike about "regular" classes are pitfalls like this one.

Type tPrinter=Class
   ...
   Function getPrinters:tStrings;
End;

The declaration doesn't tell me what to do with the result when I'm done with it. Should I free it or not? I need to go into the documentation or dive into the source code to tell. Or maybe it's a matter of convention. There just isn't a rule of thumb that the class that creates an object owns it (class factories almost never do) .

Or this one. Leak or not?

form.canvas.pen:=tPen.create(.....).  

It sure looks like an assignment... so maybe I shouldn't free the tPen (or tCanvas.pen would point to a freed object). But in reality it isn't an assignment, the pen's style is just copied. So it is a leak.

None of this ever happens with interfaces.


Well... to nitpick... those issues are strictly memory related problem.

You can solve those with interfaces only because interfaces are tied with
memory management in Delphi... and only if implementing class has
reference counting enabled.

And actually, above examples are rather clear...

First, you should not be releasing any objects returned from any kind of
function or property or similar. Creating class is the one responsible for releasing
object instance.

Of course, when you deal with factory class then object ownership is transferred
out of creating class, but factories should be clearly named. GetStrings would be
rather bad name for factory method and TPrinters even worse for factory class.

You can say that with TPen.Create things are less clear, but in general there is
no transfer of ownership during assignment. VCL will only take reference
without copying if you are assigning some related TComponent descendant.
So you can be fairly sure that objects without Owner in constructor will be
deep copied and the ones with Owner be taken as reference.

There are always things that are a bit easier with automatic memory management
in place, but having it does not completely resolve you from knowing a bit about APIs
and frameworks you use.

--
Dalija Prasnikar
https://twitter.com/dalijap
https://plus.google.com/+DalijaPrasnikar
Arthur Hoornweg

Posts: 414
Registered: 6/2/98
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Dec 5, 2016 6:46 AM   in response to: Dalija Prasnikar in response to: Dalija Prasnikar
Dalija Prasnikar wrote:

And actually, above examples are rather clear...

First, you should not be releasing any objects returned from any kind of
function or property or similar. Creating class is the one responsible for releasing
object instance.

Hi Dalija,

Objections. What if the information returned is dynamic, and not just a reference to something that persists? What if you need more than one result set? What if the class must be stateless? What if you use multi-threading?

Example:

Type tmyDatabase=class
     ...
    Function Query (const Statement:String) : tmyDataSet;
End;

Having tmyDatabase not relinquish ownership to the result set would severely reduce the usability.


You can say that with TPen.Create things are less clear, but in general there is
no transfer of ownership during assignment. VCL will only take reference
without copying if you are assigning some related TComponent descendant.

That's how the VCL works, sure. But that doesn't mean it's the right way, the best way or the only way. It's only a convention which isn't even really described anywhere AFAIK.


So you can be fairly sure that objects without Owner in constructor will be
deep copied and the ones with Owner be taken as reference.

Hey, that's a nice rule of thumb! Kudos for that!


There are always things that are a bit easier with automatic memory management
in place, but having it does not completely resolve you from knowing a bit about APIs
and frameworks you use.

Of course. But interfaces are so much more, they liberate you from a rigid inheritance pattern. They just specify a contract that must be fulfilled.

For example, the VCL expects every visible component to inherit from tComponent so I just can't drop a tSomethingElse on a form. Had it expected an iComponent instead, I could implement the methods of this interface in my tSomethingElse and all would be well. Adapter patterns could be made for FMX, Qt and whatever. Now we just... can't.

Rudy Velthuis (...


Posts: 7,731
Registered: 9/22/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Dec 6, 2016 1:36 AM   in response to: Arthur Hoornweg in response to: Arthur Hoornweg
Arthur Hoornweg wrote:

Dalija Prasnikar wrote:

And actually, above examples are rather clear...

First, you should not be releasing any objects returned from any
kind of function or property or similar. Creating class is the one
responsible for releasing object instance.

Hi Dalija,

Objections. What if the information returned is dynamic, and not just
a reference to something that persists? What if you need more than
one result set? What if the class must be stateless? What if you use
multi-threading?

Example:

Type tmyDatabase=class
     ...
    Function Query (const Statement:String) : tmyDataSet;
End;

A function returning an object is always suspect (except if it is a
factory class - but then ownership is transferred to the caller, which
should be made very clear).

You should prefer procedures modifying an object instead:

function Query(const Statement: string; DataSet: TMyDataSet): Boolean;

Query modifies the DataSet according to the Statement and returns True
for success and False for failure. The DataSet is owned by the caller
and should therefore be managed by the caller.

--
Rudy Velthuis http://www.rvelthuis.de

"The man who goes alone can start today; but he who travels with
another must wait till that other is ready."
-- Henry David Thoreau (1817-1862)

Dalija Prasnikar

Posts: 2,325
Registered: 11/9/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Dec 6, 2016 2:26 AM   in response to: Rudy Velthuis (... in response to: Rudy Velthuis (...
Rudy Velthuis (TeamB) wrote:
Arthur Hoornweg wrote:

Dalija Prasnikar wrote:

And actually, above examples are rather clear...

First, you should not be releasing any objects returned from any
kind of function or property or similar. Creating class is the one
responsible for releasing object instance.

Hi Dalija,

Objections. What if the information returned is dynamic, and not just
a reference to something that persists? What if you need more than
one result set? What if the class must be stateless? What if you use
multi-threading?

Example:

Type tmyDatabase=class
     ...
    Function Query (const Statement:String) : tmyDataSet;
End;

A function returning an object is always suspect (except if it is a
factory class - but then ownership is transferred to the caller, which
should be made very clear).

You should prefer procedures modifying an object instead:

function Query(const Statement: string; DataSet: TMyDataSet): Boolean;

Query modifies the DataSet according to the Statement and returns True
for success and False for failure. The DataSet is owned by the caller
and should therefore be managed by the caller.


Agreed.

--
Dalija Prasnikar
https://twitter.com/dalijap
https://plus.google.com/+DalijaPrasnikar
Arthur Hoornweg

Posts: 414
Registered: 6/2/98
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Dec 7, 2016 2:36 AM   in response to: Rudy Velthuis (... in response to: Rudy Velthuis (...
Rudy Velthuis (TeamB) wrote:

A function returning an object is always suspect

This is perfectly OK in most modern programming languages where the lifetime of the object is managed (arc or gc). It is only suspect in languages having unmanaged objects.

You should prefer procedures modifying an object instead:

function Query(const Statement: string; DataSet: TMyDataSet): Boolean;

That is just a workaround that satisfies the dogma. And it is the dogma itself that I'm calling into question. It is often awkwardly unpractical. Passing a dataset by ref requires me to construct one whenever I want to perform a query and that can be in a thousand places. "Boilerplate code" to use Dalija's terminology. If strings were handled this way, we'd all be running away from Delphi screaming.

The ideal solution is a function returning a managed object (such as an interface).

Query modifies the DataSet according to the Statement and returns True for success and False for failure.

The result of a query is generally called a "Result Set" and it has that name for a reason. It is the result of the query. The boolean isn't, that's just a flag. A result set can return an empty collection and still be perfectly OK. And it can contain detailed status information specifying way more info about an error than a mere boolean.

The DataSet is owned by the caller and should therefore be managed by the caller.

Once Delphi/Win32 finally becomes ARC this dogma becomes irrelevant and we'll all remember it as something from the dark ages. In the mean time, I use interfaces and thoroughly enjoy the flexibility they give me. Yes, they require some boilerplate code to create. But much less boilerplate code to use.



--
Rudy Velthuis http://www.rvelthuis.de

"The man who goes alone can start today; but he who travels with
another must wait till that other is ready."
-- Henry David Thoreau (1817-1862)
Rudy Velthuis (...


Posts: 7,731
Registered: 9/22/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Dec 6, 2016 2:46 AM   in response to: Arthur Hoornweg in response to: Arthur Hoornweg
Arthur Hoornweg wrote:

Dalija Prasnikar wrote:

And actually, above examples are rather clear...

First, you should not be releasing any objects returned from any
kind of function or property or similar. Creating class is the one
responsible for releasing object instance.

Hi Dalija,

Objections. What if the information returned is dynamic, and not just
a reference to something that persists? What if you need more than
one result set? What if the class must be stateless? What if you use
multi-threading?


So if I understand you correctly, you don't think that "programming to
the interface" is important, you rather prefer interfaces because of
their automatic memory management.

Why not use records instead? Put in a string or dynarray, and you have
your memory management.

--
Rudy Velthuis http://www.rvelthuis.de

"Computers make it easier to do a lot of things, but most of the
things they make it easier to do don't need to be done."
-- Andy Rooney.

Arthur Hoornweg

Posts: 414
Registered: 6/2/98
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Dec 7, 2016 3:14 AM   in response to: Rudy Velthuis (... in response to: Rudy Velthuis (...
Rudy Velthuis (TeamB) wrote:

So if I understand you correctly, you don't think that "programming to
the interface" is important, you rather prefer interfaces because of
their automatic memory management.


Why not use records instead? Put in a string or dynarray, and you have
your memory management.

You did not understand me correctly.

To me interfaces have four huge advantages:

- The lifetime being managed by scope. The code that is using an interface keeps the object alive, not some dogma. And the same interface can be shared among multiple objects without having to fight for ownership. Once nobody needs it, it gets discarded immediately.

- Programming by contract. The interface does not require that the object inherits from some specific class. For example, an iEventLog can be implemented as a string list, memo, filestream, winsocket or whatever and all of them are compatible despite not having a common ancestor. Moreover, such interfaces can be added to existing classes which makes an existing code base more versatile/valuable.
.
- Plurimorphism by being able to implement multiple interfaces in an object. For example, a bitmap class can implement an iScalable, iStreamable, iHash, iDatabaseBlob, iMailAttachment, iFLickrUploadable ....

- The ability to cross EXE<->DLL boundaries if done properly.

Rudy Velthuis (...


Posts: 7,731
Registered: 9/22/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Dec 5, 2016 6:38 AM   in response to: Dalija Prasnikar in response to: Dalija Prasnikar
Dalija Prasnikar wrote:

Arthur Hoornweg wrote:
Rudy Velthuis (TeamB) wrote:

I'd prefer to have everything interface based instead of
class-based. The underlying implementation can remain hidden
and be optimized for the platform.

I used to think that too, but not anymore.

Please elaborate.

In what respects is a tSomething superior to an iSomething?


Not "superior". But turning everything into an interface (defining an
interface for every class and making every public aspect of the class
accessible through such an interface) is far too often not necessary.

Also, it is good practice to avoid such "super-interfaces". As soon as
you are writing interfaces just to interface with a certain class,
something is totally wrong.

In other words: turning everything into an interface is far too much
ado about nothing. It is often superfluous. It often goes against KISS
and YAGNI.

And I know that some still think that everything should be an interface
("program to the interface", etc.). I used to be one of them.

Because classes are not only methods but fields, too. Declaring
interface for fields means introducing get/set methods even when you
don't need them.

Interfaces are not a silver bullet, sometimes they make sense
sometimes they don't. Writing a lot of boilerplate code just to
support interfaces is not my way of having fun.

Exactly. Sometimes (IME, often), it makes sense to use classes, and not
interfaces.
--
Rudy Velthuis http://www.rvelthuis.de

"Computer Science is no more about computers than astronomy is
about telescopes" -- Edsger W. Dijkstra.
Konstantine Pou...

Posts: 128
Registered: 11/3/06
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Dec 1, 2016 7:46 AM   in response to: Dominique Willems in response to: Dominique Willems
Dominique Willems wrote:
Dalija Prasnikar wrote:
Well, I don't want to be rude, but if he is also the father of FMX
kitchen sink design then this is no bad news after all.

He's a guy who, pretty much by himself, managed to finally create a
vector-based GUI library for Delphi, which was long overdue. It's guys
like him who are really innovating, often more so than a team of ten
averagely motivated developers.

It is the one of the most inefficient (resource and performance wise) libs I've ever seen. Never mind bugs.
Dominique Willems

Posts: 591
Registered: 10/26/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Dec 4, 2016 7:30 AM   in response to: Konstantine Pou... in response to: Konstantine Pou...
Konstantine Poukhov wrote:
It is the one of the most inefficient (resource and performance wise)
libs I've ever seen. Never mind bugs.

Even if it were, it was pretty much the only one in that arena.
Konstantine Pou...

Posts: 128
Registered: 11/3/06
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Dec 4, 2016 8:38 AM   in response to: Dominique Willems in response to: Dominique Willems
Dominique Willems wrote:
Konstantine Poukhov wrote:
It is the one of the most inefficient (resource and performance wise)
libs I've ever seen. Never mind bugs.

Even if it were, it was pretty much the only one in that arena.

Who cares. Still buggy and slow. I could not use it for real time graphics, meanwhile my own little and ugly DirectX/Direct2D code runs circles around it.
Dalija Prasnikar

Posts: 2,325
Registered: 11/9/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Dec 4, 2016 12:12 PM   in response to: Konstantine Pou... in response to: Konstantine Pou...
Konstantine Poukhov wrote:
Dominique Willems wrote:
Konstantine Poukhov wrote:
It is the one of the most inefficient (resource and performance wise)
libs I've ever seen. Never mind bugs.

Even if it were, it was pretty much the only one in that arena.

Who cares. Still buggy and slow. I could not use it for real time graphics, meanwhile my own little and ugly DirectX/Direct2D code runs circles around it.

It is not a surprise that your code runs faster, after all it is not dragging
a kitchen sink along ;-)

--
Dalija Prasnikar
https://twitter.com/dalijap
https://plus.google.com/+DalijaPrasnikar
Konstantine Pou...

Posts: 128
Registered: 11/3/06
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Dec 4, 2016 2:17 PM   in response to: Dalija Prasnikar in response to: Dalija Prasnikar
Dalija Prasnikar wrote:
Konstantine Poukhov wrote:
Dominique Willems wrote:
Konstantine Poukhov wrote:
It is the one of the most inefficient (resource and performance wise)
libs I've ever seen. Never mind bugs.

Even if it were, it was pretty much the only one in that arena.

Who cares. Still buggy and slow. I could not use it for real time graphics, meanwhile my own little and ugly DirectX/Direct2D code runs circles around it.

It is not a surprise that your code runs faster, after all it is not dragging
a kitchen sink along ;-)

--
Dalija Prasnikar
https://twitter.com/dalijap
https://plus.google.com/+DalijaPrasnikar

Many high performance gaming/rendering libraries carry a megatons of stuff but still work nicely.
quinn wildman

Posts: 856
Registered: 12/2/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 22, 2016 3:05 PM   in response to: Ralf Stocker in response to: Ralf Stocker
While a small difference, I'm sure he was not fired, but rather laid off. The general Idera strategy is to have as few permanent employees as possible, and hire contractors instead. based on what I know, most of the permanent employees reside in Texas. This is somewhat surprising as a year ago when I was there they were keeping Architects, which you would think to be the case here. I imagine not being in Texas and being a full time employee eventually caught up with him.

Ralf Stocker wrote:
Evgeny Kryukov, father and chief developer of FMX has been fired. Bad times
for Delphi and FMX.
http://www.kryukov.org/looking-for-job/
http://www.kryukov.org/about-me/
Yogi Yang

Posts: 57
Registered: 12/23/06
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 28, 2016 4:56 AM   in response to: Ralf Stocker in response to: Ralf Stocker
Ralf Stocker wrote:
Evgeny Kryukov, father and chief developer of FMX has been fired. Bad times
for Delphi and FMX.
http://www.kryukov.org/looking-for-job/
http://www.kryukov.org/about-me/

Was he fired or he left on his own accord?

Yogi Yang
quinn wildman

Posts: 856
Registered: 12/2/99
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 28, 2016 1:24 PM   in response to: Yogi Yang in response to: Yogi Yang
I imagine we'll never know.

Yogi Yang wrote:

Was he fired or he left on his own accord?

Yogi Yang
Dimitrij Kowalski

Posts: 92
Registered: 1/6/05
Re: Delphi FMX chief developer fired
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 29, 2016 1:58 AM   in response to: Yogi Yang in response to: Yogi Yang
Yogi Yang wrote:

Was he fired or he left on his own accord?

Yogi Yang

I would assume he was on an earnout (https://en.wikipedia.org/wiki/Earnout)
Legend
Helpful Answer (5 pts)
Correct Answer (10 pts)

Server Response from: ETNAJIVE02