Jump to content

Joseph MItzen

  • Content Count

  • Joined

  • Last visited

  • Days Won


Posts posted by Joseph MItzen

  1. 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

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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).

  10. 12 hours ago, Bill Meyer said:

    I was keen to get Kylix and thought CLX was a good start. I think what killed Kylix was the plethora of Linux distributions which added twists and turns from Borland's perspective. And for those of us testing the waters, the fact that there were only 3 distributions (if memory serves) on which Kylix was certified to work was daunting. Then there was the lack of components -- how many do anything non-trivial in Delphi without the use of third-party components?

    And as to components, Delphi 1 offered no component in support of serial ports, at a time when almost anything which connected outside the PC used serial ports. That was remedied soon enough by the appearance of third-party components, but always struck me as evidence of blind spots in determining what the base components needed to be. Further, the component business has always been problematic, as Delphi must ship with components, and realistically must also add to its component sets over time, but then risks competing with the third-party vendors who are essential to Delphi's popularity.



    This is my take on Kylix. Back then, we were all Windows developers and users. What we wanted was a single button in our Windows Delphi IDE that we could press and get a Linux binary/package version of our Windows program. In fact, we just wanted to be able to run headless/server code on Linux. Instead, what we got was a full Linux IDE (actually the Windows IDE using the WINE Windows compatibility layer project, which was in its infancy at the time) that we had to run on a Linux distro and develop with a new framework. I'd tried desktop Linux back then - no support for my sound card, only 2D support for my video card, and it could only read NTFS and Windows couldn't read or write Linux filesystems (still can't). That meant you could move files into Linux, but once they were in Linux, they were staying there. There was little useful software - I remember complaining on the forum of the vendor of the commercial desktop distro I'd purchased that there was no software. They replied "What do you mean? We have over 5000 packages in our repository." Without missing a beat I replied, "Yeah, and 4000 of them are text editors!" (At least that's what it felt like). No one wanted to use shaky distros running a shaky Windows compatibility layer to run a full IDE to redo our old code in CLX.


    Linux users didn't want it either. At the time, TrollTech owned the Qt technology Borland was using and they didn't have a free license. This made it hard for Linux users to distribute the code - they'd need to bundle a proprietary binary blob with their otherwise open source software.. Borland's answer was to statically link the library, being oblivious to the fact that static linking is absolutely hated in the Linux community. In the end, Linux users were more busy trying to write software for Linux than worry about cross-platform code and they had gcc and c++ and didn't need/want Kylix.


    Now fast-forward to today. Cross-platform is the new mandate. Stack Overflow's survey says 55% of professional developers are using Linux or OS X to develop on. Linux desktop distros are simple to install and use, useful and very reliable (heck I'm writing this from one right now). Developers want a version of the Delphi IDE they can run on OS X or Linux.


    Now what are they offered? A Windows-only IDE with a button to push to get a Linux or OS X binary. No UI either on Linux, just headless code.:classic_huh:


    Whomever owns Delphi seems to always "zig" when they should "zag".

    • Like 1
    • Haha 1

  11. 17 hours ago, AlekXL said:

    But does Pascal even fit that ecosystem? I mean those scientists like python for its "simplicity".. Do they adopt pascal, however free and approachable it may be?

    I don't understand python appeal really. How weakly typed language may be so popular? And I don't believe any software > 50K lines could be robust under those circumstances. Is't python is a script language on steroids?

    20 hours ago, Joseph MItzen said:

    As has been established elsewhere, Java is faster than Delphi, particularly with math. It blows Delphi away in SciMark benchmarks.

    In pure math, yes, but this is memory management, Delphi/FPC is faster just because manual management is way faster than any GC. If you work with large amount of inter-related data objects, Java would not shine as bright, let alone python.

    20 hours ago, Joseph MItzen said:

    I've found that jitted Python, in some small benchmark tasks I wrote, tended to match or ever-so-slightly beat FreePascal

    The key word here is small. But when Python software grows big, not sure it will happen.


    Python isn't a weakly typed language. It's a dynamic, strongly typed language. PHP is weakly typed. In Python,  1 + "2" will raise an exception, not evaluate to 3 or "12".

    As for why it's popular, of course I can only offer a limited perspective. Python does a lot of things well, which helps make it generally useful. It's well-designed with few gotchas (unlike PHP) and easy to read (unlike Perl). It's a very small language with a very large standard library and designed from the beginning to be easy to call out to any language with a C interface. It's very quick to develop in. Someone once said that Python's strength is that it's "the second-best choice for everything". It's gained serious footholds in web development, data analysis, machine learning, penetration testing, devops and system maintenance and control, as a scripting language embedded within other applications, etc. And of course, the massive ecosystem of open source libraries it has amassed is a great strength.


    It's very popularity is a strength. For example, in my case: my spreadsheet of choice (LibreOffice Calc) can accept code written in Python (there are also third-party libraries that let Excel run Python too). Of the two databases I use, PostgreSQL allows writing procedures in Python (among other languages) and SQLite is included in the Python standard library. My text editor, Kate, uses Python for its plugins (as do others such as Sublime text). My IRC client, and bittorrent client can both be scripted with Python. My ebook management program, calibre, is written in Python and uses Python plugins. My DVCS of choice is Mercurial, which like calibre is written in Python and extendable with it. I jump back and forth right now between data mining suites, but all of them (RapidMiner, Kinime, Orange) can run Python code. My backup software, borgbackup, is written in Python. My mathematics program, Sage, uses Python as its language. My accounting software, GnuCash, has a Python interface. My documentation software, Sphinx, uses Python for plugins. My blogging software, nikola, also uses Python plugins. My media center software, Kodi, uses Python for plugins. Even the shell I use, Xonsh, is based on Python and can run Python from the command line!


    So you've got a language that's quick to learn, installable anywhere, and you can learn for free, including with free ebooks and courses. And when you do, you find that you can use that language in so many places (per above). I believe that's why everyone, even non-programmers, are choosing to learn Python today. There are so many areas where knowing some Python can save you time and make your work easier.


    How often would a program need to be freeing objects to make the memory management the bottleneck? More importantly, how much time is that manual memory management costing the developer and how many errors are introduced because of it? As for Python, it uses reference counting with a weak garbage collector that only deals with weak references.



  12. 14 hours ago, AlekXL said:

     Otherwise let him play with toys like python. 

    I'm sure you heard about the first ever photo of a black hole. The associated research paper credits the open source scientific python libraries NumPy, SciPy and Pandas. Python was also one of the tools used in the hunt for the Higgs Boson and CERN scientists have spoken at Python conferences. The PyCon conference has been sponsored by everyone from LucasFilm and Disney Studios to Hewlett-Packard, Microsoft, Canonical, Disqus, Mozilla, J.P. Morgan bank, Twitter, Hulu,  and Amazon. In fact, those were just a handful of the 2012 sponsors. Take a look at CodeRage sponsors: "Atozed Software, DevJet Software, Fast Reports Inc,  Raize Software, Scooter Software, SmartBear and Steema Software." Draw your own conclusions.

    • Like 5
    • Thanks 2

  13. 15 hours ago, AlekXL said:

    Try to sell python software, or javascript.. Delphi app can be sold..


    And perhaps we need to create a C-to-Delphi conversion tool, just to make such import easier.

    That's a major factor that damaged Delphi, per my earlier post. People don't sell each other software libraries anymore. They open source them, which attracts more people to the language, which means more open source libraries for you to use. As I always say, "Make money with Delphi, not from Delphi". Every library that's sold only raises the barrier to entry for a potential new user. If I was being mean, I could say that Python or javascript developers don't need to sell libraries because they can find jobs. :classic_tongue: Also, their tool suites don't cost more than their desktops.


    Now your second point gets to one of the things on my list of what I'd do if I ran Embarcadero. You're half right. We need a way to make importing easier. We don't need a conversion tool though. There's a long-running open source project whose software automatically wraps C and C++ code to make it callable from other languages! It's called SWIG, or Simplified Wrapper and Interface Generator. Referencing my point about popularity again, it even supports Modula-3 (!!!) but not Delphi. The good news is that I encountered someone on Stack Overflow whose company added support for Delphi to SWIG internally and were able to generate a fine wrapper of a complex C++ 3D graphics library with it. The bad news is that although asked his company did not appear interested in open sourcing their work. But of course, that means that it is possible to add Delphi support to SWIG.


    Now, when I tried to broach the subject with The Powers That Be, Marco Cantu decided to deny that a problem even existed, insisting that he does not believe that the .NET ecosystem is larger than the Delphi ecosystem (!!!!). That's when I realized that if you don't acknowledge problems even exist you'll never solve them. Since he wouldn't admit there was a problem, he obviously wasn't interested in hearing my idea for solving it - in this case, I thought Embarcadero should add Delphi support to SWIG and integrate it with the IDE or include it with the installer.


    Other languages have FFIs (Foreign Function Interfaces) that make it easy to interoperate with other languages. Delphi does almost nothing to make it easier and it's the equivalent of banging on it with a hammer to get C++ code into Delphi. Here's an example of a newer one for Python: PyBind11. (Python has a FFI in its standard library, but it's not very full-featured). But this does serve to illustrate the point that it can be even easier to interface C++ with a dynamically typed language without pointers than it often is to get C++ code working with Delphi currently.

    • Like 3

  14. 16 hours ago, AlekXL said:

    Which algorithm or hash Delphi is lacking?

    well  C/C++ libs (cross)compilation  is the pain, but unlike python or java, you'll get fastest solution in the end of the day. 

    As has been established elsewhere, Java is faster than Delphi, particularly with math. It blows Delphi away in SciMark benchmarks. If you were looking for the fastest solution you'd just use C/C++ itself (which is, on average, twice as fast as Delphi code, although David Heffernan has shown examples where it's even worse for Delphi). Meanwhile, it's actually far easier to interface C or C++ with Python than Delphi (particularly object-oriented C++ code) which makes it faster to actually have working code. Developer time is more expensive than CPU time.


    I've found that jitted Python, in some small benchmark tasks I wrote, tended to match or ever-so-slightly beat FreePascal. Using Cython, which converts Python code to C++ code where possible, could yield results that were just shy of C and far faster than Delphi. Numba, a Python JIT only for mathematics, could also yield double the speed of FreePascal (which is itself often faster than Delphi on mathematical tasks but slower with strings). Numba also has the ability to automatically parallelize operations or even run code via CUDA on a GPU!


    Another issue is that the Delphi Linux code is slow, and I haven't heard that they've ever fixed this (or acknowledged this). It's about half the speed of equivalent Delphi code, which is itself half the speed of C++. This makes both FreePascal (and even jitted Python!) twice as fast as Delphi on Linux.

  15. 17 hours ago, Schokohase said:

    and I bet they already had discussed that internally (Delphi-based Delphi-compiler and open-source it). 

    Mason Wheeler and I once had an online exchange with Allen Bauer during the end of his tenure with Embarcadero about Delphi and open source, including the chance of open sourcing any part of the toolchain. Suffice it to say that the folks at Embarcadero don't even understand open source much less are feeling ready to embrace it.

  16. 17 hours ago, AlekXL said:

    2. Those who need linux, must do it themself  and test their patches not on linux, but ensure also, that those won't break 2 major platforms. Or they full-refund pay. 

    3. Those who need an Apple platforms, need to contibute [and pay]. Obviously those minor platforms are targeted for gain 


    The results of the latest Stack Overflow survey came out and show that more developers are working on OS X and Linux combined than on Windows! For all respondents, 47.5% said they primarily work on Windows while OS X was 26.8% and Linux was 25.6%. For those who said they were professional developers, it's only 45.3% Windows, 29.2% OS X, 25.3% Linux, 0.1% BSD.


    If you marginalize Linux you're cutting off a group with high technical skills and obviously more enthusiasm for open source than your average Windows user. In fact, since Delphi's tools can't run on Linux or OS X and there's no FMX support for Linux and no 64bit support for OS X, Linux and OS X developers have more interest in FPC than the average Windows user. They need it. Treating them like Embarcadero treats them won't endear them to your project.

    • Thanks 1

  17. On 4/11/2019 at 11:16 PM, AlekXL said:

    1. Any company invested in developing a product written in Delphi and confronting some compiler issue would hire skilled developer to fix it.

    2. Be factual, and name the libraries Delphi lacking. And also, Delphi can utilize C/C++ libraries.


    1. We get posts here, Reddit, etc. along the lines of "Please help me install Borland Database Engine on Windows 10" all the time. A large number of the Delphi applications being maintained today are being maintained on old versions of Delphi and the companies responsible for them have no desire to spend anything to modernize them. For example, the Melissa and Doug toy company in the United States uses an in-house ERP (Enterprise Resource Planning) program written and still maintained in Delphi 7.


    1B. Again, a "skilled developer" can't just look at one million lines of undocumented code (that might be older than they are) and fix it. It could take years for a dedicated open source community to work their way through and document that code. Even then, the only sane options would be to massively refactor and modernize it or, again more likely, simply start over.


    1C. Who would be in charge of the code? Would Embarcadero oversee it? If so, they might not approve changes. And they're unlikely to want to give up control, as that would be giving up control of the language. Going back to Firebird, they have a poor history of properly supporting open source code, and Marc Hoffman said that one EMBT employee said during discussions "We own Pascal." Not quite the mindset required to turn over control of their compiler/language to a third party.


    1D. If there aren't enough developers interested and able to support FreePascal or NewPascal, where are the developers going to come from to spend years trying to make sense of the old Delphi desktop compilers, a much harder task with a much longer time to payoff?


    2. Are you serious? Get-It has about 200 packages after four years, most of which are trials. Torry's Delphi Pages, the oldest collection of Delphi software still around, has a little over 10,000 packages ( a number that's barely moved from 2012), the vast majority of which are from the Delphi 5-7 era and most of the rest being trials of paid software. In the last 30 days it's added 17 files, only one of which is for free software.


    Now take a look here:




    Java has over 274,000 open source libraries at Maven Central, C# has over 148,000 in nuget, Python over 174,000. Java is adding 197 a day, C# 93, Python 122. Per above, Delphi added 1 in 30 days.


    What libraries is Delphi lacking? Almost anything that doesn't involve grids (Delphi users are obsessed with grids). Serious numeric software (although you can pay $1600 for a bundle of Dew Research's matrix library, sci/stat function library, 3 basic data mining algorithms and Steema's TeeChart). Machine learning libraries. Financial libraries. Let's go smaller - I'm interested in making a media player. Delphi lacks a music file tag manipulation library (that's post-unicode and documented), audio manipulation library, replay gain library, cover art library, etc., all of which I can find on other platforms  as open source.


    I'm working on another pet project now that involves data analysis and machine learning and if successful will require interacting with websites. I'd like to host it on a Linux Virtual Private Server eventually, which means $3500 for Delphi Enterprise. As mentioned above, the Dew Research bundle with source is $1600, bringing us up to $5100. Now let's add in Steema's TeeBi for some basic data manipulation abilities to clean and transform the data, which is $279. Wait, the only plugin it works with out of the box to export to Excel is TMS' FlexCel. So unless we want to find an open source Delphi Excel library and integrate it ourselves, that's another $141USD. Now we're up to $5520. A capable profiler? Smartbear AQTime Pro - another $600. Now we're at $6120. Let's toss in HelpNDoc for documentation for another $280USD. Now we're at $6400 so far. I want some neural networks... Boris Mitov has 1980's-era Kohonen self-organizing feature maps and basic backpropagation for $389 without source or $1369 with source. That's madness; I coded both algorithms circa 1994 for a school project in Turbo Pascal. Let's use FANN instead, which is an open source library that implements some improvements to basic backpropagation and has a fast C core. There's also an open source implementation of the NEAT neural algorithm for Delphi, but not the next-gen HyperNEAT. Oh well. Genetic programming? RiverSoftAVG has a decent library with basic features for $150. So $6550 so far and we haven't looked at logging or databases. We'll need to scrape and parse HTML - DIHtmlParser is $123 with source code but is very low-level. There's a higher-level parser on Github, but the only documentation is in Japanese. There's an "HTML Component Library" available that seems rather nice, but it's bundled with a lot I wouldn't need, raising the price to $350. Come to think of it, once all of this comes together and is working I'm going to need a high-level process to manage all of the various software tasks - downloading data, parsing data, processing data, interacting with the right websites at the right time, not launching a process that depends on another that failed, etc. Sadly, there simply aren't any "pipeline " libraries for Delphi at any price.


    And this is the point when one does the math and realizes they could take that money and buy a new desktop with a 32 core AMD Threadripper, 64GB memory, high-end graphics card for GPU acceleration, 3 NVMe SSDs in RAID 0 for hyper-fast caching with a few large-capacity hard drives in RAID 5 as backing storage, large curved 4K monitor,  etc. and even have some money left over. Seriously. And they can use the Python scientific software stack of NumPy, SciPy, Matplotlib for matrices and graphics, but also use modern "grammar of graphics" (functional composition) libraries like plotnine or altair, something TeeChart doesn't offer. Pandas has had almost a 10 year lead time on TeeBI and is far fuller featured and much better documented. Scikit-learn offers a massive machine learning suite, unlike Dew Research's anemic three methods and no support functions.  NeuPy offers a vast amount of neural networks for free, plus one can download and use TensorFlow from Google or PyTorch from Facebook and gain support for modern deep learning frameworks that do things like power self-driving cars. Let's see, there's a HyperNEAT implementation too; and genetic programming libraries like DEAP which can scale across all the machines on a network if you wish, and also the best clustering algorithm, DBSCAN, which I couldn't find for Delphi. There's the well-known scrapy framework, as well as BeautifulSoup for high-level HTML parsing. Pipeline programs? Companies like Spotify have open-sourced tools like luigi and AirBNB has airflow. Both can produce web pages to monitor the performance of your processes and view dependency graphs in real time! And there's Selenium for driving the major web browsers across platforms.


    And that's the difference between using Delphi and using a modern language with 100,000+ free and open source cross-platform libraries available. I've spent zero on software, gotten much more powerful libraries in many cases, and don't have to spend weeks or months implementing low-level libraries myself and can instead concentrate on the problem I'm trying to solve. That was the original appeal of Delphi - the VCL abstracted away the monotonous low-level Windows API to allow developers to code only the solutions relevant to their specific problem. Nowadays this is a solved problem in the form of open source software and Delphi is no longer the "rapid" application development it originally was. You're going to spend lots of time writing things that other language users can download and install from modern package managers in seconds. Your other alternative is to spend thousands of dollars on lesser libraries maintained by one person who may disappear tomorrow. In a research paper designed to discover what makes programming languages popular, the authors found from surveys that the single most important factor to developers in choosing a language is the amount of libraries available, preferably open source libraries. I've seen one developer put it this way, "Today, isn't not being popular itself a language defect?"

    • Like 4
    • Thanks 3

  18. 2 hours ago, Anders Melander said:

    Didn't you mean to capitalize "US"?

    And on that note I can't see how what China is trying to do is different from what the US is already doing to the rest of the world...

    The United States isn't actively planning to annex Taiwan, hasn't enabled a "Great Firewall" to control its citizens' access to the Internet, hasn't declared a President For Life, hasn't engaged in a worldwide scourge of industrial espionage, doesn't artificially devalue its currency to court manufacturing jobs, doesn't fill factories with prison labor, doesn't hold innocent Canadians hostage when one of its industrialists is arrested, hasn't instituted a nationwide biometric monitoring network, hasn't built a network of artificial islands in the South China Sea to prevent access, annex territory and be able to grab resources by military force, and isn't too inclined to run peaceful protestors with tanks. it's also not rolling all of this personal data into a nightmarish "social trustworthiness rating", designed to punish those not deemed sufficiently loyal to the state:




    The United States is the key country preventing China from extending its reach and enslaving other populaces or taking their territories.

    • Like 2
    • Confused 1