[a / b / c / d / e / f / g / gif / h / hr / k / m / o / p / r / s / t / u / v / vg / vm / vmg / vr / vrpg / vst / w / wg] [i / ic] [r9k / s4s / vip] [cm / hm / lgbt / y] [3 / aco / adv / an / bant / biz / cgl / ck / co / diy / fa / fit / gd / hc / his / int / jp / lit / mlp / mu / n / news / out / po / pol / pw / qst / sci / soc / sp / tg / toy / trv / tv / vp / vt / wsg / wsr / x / xs] [Settings] [Search] [Mobile] [Home]
Board
Settings Mobile Home
/g/ - Technology

Name
Options
Comment
Verification
4chan Pass users can bypass this verification. [Learn More] [Login]
File
  • Please read the Rules and FAQ before posting.
  • You may highlight syntax and preserve whitespace by using [code] tags.

08/21/20New boards added: /vrpg/, /vmg/, /vst/ and /vm/
05/04/17New trial board added: /bant/ - International/Random
10/04/16New board for 4chan Pass users: /vip/ - Very Important Posts
[Hide] [Show All]


[Advertise on 4chan]


File: win32.gif (207 KB, 392x475)
207 KB
207 KB GIF
/g/, is there any point in learning the Win32 API in 2025?
>>
>>107677767
Yes. It's everything but dead in 2025 and much of the knowledge gathered will carry over.
>>
>>107677904
thanks anon
>>
It's still the sanest way to develop a Windows app, sadly.
>>
>>107677767
There is no point learning anything in 2025, computing as a whole is dead.
>>
>>107677958
Two more weeks.
>>
>>107677958
this
>>
>>107677767
Unless you love .NET like some cuck, it's literally the only way to do anything. It's better than .NET and you'll need to use win32 pinvokes anyway since the .NET shit is woefully incomplete or outright wrong anyway.
>>
>>107677958
This. They will soon ban high-power hardware and programmable computers for consumers for national security reasons.
>>
>>107677904
No, OP should learn POSIX APIs and how Linux extends and improves upon them. Win32 is a dead end. OTOH, people will still be needed for some time to come to tard wrangle POSIX-ish Linux codebases.
>>
>>107678301
that barely has any apis for anything lol
>>
>>107677767
Win32 alone won't be enough, since almost all modern Windows features get exposed via COM.

If you want to learn windows programming, it's a must, of course. Everything comes down to windows, handles and COM. I just don't think that rawdogging win32 is a good way to make modern windows applications in 2025.
>>
>>107678301
win32 is the only stable ABI on linux. POSIX is utterly obsolete and profoundly broken.
>>
>>107678373
>win32 is the only stable ABI on linux
it's funny because it's true
>>
>>107678373
POSIX is mostly about API, though.
The ABI thing is about Unix userlands, in particular Linux distro userlands breaking binary compatibility practically every release.
>Eh, we'll just recompile everything for Ubambo 26.04 anyway, who cares that the old software doesn't work anymore

Steam for example has to provide these "Steam Linux runtimes" which are basically just entire operating system containers containing their own parallel OS just so games can rely on what's there between different distros and in the future.
Meanwhile, on Windows (and via wine) you can just natively run most binaries from Windows 95. That's ABI compatibility. Sure, the backwards compaitbility shims are not perfect so some applications need minor patches, or .dlls, but it's heaven compared to every other OS. Literally all of them.

