Hacker News new | ask | show | jobs
by calvinmorrison 1956 days ago
What's with the change over to these '40' style naming schemes? I absolutely detest it if it's not done for a real reason.

Firstly, without major versions it does not single anything to end users and end developers. Is '40' still mostly compatible with the gnome 3.x.x API? Is there a major divergence between 40 and 41? Is 41 and 40 a total rewrite?

3.x.x works and there's a reason why. It conveys a lot of information quickly and is well understood.

reducing things down to a single number is meaningless and clearly branding drivel. I guess they want to obfuscate as much as possible and dumb things down for users like they have been doing for close to a decade.

Yawn

4 comments

Actually this numbering scheme conveys to me, intuitively, that changes are more gradual and hints at backwards compatibility. If there's no major/minor/patch semantics I just assume versions are small incremental additions. I could be wrong but that's what the browser versioning schemes have instilled in me.
> and hints at backwards compatibility.

To me it communicates no commitment to backwards compatibility, i.e. no semantic versioning. This might be enforceable if one is Apple, but doesn't sound good for an open-source platform.

To me it communicates a commitment that they'll never have any significant breaking change ever again without changing their name, fork style.
Yeah like how Firefox got rid of XUL extensions in version 57.
An insignificant breaking change is still a breaking change; and over time they build up. This may explain why so many developers have been unhappy with GTK3.
What would semantic versioning for a UI even mean? What's the API promise?
It could mean that all applications still run unmodified and can show all the dialog boxes they used to.

That may not sound like much of a promise, but it is. Applications written for GNOME 2.x won't run under 3.x.

x.y.z

x would increment on the removal of a feature

y would increment on the addition or change of a feature

z would increment on a bug fix

Which is bizarre, because if you do want to have a breaking new version, what exactly do you do?
> if you do want to have a breaking new version, what exactly do you do?

You change the name. Like "Raku" instead of "Perl6". Once you've reached a certain level of stability and usage, any substantial breaking change is going to inevitably result in a fork, so embracing that up front is going to result in a much better experience.

Yeah, I like Rich Hickey’s critique of semantic versioning. Major version changes just overload the name and cause confusion: if you must break compatibility, fork and rename.
You change the name of the software, like consoles? The next big Gnome version could then be called Gnome 360 followed by Gnome 1, Gnome 64 or Gnome 3.11 for work groups.
Improve existing stuff, add new stuff. That can be done with backwards compatibility if you have a well defined API. I haven't looked at Gnome's API in years so I'm not sure what's its state, but one shining example for this is Redis which is backwards compatible to 11 years ago.

Another great and more relevant example is browsers.

As far as I understand "40" is just short for "3.40.0". The expectation is that they will remain compatible with the 3.x.x series for a long time, so the 3 is somewhat redundant. This release contains more UI changes than usual, but it is very far away from the change from gnome 2 to 3.
And when Gtk4 inevitably happens, or the gnome-shell toolkit is changed again, breaking about all the gnome-shell extensions, we'll just call it Gnome X.
Gtk4 already happened. Not sure if Gnome apps to it, however, but I'm pretty sure they'll just break extensions as they've always done. Most use internal APIs AFAIK after all, so they're designed to break.
Up-top-date Fedora Rawhide shows:

dnf repoquery --whatdepends gtk4-0:4.1.2-1.fc35.x86_64

breeze-gtk-gtk4-0:5.21.3-1.fc35.noarch fcitx5-gtk4-0:5.0.4-1.fc35.x86_64 gnome-chess-0:40~alpha-1.fc35.x86_64 gnome-extensions-app-0:40.0~rc-1.fc35.x86_64 gnome-shell-0:40.0-1.fc35.x86_64 gtk4-devel-0:4.1.2-1.fc35.x86_64 ibus-gtk4-0:1.5.24-3.fc35.x86_64

dnf repoquery --whatdepends gtk3-0:3.24.27-1.fc35.x86_64

