Jump to content

Joseph MItzen

  • Content Count

  • Joined

  • Last visited

  • Days Won


Posts posted by Joseph MItzen

  1. On 9/2/2019 at 5:03 AM, RonaldK said:

    I'm not really sure, that Emba is the bigger company? 

    Embarcadero sold to Idera for $600 million. Idera was said to be about the same size as Embarcadero at the time of acquisition, putting the worth of the combined entity at approximately $1.2 billion dollars. For perspective, Embarcadero bought CodeGear for $30 million. As Jolyon Duranko-Smith once observed, if we're extremely generous and assume that the worth of Delphi doubled under its time with Embarcadero, that puts its contribution to the worth of Idera at 5%. It's not a particularly important asset for them.

  2. On 8/31/2019 at 10:19 AM, David Heffernan said:

    Not so much humour as a comment about the arrogance of imagining that the big company can just decide to buy the small company. Perhaps the small company is happy to be independent. 

    There's no "perhaps" about it. On the RemObjects forum a comment came up about perhaps RemObjects would buy Delphi if it was up for sale (this may have been around the time it became clear Idera was going to buy Embarcadero). Marc Hoffman then replied, asking what made the poster think they'd even want it. He went on to say that he wouldn't want anything to do with Embarcadero after his experiences with them. He also revealed that at one point during their discussions someone from Embarcadero said "We own Pascal".

  3. On 8/30/2019 at 10:50 AM, Arnaud Bouchez said:

    Most dev people outside this forum would argue, paraphrasing @Dalija Prasnikar,  that 'Delphi is a relic of another time and another coding practices: for instance, there is no GC !'. 

    Php adepts would argue that writing $this->foo is much cleaner/safer than what Delphi (and other languages) do about properties. 



    On 8/30/2019 at 11:25 AM, Dalija Prasnikar said:

    We are not discussing other languages here. 'with' is the problem within language itself. 


    Hmmm.... maybe you're both right! I think we need to be discussing other languages here because I can't recall a mainstream language with a "with" statement that does what Delphi's does (Python has a "with" keyword but for a different purpose). So perhaps the question should be asked... how do other languages address this problem?


    Joe Gregorio of Google once gave a talk in which he stated that design patterns were "language smell". He stated that when the same code is written over and over that's where a feature is needed. He talked about the lack of design patterns in Python and other languages like LISP and then went through how features like first class functions in those languages removed the need for the classic design patterns.


    Perhaps Delphi's "with" points to language smell and we can look at what features languages without that smell have that eliminate it.


    Why are people using with? To avoid writing code like this:


    someBigThing.x := 7;
    someBigThing.y := 8;
    someBigThing.z := 9;

    No one wants to write "someBigThing" over and over. We also see code in Delphi where an object is initialized, then lots of parameters are set one by one (creating a temptation to use "with") and then finally an "execute" method or similar is called. I once dubbed this "the Delphi pattern" and then discovered that it's also a problem/pattern in Java and they have a name for it. Unfortunately, I can't recall it right now. 😞


    But how is this dealt with in languages other than Delphi and Java?


    It turns out there is a language feature which eliminates this pattern.... named parameters.


    The code above can become



    someBigThing.set(x=7, y=8, z=9);


    No ambiguity of the with statement, yet no redundancy of omitting it either!


    The "Delphi pattern" for object initialization can disappear too into one line of code.



    someBigThing := SomeClass.Create(server="server.com", port="8080", asynchronous=True, timeout=60)


    If Delphi introduced named arguments the with statement could be eliminated, removing the dangers, while at the same time preserving the benefits and brevity it granted.

    A simple fix that makes everyone happy and incidentally provides one of the modern language features needed to design some beautiful APIs.


    The funny thing is that the language actually does have named parameters, but only under very specific circumstances....




    Trivia note: The above is the only Delphi-related Stack Overflow question without a reply from David Heffernan. :classic_biggrin:


    • Like 2

  4. On 8/30/2019 at 10:50 AM, Arnaud Bouchez said:

    Most dev people outside this forum would argue, paraphrasing @Dalija Prasnikar,  that 'Delphi is a relic of another time and another coding practices: for instance, there is no GC !'. 
    Php adepts would argue that writing $this->foo is much cleaner/safer than what Delphi (and other languages) do about properties. 


    Well, maybe we should listen to what all those people have to say too. I'm sure there is a lot to learn from many different languages.

    • Like 1

  5. On 8/29/2019 at 9:24 AM, Stefan Glienke said:



    And then also introduce proper namespacing and ways to alias things (not only non generic types) at the consuming side (for example)

    Nobody bring this up with Rudy. I watched him argue voraciously in the distant past that namespace collision with imported units was a feature of the language and there shouldn't even be a warning because it's a feature. He couldn't recall who called it a feature or why, but that didn't shake his conviction in the least. 😭

  6. This is why there are embeddable web engines that process Javascript. You need this, for instance, to parse Amazon wish lists, since the pages use javascript to automatically load more items as you scroll down the page. There are also tools such as Selenium for driving web browsers. Or platforms like ScrapingHub, powered by the open source scrapy library and the Splash headless, scriptable javascript-enabled browser

    • Like 1

  7. On 8/8/2019 at 3:59 AM, Fr0sT.Brutal said:

    Why inventing bicycles with triangular wheels when writing to STDOUT is a very simple method proven by decades? All *nix ecosystem is built on this mechanism.

    Executed app won't need anything more than WriteLn and executor app will have to intercept pipe handles.

    Thank you; I'm reading this on a Linux box and thought I was missing something for a second. "Write programs to handle text streams, because that is a universal interface." - Peter H. Salus,  "A Quarter-Century of Unix"

    Now, the question is how to handle this with Delphi... Delphi has never gained a simple solution for calling programs and getting the text results back, which is a weird and glaring omission in my mind. FreePascal has a handful of routines for doing so (some of which work across platforms), Qt has QProcess, etc.


    There's some information here on FreePascal's TProcess:




    and there's a port of TProcess to Delphi (which I haven't tried):




    Otherwise, you're left with the somewhat complicated default Delphi way of doing this....



    • Like 1

  8. 9 minutes ago, FredS said:


    History will show that not firing him was the worst move by EMBT after this total betrayal of loyal customers..

    Embarcadero can't fire him; Idera purchased EMBT and he was the person Idera picked to oversee Delphi. I'm not sure this was his idea either. I heard it was Michael Swindell who came up with the Delphi Pro EULA change (as well as the bogus 3 million users figure) and he's not only still there, he's listed as "Senior Vice President of Marketing and Product Management".  Let's not rule him out as a suspect.

    • Like 3

  9. 2 minutes ago, Darian Miller said:


    Clarity is certainly not one of his strong points.


    It also doesn't address the fact that Embarcadero service reps are simply outright refusing to do the bumps for those who aren't on current subscription. His "clarification" doesn't address what Embarcadero is actually doing. I'm starting to suspect that this is going to be like the resolution of the Delphi Pro EULA incident, where Embarcadero tried to convince everyone that they never actually made any change. In this case, his clarification is actually a policy reversal and now he's going to tell sales to stop refusing to do the bumps. Then we'll all be told it was never the policy and we just misunderstood.


    It'll be just like this:



    • Like 2

  10. 8 hours ago, Rollo62 said:

    I asked myself if this "free learning" is confirmed from the authors, or if Packt chooses books randomly on their own, w/o permission ?

    Would be good to know if somebody thinks about publishing with Packt.

    Oh boy, the things I've heard about Packt Publishing. You'd be better off publishing yourself. Their agents work on commission so they'll basically try to talk anyone into writing a book. They'll set impossible deadlines, their editors don't speak English as a first language and will often introduce errors, they ignore the corrections/suggestions of technical editors, etc. They don't do the promotion they promise. And they've been caught before "accidentally" not paying any commission on the book sales generated through a link one could add on one's own blog for readers to buy one's book. I've seen one successful author declare he sold more copies himself than through Packt and when they finally agreed to let him out of his contract due to his allegations they hadn't done what they promised, they still refused to stop selling his book themselves. He then made his book available for free on his webpage to stop them from profiting from his book.


    It's a horrible, horrible outfit that's little more than a self-publishing firm that takes a large percentage of your sales and does nothing in return.

    • Confused 1

  11. 9 hours ago, TiGü said:

    Same here. Perhaps it's a important thing, but what exactly is the benefit for a single dev like you and me?

    "...a single Language Server can be re-used in multiple development tools, which in turn can support multiple languages with minimal effort."


    In theory it would divorce the Delphi language from the Delphi IDE. This would allow for Delphi code completion and other features to be accessed from tools such as VS Code, Eclipse, Sublime Text and anything else implementing the protocol  and enable supporting additional languages in the Delphi IDE. In theory. I can't shake the feeling that Embarcadero will find some way to lock things down.


    But the idea is really great and I've been advocating for this since the concept was first revealed by Microsoft and Red Hat.

    • Like 2

  12. Bump Me Delphi One More Time

    (Sung to the tune of Baby One More Time)


    Oh Delphi, Delphi
    Oh Delphi, Delphi
    Oh Delphi, Delphi how was I supposed to know
    That something wasn't right here
    Oh Delphi, Delphi I shouldn't have nuked Windows
    And now you're out of sight, yeah
    Show me how to contact Team B
    Tell me Delphi 'cause I need to use Project Jedi
    Your installing is killing me (and I)
    I must confess I need a bump (need a bump)
    Using EDN I lose my mind
    I'm in a bind
    Bump me Delphi one more time
    Oh Delphi, Delphi
    The reason I reinstall?
    The IDE is locked up
    Oh 'spensive Delphi
    There's nothing that I wouldn't pay
    To get out of this cock-up
    Show me where to send the money
    Tell me Delphi 'cause I need to compile, all because
    Your policies are killing me (and I)
    I must confess I now believe (now believe)
    Dropping my subscription wasn't fine
    Here's dollar signs
    Bump me Delphi one more time
    Oh Delphi, Delphi
    Oh Delphi, Delphi
    Oh Delphi, Delphi how was I supposed to know
    Oh 'spensive Delphi, that Popov needed the dough
    I must confess, that Oxygene is looking so good now
    Don't you know I still believe
    That I'm screwed and how
    EDN be kind
    Bump me Popov one more time
    Your Code Insight is killing me (and I)
    I must confess I still believe (still believe)
    One more squiggly line I'll lose my mind
    VS' looking fine
    Bump me Delphi one more time
    I must confess, that your buggy mess is killing me now
    Don't you know I'm still locked in
    I see with clarity
    Can't wait til FPC reaches feature parity
    Bump me Delphi one last time

    • Like 1
    • Haha 7

  13. 1 hour ago, Rudy Velthuis said:

    Delphi has been called doomed, or dying, or on the way out for almost as long as it exists.

    No, it hasn't. This is a rhetorical technique invented by Bruce McGee to dismiss any evidence of problems in the Delphi ecosystem. It's also a logical fallacy. Whatever unnamed people may have said about Delphi in another time under different circumstances has no bearing on what actual people are saying about Delphi now under these circumstances. "They laughed at Galileo!" has no bearing on criticism that my new perpetual motion machine can't work.


    1 hour ago, Rudy Velthuis said:

    And yet it is still going strong

    No, it's not "going strong". That's simply factually inaccurate. There exists no quantifiable metric that pegs Delphi as "going strong". On the other hand, every quantifiable metric indicates the opposite. Pascal has long since passed its peak of popularity and it's untenable to argue otherwise. Like Marco Cantu repeatedly stating that he disagrees that the .NET ecosystem is stronger than the Delphi ecosystem, if we don't ever acknowledge the problems we can't find the solutions. Or to quote Saul Alinsky, in order to get to where you're going, you first have to figure out where you are.


    If Delphi was "going strong", the current owner could just pump $100 million dollars or so into hiring new teams to completely rewrite the desktop compilers, buy JetBrains to get their IDE technology, maybe buy Digia solely to get their engineers' cross-platform GUI expertise, etc. In reality, every realistic conversation about what should be done to Delphi acknowledges they have very limited resources devoted to the product and surely not enough to work on major changes to IDE, compilers and frameworks at the same time. MVP Warren Postma, for instance, has related conversations with the Delphi team in which they privately acknowledged the problems with the IDE parser and that it needs a complete rewrite but management refuses to ok the time to do so. That's the reality we find ourselves in and the reality in which solutions must exist.


    • Like 2

  14. 7 hours ago, AlekXL said:

    GetIt and Torry is not representative nowadays. Use google with  (github OR bitbucket OR gitlab OR sourcefourge) clause, Luke 

    Get-It is the official package manager of Delphi and built into the IDE. Torry has been around forever. Scouring all the open source code repositories looking for a needle in a haystack is a serious drain on time. But I believe my point still stands, because according to this analysis of the 100 most popular languages on Github, Delphi ranks 43rd. It's beaten by ... well, almost every language you've ever heard of.


    8 hours ago, AlekXL said:

    Well, deep-learning probably not Delphi forte, but how often one needs this?

    All the time. For everything. :classic_biggrin: Just a few weeks ago I saw an example of someone with a bird feeder. He set up a Raspberry Pi with a camera. His program uses OpenCV to detect motion, then it takes a picture. A Tensorflow deep learning network is then shown the picture and asked to identify the species of bird. The Raspberry Pi then logs the species, time, and how long it stays. :classic_smile: I thought this was an absolutely awesome idea. I've also seen someone use the Raspberry Pi, a camera and OpenCV to text his friends when free parking spots open up in front of his apartment so they know they can find a place to park if they want to come over. And of course, I'm working on my secret sports betting AI program to win all the money in the world a project I can't talk about.:classic_tongue:

    8 hours ago, AlekXL said:

    Surely you wouldn't write a media player on python, would you? Even .Net is bad option? And java? On Android, yes, maybe, but what's the point writing yet another crappy player on Java. If you are going to be serious, you would end up with C++. And albeit it maybe harder to link C++ libs to Delphi app, once it's done, it will work faster, and can be integrated tighter since managed-unmanaged transition is costly. 

    Well, to start, I want my media player to work on desktop Linux, so that rules out Delphi. I know there's a third party option for this, but I also want it to be open source. There have been several media players over the years written in Python, and several popular music fingerprinting and tagging programs such as Musicbrainz Picard. Also podcast management software such as Gpodder. The latter two have made their tag management code and RSS feed code available as separate open source libraries, which means I could use both and get some solid, well-tested code. As mentioned earlier, this leaves me free to write the new features and ideas I have in mind without having to write all the low-level stuff from scratch. As for speed - exactly how fast does a media player need to be? The last time I had media software that was too slow was when I had an AMD K6-III 450MHz CPU and 256MB RAM. My CD-ripping program took longer to encode files than it did to play them, meaning it would have been quicker to record them onto my MP3 player than wait for them to encode!

    • Thanks 1

  15. 7 hours ago, AlekXL said:

    They would approve bugfixes, wouldn't they?

    Oh boy do I have a funny/sad story to tell you. Once upon a time there was certain bug in the Delphi system library regarding regex. Members of the official forum discovered it, diagnosed the cause, and even came up with a small code change that fixed it. Of course, they also created a bug report and included all of this information, including the fix. Several of us grew frustrated that when a bug update or two were released for Delphi this bug still hadn't been fixed (this was back before subscriptions, when you might have to buy a new version to get a bug fix if the short support window ran out before they fixed a bug). Allen Bauer shows up in the forum and some of us ask about this bug. Bauer then requests that we not include any information about what we think might be causing a bug or any possible solutions in the bug report. He says that he wants his newer developers to learn to solve problems on their own and our assistance might also distract them from where a bug really is. We couldn't believe what he was asking. If he wanted to train developers, pair them with a seasoned developer rather than asking us not to try to get bugs fixed as soon as possible! Sigh. I've never in my life seen someone asked to submit less information in a bug report. 😥


    So at this point I'm not sure what they might do. When I brought up the fact that the IDE doesn't let you bind your own key choices, David Millington was adamant that I should submit a use case for this "feature". I was incredulous and told him it should be self-obvious why it's a useful feature and how every other IDE in existence lets you do this. He continued to insist that it's always vital to submit a use case.


    And others could tell you stories of the issues that have been closed as "won't fix" or "by design". I remember Dalija Prasnikar got Marco to re-open several that he'd closed in the past (as far as I know they never actually got fixed though).