7 ms·
I have switched half back to Windows (after a decade of 100% Linux) recently just because I finally accepted there is no way of making GUI apps as a single deve
by qwerty456127 5y ago
I have switched half back to Windows (after a decade of 100% Linux) recently just because I finally accepted there is no way of making GUI apps as a single developer nearly as easy and pleasant as WinForms with VisualStudio. The result is virtually Windows-only (it can run on Mono but there are some quirks) but it feels worth that sacrifice.
- interlocutor 5y agoAnd why is it better than Web technologies? Even if you don't want a server involved you can still make a desktop app using Web technologies.
- sgift 5y agoThe developer experience of web technologies is after all this time still far worse than all the desktop libs I've tried. It is even worse than Swing (for those who don't know: That's Javas GUI technology. From the 90s). Add to that the horrible RAM usage, the general jankiness and ... thanks, but no thanks.
- gedy 5y ago> It is even worse than Swing (for those who don't know: That's Javas GUI technology. From the 90s). As someone who loved Swing and used to hate JavaScript, that's really nonsense if you actually want to be a UI developer (and not just some side afterthought). State management and the custom capabilities when you need them are amazing. I wasted a lot of my time writing tons of Swing code. Sorry, but the modern front end experience is much more enjoyable and productive. If you want "native widgets" I get the complaint, but most platforms seem to be less interested in consistent experiences these days.
- publicola1990 5y agoDependency management is simple for Swing. In can mostly be assumed that it is available and works. How many dependencies will an Electron /Webstack based app have?
- pjmlp 5y agoPlus there are frameworks like JGoodies and everyone should look at Filthy Rich Clients book. The biggest issue with Swing is just bad defaults. Except for NeWS, Sun wasn't really into the desktop business.
- criddell 5y agoI really like JetBrains IDEs and I think they are based on Swing. Although I haven't used it for more than a decade, I still have some fondness for Java. I like Workflowy but am not crazy about it being in the browser. I contemplated writing my own outliner and Java + Swing is one combination I'm thinking about.
- kaba0 5y ago> State management and the custom capabilities when you need them are amazing JS devs just rediscovered MVC with some added immutability and that’s all. Hardly more productive. Also, I don’t see your point on custom capabilities - please add a slight modification to the date picker widget. Oh, you have to reimplement the whole thing with some insane number of divs, while you can trivially override certain parts of it in most desktop libs.
- mumblemumble 5y agoCompared to WinUI, I wouldn't exactly call web technologies' developer experience pleasant. This was pre WinUI, but a while back I worked at a shop that simultaneously maintained Web-based and WPF versions of an app. The Web version required 3 dedicated developers to maintain. The WPF version needed about half of one person's time, and had more features. I would say that the main thing favoring tools like Electron is entry costs. There are lots and lots of people who know who to do front-end Web development, and you can do a good job of supporting all platforms using free tools. Even if you grant me for the sake of argument that native GUIs cost less in the long run, there aren't a whole lot of people who have experience doing them these days, even fewer who have experience on more than one platform. Going that route also requires you to shell out for Macs and probably also Visual Studio.
- tasogare 5y agoYou wouldn't ask the question if you had developed both GUI apps on MS stack with VS and web apps: the MS dev experience is very good, while the web one is meh at best. C# vs JS, XAML vs HTML+CSS (debatable), desktop application model vs web one, VS vs whatever else, there is a lot of strong arguments in favor of the MS stack in that case. Microsoft is trying to port some of this magic with Blazor, with is quite liked from what I read here and there.
- interlocutor 5y agoIt is C# vs Typescript. Modern JavaScript is a very good language, and when enhanced with TypeScript's static types, it is every bit as good as C#. XAML and MVVM is all about two-way data binding. JS frameworks copied it at first. But now it is widely recognized that 2-way data binding is a bad idea. You can use for Web development too.
- pjmlp 5y agoIf it isn't a PWA, or integration with 3rd party, I rather not make my users suffer.
- criddell 5y agoIn another thread somebody mentioned accessibility issues. Web technologies are still embarrassingly bad at this compared to native toolkits. The other reason is that you care about resource usage. Web apps use more battery, bandwidth, and CPU.
- Blaiz0r 5y agoThats' a shame, and definitely something that the Linux ecosystem needs to address.
- pjmlp 5y agoI lost any hope when GNOME developers decided to kill Glade and started suggesting that developers should code raw .ui files directly. https://blogs.gnome.org/christopherdavis/2020/11/19/glade-not-recommended/ https://blogs.gnome.org/christopherdavis/2020/11/19/glade-no... Thankfully KDE is still around, but many seem to not appreciate the UI design tooling provided by Qt, because $$$$. So I rather waste my time on Earth on platforms that value good UI/UX tooling.
- zxzax 5y agoPlease don't assume bad faith. Glade was not "killed," there are technical reasons why Glade cannot be used for GTK4 (I can give more detail if you want). There is currently a new tool being developed by a Glade maintainer, catch this guadec talk later this month if you want to know more: https://events.gnome.org/event/9/contributions/191/ https://events.gnome.org/event/9/contributions/191/ Nobody is particularly happy about having to edit the XML directly but it's the best option right now until the new tools stabilize.
- shock 5y ago> Nobody is particularly happy about having to edit the XML directly but it's the best option right now until the new tools stabilize. You are proving GP's point for him: > So I rather waste my time on Earth on platforms that value good UI/UX tooling. The fact that that Glade was deprecated without a replacement being ready means exactly that GNOME does not "value good UI/UX tooling".
- zxzax 5y agoWhat you've said is really not correct, at all. For one, Glade is not deprecated in the sense that it doesn't work any more, it still works okay with GTK3, however it has a number of limitations that may make it difficult to use (which it always had, nothing has changed here). Two, a replacement is being worked on, I'm really not sure what your criticism is besides "go faster" which, I'm sure we all wish we could write code faster and have it work perfectly and do everything the first time, but that's not realistic. Edit: Just to be clear here, in my opinion the new tools will likely end up being a large improvement on Glade. Glade is a pretty old application that by design does a number of weird things that don't match current best practices, you can see some of them if you read the blog post that was posted above.
- badsectoracula 5y ago> nearly as easy and pleasant as WinForms with VisualStudio Check out Lazarus: http://lazarus-ide.org http://lazarus-ide.org It is WAY easier than WinForms. WinForms' VS "integration" feels as if they started with what Delphi 1 could do back in 1995 or so, implemented most of it and then decided that is enough. Lazarus' GUI tools are way above and beyond anything WinForms can do and the underlying LCL is crossplatform using native widgets wherever possible with backends for Win32, Gtk1/Gtk2/Gtk3 (though Gtk2 might be the best ATM), Qt4/Qt5, Cocoa and a few others (Carbon, fpGUI and some Amiga toolkit). Here is a video from 3 years ago where i make a simple sliding image puzzle game under Linux using it: https://www.youtube.com/watch?v=s_01Xhd2EJM https://www.youtube.com/watch?v=s_01Xhd2EJM Also here is another video from 6 years ago where i make a 2D tilemap editor in Windows: https://www.youtube.com/watch?v=_3JgeIUo1X0 https://www.youtube.com/watch?v=_3JgeIUo1X0 And another video from ~10 years ago making a doodle app: https://www.youtube.com/watch?v=nZuddi3zR_0 https://www.youtube.com/watch?v=nZuddi3zR_0
- qwerty456127 5y agoPascal seems a way too vintage programming language (not nearly as handy as C#, let alone C# 5.0) and the IDE's editor isn't nearly as intelligent as that of VisualStudio (let alone with ReSharper). But it indeed seems the only of the kind truly cross-platform. The only close-enough alternative I found on Linux was QtDesigner+Python but it still wasn't that convenient. I adore people who code Lazarus (e.g. Double Commander authors - they have been doing an amazing job with visible progress and persistence all these years) though. Perhaps I'm going to dedicate some time to learn Pascal once, just for this. It would be easier if they had a seamlessly-compatible C++ version at least (like Delphi had).
- badsectoracula 5y agoKeep in mind that Free Pascal is not exactly the same as classic Pascal. The language has a lot of features you'd find in other modern (as much as Java and C# can be called modern nowadays anyway) object oriented languages. Things like classes, interfaces, dynamic message dispatch, properties with getters/setters, for with ranges, dynamic arrays, generics, a rich RTTI (though not as rich as managed languages - yet, it is work in progress - it is rich enough to do things like serialization, etc), etc. As for a C++ version, it would be useful (though i find Free Pascal a better language overall, despite its warts - the only thing i wish it had from C++ was 'const' and slightly more powerful generics, but both aren't that big of an issue and generics are improving anyway) but VERY difficult to do as i wrote some time ago here [0] and here [1] where i went into more details about the language side of things (C++ Builder has extended C++ to allow for Object Pascal-isms because VCL itself is written, like LCL/FCL, in Pascal, which for Borland was possible because they made both the Pascal and the C++ compilers). [0] https://news.ycombinator.com/item?id=15893362 https://news.ycombinator.com/item?id=15893362 [1] https://news.ycombinator.com/item?id=19882489 https://news.ycombinator.com/item?id=19882489 (note that the discussion was originally about using LCL from C++ so i also mention the alternatives - and how not having the rest of the IDE would end up with a worse wxWidgets since LCL isn't really designed to be used purely via code)