... everything else (100's of packages)

Software/package version numbers are just a marketing name. It's the ABI version number on the library (e.g. libgtk4.so.1 vs libgtk4.so.0) that needs to be changed if functions or parameters to functions in the original ABI in the older libgtk4.so.0 library are modified or deleted. It's very common to have two libraries of the same name being used side-by-side with some applications compiled against a newer ABI, and other applications compiled against an older ABI.

The problem with Gnome development is that library ABIs are just one of many interfaces used. There are also GSettings/dconf interfaces, D-Bus interfaces, file formats, etc on top of the usual conflicts in package dependencies (e.g. two packages wanting to write two different unversioned files to disk).

> pretty sure they'll just break extensions as they've always done

This is so frustrating! They never stop! I don't care for any of the new features, I just want things to continue working!

Gnome shell doesn’t even use Gtk, or at least not for drawing and such. If it’s there, it’s completely abstracted away in their JavaScript layer. And yeah, most extensions broke from 3.38-40 already anyway.
I'm almost sure they do use it, through GJS. And those are the official JS bindings to Gtk.

And they definitely did break from 3.0 to 4.0 as I experienced by simply trying to get a sample application from the docs running, and failed to.

GNOME Shell doesn't use GTK at all. It uses a different internal toolkit called St.
I think GTK4 is in Gnome 40 Weather App.
Not much point in keeping the "3." around when we don't expect a "4.0" version to happen in the foreseeable future.
Nope, the version numbers on GNOME 40 packages are 40.0, not 3.40.0.
Your question is valid (and I have the same one) but this is about as uncharitable a thing to say as you can, especially without providing evidence/examples:

> I guess they want to obfuscate as much as possible and dumb things down for users like they have been doing for close to a decade.

The Gnome project has done an enormous amount to push the open source and free desktop forward. The least we can do is not impute sinister motives to them. What do they stand to gain from "obfuscat[ing]" their version number when their code is all open source?

I strongly disagree: the gnome project and the systemd mess are both severely damaging Linux. The good thing, though, is that KDE Plasma seems to have recovered nicely from the KDE 3->4 mess.
Yeah I also want to use a system for servers where critical functionality depends on goddamn bash scripts that will regularly break. I also enjoy hunting down bugs in each distro that does things just a tiny bit differently...

Central design is somewhat restrictive but a bazaar style of development for everything will only result in chaos. The kernel itself has become pretty much cathedral at this point, and not having a central init system (which is quite good, I don’t see the blind hate towards it which is usually never justified on technical merit) would have set back whole of linux by many years.

As much as I dislike that Red Hat has a specific role in the linux desktop case, they do sponsor important work.

I don’t necessarily like sysvinit: systemd is just a monster slowly gobbling up all sorts of functionality that’s not directly related to “initializing the system”.
Initializing a system is a very complex problem. And that systemd gobbles up unrelated things is simply FUD. Systemd is both an init system and a group of many related projects. So it’s a bit like saying plasma is all-encompassing because they have a desktop env and also a pdf viewer file manager etc. They are just under the same name, not mandatory, similarly to many systemd programs.
I'm not trying to argue, I'm surprised and legitimately interested at your comment and would really like to understand where you're coming from.

Are you a current Linux desktop user? How long have you been? What distros do you use?

If Gnome had just paused or become what MATE is today, would we be better off? If you were suddenly emperor of the Gnome Foundation, what would you direct them to do?

I’ve been using Linux on the desktop since Mandrake 7. I mostly use Debian these days (ever since Ubuntu switched from Gnome 2 to Unity). For a while I just used tiling window managers (xmonad, stumpwm) because I couldn’t make Gnome 3+ work for me. Recently I tried Plasma again and I’ve mostly settled on that being good enough. At this point, I have no confidence in most of the people involved in the Linux desktop initiatives: I’d probably fund MATE and maybe even the Trinity Desktop environment: the best Linux desktop setup I ever had was KDE 3 apps on Gnome 2
Glad to see another person here aware of Trinity. I'm an active user. KDE3 just nailed the balance of power user + FOSS. Kmail3, Kdiff3, Kpdf, all these tools work wonderfully, intergrate well with Konqueror, the desktop usage is really quite enjoyable
This page is a good example of everything I dislike about modern Linux desktop developers: https://stopthemingmy.app/
That's not a modern problem and it's not something the developers did. If you have N apps and M themes, you have to test N × M combinations. This is an impossibly large number on any platform that allows users to make their own apps and themes.

It's a lot easier for everyone if the app developers decide they're only going to support a small number of approved themes, or if the theme developers decide they're only going to support a small number of approved apps.

Agreed it’s very shallow backwards logic that will only cause issues when an actual Gnome 4.0 is released. The irrationality will have to be fought similar to Iphone by using “Gnome 3.40” when discussing it.