Live data from Hacker News

Flutter desktop shells

github.com

281–290 of 322 posts

Re: Flutter desktop shells

#281

Earlier quoted context omitted.

> There's a reason OO and UI have been married together for decades. People repeat this a lot, that OO goes with UI, but I don't think it's actually true, and I think e.g. React Hooks and immediate mode GUI in general demonstrate that it's not true. OO has been coupled with UI out of inertia, not because OO has unique strengths when applied to UI. Sum types are a primitive language feature, akin to product types, whi…

> People repeat this a lot, that OO goes with UI, but I don't think it's actually true It is evidentially true. Thousands of successful applications and a billions of lines of UI code have been written in object oriented languages. It does work and it can't be that bad if that's continuing to happen even after the emergence of other alternatives. Whether there are better ways is a good question, but I think it's pret…

First, I just want to say that I use Dart pretty regularly now and enjoy the language. I don't want to come across as overly negative; Dart is a solid language that's made web programming a lot more fun for me. So thank you, and everyone else on the Dart team for the hard work!

I just want to address these lines:

> Thousands of successful applications and a billions of lines of UI code have been written in object oriented languages.

> More code is written in languages doing subclassing every day than in languages with sum types. Despite the fact that sum types have been around since the 70s. You have to have a very uncharitable opinion of all of your fellow programmers to believe they've all been getting this wrong for decades.

I agree that there's a huge amount of code out there using subclassing and not sum types. I'm not disputing the utility of subclassing; I just think the analogy to arithmetic is compelling, in that a closed sum type is a more primitive notion than open ended subclassing. It's easier to describe what a sum type is than what a subclass is; sum types have a smaller impact on a type system than subclassing. Pretty much any metric you can think of, sum types are just simpler, and more widely applicable. Any time you are describing a data structure, an ADT is immediately useful; subtyping may or may not be useful and is always more complicated. It's very difficult for me to understand how anyone could possibly say subtyping is on the same level as a basic operation like addition. Subclassing may or may not be nice but sum types are a primitive in a way that subclassing simply cannot be.

I don't know how to break it down more than this: we already have multiplication of types, and everyone accepts this as a primitive. Well, you can also do addition of types! Multiplication, addition, a neat little pair, just like algebra class[0]. Subclassing is way more complicated than this. That's it, that's a bullet proof argument as far as I'm concerned.

I suppose I do have an uncharitable opinion of mainstream programming languages, because I do think they've been getting this wrong for decades. It's nothing personal, it's just that industry has other concerns besides how clean their languages are. My browser being written in C++ is not an argument in favor of subclassing, though. You can build anything out of toothpicks if you're paid enough.

[0]: https://typedefs.com/introduction/

Re: Flutter desktop shells

#282

Earlier quoted context omitted.

Is Google any worse than some "benevolent dictator for life" like other open-source languages?

Yes. They drop projects all the time, have numerous conflicts of interest, and it's close to impossible to talk with them

Except they don't drop many more projects all the time, Funny that people here argues it should drop Dart. I am glad they are sticking to it.

Re: Flutter desktop shells

#283

Earlier quoted context omitted.

> So (3) is hardly better than (2). As someone developing GUIs with Qt bindings for Python daily, and has been for the past 8-9 years, I respectfully disagree. Understanding of the underlying types and memory management is rarely an issue (e.g. once every 3 months), and when it is it's incredibly straightforward (e.g. maintaining reference to a window you've just created else Python garbage collects it for you). Topi…

Putting aside the many resource problems with Electron apps, can you achieve the level of user experience that the Electron folks do? I see Electron devs being asked to match the slickness of an existing website with similar delivery time and productivity. You don't seem to be able to get close to that with native APIs, API frameworks, or higher-level tools without a lot of work. When you remove these UI and delivery…

My experience is that every Electron app I’ve ever tried has a terrible “user experience” compared to average competently made native Mac apps. Their core UI widgets are non-standard for the platform and are full of bugs and inconsistencies. Latency is through the roof on all sorts of common interactions. They don’t integrate well with standard expected OS features/services. They burn massive amounts of system resources.

From my perspective as a user, Electron apps are for companies who don’t really care much about quality and are too cheap and lazy to write native apps. YMMV.

Re: Flutter desktop shells

#284

Earlier quoted context omitted.

Except if Google gets bored with Fuchsia, like it has with tons of projects. Heck, from what you say, it already got bored with Android -- if Fucshia is to replace it in say 2022, it means that Android just lasted around 15 years as a platform.

