Why creating 64 bit apps? lazarus / 34-Windows ---------------------------------------------------------------------- stem · 2025-05-29 15:53 Hi, since Windows runs both 32-bit and 64-bit programs, I have only ever created 32-bit versions with Lazarus in recent years, probably more out of convenience than anything else. Are there any practical or other reasons to release software developed with Lazarus as 64-bit only? I mean a “normal” application without special memory requirements or other special features. Thanx. stem ---------------------------------------------------------------------- gues1 · 2025-05-29 16:28 If you are a hobbyist you have no need to switch to 64 bits other than your curiosity. If you are a professional programmer, it is clear that you should think about "moving" to 64 bits as 64 technology is the current one and sooner or later it will completely replace 32 bits. Some points that should be taken into consideration about the usefulness of switching to 64 bits: 1) All new hardware is 64 bits, operating systems too and only Microsoft maintains the "duality" 64 / 32 bit. 2) All new drivers and new technologies are and use 64 bits. One for all are neural networks (we are talking about AI) and the related tools to be able to "create", modify, use them are exclusively 64 bits. 3) Databases: by now there are only a few databases left that provide 32 bit connection drivers. There are still many but we would go on arguing for a lifetime. It is certain that those who program professionally have already switched to 64 bit as applications produced. As I told, with Lazarus you are able to program also in 16 bit and even in 8 bit may be, but I do not think there is a concrete application other than for pure entertainment that is worth developing with "dated" technologies (except for some industrial application with microcontroller like PIC for example) ---------------------------------------------------------------------- Remy Lebeau · 2025-05-29 17:04 Quote from: stem on May 29, 2025, 05:53:48 pmAre there any practical or other reasons to release software developed with Lazarus as 64-bit only? In addition to @gues1's reply, if you want to target commercial versions of Windows, then keep in mind that WOW64 is optional in modern versions of Windows Server for several years now, so if it is not installed then 32bit apps won't be able to run at all. ---------------------------------------------------------------------- Handoko · 2025-05-30 01:36 I checked the Internet, just as what Remy Lebeau said WOW will be retired soon. For Window 10, it will be October 14, 2025. Source: https://en.wikipedia.org/wiki/Windows_on_Windows ---------------------------------------------------------------------- egsuh · 2025-05-30 04:39 I'm not a computer scientist. So I may be wrong, but AFAIK, 32 bit apps are like running on 4-lane road, while 64 bit is 8-lane road. And running 32 bit apps on 64 bit machine (and operating system) is like using only 4 lanes of 8-lane wide road. ---------------------------------------------------------------------- olatov · 2025-05-30 07:07 As long as you're on the 64 bit system, then 64 bit is native, and 32 is legacy. Running a 32 app requires the system to do some extra work (technically, run an emulator) behind the scenes for you. Not much of an overhead on a typical Intel or AMD, but there's still some  - and it gets way worse on ARM64 (or Itanium). https://learn.microsoft.com/en- us/windows/win32/winprog64/running-32-bit-applications 64 bit CPUs have been around for 20+ years now. I see no good reason to build 32 bit executables, unless you specifically want to target legacy systems which are 32 bit only. I think with Windows 10 retiring later this year, there won't be a supported 32 bit Windows desktop edition anymore? ---------------------------------------------------------------------- Leledumbo · 2025-05-30 07:18 Even "normal" applications may contain a piece of number crunching code that seemingly innocent and guessed to perform similarly in 32-bit and 64-bit, however: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i uses  SysUtils, DateUtils; const  MaxIterations = 100000000; // 100 million var  i,x: Int64;  startTime, endTime: TDateTime; begin  startTime := Now;   x := 0;  i := 1;  while i <= MaxIterations do // Int64 is not ordinal, we cannot use for loop here  begin    x := x + (i * i) mod 100000;    Inc(i);  end;   endTime := Now;   Writeln('Result: ', x);  Writeln('Time taken: ', MilliSecondsBetween(endTime, startTime), ' ms');end. Executed: Code: Bash  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i $ fpc -l- -S2 -O3 -Pi386 spd.pasTarget OS: Linux for i386Compiling spd.pasLinking spd28 lines compiled, 0.2 sec, 512400 bytes code, 135916 bytes data$ ./spdResult: 4942950000000Time taken: 372 ms$ fpc -l- -S2 -O3 -Px86_64 spd.pasTarget OS: Linux for x86-64Compiling spd.pasLinking spd28 lines compiled, 0.2 sec, 499584 bytes code, 191408 bytes data$ ./spdResult: 4942950000000Time taken: 164 ms 64-bit is at least twice as fast. Imagine if this code is part of intensive number crunching workload, say a video renderer. It's a normal application, but heavy on calculation. It could save hours if not days, perhaps more. ---------------------------------------------------------------------- birin · 2025-05-30 07:27 Quote from: Handoko on May 30, 2025, 03:36:14 amI checked the Internet, just as what Remy Lebeau said WOW will be retired soon. For Window 10, it will be October 14, 2025. Source: https://en.wikipedia.org/wiki/Windows_on_Windows Hi Handolko, This article states that 16-bit code execution is abandoned by versions of Windows later than Windows 10, but not 32-bit code execution. I don't know if the abandonment of 32-bit code execution is already scheduled. ---------------------------------------------------------------------- Thaddy · 2025-05-30 07:59 Quote from: birin on May 30, 2025, 09:27:45 amThis article states that 16-bit code execution is abandoned by versions of Windows later than Windows 10, but not 32-bit code execution. I don't know if the abandonment of 32-bit code execution is already scheduled. You may have been lead to believe that, but actually Handoko is right. 32 bit Windows is already only available on request and only pro and server versions and without real support: the 32 bit syswow64 (full name) for 64 bit Windows will be abandoned later this year and 16 bit code could not be run on Vista/7/10/11 anyway: for that you always need an emulator like dosbox. There is for the past 20 years or so no way to run 16 bit code on XP or later..... So your answer does not apply anyway. The point is rather why creating 32 bit applications on 64 bit platforms.... So the other way around, just like I predicted 15+ years ago on this forum. Simply don' t write 32 bit code on 64 bit platforms, despite SysWow64 and MultiArch. That also goes for the dreaded 80 bit float support that people often refer to, forgetting that modern CPU's  support already 128,256 and even 512 bit precision. And FPC supports those. (although not throughout its libraries: specifically the standard math unit needs a rewrite since it does not support single register 128,256 and 512 bit. But the compiler supports those instruction sets. The latter means that I guess there is one valid reason for  using 32 bit, because the math unit does support the 80 bit extended. But that is temporary. ---------------------------------------------------------------------- gues1 · 2025-05-30 09:29 Quote from: Thaddy on May 30, 2025, 09:59:52 am........ +1 ---------------------------------------------------------------------- Remy Lebeau · 2025-05-31 10:34 Quote from: Thaddy on May 30, 2025, 09:59:52 amthe 32 bit syswow64 (full name) for 64 bit Windows will be abandoned later this year Support for Windows 10 ends later this year (October 14, 2025). Support for running 32bit apps on 64bit Windows DOES NOT end this year.. ---------------------------------------------------------------------- gidesa · 2025-05-31 17:39 Because there are tons of "legacy" 32 bit code, libraries, drivers. If you cannot replace the entire chain of products, you have to continue with 32 bit. And it's not rare in professional environments. Change all parts is a cost. I can add this example:  I have a paid 32 bit version of Delphi, and I don't want to buy a new and very expensive version. The best reason to continue with 32 bit!  (in Delphi) ---------------------------------------------------------------------- Thaddy · 2025-05-31 19:10 Remy: https://www.fortect.com/windows-optimization-tips/windows-phasing- out-32-bit-only-app-support/ https://learn.microsoft.com/en-us/troubleshoot/windows- server/performance/compatibility-limitations-32-bit-programs-64-bit- system Copilot (ms) summarized it as follows: QuoteMicrosoft has been gradually phasing out support for 32-bit applications on 64-bit systems. The WOW64 subsystem, which allows 32-bit applications to run on 64-bit versions of Windows, has been a key component for compatibility. However, Microsoft has been shifting towards full 64-bit support, and future versions of Windows may no longer include WOW64. Windows 11 and upcoming versions are prioritizing 64-bit applications for better performance, security, and efficiency. While Microsoft has not officially announced a complete end to 32-bit application support, the trend suggests that legacy 32-bit applications will become increasingly difficult to run on newer systems without emulation or virtualization1. If you rely on 32-bit applications, it may be a good idea to start transitioning to 64-bit alternatives or explore compatibility solutions like virtual machines. You can find more details on Microsoft's official documentation here. ---------------------------------------------------------------------- marcov · 2025-05-31 21:21 Quote from: Thaddy on May 31, 2025, 09:10:48 pmRemy: https://www.fortect.com/windows-optimization-tips/windows-phasing- out-32-bit-only-app-support/ Click through to the micorosft link, and that is a forum where "an independent advisor" says " there is no official word from Microsoft of when that will happen" Quotehttps://learn.microsoft.com/en-us/troubleshoot/windows- server/performance/compatibility-limitations-32-bit-programs-64-bit- system Mostly limitations that were always there for WOW like virtualized registry. Nothing about a change. QuoteCopilot (ms) summarized it as follows: QuoteMicrosoft has been gradually phasing out support for 32-bit applications on 64-bit systems. The WOW64 subsystem, which allows 32-bit applications to run on 64-bit versions of Windows, has been a key component for compatibility. However, Microsoft has been shifting towards full 64-bit support, and future versions of Windows may no longer include WOW64. If even the AI uses weasel words like "may",  it is definitely very uncertain. ---------------------------------------------------------------------- pasquale · 2025-06-01 08:38 Here's what Google Gemini thinks about this issue: ========== QUESTION: Will future versions of Windows continue to include WOW64? ANSWER: Yes, future versions of Windows are expected to continue to include WOW64. Here's why: Backward Compatibility is Key: Microsoft has a strong history of maintaining backward compatibility in Windows. Many legacy 32-bit applications are still in use, especially in corporate and specialized environments. Removing WOW64 would break compatibility for a significant number of these applications, leading to major disruption for users and businesses. Widespread 32-bit Software: While the PC industry is transitioning to primarily 64-bit systems, a vast amount of 32-bit software still exists and is actively used. As long as this software is prevalent, WOW64 provides the necessary emulation layer to run it seamlessly on 64-bit Windows. Intel's x86-64 Architecture: The underlying x86-64 (AMD64/Intel 64) architecture on which most Windows PCs run inherently supports both 32-bit and 64-bit code. WOW64 leverages this capability to allow 32-bit applications to run efficiently without full software emulation (unlike on ARM64 or Itanium, where emulation is more involved). Microsoft's Documentation: Microsoft's official documentation continues to provide extensive information on WOW64, its implementation details, and best practices for developers. This indicates ongoing support and relevance. Server Core Option: While WOW64 is an optional component for Server Core installations of Windows Server, implying a push towards 64-bit only on servers, it's still available, demonstrating Microsoft's continued willingness to provide 32-bit support where needed. While the long-term trend is undeniably towards 64-bit native applications, the practicality of supporting existing software means WOW64 is likely to remain a core component of Windows for the foreseeable future. ---------------------------------------------------------------------- Thaddy · 2025-06-01 08:57 It is merely Microsoft' s strategy to let an affiliate insider bring some of the news before there is a next major release imminent. That has always been the case. EOL warnings come before any major release. ---------------------------------------------------------------------- paweld · 2025-06-01 09:24 Quote from: ThaddyCopilot (ms) summarized it as followsQuote from: pasqualeHere's what Google Gemini thinks about this issueplease very much not to litter the forum with this spam from AI ---------------------------------------------------------------------- marcov · 2025-06-01 10:31 Quote from: pasquale on June 01, 2025, 10:38:11 amServer Core Option: While WOW64 is an optional component for Server Core installations of Windows Server, implying a push towards 64-bit only on servers, it's still available, demonstrating Microsoft's continued willingness to provide 32-bit support where needed. While the long-term trend is undeniably towards 64-bit native applications, the practicality of supporting existing software means WOW64 is likely to remain a core component of Windows for the foreseeable future. That is indeed what I would expect to happen first, de-emphasize it server side to reduce the attack surface. ---------------------------------------------------------------------- pasquale · 2025-06-01 11:38 Do you have any solid reasons to consider what AI gives you as litter? ---------------------------------------------------------------------- pasquale · 2025-06-01 11:44 If my mind serves me correctly, support for 16-bit apps came to an end with the advent of 64 bits. I suppose 32-bit apps will no longer be supported when a 128-bit version of Windows is released. ---------------------------------------------------------------------- marcov · 2025-06-01 11:46 Quote from: pasquale on June 01, 2025, 01:38:06 pmDo you have any solid reasons to consider what AI gives you as litter? In general: In cases like this, I'm distrustful of all non authoritative sources. (which would be a Microsoft announcement or a blog of a major MS developer ) And in general: my experiences with AI are not good on topics where there are few sources like this. ---------------------------------------------------------------------- marcov · 2025-06-01 11:54 Quote from: pasquale on June 01, 2025, 01:44:30 pmIf my mind serves me correctly, support for 16-bit apps came to an end with the advent of 64 bits. I suppose 32-bit apps will no longer be supported when a 128-bit version of Windows is released. There is some truth in that deprecating support might make some room in the instruction set that they need for any extension. (not just 128-bit, but maybe also increasing GPRs in 64-bit) But 16-bit apps were quite often hampered stability wise and functionality wise, so much more actively replaced for other reasons.  32-bit doesn't have that problem But the analogy is pretty far fetched, and more importantly, it was mostly AMDs decision, not Microsoft. ---------------------------------------------------------------------- 440bx · 2025-06-01 12:16 Quote from: pasquale on June 01, 2025, 01:38:06 pmDo you have any solid reasons to consider what AI gives you as litter? Sure. AI has no ability whatsoever to ensure the accuracy and correctness of whatever it blurts. AI is good at collecting, gathering and summarizing data but, feed it a pile of garbage and what comes out is a bigger pile of well organized garbage delivered authoritatively.  Let's not forget, there is lots and lots and lots of garbage on the net and AI can't tell Godiva from canine organic residue (one of the many problems associated with not having a nose.) That said, AI, used carefully can be a helpful aid. ---------------------------------------------------------------------- korba812 · 2025-06-01 14:17 As far as I remember, MS has abandoned development of its products for the 32bit platform (e.g. SQL Server is only in 64bit, Visual Studio IDE is only 64bit but still allows compilation for the 32bit platform, Windows 11 is only available in 64bit). But nowhere have I heard of WOW64 being abandoned (so far) other than AI's nonsensical response: QuoteWindows 11, according to Wikipedia, is completely removing support for 32-bit processors, which means that WOW64, which allowed 32-bit applications to run on a 64-bit system, is no longer needed. ---------------------------------------------------------------------- Thaddy · 2025-06-01 14:24 It is not nonsesical, it it just that I just heard from a ms source that part (syswow64) of the original plan is postponed to beyond 2027. Which means it will probably still be in windows 12 or what it will be called. ---------------------------------------------------------------------- gues1 · 2025-06-01 15:20 A few years ago, before Windows Server was fully ported to 64-bit, there were rumors in Microsoft's email lists that once the full porting of both Server and Azure versions and all its utilities to 64-bit was completed, Microsoft would seriously begin to retire WOW64. Of course, the deadline is not yet decided, but there is no serious reason to remain at 32-bit. Also the fact that the extended 80-bit math type is only available in 32-bit is actually a false reason. Already at the time when 32-bit technology spread, Microsoft announced over and over again that the extended value was only used as an internal calculation for the math CPU and should not be used in the application area. The fact that this was not followed does not mean that we should continue to insist on it. ---------------------------------------------------------------------- pasquale · 2025-06-02 10:55 Being aware I will have to bite the bullet in the not too distant future and recompile all of my apps to 64 bit, I have finally decided to start doing it. The problem is, while I had no problems recompiling my 32-bit apps to 64-bit, the Installer created by Inno Setup is still 32-bit, so I guess it won't run when WOW64 is abandoned by Microsoft. Am I missing something? P.S. Obviously, I didn't forget to include the following lines in the Setup section: ArchitecturesInstallIn64BitMode=x64compatible ArchitecturesAllowed=x64compatible ---------------------------------------------------------------------- anse · 2025-06-02 12:02 One good thing today is, you don't need to provide both 32 bit and 64 bit versions any longer, even for popular apps. Just build 64bit apps for desktops of all major OSes. There was a long time where at least popular apps provided both, but in 2025 I'd say everyone can drop 32 bit support (with very few special case exceptions). During the recent 12 years I was providing both variants, and I'm happy now to have one thing less to care about.