David Heffernan 2345 Posted December 1, 2023 24 minutes ago, PeaShooter_OMO said: I always wondered which IDE you consider to be great and which one you would migrate to if you had to re-write your company's flagship software. I don't care that much about the IDE. It's the compiler and the language that matters more to me. 8 Share this post Link to post
PeaShooter_OMO 11 Posted December 1, 2023 6 minutes ago, David Heffernan said: I don't care that much about the IDE. It's the compiler and the language that matters more to me. Which route would you then go if you could/wanted to re-write? Share this post Link to post
Dalija Prasnikar 1396 Posted December 1, 2023 1 hour ago, PeaShooter_OMO said: Do you have a project on it that is bigger than your largest Delphi project? For which language? If so, how does that IDE behave with that project? My projects are all rather small, regardless of the platform and the tools I am using. I am personally using Android Studio with Java. Comparing to Delphi, Android Studio is way more resource hungry and slow. Opening a project takes more than a minute, building about 3 (also highly depends on how AS mood at the moment as rebuilding the same project can last up to 10 minutes). Similar Delphi sized project (actually a tad larger) opens up immediately, and builds in under a minute. AS gobbles up over 4 GB of memory while doing that and burns my CPU at 98%. While Delphi uses a little over 600 MB and 8% CPU. Also I had a AS bug report open for years before it was finally fixed, where it would eat up memory on opening second project, and crawl down to a halt and had to be killed through Task Manager. So if I had to switch projects I had to restart the IDE. I am sayin all this so that people wouldn't think that the grass is much greener on the other side and that there are no problems. But the IDE has more features than Delphi and it definitely has some I would want to have. My son is using IntelliJ for Java, and Rider for C# and he is very satisfied with both. 2 Share this post Link to post
David Heffernan 2345 Posted December 2, 2023 On 12/1/2023 at 6:29 AM, PeaShooter_OMO said: Which route would you then go if you could/wanted to re-write? I don't really know. There's a part of me that says C++ because I know I'll have good compilers forever. But porting would be hard. For instance, we use lots of nested functions, which don't exist in C++. Not sure how we'd handle that. I think there'd need to be a lot of refactoring of the code in Delphi first to enable a semi automated translation. Share this post Link to post
PeaShooter_OMO 11 Posted December 4, 2023 @Dalija Prasnikar and @David Heffernan thank you for the answers. Share this post Link to post
Rinzwind 26 Posted December 7, 2023 It's pretty clear Delphi is considered Legacy. It's only used for classic styled Windows software using the old GUI 1995 paradigms. We only see the same people here. No new and fresh people. Any new project that needs Pascal for whatever reason, I would do with Lazarus/FreePascal. Seems there is more progress over there. The global state of software development is in a sad state compared to 5e high days of the '90s. The efficiency of VB6 and Delphi 6. The RAD experience. The other specific database tools available. Foxpro. Now we have web apps with a zillion layers and frameworks that change every 1.5 years. Keep busy learning stuff that's out of date soon. Is there even any decent review out there of Delphi 12? I wonder what the boys and girl of FL Studio are thinking. That is one piece of complex and impressive software. Do some hang around here? 1 1 Share this post Link to post
Anders Melander 1783 Posted December 7, 2023 3 hours ago, Rinzwind said: We only see the same people here. No new and fresh people. This place isn't representative. Most developers don't participate in communities and don't even know they exist. I've worked at a lot of different places and with a lot of different developers in my career and I think I've only ever met one other developer IRL that participated in communities. 3 hours ago, Rinzwind said: Lazarus/FreePascal. Seems there is more progress over there. Not that I can see. My experience with Lazarus/FPC is limited to using it to make some open-source projects FPC compatible but from my POW they are constantly playing catch up with Delphi. And I think Lazarus sucks as an IDE. 6 Share this post Link to post
Lars Fosdal 1792 Posted December 7, 2023 FreePascal's Generics support is pitiful. It is impossible to move my Delphi code to FPC. 3 Share this post Link to post
DelphiUdIT 176 Posted December 7, 2023 4 hours ago, Rinzwind said: It's pretty clear Delphi is considered Legacy. I wouldn't consider Delphi as legacy software. It is one of the few environments that produces native code, and if on the one hand this method is considered "old", on the other it offers priceless advantages. For the work I do, where longevity of applications is necessary (I deal with artificial vision in the industrial field), Delphi is perfect. Same program used by machines starting from Windows 7 up to the current 11, without intermediate frameworks that only complicate the distribution and maintenance of applications. The ease with which modern environments approach programming (see Python one for all) completely overrides the knowledge and skills of a programmer, making this world APPARENTLY simpler and more banal than it is. It is obvious that young people approach, for example, Python or Java rather than Delphi for certain types of applications (typically WEB) where with a few lines of code I have built an app that "runs" on the web. On C#, in my opinion a language between Pascal and JAVA, the choice is certainly oriented by a strong demand on the market driven by the commercial power of Microsoft which certainly makes this language more attractive for young people. And I continue, like many other companies from what I see in the various meetings both in proximity and in webinars, to develop new applications with Delphi (and with C++ for some peculiar hardware functions). 4 hours ago, Rinzwind said: Any new project that needs Pascal for whatever reason, I would do with Lazarus/FreePascal. Seems there is more progress over there I use Lazarus/FPC to support an Italian forum, but the environment, although declared universal and compatible with all available hardware and OS, is far from this dream. The IDE is also far from those of Delphi in terms of features and functionality and even the basic components provided are limited, relying completely (or almost) on third-party packages. The RTL support is incomplete, the generics are actually not usable, there is no support for themes / styles, the debugger (made entirely in Pascal) despite being more stable than Delphi's is still very crude and limited on some functionality. Last but not least, one of the big gaps is the documentation: for a beginner, finding exhaustive documentation on Lazarus/FPC is a challenge. Delphi uses the documentation created and updated over time starting from Borland and in my experience it is second only to the "exterminated" former Microsoft KB (also new environments like Android Studio have good documentation). Lazarus/FPC's strong propensity to "generalize" itself across a variety of OSes means that many features typical of a specific operating system (I'm talking about Windows in my case for example) are not available or exposed. An advantage to be attributed to it is that for Linux lovers the IDE is also available in their beloved OS. 1 1 Share this post Link to post
PeterPanettone 157 Posted December 7, 2023 5 hours ago, Rinzwind said: It's only used for classic styled Windows software using the old GUI 1995 paradigms. Using third-party products like https://www.devexpress.com/products/vcl/, it is possible to build very sophisticated VCL applications. 1 Share this post Link to post
David Heffernan 2345 Posted December 7, 2023 1 hour ago, DelphiUdIT said: on the other it offers priceless advantages What are these priceless advantages? And anyway there are loads of other compilers and toolchains that do this. Share this post Link to post
DelphiUdIT 176 Posted December 7, 2023 16 minutes ago, David Heffernan said: What are these priceless advantages? "priceless advantages" means that for me that solution has no price ... without that I will not be able to "sell" my product. 18 minutes ago, David Heffernan said: And anyway there are loads of other compilers and toolchains that do this. Lol ... I didn't know that are toolchains that produce native code for Python, Java and C# ... may be I'm really old ... but I'm aware for C and C++ ( ) ... Share this post Link to post
Stefan Glienke 2002 Posted December 7, 2023 10 minutes ago, DelphiUdIT said: I didn't know that are toolchains that produce native code for Python, Java and C# You do realize that Java and C# are not interpreted like Python, yes? They compile down to machine instructions but not at compile time but at runtime - hence the term JIT. And fwiw the code that these JIT compilers produce often runs circles around what Delphi does with its ancient instruction set the compiler knows of. I am getting tired of that mantra "But it compiles to native code!" as if that in itself was something good. If that native code is poorly optimized and mostly looks the same as in '95 or compiled with -O0 then how good can it be? 5 Share this post Link to post
DelphiUdIT 176 Posted December 7, 2023 15 minutes ago, Stefan Glienke said: You do realize that Java and C# are not interpreted like Python, yes? They compile down to machine instructions but not at compile time but at runtime - hence the term JIT. And fwiw the code that these JIT compilers produce often runs circles around what Delphi does with its ancient instruction set the compiler knows of. I am getting tired of that mantra "But it compiles to native code!" as if that in itself was something good. If that native code is poorly optimized and mostly looks the same as in '95 or compiled with -O0 then how good can it be? ... of course I'm aware .... It was a ironical replay to @David Heffernan ... Mantra "But it compiles to native code!" is a must for my business, may be only for me but that's enough. I have customers with dozens of machines (industrial lines) who are tired of hearing about frameworks that must be constantly updated, incompatibilities between functional blocks (effectively DLLs and third-party components) with each update, technology changes for "opportunities" of suppliers (for example instead of working with .Net 4.0 there is now .Net CORE x.x) which make many solutions adopted on old machines incompatible with the new ones. We are not talking about Java applications linked to a specific JRE which due to their "incorrect" development cannot be selected from the application itself (so if there are multiple JREs installed... nothing works). The customer who does not have "programming" as his core business but only the use of an IT product is not interested in the outline at all... he is only interested in not having any kind of problem in using it for the next few years. This is. How much the machine code is optimized is not a problem for my applications, or at least what optimization there is is sufficient. If I want optimized and performant code I use C or C++ (as already indicated)... 2 Share this post Link to post
Lars Fosdal 1792 Posted December 7, 2023 1 hour ago, Stefan Glienke said: They compile down to machine instructions but not at compile time but at runtime - hence the term JIT. It is slightly more complex than that... https://learn.microsoft.com/en-us/windows/uwp/dotnet-native/ https://learn.microsoft.com/en-us/dotnet/core/deploying/native-aot/?tabs=net7%2Cwindows Share this post Link to post
Sherlock 663 Posted December 7, 2023 I love the possibility to create and sell a monolithic exe, that can be dropped in a folder and just be executed, no installer necessary. That is of course not a distinguishing feature of Delphi, you could compile a C# application into a monolithic exe as well, but how often is that really done? 4 Share this post Link to post
David Heffernan 2345 Posted December 7, 2023 59 minutes ago, DelphiUdIT said: Mantra "But it compiles to native code!" is a must for my business, may be only for me but that's enough. I have customers with dozens of machines (industrial lines) who are tired of hearing about frameworks that must be constantly updated, So it's just an issue of deployment. Fair enough. I guess there's a bit of complexity in deploying applications well. Share this post Link to post
Anders Melander 1783 Posted December 7, 2023 2 hours ago, Stefan Glienke said: And fwiw the code that these JIT compilers produce often runs circles around what Delphi does with its ancient instruction set the compiler knows of. I have a client who wants to use DWScript to do structural load analysis of large models (thousands to millions of nodes). Since DWScript compiles to an AST (Abstract Syntax Tree) and then executes the objects in that tree, he was a bit concerned about performance. He had tried various other scripting systems and they were just too slow. So we did some benchmarking of a sequence of typical calculations in Delphi vs DWScript. As expected the Delphi compiled code was about 4 times faster than DWScript. The client thought that that was acceptable but I decided to try out the DWScript jitter anyway... As it turns out there might just be something to David's complaints about Delphi's math performance 😉 because with the jitter enabled DWScript was now more than twice as fast as the native Delphi code. Also, Delphi 64-bit was about 25% slower than 32-bit and 64-bit "optimized" was slower than "unoptimized". Not to take anything away from Eric Grange's amazing work on DWScript, but I would be embarrassed if my native code compiler was outperformed by a scripting system. 9 Share this post Link to post
Stefan Glienke 2002 Posted December 7, 2023 1 hour ago, Lars Fosdal said: It is slightly more complex than that... https://learn.microsoft.com/en-us/windows/uwp/dotnet-native/ https://learn.microsoft.com/en-us/dotnet/core/deploying/native-aot/?tabs=net7%2Cwindows It's not, what you refer to is AOT - when .NET code runs, the runtime always JITs the code to machine code - read someone explain it who knows more than I do. 2 hours ago, DelphiUdIT said: Mantra "But it compiles to native code!" is a must for my business, may be only for me but that's enough. You are mixing things here - I can also compile to native code with VC++ and still require some special version of the Visual C++ runtime to be installed. Share this post Link to post
Lars Fosdal 1792 Posted December 7, 2023 3 minutes ago, Stefan Glienke said: what you refer to is AOT - when .NET code runs, the runtime always JITs the code to machine code Regular C# .NET Code transpiles to IL code. When you run, the JITer compiles the IL code to native code - but as you say - on every run. But - You can - with limitations - compile C# .NET code to native code - using the AOT approach. From the second link I posted: Quote Publishing your app as Native AOT produces an app that's self-contained and that has been ahead-of-time (AOT) compiled to native code. Native AOT apps have faster startup time and smaller memory footprints. These apps can run on machines that don't have the .NET runtime installed. There are some elements that are still JITed - such as LINQ expressions - and there is a limit to which libs and platforms that supports AOT - but it keeps expanding from one .NET version to the next. Share this post Link to post
FreeDelphiPascal 19 Posted December 8, 2023 (edited) On 12/7/2023 at 11:43 AM, Stefan Glienke said: You do realize that Java and C# are not interpreted like Python, yes? I did a test - Julia vs Delphi. Julia beats the crap out of Delphi. Some code executes 7 times faster! But on the other hand, it is true: You cannot deliver a Julia monolithic app to a customer - unless that customer installs Julia and some other stuff first. Edited December 8, 2023 by FreeDelphiPascal Share this post Link to post
#ifdef 12 Posted December 12, 2023 On 11/9/2023 at 4:17 AM, Dave Nottage said: Going by the last couple of CE releases, not for at least several months, probably after at least update 2. Why and who needs an outdated CE? Share this post Link to post
Sherlock 663 Posted December 12, 2023 10 minutes ago, #ifdef said: Why and who needs an outdated CE? Someone who does not want to spend and does not want to make money with Delphi Community Edition, that is who. And that seems to be a surprisingly large number. Share this post Link to post
#ifdef 12 Posted December 12, 2023 3 minutes ago, Sherlock said: Someone who does not want to spend and does not want to make money with Delphi Community Edition, that is who. And that seems to be a surprisingly large number. But why do they need the outdated CE 12.x if they already have the outdated CE 10.x & 11.x? 🥲 Share this post Link to post
Uwe Raabe 2057 Posted December 12, 2023 54 minutes ago, #ifdef said: But why do they need the outdated CE 12.x if they already have the outdated CE 10.x & 11.x? Because a CE license is valid for one year only. After that you have to request a new CE license which will only work with the current CE version. Share this post Link to post