7 ms·
To be fair, how many developers are even writing GTK applications anymore? How many GUI apps are even using these native GUI frameworks? If you aren't developi
by pipeline_peak 3y ago
To be fair, how many developers are even writing GTK applications anymore? How many GUI apps are even using these native GUI frameworks?
If you aren't developing a DAW, a browser, or some other performance critical GUI app, you're moving to Electron and other layout engine solutions. And who should blame you, people don't want to fiddle with GTK_Window_Context_Handler* gtk_wdw_ctx_hdlr_ptr = Init_GTK_Window_Context_Handler(Window_Context* w_ctx); just to make a damn app.
Even if Vala drops in to save us all from noodling with Window Context Rocket Ship Handlers, layout engines are more portable solutions. The decline of WPF and Winforms is proof of this.
- rob74 3y agoYeah... why fiddle with GTK_Window_Context_Handler_Ptr if you can fiddle with the intricacies of CSS layouts instead?
- pipeline_peak 3y agoWell, if you want to make things look pretty, which product owners and users expect, you’ll have to fiddle with cosmetic intricacies regardless.
- megous 3y agoGTK uses CSS underneath.
- maxloh 3y agoYeah, and it doesn't look native except on Linux.
- mhd 3y agoGreat thing is that as opposed to the web, the platform/library designers already took care of a lot of that, so the biggest overlap between GUI libraries and CSS is usually the layout (these days, where CSS isn't utterly abominable here). A lot of the color fiddling etc. that web apps due is due to 1.) Graphic designers having no other way to go, now that print is dead 2.) Corporate Identity (which is of lower priority than platform identity) 3.) Selling stuff (not needed as much with desktop apps)
- Spivak 3y agoIt's great when you want to outsource your or target a single platform but infeasible when you want to bring your own design or be the same across platforms. And since most folks end up supporting the web as a first class platform you have to BYOD there anyway. Nobody is out there making a JS framework to emulate WinForms.
- mhd 3y agoI thought this was about making things enticing to the scrum overlord, but sure… Not everything has to or can be be cross-platform, not everything has to be web-visible. And I'd argue that serving the same view to everyone is quite often a bad idea. (Heck, in the web-case, it's not even just the view)
- brabel 3y ago> how many developers are even writing GTK applications anymore? I would like to know the honest answer to that question, actually.
- mirpa 3y agoSee Gnome on Linux.
- Spivak 3y agoYeah, but outside the GNOME devs themselves the adoption has been pretty meh.
- flexagoon 3y agoThere are a lot of third-party Linux apps built with GTK4/Libadwaita. If you just to to https://flathub.org https://flathub.org and click on random apps a lot of them will use GTK.
- maxloh 3y agoMost GNOME apps are written in C/C++ actually.
- sitzkrieg 3y agothe answer could possibly anyone who cares about the footprint of their software (disk, egress, image running size...), not wanting to deal with an entire browser engine (in every aspect) wpf is still heavily used in industry so that isnt very convincing to me
- pipeline_peak 3y ago> anyone who cares about the footprint of their software That’s why I mention performance critical > wpf is still heavily used in industry But is anything new being made with wpf? Because that’s why I left that area.
- sitzkrieg 3y agoi actually am working on greenfield wpf currently but ill be first to admit thats an exception. windows shop still reach for it heavily in "boring" industry in my experience. there is a difference between performance critical and sloppy of course. most people default to heavy crap cuz its good enough, or a good fit sometimes, i get that and this is coming from someone who had to use wpf for software where it ended up too slow in all rendering paths despite MS "trust us bro" and had to render using directx directly. not super uncommon but we were paying the price early (.net fw 3, fuzy wpf text, vibrating layouts, the good days)
- Tomte 3y ago> but ill be first to admit thats an exception No, that‘s very common. I‘m peripherally involved in such a greenfield project, too. And my employer is (very) slowly switching existing WinForms applications to WPF. It‘s the new thing. (I know that there are a handful newer MS GUI frameworks, but for us it‘s new)
- sitzkrieg 3y agointeresting, i was wpf old hat and had to justify it vs winui3 (directly) and maui they are both too new
- diego_sandoval 3y agoI tried to learn GTK a few years ago, because I wanted to create an app that was fast, snappy and looked "native" on Linux. But I was unable to find information about how to set up my repo and build process with GTK vendored into the project. All tutorials said that I should just install GTK libraries with my system package manager, but that was not a satisfactory answer for me. After some hours fiddling around stackoverflow, adding flags to my GCC invocation and being unable to solve the problem, I just gave up. Flutter Desktop seems like a compelling alternative to GTK these days.
- cies 3y agoFlutter is cool, and new. Qt is old, and cool.
- mirpa 3y agoAdding flags to gcc should be just a matter of pkg-config. In bindings to high level languages that should be handled automatically.
- audidude 3y ago> Flutter Desktop seems like a compelling alternative to GTK these days. Sad news for ya, flutter just wraps GDK (from GTK) on Linux. It also, last time I checked, was limited to a single application window.
- fngjdflmdflg 3y agoIt just uses GTK to open a window. Firefox and webkit also do this IIRC.
- bandrami 3y ago> If you aren't developing a DAW Now that Ardour has switched are there still any DAWs using GTK?
- jabl 3y agoAFAIU Ardour hasn't switched anything. What they have done is import Gtk+2 into their own source tree, anticipating that Linux distros will get rid of the long deprecated and unmaintained Gtk+2. From https://ardour.org/whatsnew.html# https://ardour.org/whatsnew.html# : > From a project-level perspective, perhaps the most important change is that we have moved the source code of our GUI toolkit (GTK v2) into the Ardour source tree.
- bandrami 3y agoA week later, but I have also found the interesting new DAW zrythm using GTK4: https://www.zrythm.org/en/index.html https://www.zrythm.org/en/index.html
- deleted 3y ago[deleted]
- luciusdomitius 3y agoThis is a very shallow opinion. I, personally, avoid electron-js apps like the plague. Having 500 MB of RAM wasted by something as trivial as MS Teams or Insomnia is horrendous. ElectronJS apps tend to be not only inefficient but also much less reliable and poorly designed.
- pipeline_peak 3y agoNo, your opinion is out of touch. The companies that release these programs don’t care about 500 mb being wasted. What is your mom using? Very likely bloated software she unwittingly installed. Look around, it’s a bloated, buggy world. Calendar apps aren’t being carefully engineered by European computer scientists. >Electron apps tend to be poorly designed How so, are you saying because they use Electron they’re inherently poorly designed?
- deergomoo 3y ago> How so, are you saying because they use Electron they’re inherently poorly designed? I’m not the original commenter, but Electron apps are regularly poorly designed and lacking quality. I won’t say it’s inherent to Electron, but it’s largely due to the fact that the standard controls offered by browser engines are incredibly rudimentary. They are still catered primarily to forms and simple interactivity in a document. Rich interactivity requires you build your own or find some third-party package, whereas at this point most desktop UI toolkits have 20-30 years of development and refinement behind them. Panels and panes are resizable and collapsible; you can have multiple free-floating, smoothly resizing windows; collections/tables will efficiently reuse cells to avoid tanking performance on long or infinitely scrolling lists. All of this stuff is possible with Electron I’m sure, but the platform doesn’t offer it for the taking, so most don’t bother. And when they do, it’s less refined than what we had in desktop apps in 2005. Do people care? Evidently not. I do though.
- kriops 3y agoI care about my time on battery being cut by 90%. I am in no way above writing GUIs with web tech, but it's very noticably suboptimal for the UX.
- mardifoufs 3y agoAnd even if you want to keep it non-web, I don't see why you'd use gtk instead of qt (especially since QT has pyside6). And I'm not saying that as someone who likes QT either. I wish I started my PoC with web tech from the get go actually. But still, it's so much more convenient and even if you stick with c++ QT still provides a lot of nice to have tools (for threading, signals, concurrency etc). I haven't used qml a lot but I wonder if gtk has an equivalent to that too. What am I missing about gtk here? Like, where does GTK beat qt?
- sirwhinesalot 3y agoC API is the big one. Unless your language is officially supported by Qt (meaning C++ or Python) you're basically screwed. Secondly would be the license, while they're both LGPL these days, that wasn't always the case, and the current Qt company is highly hostile to open source.
- deleted 3y ago[deleted]
- sprash 3y agoThe real reason people stopped developing Gtk applications is that GNOME tends to declare widely used APIs arbitrarily as "internal interface" and makes incompatible changes even on minor version updates. It's a constant chase not worth any developers time.
- sirwhinesalot 3y agoPrecisely this, the moment they announced they wanted to break backwards compatibility with new GTK versions every 6 months or whatever it was they made it very clear it is exclusively a Gnome API for OSS projects and nothing else. They backtracked a bit on that but they'll still replace GTK4 with GTK5 at some point, probably deprecating context menus or whatever else this time. Clowns.
- TingPing 3y ago9 years, thats how long between last GTK API break. Never for GLib.
- sirwhinesalot 3y agoThe first release of GTK3 that could be considered stable was 3.20. Either way, I'm talking about GTK4, where the original plan was 6 months of breaking releases, stabilization in version 4.6, followed by starting work on the incompatible GTK5, to be released 2 years after the first GTK4 release. The backlash was so big they at least changed the versioning scheme, but the "break shit every 2 years" is still in full force.
- TingPing 3y agoGTK3 did not break its C API. The CSS you could inject was arbitrary and undocumented. They stabilized and documented that in 3.20, yes. I think its very dishonest to say the toolkit was breaking, the vast majority of GTK3 apps didn’t have regressions IME.
- 3y ago
- deepsun 3y agoJavaFX was there since the version 9, portable even between OSes. And Java Swing was there from the beginning, still perfectly usable, and is widely used in industrial applications.
- junon 3y agoI was developing a DAW with electron at one point, FWIW.