15 years - so only four years less than MS-DOS ('81 - 2000) by which point it was considered hairy and terrible? I'm no big fan of Google, but 15 years is plenty long enough. And really, Android is definitely struggling and showing its age by this point.

>Android is definitely struggling and showing its age by this point

I have the opposite viewpoint on this. I've worked on mobile the last 5 years or so, and dedicated native Android the last 2.5 years. The last year or two have been dramatic revolutions in the Android developer experience, from my perspective. Things like ConstraintLayout and full Kotlin support with ktx have opened up a new world for me compared to the state of the art several years ago.

Then you look at companies like Peloton using large form-factor Android devices in their core products, and Samsung DEx using Android as a seamless mobiledesktop computer.

To me it seems like Android is just hitting it's stride. Who knows though, it's Google.

Re: Flutter desktop shells

#285

Earlier quoted context omitted.

Sure, technically. The same way Chromium is technically open source. Funny how everything in the web browser world ends up how Google wants it regardless.

What's stopping you from forking and making changes you want? Literally nothing

Nothing. The issue is that your changes don’t actually do much when the web moves on without them.

Re: Flutter desktop shells

#286

Earlier quoted context omitted.

> People repeat this a lot, that OO goes with UI, but I don't think it's actually true It is evidentially true. Thousands of successful applications and a billions of lines of UI code have been written in object oriented languages. It does work and it can't be that bad if that's continuing to happen even after the emergence of other alternatives. Whether there are better ways is a good question, but I think it's pret…

First, I just want to say that I use Dart pretty regularly now and enjoy the language. I don't want to come across as overly negative; Dart is a solid language that's made web programming a lot more fun for me. So thank you, and everyone else on the Dart team for the hard work! I just want to address these lines: > Thousands of successful applications and a billions of lines of UI code have been written in object ori…

> I just think the analogy to arithmetic is compelling, in that a closed sum type is a more primitive notion than open ending subclassing.

I agree, sum types have a real beautiful elegance. But I often wonder if that's some sort of "appeal to mathematical aesthetics" fallacy. When I see, for example, painters deciding what brushes to use, I don't see them choosing brushes whose diameter follows the Fibonacci sequence or something.

Simplicity is a virtue because it lowers the cognitive load of a language. I don't know if mapping something to arithmetic tells us something actually profound about the productivity of a language feature, even if it gives me a little shiver of delight when I think about it.

> Any time you are describing a data structure, an ADT is immediately useful

For what it's worth, I often run into problems where I think I can map something to a nice set of ADTs but then it ends up still having ugly corners. As elegant as the language feels, when I use them in practice my code is still awkward sometimes.

> It's very difficult for me to understand how anyone could possibly say subtyping is on the same level as basic operation like addition, one of them is clearly a more basic idea.

Subtyping is set theory, and sets are obviously more fundamental than arithmetic! :D

> we already have multiplication of types, and everyone accepts this as a primitive.

Well, actually, lots of languages don't have tuples and records/structs aren't simple product types.

> I suppose I do have an uncharitable opinion of mainstream programming languages

I wasn't talking about languages I was talking about people. There are languages out there with all of the features you describe. Yet millions of people are choosing other languages. You must have an uncharitable view of those people if you presume that all of them are making a choice that goes against their own self-interest to be happy productive programmers.

Re: Flutter desktop shells

#287
post #49
post #35

Earlier quoted context omitted.

iOS perf on Flutter has been broken for a while: https://github.com/flutter/flutter/issues/813 https://github.com/flutter/flutter/issues/28113 I wish the team would prioritize this more, but I guess that's Google for you.

Non-charitably, Google probably has an interest in not prioritizing iOS. Realistically, I'd imagine that Google prioritizes less there because a lot of preference for iOS dev is to just go full native. I do wonder how much Flutter is used by Google for iOS apps though then.

Doubt it. Google is interested in supporting iOS, from what I see, but they don’t own the OS and it’s really hard getting the details right.

Re: Flutter desktop shells

#288

Every so often for the past several years I'll go evaluate options for cross-platform desktop app development and I always come back with an enormous handful of options and all of which fall short on some measure. I would really think that this "problem" would have a great solution by now. But I think most of the developer attention is on web for obvious reasons (more ease, more conducive to mistakes/novices/etc). Ho…

Cross platform desktop app development will always fall short. Not all platforms have the same user interfaces/paradigms. What is the Windows equivalent of the OSX dock? What is Linux's equivalent? Most cross platform frameworks solve that kind of problem by letting you write platform specific code. The problem there of course is that you're just writing multiple apps again, often in a non-native or at least second c…

Lazy cross platform development will always fall: no solution will do the work of having to think of how your software will look on other platforms. With a bit of work, though, you can minimize this duplicate effort.

Re: Flutter desktop shells

#289
post #29

I just checked out a couple of Flutter’s showcase apps on iOS. The scrolling in the Hamilton app was atrociously stuttery, just really broken. This is on an iPhone X. Then I opened it again and it was fine. Seems like it was doing some initialization work that was blocking the main thread. Not sure if it’s Flutter’s fault but I never see broken scrolling like that on native apps. The other app I tried was some journa…

https://n8.to/ that's a brand new app still in development, but I think it's worth seeing what it's capable of

Beautiful!

Re: Flutter desktop shells

#290

Earlier quoted context omitted.

I hate using services and having my data all on some remote service w/ little options for privacy and safety/backup, etc. How would non-tech users handle backups?

By copying a data file to a USB flash drive?

Anecdotal, but I don’t think many non-tech users have used a flash drive in the last couple years.
Post reply on HN