The only way to achieve that on Loonix is to build an entirely static binary that depends only on OS syscalls since those are stable (See old oldolduname - won't get removed or changed because it would break ancient bins https://man7.org/linux/man-pages/man2/oldolduname.2.html) - Linus fucking HATES any change that could break the userland. Meanwhile, the userland itself - libc especially - does not share that sentiment and it breaks ABI compat all the time.
Check out Nolibc (ships with the Linux kernel, tools/include/nolibc) btw, it's based.
>>
>>107678301
POSIX doesn't have a windowing API.
>>
>>107678301
>OP should learn POSIX APIs and how Linux extends and improves upon them.
LARP post. Not even freetards think POSIX is good, GNU famously makes a mockery of it.
>>
>>107678527
Linux does not have system calls to create a window. So you can really only statically link primitive console applications.
>>
>>107678572
You could statically link X11 or Wayland libs, or GTK. And then you'd have to statically link libc too and deal with all the ways THAT will (and it will) eventually break because libc isn't the only thing breaking ABI compatibility.

Or you just do what everyone else does and dynamically link everything and just tell your users to recompile everything when libc decides it's time for our irregular and unscheduled ABI breakage (Linux distro package manager approach), or to run it in a container from now until all time (Valve's approach). ABI compatibility on POSIX is and will always be a fucking clusterfuck and it's a miracle they managed to learn nothing from Microsoft doing it right for all the world to see.
>>
>>107678650
30 years ago the current Linux way of dealing with compatibility would be insane, but these days I think it's fine. Storage is cheap and the Steam Linux runtime literally just werks. Flatpak does basically the same thing and it works well enough that some companies use it to ship commercial software.
The Windows way seems magical until you run into apps that just don't work, in my experience it's a complete crapshoot.
>>
>>107678713
Time will tell how good Flatpak and other containerization approaches really will be.
Wouldn't be the first oopsie caused by lack of foresight the Unix world made.

But I don't disagree, it's our best bet.
>>
>>107677767
You can join the vanishingly small group of developers creating Windows apps that come as a small download, launch instantly, and remain responsive while consuming extremely little RAM or CPU.
>>
>>107678953
i'll do just that
>>
>>107678713
>The Windows way seems magical until you run into apps that just don't work, in my experience it's a complete crapshoot.
If the devs wrote code by the book, it still works. If they wrote something that relies on undefined behavior that happens to work on Windows 95, it's likely broken on modern Windows unless one of the compatibility shims you can enable replicates the behavior it needs.
>>
>>107678713
At least Windows compares about backward compatibility. Linux can't run most software from even a decade ago, sad!
>>
>>107678650
You can't meaningfully draw or output sound or anything without dynamic linking. Your opengl driver? How you gonna statically link that? Maybe you can static link a pulseaudio client since even pipewire exposes it.
>>
you could just make a C++ program with a webview
takes like barely anymore ram than a native ui app and you get the same dev ux you get in developing a electron app
>>
>>107678527
Sir, what is Windows Side-by-Side (WinSxS)?

That is your legendary backwards compatibility.
>>
>>107679559
That's part of the story and it works.
>>
>>107679394
Not portable though
>>
>>107677767
Last week I would have said yes, but now with the recent knowledge that Microsoft plans to rewrite 100% of their code base in Rust using AI... Well, I would imagine that Windows is going to completely fall apart, so no, don't learn Win32, it's a waste of time.
>>
>>107679394
The dev experience will be worse. Electron provides a bastardized fusion of Chrome and Node.js both running their event loops on the same thread.

With WebView2, you only get a browser web view. If you want to call any outside APIs, you have to write all the interop shit yourself and the page describing how to do it makes Arch Linux wiki entries look brief because of course it's all COM based.
>>
>>107678993
>compares about
saar
>>
>>107678973
Unfortunately, old programs that rely on bugs and undefined behavior are the norm, not the exception. Sometimes it's extremely aggravating since legacy apps can seem like they're working then shit the bed in unexpected ways.
>>
>>107679559
Windows had crazy backward compatibility long before WinSxS. It was just introduced as a way to deal with different programs wanting different versions of system-installed dlls in a cleaner and more automated way than tossing the relevant dlls into the folders with the exes in question.

XP up through 32 bit 10 can run lots of stuff compiled for Windows 3.1 and before.
64 bit versions are limited to 32 bit programs, and the oldest I've run is the Paintbrush that came with NT 3.1 which is the same as the Windows 3.1 Paintbrush except it's ported to Win32.
>>
>>107679559
WinSxS is pretty much not used by anything. The entire feature is mostly pointless. In practice it pretty much exists solely to support common controls v6.



[Advertise on 4chan]

Delete Post: [File Only] Style:
[Disable Mobile View / Use Desktop Site]

[Enable Mobile View / Use Mobile Site]

All trademarks and copyrights on this page are owned by their respective parties. Images uploaded are the responsibility of the Poster. Comments are owned by the Poster.