News for hackers. Stuff that matters.
Re:The GTK+3 port of GIMP is officially finished by orra on Wednesday April 19, 2023 @01:33PM (#35630936)
> Now time for gtk4 :(

Hopefully easier? Unsure however.

> But I think having that compatibility is one of the reasons of Linux's success, the rule of "Do not break user space".

Quite. Of course, it's a sometimes repeated joke that the Linux GUI toolkit with the most binary compatibility is the Win32 API (via Wine).

Re:The GTK+3 port of GIMP is officially finished by pjmlp on Wednesday April 19, 2023 @01:50PM (#35631126)
Depends if they use Glade, or any of the removed APIs.
Re:The GTK+3 port of GIMP is officially finished by orra on Wednesday April 19, 2023 @03:16PM (#35632117)
I don't understand the Glade problem. I thought both GTK+ 3 and GTK+ 4 had a GtkBuilder class which loads .ui files? And as for creating .ui files, Cambalache is a replacement for Glade?
Re:The GTK+3 port of GIMP is officially finished by zorr on Wednesday April 19, 2023 @03:40PM (#35632395)
From what I've seen the .ui format for Gtk3 and Gtk4 are different and Glade does not support Gtk4 Widgets or its additional libraries like libadwaita.

Cambalache is a successor for Glade but it also has issues. It uses its own storage format and you have to export to a .ui file for use in your Gtk4 project, and if you make changes to the UI file it's very difficult or even impossible to use those changes in Cambalache again.

The general consensus on a few of the GNOME-related Matrix channels seems to be writing .ui files by hand.

Re:The GTK+3 port of GIMP is officially finished by pjmlp on Wednesday April 19, 2023 @03:33PM (#35632327)
Sure if you like to write XML by hand.

Cambalache is years away to reach feature parity with Glade. Then there is the whole of using Web to render the designer.

Re:The GTK+3 port of GIMP is officially finished by stuaxo on Wednesday April 19, 2023 @07:00PM (#35634393)
This sort of long slog work is where proper funding is needed.

I'm sure all the distros are busy, but it sure would be nice if one of them would fund get a developer they pay to do this.

Re:The GTK+3 port of GIMP is officially finished by llothar on Thursday April 27, 2023 @04:51PM (#35734384)
Their idea of GUI building is just too bad and backward. You define the GUI by dragging things on a Canvas and some things that are specified in text. What you never want is going through thousands of widgets in a sidebar and a bit here and a bit there.

It suffers from we don't think about UI but only about technology. GUI Builder the old way stink (only XCode stinks like a perfume). There is also a reason why Microsoft does not offer a GUI Builder for their new WinUI 3

Re:The GTK+3 port of GIMP is officially finished by rleigh on Wednesday April 19, 2023 @03:58PM (#35632595)
The XML isn't upgraded and there are no tools or XSLT to do it. You end up hand-editing the ui files by hand. Not fun or productive.

There are good reasons why professional developers abandoned GTK+, and this is just one of them.

Re:The GTK+3 port of GIMP is officially finished by marcodiego on Wednesday April 19, 2023 @04:14PM (#35632761)
This is something that I unfortunately have a "reasonable" explanation. It involves some historic idiosyncrasies and GNOME devs' decisions along time. If want to listen to some (read an) interesting story here's some of it:

* First: GNOME was born without an IDE. But, there was an interesting little project (by Naba Kumar) which started in late the mid 90's called Anjuta. IIRC, Anjuta 0.x to 1.x was what was called a "monolithic" IDE; that is: it didn't had any plugins and its features were "hard-coded". The 2.0 rewrite allowed it to have plugins, but they didn't covered (at first) all of the features of Anjuta 1.x. It was only around 2.4 or 2.6 that Anjuta finally got feature-rich and reasonably stable enough to become part of the GNOME project and the "IDE of the GNOME project" although most GNOME devs didn't use it.

* Second: GNOME was born without a GUI Builder. The most successful one was Glade. At first, glade generated C source code for the UI using GTK. Then people thought it was bad and someone created libglade. The 'project libglade' was two things: a XML format specifying an UI description and a library that could dynamically (at runtime) load it and build a GTK interface from that description. It could even connect signals without a single line of C source code.

Since libglade seemed like a good idea it was eventually incorporated into GTK in a format that is now called GtkBuilder.

Parallel to this, many events happened. Glade changed hands a few times and eventually its main developer became Chema Celorio. Celorio was a skydiver and one day he had a problem with his parachute and died. Glade development became dormant until it was picked up again by Tristan Van Berkom. Trista modernized it, 'resurrected' it, improved its UI, rewrote many parts of it and eventually removed its code generation back-end to use only the GtkBuilder format.

* Third: At the same time, Anjuta development also changed hands. I remember Johannes Schimidt and a few others. At some point, there was an integration between Glade and Anjuta, but it was not very different from running the two tools separated except for the fact that they shared the same window.

There was some hope when, during the selection for Google Summer of code an interesting project was chosen: improve the integration by Pavel Kostyuchenko. The project was successful and the integration between Glade and Anjuta improved because of it.

I was happy and hopeful for these facts when one day I saw that (part of) the integration code was chopped off. I was so intrigued by this fact that I decided to ask Anjuta devs personally (on IRC) what had happened. The answer was something like: "it was not as good as we'd like, fixing it would be much more work than rewriting it."

That was when I decided to join the project to fix it myself. I improved the integration between Glade and Anjuta. Rewrote how it created functions inside the C source code, how it discovered automatically which .c and .h files were associated with the .ui file. Implemented automatic creation of members on the C struct that corresponded to the UI elements, fixed some bugs, wrote a documentation which was a good tutorial on how to use these features... I even implemented the preview feature in Glade. I really made the integration work to my liking. It was the workflow I dreamed.

The future seemed bright: there were new developers, frequent commits, new feature were implemented frequently... But GTK evolved faster than Glade. Tristan eventually abandoned it and it was picked up by Juan Pablo Ugarte. By around this time, Glade became something of a monstrosity of technical debt, slow, crash-prone and buggy but it worked. Implementing support for modern GTK features (like bindings and css) seemed to much work and too hard to do.

* Fourth: Around 2013 Christian Hergert started developing a modern IDE for GNOME: GNOME Builder. He left his job, started a campaign to get money to back him up during first versions and quickly showed a lot of progress. It was said at the time that it was going to have Glade integration (it eventually did have, but it was never a decent one). The project thrived and Redhat hired him.

Development of Anjuta slowly became dormant after this. It is now archived.

Hergert started another project, Drafting, to replace Glade but it was de-prioritized. Ugarte basically abandoned Glade and started Cambalache. Cambalache seems like a good idea, works but has no IDE integration and is still mostly a "one man show".

And that is how we arrived at where we are. GNOME still lacks a good UI builder with IDE integration and no current plans to fill this gap.

Re:The GTK+3 port of GIMP is officially finished by em-bee on Wednesday April 19, 2023 @04:48PM (#35633155)
thank you for that great and informative history.

this deserves to be made into its own blog post.

Re:The GTK+3 port of GIMP is officially finished by TingPing on Thursday April 20, 2023 @12:07AM (#35636278)
Glade can’t render both GTK3 and GTK4 in the same process and wasn’t actively maintained. Cambalanche was a replacement supporting both.
Re:The GTK+3 port of GIMP is officially finished by robinsonb5 on Wednesday April 19, 2023 @02:00PM (#35631257)
It's not even a joke - OK, not GUI-related, but a few years ago I tried to replay Return to Castle Wolfenstein on Linux - the official Linux port would run but with no audio. The Windows version worked fine under WINE!
Re:The GTK+3 port of GIMP is officially finished by p_j_w on Wednesday April 19, 2023 @02:32PM (#35631669)
Was it a Windows version or DOS version?
Re:The GTK+3 port of GIMP is officially finished by miffe on Wednesday April 19, 2023 @02:39PM (#35631739)
Return to Castle Wolfenstein is Windows. Using the Quake 3 engine.
Re:The GTK+3 port of GIMP is officially finished by robinsonb5 on Thursday April 20, 2023 @07:35AM (#35638550)
And there was an official Linux port. Which no longer works properly.
Re:The GTK+3 port of GIMP is officially finished by p_j_w on Thursday April 20, 2023 @05:32PM (#35646657)
Oh boy, I don't know how I missed that detail. Sorry!
Re:The GTK+3 port of GIMP is officially finished by erk__ on Wednesday April 19, 2023 @03:07PM (#35632028)
The multiplayer version got open sourced and there exist a contemporary project to keep it updated, but also as backwards compatible as is possible.

https://www.etlegacy.com/

Re:The GTK+3 port of GIMP is officially finished by LaLaLand122 on Wednesday April 19, 2023 @03:43PM (#35632441)
Re:The GTK+3 port of GIMP is officially finished by seba_dos1 on Wednesday April 19, 2023 @05:41PM (#35633657)
Many old games work better under Wine than under modern Windows though.
Re:The GTK+3 port of GIMP is officially finished by badsectoracula on Wednesday April 19, 2023 @11:46PM (#35636136)
FWIW you can use OSS-to-ALSA wrapper and sound will work.

In general you can get most of old Linux stuff to work if you find and install the relevant libraries, the main issue is that these libraries tend to be spread all over the place and sometimes even conflict with existing libraries.

With Windows you also need to do something similar with older games (e.g. use dgVoodoo2 to play old Direct3D and Glide games) but since Windows comes out with a lot more stuff and that stuff tends to be backwards compatible for the most stuff, there is much less to worry about.

Re:The GTK+3 port of GIMP is officially finished by robinsonb5 on Thursday April 20, 2023 @07:37AM (#35638566)
Sometimes, yes - whether that wrapper's improved now I don't know, but at the time it wasn't sufficient. I found a forum post somewhere at the time which included some kind of deep library patching magic - it worked but I rather doubt I'd be able to find it again now.
Re:The GTK+3 port of GIMP is officially finished by kristopolous on Wednesday April 19, 2023 @02:04PM (#35631312)
Windows backwards compatibility is also pretty phenomenal if you know what you're doing.

There was an article a couple of years ago about taking binaries from either windows 1 or 2, changing a few bits of the header and it would run fine.

Edit: actually it's covered in the Wikipedia article https://en.m.wikipedia.org/wiki/Windows_1.0x

It's an old citation but here's the snippet:

"Due to Microsoft's extensive support for backward compatibility, it is not only possible to execute Windows 1.0 binary programs on current versions of Windows to a large extent but also to recompile their source code into an equally functional "modern" application with just limited modifications"

I haven't touched windows in probably 15 years though so I can't speak for any of this. Funny, I was a Windows software developer for a decade and now I know nothing about it. I don't even know if the debug tools I used to use made the leap to 64 bit

Re:The GTK+3 port of GIMP is officially finished by RedShift1 on Wednesday April 19, 2023 @02:20PM (#35631487)
IMO it's not phenomenal, it's the job of an operating system! Something seemingly lost to many new devs. I'm pretty convinced by now the reason the win32 API is so stable because no developer is interested in "the old stuff", so nobody tinkers with it, hence stuff doesn't break. I'm fully with Linus Torvalds on this one, DON'T break userspace!!!
Re:The GTK+3 port of GIMP is officially finished by kristopolous on Wednesday April 19, 2023 @02:26PM (#35631589)
It's actually work IIRC. Again, out of the game for 15 years but they used to be subsystems - these ABI compatibility layers

Windows had one for DOS, Windows 16, "posix" and "os/2" with the last two in air quotes because it was only a subsection and they claimed mission accomplished - I think it was specifically to satisfy some government requirement but don't use me as a reference here. I don't think it could do os/2 "Presentation Manager" for instance.

Regardless, it didn't come free - there's people up in Redmond who had that as part (or maybe all) of their job. I would have done that - maintain an esoteric part of Windows for a Microsoft salary? That's the kind of job where you have almost no boss. Sign me up.

Re:The GTK+3 port of GIMP is officially finished by rlkf on Wednesday April 19, 2023 @05:08PM (#35633350)
> I don't think it could do os/2 "Presentation Manager" for instance.

There was a Presentation Manager subsystem for NT that could run 16-bit OS/2 graphical programs, but it was about as hard to come by as buying a single LTSC license is today.

Re:The GTK+3 port of GIMP is officially finished by kristopolous on Wednesday April 19, 2023 @05:31PM (#35633562)
That's absurd. It's almost as silly as Quarterdeck's DESQview/X product that ran win-16 binaries. I ran it for laughs once in 2001, it worked. Motif, X, remote X, and 16 bit Windows --- it's everything you never wanted. http://toastytech.com/guis/dvx.html of course has a gallery. Quarterdeck - thanks for the memories, and also, the memories

The lesson of DESQ is to design software to run on the computers of tomorrow and don't worry so much about the computers of today. That sounds stupid to me as well but neither of us have yachts or private jets so what do we know. It's about colonizing the future.

I wouldn't be surprised if FreeDOS could spin this up.

Re:The GTK+3 port of GIMP is officially finished by stuaxo on Wednesday April 19, 2023 @06:56PM (#35634342)
Virtuallyfun has a go at running DesqView/X... and now I'm shocked to see it was all the way back in 2011 !

https://virtuallyfun.com/2011/03/27/desqviewx/

There's also a long running ticket in dosemu2 around some issues with DesqView/X https://github.com/dosemu2/dosemu2/issues/606

In some more years it will probably be working fine there.

Re:The GTK+3 port of GIMP is officially finished by LeFantome on Thursday April 20, 2023 @12:25AM (#35636391)
2011? Try 1992!

DesqView/X was graphically multi-tasking DOS programs and running X applications the year after Linux was released. This was the Windows 3.1 era ( no cooperative multitasking ) and before OS/2 2.0 was out. Amazing.

Like everything else at the time though, it could not run Windows applications ( Microsoft Office ) and so it was doomed.

Re:The GTK+3 port of GIMP is officially finished by stuaxo on Wednesday April 19, 2023 @06:47PM (#35634269)
Would love to see that demonstrated, maybe it will be on virtuallyfun.com one day.
Re:The GTK+3 port of GIMP is officially finished by asveikau on Wednesday April 19, 2023 @02:52PM (#35631865)
There's kind of a tension between new Microsoft and old Microsoft.

Old Microsoft put lots of thought into extensibility of APIs and makes it so that the old interfaces still work when they introduce new functionality.

New Microsoft rewrites components from scratch and deprecates the old one every few years, and doesn't bother to shim over the old interface.

The former group has it such that if your app was well written circa 1997-2001, it works well on the current release.

The latter group has it so that you have several different copies of .NET on your hard drive and the "recommended" UI libraries for new applications has changed a lot, and the new hotness from a few years ago is deprecated.

Re:The GTK+3 port of GIMP is officially finished by JohnFen on Wednesday April 19, 2023 @03:51PM (#35632518)
> New Microsoft rewrites components from scratch and deprecates the old one every few years, and doesn't bother to shim over the old interface.

This seems to be a trend across the industry, not just Microsoft. And it's a real shame. It makes it too risky to use a lot of shiny new things in real projects.

Re:The GTK+3 port of GIMP is officially finished by asveikau on Wednesday April 19, 2023 @06:17PM (#35634026)
I agree it's an industry wide thing.

The Microsoft-specific variant of it is something I've seen up close. One of the issues always struck me as confusing interface and implementation. There isn't a good recognition of the fact that when you write against an API, you code against an abstraction, not a particular implementation. If your interface is good enough, you can do the rewrite treadmill thing to justify your current bonus or whatever, but you can point the old interface at a new implementation without most callers knowing the difference.

So, I think a good example of this working relatively well would be Windows audio. The WinMM API still works. They rewrote the audio stack a couple of times, and introduced new APIs such as WASAPI and I forget the newer one. Winmm isn't broken. It may not have access to all the latest features, but it works.

In contrast, all too often they discard an entire API because they want to rewrite the components underneath. But the I in API stands for interface. A good interface can survive rewrites of what's underneath.

Re:The GTK+3 port of GIMP is officially finished by JohnFen on Wednesday April 19, 2023 @06:30PM (#35634132)
> But the I in API stands for interface. A good interface can survive rewrites of what's underneath.

Absolutely!

But a good interface is also a really difficult thing to engineer, in part because it seems like a relatively easy thing. The gotchas don't become apparent until long after you ship.

Sometimes I wonder if some of this is just cost-cutting. A difficult task is an expensive task. Other times, I wonder if it's because API design is an actual specialty, and there are too many devs doing it who don't have the chops for it.

Re:The GTK+3 port of GIMP is officially finished by jstimpfle on Thursday April 20, 2023 @05:07AM (#35637792)
An interface is how you connect your own code to the other code. There is a large interface design space spanning from extremely minimal and simple, to extremely detailed, flexible, giving control over performance etc. but leaking more internals.

Some interfaces that are very simple can allow a broad range of implementations but cannot not expose their capabilities. On the other hand, some interfaces that provide good control over runtime characteristics etc. already give away the implementation.

If "API" were primarily about abstraction, it would be called APA.

Re:The GTK+3 port of GIMP is officially finished by asveikau on Thursday April 20, 2023 @06:49PM (#35647572)
I disagree with most of this, but everyone is entitled to their opinion.

One point I'll offer is that ability to shim an old interface onto a new implementation validates the design of the new thing. If you can't shim them, chances are there's some necessary problem you aren't solving, and possibly aren't aware of.

Concrete details of all these things will alter the discussion. I think my example of audio is a good one for the strength of "the old way". The old interface works, even though it does vastly different things than it did in 1995. Like you say, maybe there are some features you can't get with the old interface -- that can be OK. But they didn't break it.

The Win32 subsystem on NT-based Windows began as such a shim too. The NT native APIs sometimes look very very different. Most people don't know this. eg. Most people don't know that renaming things isn't its own syscall that operates on a source filename a la unix rename(2), which is what Win9x did -- that there's transparently an NtCreateFile() call that happens inside MoveFile() ... Philosophically, the NT API "hates" doing things based on filenames, most operations that Unix or Winapi have as filenames operate on handles... But nobody needs to know, the Win9x API is the public API.

Re:The GTK+3 port of GIMP is officially finished by pjmlp on Thursday April 20, 2023 @03:09AM (#35637212)
Also add the WinRT folks into the New Microsoft.

Deprecated C++/CX and .NET Native, while neither Native AOT nor C++/WinRT are proper replacements in capabilities, replaced UWP/WinUI 2.0 with WinAppSDK/WinUI 3.0 with lots of missing capabilities.

Re:The GTK+3 port of GIMP is officially finished by rodgerd on Wednesday April 19, 2023 @05:25PM (#35633508)
> Something seemingly lost to many new devs. I'm pretty convinced by now the reason the win32 API is so stable because no developer is interested in "the old stuff", so nobody tinkers with it, hence stuff doesn't break.

I highly encourage you to take a look at the work Microsoft did with the XBox backwards compatibility for the XBox One X/S; unlike their naming teams, MS have people who care deeply about this stuff. Not only did they spend a lot of time making sure that most games work on the One X, they spent time doing things like having the newer platform upgrade the games on the fly where possible.

MS absolutely has people tinkering with their old APIs, sometimes to quite good effect.

Re:The GTK+3 port of GIMP is officially finished by NullPrefix on Wednesday April 19, 2023 @03:01PM (#35631962)
How many games designed for windows 7 can run on windows 11?
Re:The GTK+3 port of GIMP is officially finished by fredoralive on Wednesday April 19, 2023 @04:58PM (#35633248)
I think those that have a dependency on Games for Windows Live are screwed, so not Microsoft first party games, but most should? Isn’t it more XP and earlier stuff that has a reputation for being finicky, not DX9/10 stuff?
Re:The GTK+3 port of GIMP is officially finished by tom9729 on Wednesday April 19, 2023 @07:27PM (#35634583)
Anything that depends on Safedisc is also screwed because Microsoft pulled the driver for security reasons. This includes a lot of first-party stuff like Mechwarrior 4 and Freelancer. Really wish they would put those up on GOG!
Re:The GTK+3 port of GIMP is officially finished by jamesfinlayson on Wednesday April 19, 2023 @08:25PM (#35634943)
I think the only game I ever had trouble running on a newer version of Windows was James Bond 007 Nightfire but compatibility mode seemed to work okay. I haven't played heaps of games in the last decade but any issues have been more with getting the right version of the Visual C++ runtime or PhysX (which Steam usually handles for you anyway) rather than the underlying operating system.
Re:The GTK+3 port of GIMP is officially finished by dblohm7 on Wednesday April 19, 2023 @03:29PM (#35632280)
Yes! A lot of people don't realize that Windows compatibility is not just about binary compatibility, but source compatibility.
Re:The GTK+3 port of GIMP is officially finished by yjftsjthsd-h on Wednesday April 19, 2023 @07:23PM (#35634564)
I feel like culturally speaking that's fair? The Windows ecosystem expects closed-source programs that are purely given to users as binaries, the ecosystem around FOSS operating systems expects most programs to be published as source code and then compiled by users or distros.
Re:The GTK+3 port of GIMP is officially finished by molticrystal on Wednesday April 19, 2023 @03:32PM (#35632317)
>It's an old citation but here's the snippet:

Really old citation, 1995...

>There was an article a couple of years ago about taking binaries from either windows 1...

The below article seems to go more indepth and was written in 2020, might even be the one you were thinking of:

https://soylentnews.org/article.pl?sid=20/05/10/1753203

>As previously noted, Windows 95 dropped support for 1.x and 2.x binaries. The same however was not true for Windows NT, which modern versions of Windows are based upon. However, running 16-bit applications is complicated by the fact that NTVDM is not available on 64-bit installations.

>After letting NTVDM install, a second attempt shows, yes, it is possible to run Windows 1.x applications on Windows 10 [32-bit].

>FONTTEST also worked without issue, although the TrueType fonts from Windows 3.1 had disappeared.

Re:The GTK+3 port of GIMP is officially finished by djur on Wednesday April 19, 2023 @03:42PM (#35632431)
There's even a way to run 16-bit Windows binaries on 64-bit Windows now.

https://github.com/otya128/winevdm

Re:The GTK+3 port of GIMP is officially finished by jamesfinlayson on Wednesday April 19, 2023 @08:26PM (#35634953)
Oh neat, I might need to try this on Wolfenstein 3D.
Re:The GTK+3 port of GIMP is officially finished by ronyclau on Thursday April 20, 2023 @02:30AM (#35637034)
Oh my gosh. That screenshot of the Calculator alone brought back memories from my childhood.
Re:The GTK+3 port of GIMP is officially finished by kristopolous on Wednesday April 19, 2023 @03:41PM (#35632417)
"As previously noted, Windows 95 dropped support for 1.x and 2.x binaries. The same however was not true for Windows NT, which modern versions of Windows are based upon."

No way. I'll need major citations on that. Wikipedia for one, firmly disagrees as does every book I've read on that history.

Re:The GTK+3 port of GIMP is officially finished by djur on Wednesday April 19, 2023 @03:48PM (#35632487)
Which part are you objecting to?
Re:The GTK+3 port of GIMP is officially finished by speed_spread on Wednesday April 19, 2023 @04:07PM (#35632672)
I object to NT natively supporting 16 bit apps. I think they dropped that in Win7 or before. Of course with VMs everything is possible but it's no longer built-in.
Re:The GTK+3 port of GIMP is officially finished by guipsp on Wednesday April 19, 2023 @04:20PM (#35632818)
Windows NT is 3.1 and above
Re:The GTK+3 port of GIMP is officially finished by piperswe on Wednesday April 19, 2023 @04:47PM (#35633139)
Eh, not quite. 3.1 ran on DOS, there was an NT 3.1 (separate OS) that was NT. NT and legacy Windows ran in parallel for a while, up through Windows 2000/Windows ME. That ended with Windows XP, the first consumer Windows NT release.
Re:The GTK+3 port of GIMP is officially finished by fredoralive on Wednesday April 19, 2023 @04:51PM (#35633178)
32 bit Windows NT supported 16 bit Windows apps (and DOS) right until 32 bit Windows was dropped with Windows 11. 64 bit Windows has never supported them. As 64 bit Windows became commonly installed around Windows 7, you might get the impression it was dropped then, but it was still around if you really wanted it.
Re:The GTK+3 port of GIMP is officially finished by kristopolous on Wednesday April 19, 2023 @05:27PM (#35633526)
I misread it. I thought it said windows nt is based on windows 1 and 2. carry on
Re:The GTK+3 port of GIMP is officially finished by johannes1234321 on Wednesday April 19, 2023 @04:37PM (#35633016)
> Windows backwards compatibility is also pretty phenomenal if you know what you're doing.

Windows backwards compatibility is also pretty phenomenal if you DON'T know what you're doing and are important enough.

There is the famous case about Windows 95 detecting SimCity and then switching to a more careful memory manager as SimCity had quite some use after free problems, which would crash otherwise.

Re:The GTK+3 port of GIMP is officially finished by omoikane on Wednesday April 19, 2023 @07:49PM (#35634729)
Re:The GTK+3 port of GIMP is officially finished by JohnFen on Wednesday April 19, 2023 @06:38PM (#35634202)
> Windows backwards compatibility is also pretty phenomenal

This is a point on which I give Microsoft high praise, and they have my great sympathy.

The issue for Windows is existential -- a large percentage (perhaps a majority) of people would ditch Windows in a heartbeat if they had to replace their software because of a new Windows version. Backward compatibility is Microsoft's moat.

It has been worth it to Microsoft to put serious resources toward that end, and they've worked miracles in terms of backward compatibility. It really is amazing.

And I have sympathy for them about it, too, because I guarantee that Microsoft would rather be able to run without carrying that burden too much.

I think this is the main reason why they are extremely forceful about updates. If everyone is using the same version, backward compatibility becomes easier because you don't have to keep it for as long.

Re:The GTK+3 port of GIMP is officially finished by makeitdouble on Wednesday April 19, 2023 @11:47PM (#35636140)
I was super impressed by Windows' efforts on the backwards compatibility part, in particular with all the legendary articles on them testing specific apps and leaving alternate modes reproducing the bugs so the apps can continue working.

And then I opened again a windows laptop...and the words than came to mind were "missing the forest for the trees".

Like, I feel that Microsoft really cares a lot about each and every tree, and went above and beyond to make the most trees happy and cut down as few trees as they could at every iteration. And we lauded then for that, cheering at every tree that could stay alive.

Except now the forest is really badly planned, it grew and expanded a lot but without enough prunning really, each user has to carve a path with a chainsaw to get anywhere livable, we regularly fall into forgotten valleys with runes to unlock lost technology.

I won't argue it needs to be a walled garden breaking new at every release, but there must be a better middle-ground for all of this.

Re:The GTK+3 port of GIMP is officially finished by revelio on Thursday April 20, 2023 @12:31PM (#35642494)
The basic problem is that they didn't provide a proper evolution for Win32. So yes, Win32 apps still "work" if you can tolerate tiny, non scaled 1995 era UI. If you want a modern looking UI that properly scales then they said rewrite it all in WPF. And then WinUI. And then JS/HTML. And then WinUI2. And then WinUI3. At no point was there a smooth upgrade path.

It's hard, really hard, so I don't really blame them for failing. But, Apple mostly managed it. AppKit/UIKit is pretty much a direct path from NeXTStep in the 1980s. 30+ years of evolution, without breaking the whole API until SwiftUI came along. Pretty impressive. Apple should get more credit for that.

Re:The GTK+3 port of GIMP is officially finished by makeitdouble on Thursday April 20, 2023 @07:36PM (#35648007)
Yes. To note, Apple still had its arm wrestling moments, famously with Microsoft and Adobe, where Apple wanted the apps devs to move on and got a resounding "nope" in return. That resulted in the Carbon API for instance lingering on for a while, but they could still manage a transition and deprecate it.

Just thinking about the two processor architecture transitions and the whole OS7 -> OSX switch, they really have an expertise no other company seems to even get close to.

Offering emulation where compatibility is broken definitely helps.

Re:The GTK+3 port of GIMP is officially finished by ptx on Friday April 21, 2023 @08:18AM (#35652613)
The current upgrade path from Win32 is Win32, I think. Microsoft now present it alongside WPF, WinForms and UWP as an option for developing new apps in the "get started" guide [1]. They have also added (or restored?) lots of useful documentation [2] on Win32, including how to handle UI scaling [3].

[1] https://learn.microsoft.com/en-us/windows/apps/get-started/#...

[2] https://learn.microsoft.com/en-us/windows/win32/

[3] https://learn.microsoft.com/en-us/windows/win32/hidpi/high-d...

Re:The GTK+3 port of GIMP is officially finished by revelio on Saturday April 22, 2023 @04:03AM (#35664354)
The third link says:

"if you're creating a new Windows app from scratch, it is highly recommended that you create a Universal Windows Platform (UWP) application. UWP applications automatically—and dynamically—scale for each display that they're running on."

but no fault on you for being confused, Microsoft announces changes in strategy so fast they can't update their docs to keep up, so their once great MSDN has become a rats nest of contradictory advice and recommendations.

At any rate if you've tried to do Win32 hidpi you will know that it hardly works and this represents defeat by Microsoft. For example hidpi is only even attempted for windows created from dialog resources, but most aren't, so if you run any classical win32 apps they still have tiny 16x16 icons everywhere, tiny fonts, basically unusable on modern screens. Apple went through this pain with the original Retina transition where icons were blurry on old apps for a while, but they updated all their own apps and brought the ecosystem with them on that journey. Microsoft never did.

And it's all like that. Win32 has barely evolved for decades. There are occasional new magic flags and an ever-greater pile of hacks, but there's been no serious attempt to keep it competitive. The assumption was that everyone would migrate to .NET and WinForms but that didn't happen for various reasons. By then, Win32 - never a particularly well designed or well loved API even inside MS - was so aged that they felt it'd be easier to start over from scratch. And once that Rubicon was crossed, they did it again and again.

Re:The GTK+3 port of GIMP is officially finished by int_19h on Friday April 21, 2023 @03:58PM (#35659165)
Apple managed it by using hacks such as forced integer upscaling. It works reasonably well for them because they mostly control the hardware. Windows needs to be able to deal with scaling factors like say 150% to accommodate all that it runs on, which is quite a bit harder.
Re:The GTK+3 port of GIMP is officially finished by revelio on Saturday April 22, 2023 @04:03AM (#35664355)
Yup. And yet, they managed it.
Re:The GTK+3 port of GIMP is officially finished by pjmlp on Thursday April 20, 2023 @03:07AM (#35637205)
Only up to when WinRT got introduced, now it is a mess.
Re:The GTK+3 port of GIMP is officially finished by creshal on Wednesday April 19, 2023 @02:04PM (#35631313)
It hasn't been a joke for a while.
Re:The GTK+3 port of GIMP is officially finished by aninteger on Wednesday April 19, 2023 @11:14PM (#35635950)
> Of course, it's a sometimes repeated joke that the Linux GUI toolkit with the most binary compatibility is the Win32 API (via Wine).

Motif is pretty good here too.

Re:The GTK+3 port of GIMP is officially finished by llothar on Thursday April 27, 2023 @04:11PM (#35733902)
No definitely not easier at all. Especially because all the drawing code has changed.

But Gtk5 port will be total madness. No more modal windows and no more traditional tree view. I can agree that it removes a lot of problems and maintenance from the Gtk Team, but the cost for the application developers is huge.

But just as Win32API we can all still use Gtk2