Hacker News new | ask | show | jobs
by PedroBatista 1873 days ago
Flutter is gaining serious traction because it relatively sane and *works well* in iOS, Android and (I think )Mac and Windows. You can actually make an application that looks decent and isn't a pile of shoehorned libs with an HTML engine.

I lost years waiting to have a decent way to develop desktop applications for Linux. After 20 years no one could get their shit together and both Mac and Windows ( yes, even Windows ) always had vastly superior desktop toolkits AND sane ways to package and deliver them to the mere mortals. Even when Microsoft seemed to fuck up everything they touched, Linux couldn't get their shit together.

There are many reasons for this and the other 2 had money to throw at this like it was free, BUT the Linux community never proved they can deliver a product, which in this case the customers were developers that have a job to do. A lot of lectures, morals and programing tricks, but never a product to be used by others. ( I'm talking exclusively about GUI toolkits here )

It's simply not in their nature and it's OK, but don't cry about when some evil conglomerate rolls up in town and gets all the action.

9 comments

I think you got things wrong because there is no such thing as Linux community neither a Linux community building a product for customers, in your case, developers.

What you call Linux community is actually several independent communities that build software for themselves and for others that fit in their community goals and the operation system that people usually call Linux is not a product but just a collection of independent softwares packaged by other independent communities to fit their goals and needs.

And these independent communities already proved that they are really capable to build and deliver high quality software that meets their goals and you can see their results in the most recent releases of Gnome, Plasma, Linux Mint and many many others.

If you need any software to fit your needs you should just find a community that has the same needs that you or find a company that sells what you need.

Or you can build your own sane toolkit and share it with your own community too.

But just look at Gnome, which is probably the most widely used Linux desktop. Until Gnome started Gnome 3 it was something like a nice replacement for Windows 95..XP. But then they crippled the UI, decided what the user really needs and removed all the rest. By taking pointless inspiration from touch devices and macOS they made things even worse. I really liked Gnome, but I've given up.

The other problem is that there isn't THE Linux desktop what makes building GUIs for Linux hard. Yes, I know, it is the year of the Linux desktop, but I fear it will not work out this time.

Join the MATE community then, or Xfce if you like having GTK 3.
wasn't mate ported to gtk3 as well?
Mate was fully ported to GTK3
What you said is correct but thats what even the commenter means, he explicitly talks about the GUI side not linux community on the whole. Lets accept that GUIs built or made for linux are not the best in terms of UX. I regularly find the linux software have the worst UI (GIMP top of the head). Unless its an electron app tho, when the UI is consistent. I also understand that its a community/solo developer effort. But, if linux wants to be a viable Desktop alternative, its time linux developers think from user perspective or bring in some UX designers to improve GUIs, or standardise a GUI toolkit/framework, which can be used to build upon by flutter or whatever. If linux wants to stick to server and Terminals then its solid.
Counter-opinion: Most programs I ever installed from my distros repository had a reasonable, good gui experience. I once set a gtk theme which I find pleasant to look at and configured qt to adapt to it as well, no idea how they do it but it works great.

As a non-professional user of gimp, never touched photoshop in my life, gimp does all I ever needed so far and never disappointed me. I edited some vacation photos, created a few humoristic images for banter with my friends, captioned some reaction pictures for online discussion. I don't understand why gimp is said to have such a bad ui, it's easy and efficient to use in my eyes.

Also yes, the ui of electron browser based "apps" is "consistent", but it fails to integrate with everything that uses the gtk theme that I like, disregards what my window manager tells it to do window-decoration wise and is sluggish when used with picom. In addition to that it makes my laptops fan spin loudly. Programs using electron provide a user experience much worse than even a badly done curses ui. Given that those programs are often provided by businesses where "ux-developers" may work, it's probably for the best if those people don't influence the gnu/linux ecosystem in the future.

You see, "linux developers" view their programs from a user perspective all the time. You may think they don't because you have some expectancy that the user has to be your average mom, dad or ten-year old child, but thats wrong. The programs are developed foremost with the developers interest in mind and may satisfy others who have similar intentions. "linux" doesn't want anything. The parent comment already explained that.

"Linux" left server and terminal exclusivity a long time ago.

I don’t think so. I feel that GTK is pretty boring and won’t last long. Sorry if you got offended.

Also, with the development of WASM most of the stuff we do on our desktop will move to browsers and we can use the best UI ever with CSS on browsers.

> I feel that GTK is pretty boring

And for a software library, that's a good thing

> and won’t last long

Don't worry, gtk is 23 years old. It will last long enough for whatever you're trying to do, certainly longer than the javascript framework of the week.

> Also, with the development of WASM most of the stuff we do on our desktop will move to browsers

Nah. Webassembly can do some impressive stuff, but when you compile stuff to a binary blob you might as well do it for native code. Will run faster and feel better

> and we can use the best UI ever with CSS on browsers

My whole post was about why the browser ui is inferior to native applications. You should at least try to justify your position when writing up an answer in a discussion.

You give the tautological answer. All you say is true.

Parent was saying that the Linux model has failed spectacularly to deliver the software they needed.

Possibly there are categories of software illsuited for development by donated time from loosely coordinated volunteers.

OP's comments apply just as well to the Linux communitIES.
> and works well in iOS, Android

from what I know, Flutter is still unusable on iOS because they haven't found a way to fix the extremely janky first load (after install, after upgrade, after reboot) animations.

This problem appeared more than a year ago when Flutter made the switch from OpenGL to Metal on iOS.

> Flutter is still unusable on iOS

Flutter is actively working on the bug you're referring to, and I think you're valid in bringing this critique of the jankyness of animations on first run, but the large number of Flutter apps currently deployed clearly proves it is very usable on iOS. You have to workaround that jank, which is extremely frustrating, but I wouldn't write off the entire platform for it. It will be fixed.

There are also tons of Cordova applications currently deployed and I bet noone over here feels in love with them.
If you're going to say that there is no "decent way to develop desktop applications for Linux", I'd at least expect a discussion about why you don't think Qt is such a way. My experience with it is that its an excellent cross-platform toolkit, has libraries already installed on many/most Linux desktops, and can run on Windows / Mac to boot. Qt is also not "a pile of shoehorned libs with an HTML engine".

Additionally, Qt has bindings most major languages. I have found the Python bindings (PyQt) to be quite good.

>don't cry about when some evil conglomerate rolls up in town and gets all the action.

ok but also don't cry if they drop support for it after 18 months and your app dies.

Exactly, and with all that risk Flutter still manages to win, that's how screwed up desktop Linux has been.
It's a FOSS framework built on top a FOSS language ( Dart). Even if Google "drops support" ( as if they support Flutter or Dart), there will probably be a fork, and even if there isn't, that won't stop all the already developed and deployed apps.

Furthermore, Google is using Flutter internally and some of their apps are getting rewrites in it ( like Google Pay); it's unlikely they'll drop it.

Blender is pretty successful product. But I agree, all UI toolkits that are available right now suck. Flutter may turn things around, not fan of it needing a new language however. There's reason why react and react-native are popular as well.
> works well in iOS

Many people would disagree with you.

Hard to assess how much of this is Google's fault, or anything that can be dealt with by anyone.

Do folks have some examples of non-native iOS platforms that do have flawless no-lag 120Hz display?

It shouldn't be non-native, that's the problem. The best apps are always native ones. They make the most of the available APIs, fit in the OS the best both graphically and technically, and are the fastest.

If it has to be cross platform, something like React Native which leverages system controls would be a better approach than flutter which draws its own controls. But even there you will have to deal with a lot of translation due to it being JavaScript.

Are you proposing that iOS might be so broken it's impossible to flawlessly copy a handful of screen-size rendering buffers at 120Hz? Because if you can do that, then it's possible to make a flawless no-lag non-native 120Hz UI.
I don't know if you can even access the screen at such a low level on iOS, I think for sure you'll have to go through a middleman to get pixels on the screen.
Sure, you have to go through a middleman. Does the middleman stop you from copying a texture to the screen?
Of course, there is much more to a good application than just how it looks.
There isn't any reason why an application can't look good _and_ have good functionality, reliability etc. As much as developers may like to assume that looks are irrelevant, they are for quite a lot of non-technical consumers/customers.
I know it's sacrilege, but you could build it in Electron. It is an HTML engine, but it is certainly not a pile of shoehorned libs.
> You can actually make an application that looks decent and isn't a pile of shoehorned libs with an HTML engine.

As if desktop OSes aren't full of "shoehorned libs" and non-native rendering engines among other cruft...right down to standard i/o interfaces that all processes use, which are based on the idea of a Teletypewriter.

> I lost years waiting to have a decent way to develop desktop applications for Linux. After 20 years no one could get their shit together...

That's funny because after using an Arch based desktop system (Manjaro) for a few years, I'd never go back to the Windows/Mac way of doing things on my main workstations. Imagine having to search the web to find a download page and/or get walled into someone's idea of a garden in order to find apps? Yuck!

And what apps exactly am I missing? Photoshop? Because when I moved to Linux every app I needed from Windows or its equivalent was already here - Chrome, VS Code, Beyond Compare, Android Studio, Gimp, Pinta, LibreOffice, Postman, Thunderbird, Slack, Spotify, Discord, OBS, FreeRDP, VLC Media Player and the list goes on... Barrier, a decent Notepad replacement (Mousepad - which is better than Notepad), MySQL workbench, Azure Data Studio (for SQL Server), etc. etc. etc... All that and my OS stopped getting in the way of me doing things like Docker, Node/NPM, bash scripts and many other such things that are bolted on and poorly supported in Windows/Mac.

I guess when you argue with people who think the Mac desktop toolkit is any good...well I don't expect to get anywhere here. I mean, the fact that you pretty much have to use Objective-C or Swift to even interface with them is already a huge detriment. Once you get past that you only have to deal with the normal missing features and anti-developer stuff that Apple throws at you. I'll take Win32 and C# any day over that garbage, but beyond that - I love HTML for desktop apps. The rendering engine behind Chromium is the most advanced in the world and it can do things that desktop toolkits couldn't dream of offering.

> BUT the Linux community never proved they can deliver a product.

The only reason a quarter of developers are on a Mac is because Linux laptop drivers aren't always great. It has absolutely nothing to do with GUI toolkits or any perceived lack of apps. It's so easy to build apps for every platform now with Electron - the vast majority of people don't care what their desktop apps are built on and that's why Electron is pretty much eating the world, not Flutter.

> It's simply not in their nature and it's OK, but don't cry about when some evil conglomerate rolls up in town and gets all the action.

Yeah, I'm sure people will complain that there's a new way to build apps especially if it's perceived as "better" than Electron (which I doubt it will be), but I guess we'll see. Currently I there aren't any popular Flutter apps and none of the desktop software that I see people use at work were built with Flutter.

Photoshop and Gimp are worlds apart. If you're not a power designer/user, GIMP is horrible to be part of your workflow. Depending on the user( mostly developers). Linux in its current state is a NO for the people who want AAA Games and Adobe/Affinity Toolset. And many of the apps you mentioned are Electron Apps which are what commenter mentions about. Dont get me wrong but usability/readability of linux way apps dont come anywhere near other OSs because they're primarily designed by developers not design teams. I dont blame them. But to be a mass desktop alternative, linux has some climbing to do.
> Dont get me wrong but usability/readability of linux way apps dont come anywhere near other OSs because they're primarily designed by developers not design teams.

I think this claim harms your overall point (which I agree with). I can't think of any Linux programs (other than Calibre) which I have serious problems using. Furthermore, they tend to be extremely fast because they're very lightweight. The entire VLC package from my distribution is only 13 MB, and VLC is a rather large program by Linux desktop standards. Even Gimp is extremely simple and intuitive to use (to anyone who isn't a complete noob with graphics concepts), it's just extremely lacking in features and polish compared to Photoshop.

If you stick with the point that AAA games and Adobe are still a "no", you have a fine point. I've found that 99% of the games I want to play are actually available for Linux, these days, but that probably speaks more to my tastes than anything else.

Gimp is certainly not the best, which is why I use Pinta for simple workflows. If there's some feature missing from Pinta, I use Gimp.

> ...usability/readability of linux way apps dont come anywhere near other OSs...

As a web dev - almost all of the apps that I needed from Windows were on Linux and the usability is exactly the same.

Personally, I don't care if Linux is ever used by the masses though. I'd probably prefer if it wasn't. I also don't care if AAA games ever come to Linux. I keep Windows machines around for that. I also have Macs for doing stuff with Apple iThings.

There is no obsession within me to do everything on the same machine. I don't need my phone to do stuff that my desktop does. My laptop is used for meetings and has almost no software installed on it. My Windows machines are used for entertainment. My Linux machines are for work. For devs, if you really, really need Photoshop you can run it in a VM. I don't see the big deal with that - it was a selling point for Apple's Intel Macs for a long time.

So, outside of AAA games (which devs largely don't need for work) and Photoshop - what am I missing?