Stop Building Closed Ecosystems

158 points by LinguaBrowse 2 years ago | 166 comments
  • PaulDavisThe1st 2 years ago
    The native side of this has long been addressed by cross-platform toolkits including but not limited to: Qt, GTK, FLTK, WxWidgets (note: all FLOSS, at least optionally).

    Alas, web development "decided" to completely reinvent the wheel for all this stuff, leading to a new generation of heading-to-native toolkits derived from browser-based technologies, such as Electron, React Native and Flutter.

    Unless you believe there is any mechanism to force a single cross-platform GUI toolkit on all developers - a belief that would make you basically insane - the reality is there will always be N different options for cross-platform development, depending on (a) which platforms you intend to cover (b) your own development history (c) subjective preferences (d) specific functionality that may be limited to specific toolkits.

    Does it matter if N is 10 instead of (say) 5 ? I don't know.

    Does it matter if the N is segmented into "derived from 90s widget models" versus "derived from 2010's web models" ? I don't know.

    Is there any chance of a single toolkit that covers native desktop environments (which continue to be important for creative apps, high performance apps, browsers etc.), native mobile and browser based apps? I don't know, but it seems ... unlikely.

    • Devasta 2 years ago
      If quality mattered then maybe the other toolkits would have a chance, but no one is looking at the web for that, they are looking to the one advantage that the web has that the others cannot hope to beat: They work around bureaucrats. At least in the enterprise, with desktop applications you need to deal with IT security losers who freak out when you ask that computers actually have useful applications, and god help you if you need to get a port opened.

      Forget that, just shove everything down port 443 and download the application over and over again until the end of time.

      • ttttt444yeak 2 years ago
        How did things end up this way? I'm massively frustrated by the stupidity of our security team and it gets worse each year. And I've tried to explain this stuff about web apps exactly like you just did but it never quite gets through, and when it does it gets a response like "well, we should probably find a way to restrict web apps as well".

        I know for a fact that none of the people doing systems administration that install this junk endpoint management software actually want to install it. And it's laughable that corporations can simultaneously claim to be implementing zero trust, while at the same time giving crowdstrike software more trust than anything ever had before everybody decided they wanted to chase buzzwords. It can take weeks for me to get a new hire set up with WSL right now. If I didn't like the people I work with I would have jumped ship a long time ago.

        Security teams have managed to threaten and bully their way into having more power than anybody else in IT. All the big stories about hacking is certainly part of it, but honestly I don't think that fully explains it. If I was a CIO paying an enormous amount of money for endpoint management and then saw something like solar winds happen, I'd probably have fired everybody on the security team that advocated those sorts of security strategies.

        In my mind, security is something that should happen deep in the backend and be handled mostly by programmers, DBAs, and the admins that handle application servers. Once the data has left those environments with somebody it shouldn't have you have already lost. No hacker has ever said "I breached the database, but then got stopped from exfiltrating data because somebody made it so the USB sticks don't work".

        • polynox 2 years ago
          Security teams don't bear the costs of reduced productivity from saying no, but bear all the blame if they make a wrong decision to approve something. So they're heavily incentivized to say no.

          Like many principal-agent problems, it requires someone appropriately situated to weigh the costs and benefits.

          If that doesn't happen, it gets borne by someone, usually shareholders who pay in reduced profits and eventually capital destruction as these companies get ossified and disrupted.

          • Devasta 2 years ago
            "You cannot be blamed for bad decisions if you make no decisions".

            Far easier to say no to everything, that way either your manager takes the blame when they overturn your decision or your are blameless when Shadow IT takes over.

            That, and it allows you skip the troublesome business of userstanding user needs.

            • makeitdouble 2 years ago
              > "I breached the database, but then got stopped from exfiltrating data because somebody made it so the USB sticks don't work".

              It might be a generational thing, at some point I know people actually had Napster running on their work computer, or were torrenting porn movies. That's how the whole Metallica thing happened. That feels absurd to me in today's corporate env., for better or worse the work/private split has really come a long way.

              Malware spread by physical media was also a thing for a while, it's not just about the getting stuff out, a lot of the restriction on USB is not getting things in.

              PS: on the "why" of all that...I'd say Windows. Platforms all have their weaknesses, but Windows opened the doors wider than anyone else IMHO.

            • RodgerTheGreat 2 years ago
              This is also one reason why users in corporate environments solve so many problems with Excel: it's a powerful, easy-to-use tool for making custom "applications" (within certain constraints) that is already installed on your work machine. No approval process, no procurement, no IT staff involvement; just users getting things done with what they have.
              • mardifoufs 2 years ago
                Even in terms of quality, the web beats most of those platforms. Especially now, and especially when compared to GTK or Wx. You'd actually have an easier time building a native-like app using web technology than GTK or Wx.

                I guess that wasn't the case a decade back when the web for everything trend started, so your point about ease of use/bypassing stupid security policies is still right about how the shift started, I think. But that eventually led to a steady improvement.

              • Waterluvian 2 years ago
                I don’t necessarily disagree with any of this. But the toolkits first listed are all pretty poor if you care about aesthetics and UX.

                It’s like making furniture with framing lumber and OSB. It’ll work fine and be durable. But it just always feels not great. They generally feel, to me, a semitone sharper than portability with 90s Java applications.

                • PaulDavisThe1st 2 years ago
                  For some classes of applications, all the developers want is a 2D surface (call it a canvas if you like) to draw on and then they do everything else themselves.

                  This leaves several notable areas of UI/UX to address:

                  1. menus 2. file browsers 3. text entry 4. notification/tray integration 5. window management

                  These are where "the native experience" (i.e behaving according to guidelines or rules laid down by the platform controller) is really felt.

                  Yet they have very little to do with the "interior" (in-window) behavior of the app at all, despite being critically important.

                  If we're going to continue with the construction metaphor, I'd say it's more like creating a lovely house that has unusual door handles, windows that open in strange ways, and a different LED lighting temperature than you're used to.

                  • Waterluvian 2 years ago
                    As you say, I think you’re right for many classes. But in other classes, apps are entirely widgets. I’m looking at the first Electron app in my quick bar: Spotify, and thinking about how to make it portable without being Web.

                    It’s all widgets, no canvas. If you made it in any of the above it won’t feel Spotify it’ll feel Qt or whatnot. For Linux and FOSS types this is usually fine. It’s sure fine for me. But for the vast majority of users it isn’t.

                    And I don’t think anyone wants to write the application natively thrice.

                    When it comes to “mostly canvas” applications I find myself thinking about using game engines. They’re portable and basically that: a canvas with some basic UI support.

                    • giantrobot 2 years ago
                      The differences aren't always surface level aesthetics. Say in a toolkit the text input widgets don't support pasting content. An app using it will behave materially different than any other on the system. Not only that it might look ok but lack functionality necessary to the user.

                      This is not hard to imagine since various UI frameworks have long had issues with different paste board systems on Linux.

                    • PaulDavisThe1st 2 years ago
                      > But the toolkits first listed are all pretty poor if you care about aesthetics and UX.

                      You think that this is pretty poor in terms of aesthetics and UX?

                      https://musescore.org/en/4.0

                      Written with Qt. For at least 3 platforms.

                      • bombolo 2 years ago
                        How can they look ugly when they just use the system look by default and can be themed to look like anything at all?

                        Have you ever used any of them?

                      • k__ 2 years ago
                        Every now and then I meet a Qt dev who's whining about how Electron stole their lunch.

                        If something like Electron stole your lunch, Qt obviously had serious problems.

                        • spion 2 years ago
                          There is still an opportunity for Qt to win in this area - they should make it really easy to create (well documented) bindings for new languages (that integrate with their runtimes)
                          • bombolo 2 years ago
                            Do you also meet chefs complain about how mcdonald takes work away?
                          • hsn915 2 years ago
                            > Unless you believe there is any mechanism to force a single cross-platform GUI toolkit on all developers - a belief that would make you basically insane - the reality is there will always be N different options for cross-platform development, depending on (a) which platforms you intend to cover (b) your own development history (c) subjective preferences (d) specific functionality that may be limited to specific toolkits.

                            The problem is not forcing people to do this or use that.

                            The problem is the quality and development experience is just _so bad_ that people are resorting to other options.

                            Don't get me wrong, the dev experience for web is terrible, but it's still light years ahead of legacy toolkits like qt/gtk/etc.

                            • camgunz 2 years ago
                              I think they're roughly the same in terms of dev experience. Major toolkits have good bindings for dynamic languages like JS and Python so C++ isn't a barrier. I think mostly what happened was Electron's pitch of "turn your web app into a desktop app almost for free" meant that web devs could stick with React rather than learning wx or Qt. There were a lot of web devs and web companies so this meant a lot of Electron apps where once there might have been native apps.
                            • scarface74 2 years ago
                              The native side of things has been address very badly by cross platform tools. I don’t want lowest common denominator shitty cross platform apps.
                              • PaulDavisThe1st 2 years ago
                                So what do you want?

                                "Highest common denominator" doesn't make much sense in this context - it's functionally equivalent to lowest common denominator.

                                You want N different implementations, 1 per platform?

                                You think the cross-platform toolkits could be better? Do you have an explanation for why they are not?

                                • klodolph 2 years ago
                                  There are multiple explanations for why cross-platform toolkits are kind of awful. I'm treating "cross-platform toolkits are kind of awful" as an observation here, because I've used them, I've worked with them. And my measurement for awful is poor UX, relative to native apps.

                                  Different platforms are just slightly too different from each other to make it work well. So you end up with a bunch of cross-platform apps which are built on things like Electron. You more or less reject platform expectations for how apps should work, how they should look, or how they interact with other apps / other parts of the system.

                                  You end up with stuff like Spotify or Discord.

                                  Thing is--if I'm getting work done with this app, if I get paid for working with it, I'm going to pay for a better experience. Instead of using GIMP, I'll use Procreate, Photoshop, Pixelmator, whatever. Maybe I'll use Notepad++ or BBEdit. Maybe I'll buy Pro Tools despite its cost, or maybe I'll buy a Mac just so I can use Logic.

                                  It is costly to just reimplement your UI for multiple platforms, but that's where the "closed ecosystems" come in. React Native is kind of a compromise between the Qt-style approach (cross-platform UX) and the native approach. You're given a framework which works with multiple native toolkits, and you can have a mix of cross-platform UI code and platform-specific UI code.

                                  • scarface74 2 years ago
                                    I want native apps on my platform of choice that leverage the native capabilities of that platform. That’s the entire reason I chose one platform over the other. Mac users complained about Word 6 forever ago when MS tried to use a cross platform toolkit and Apple’s Windows app were just as bad.
                                    • culi 2 years ago
                                      Look at WebGPU. Still a WIP, but it shows that you really CAN provide a performant cross-platform... platform if you're really thoughtful about performance
                                    • gjsman-1000 2 years ago
                                      Then, on the other hand, you'll rarely see Linux ports. Lowest Common Denominator apps have been a blessing for Linux users - we would have never had Visual Studio Code, Slack, Postman, and who knows what else otherwise; and you can't tell me any of their developers would've done the work to port everything to GTK or Qt otherwise.
                                      • scarface74 2 years ago
                                        Isn’t that a problem that Linux only has crappy cross platform apps that are not as good as native apps?

                                        Why would I run a Linux box as my daily driver instead of a my Mac that is real Unix, has a 16 hour battery life and I can get great polished native apps?

                                  • rektide 2 years ago
                                    This is my main fear with Flutter CanvasKit & "Towards a Modern Web Stack". https://hn.algolia.com/?query=%22Towards%20a%20modern%20web%...

                                    They are using canvas & webgpu, & making their own rendering engine (borrowing Skia) to take web apps from part of a participatory open ecosystem where extensions & user-agency work, & turning the page into a giant animated screen.

                                    The best open ecosystem we have on the planet is being body snatched by the closed-as-can-be native app world.

                                    The post here is a more developer-centric view of open & I think that's so valuable. It feels like we really used to have a more share-early share-by-default spirit.

                                    I think that's one thing that kind of agitated so many folks about webdev, is how share-centric it was.

                                    We didn't have established experts, there were no well established patterns, everyone was collectively figuring it out. Finding libraries that might work for you or doodling around with an idea was lead by sensibilities fit & taste. Throw it against the wall & see what sticks.

                                    The web today has really become a far far far more hyperindustrialized system, with far more popular (not enforced) norms & conventions. The random lead devs at a company are no longer necessarily intrepid explorers navigating an open sea of possibility. Everything is more set. And we no longer have that spirit of it just being us in the room, of sharing by default. The expectation is there's very very smart far off people building libraries, and we're just working on our app. The mindset has shifted, the culture has shifted, in a way where open is no longer the collective exciting happening place that we are all a part of.

                                    • CharlesW 2 years ago
                                      > They are using canvas & webgpu, & making their own rendering engine (borrowing Skia) to take web apps from part of a participatory open ecosystem where extensions & user-agency work, & turning the page into a giant animated screen.

                                      This is effectively what Flutter does on other deployment targets as well, building a framework and high-level primitives on top of the host's low-level primitives, and in the process abandoning everything good about native frameworks and primitives for the sake of a Google-controlled runtime.

                                      It's why Flutter apps feel so janky and awkward, and the same will be true of the web runtime.

                                      • rektide 2 years ago
                                        It's going to run fine everywhere. It's going to work.

                                        As a native app strategy I think it's fine. It's immaterial, if it works. But on the web, it is damage. It breaks all user agency, wrecks all extensions, breaks accessibility extensions, prevents scraping. It's a closed world, and the web doesn't deserve this native app mistreatment.

                                        • CharlesW 2 years ago
                                          > But on the web, it is damage.

                                          I couldn't agree more.

                                          > As a native app strategy I think it's fine.

                                          It's fine in the sense that it doesn't damage open ecosystems in the same way that circumventing the web experience does.

                                          It matters if you care about the customer experience. Companies like McDonald's would likely see a significant bump in use and user satisfaction if they replaced their Flutter app with native apps.

                                      • LinguaBrowse 2 years ago
                                        I think there's potential in those ideas, if only they are not to the detriment of the Web (which is already working just fine).

                                        As an alternative to iOS and Android development, I welcome ground-up solutions as long as they can get text editing right. However, I bring that up as I can't see anyone ever making a ground-up text view as reliable as a browser or native one (consider CJK, RTL, and vertical text, and IME input) without a dedicated team spending years of work and closely examining each platform's equivalent.

                                        • nicoburns 2 years ago
                                          The Rust ecosystem (with cosmic text and parley) is well on the way to achieving this
                                          • yw3410 2 years ago
                                            Rust does well on the text-shaping and glyph rendering, but the rest of the ecosystem is still massively geared towards Windows and game development.

                                            I am rooting for Vello to succeed!

                                        • EnergyAmy 2 years ago
                                          The worst part of flutter's web stuff is that the quality is absolute janky garbage. They're trying to undermine an open ecosystem, and they don't even offer anything useful in return. It's like making a deal with the devil except instead of getting the thing you bargained for, you just get stuck with a pitchfork and also you lose your soul.
                                        • apsurd 2 years ago
                                          The main problem is who gets to decide on the one anointed approach. Diversity ends up being a good thing, and also makes everything more messy and more complex.

                                          Take your example of the Open Web. I wouldn't be in software without the Open Web. I hand-write HTML and CSS to this day! But many people hate the web stack. They hate the ergonomics and enjoy better ecosystem for nearly every possible thing implemented in the web. I think ultimately, that's ok and it's "worth" having competing standards, because the alternative is - pardon the dramatics - authoritarian.

                                          edits:

                                          > #2) Check for prior art first. The problem may have been solved before...

                                          I generally take issue with the statement "this is a solved problem". It ends up killing critical thought on the vine. I think everyone is better served thinking critically, and yes maybe something off the shelf is the right choice. But think critically, and freely, first.

                                          > #3) "be opened-minded to other approaches"

                                          contradicts the idea of building one-thing all-together no?

                                          • LinguaBrowse 2 years ago
                                            I think the point is that the decisions on direction shouldn't be made behind entirely closed doors by insiders. Outside input should be taken seriously, with invitation to dialogue, rather than chasing some narrowly-supported vision.

                                            As a web developer myself, I too am baffled by the folks who don't like the Web stack, but fine.

                                            And good points, I guess I wasn't too concrete on "unify on one approach" vs. "consider all options". So to solidify my thoughts, I do think diversity in approaches is a good thing. It would just be great if any parts could be shared so that others could iterate on the same idea.

                                            For an example of a missed opportunity for diversity, if only React Native had originally architected itself as Reactless Native + React, we could've had equivalents for each different renderer by now (e.g. Vue Native, Angular Native) based on that Reactless Native base.

                                            For an example of the merits of unifying on one approach, see Yoga Layout. Flexbox has proven to be an agreeable layout model, and because it's so solid (apart from where it varies from the spec, which I do grumble about) various different cross-platform projects have benefitted from unifying around it as a reliable building block.

                                            I guess my grumbles with Yoga's spec deviations echo your distaste for the "it's a solved problem" sentiment, too. Even established solutions should be open to improvement and evolution, and I had that partially in mind when talking about being open-minded.

                                            • culi 2 years ago
                                              > I hand-write HTML and CSS to this day!

                                              Yeah but... for your job? I'm sure we all do those side projects, but hard to imagine being able to do that on a complex multiple-member team project

                                              • Mezzie 2 years ago
                                                Not everybody who's coding is doing it in a tech company on a complex multiple-person team project. I'm a software mechanic: I do really small scale tweaks for small businesses (I mean SMALL - my current project is for a business with one owner and 2 employees), non-profits, libraries, etc.

                                                In those use cases, there can be good business reasons to do things this way: Part of my current project is building something where odds are there won't be another tech person around regularly and it needs to last for several years (the information is evergreen). For something I want to run for 8+ years with minimum fuss that doesn't require storing user data and that may need to be ported from LMS to LMS or eCommerce platform to eCommerce platform/won't be broken by updates (because again, no regular dev to maintain it and check compatibility), using basic HTML, CSS, and even vanilla JS can make sense. I can write something in HTML/CSS/vanilla JS and it will probably run in browsers until the heat death of the universe.

                                                • apsurd 2 years ago
                                                  I count writing JSX as hand-written as the child comment mentions. Also HAML in rails. I realize this perhaps is a fuzzy definition as we move along the spectrum of automation and abstraction.

                                                  What I mean to say is I still have a more-or-less 1:1 relationship with both HTML and CSS APIs to affect user interfaces. Like how do make round corners I need to know `border-radius: 100%`, or `borderRadius: 1rem`, etc

                                                  (And you're right, in all projects where "I have my way" meaning it's personal or in a small-group, I have the freedom to choose low-level vanilla primitives. Less so at work in large teams where everything is a build pipeline.)

                                                  • klodolph 2 years ago
                                                    I think writing a React component using JSX counts as "hand-written" HTML and CSS. Definitely when you're writing the low-level components that other stuff is built on.
                                                • s1k3s 2 years ago
                                                  I strongly disagree with most of the points in this article. Why does he blame small app developers for vendor lock-in? Why is everyone casually avoiding the fact that vendor lock-in comes from.. vendors? You think I want to rewrite the same app 3 times for it to work on Apple, Google and Microsoft systems? When is the last time these 3 major platform owners have done anything but locking you in their ecosystem?

                                                  Such a weird take on this, really.

                                                  • juunpp 2 years ago
                                                    I don't even know what the argument is either.

                                                    Vendor lock-in on behalf of Apple, Google, and Microsoft, sure. But then:

                                                    > but all frameworks are guilty. Electron, Capacitor, Tauri, Xamarin, Qt, NativeScript, the lot.

                                                    Well, these all solve entirely different problems. Different problems, different solutions. Not sure what the "lock-in" is here. It's like arguing that there is "lock-in" because one project is written in C# and the other in Javascript. Seems like stretching the concept of "lock-in" too thin.

                                                    > What I’d really rather see more of is standalone platform-agnostic modules

                                                    This is a false proposition. A phone is very different from a desktop. "Platform-agnostic" would mean a denominator so common that it isn't useful for anything. Again, different problem/hardware, different solution.

                                                    The rest of the post just devolves from there.

                                                    • Kinrany 2 years ago
                                                      > It's like arguing that there is "lock-in" because one project is written in C# and the other in Javascript. Seems like stretching the concept of "lock-in" too thin.

                                                      This is absolutely an instance of lock-in. An ecosystem grows faster when it can borrow from other ecosystems but doesn't allow doing the same. This is exactly the same problem: there is no good FFI, so we have to write M libraries times N languages.

                                                      • juunpp 2 years ago
                                                        I agree that M libraries x N languages is an absurd reality (and why I still write C), but "lock-in" to me suggests intent, and the situation you describe is more accidental, at least if you exclude corporate languages like .NET and such.
                                                    • akira2501 2 years ago
                                                      The sense I get is, things should be more open, but not too open, because then it would be harder to sell the app. They're hoping that a very unnatural state becomes the default because it would be more profitable for _them_.

                                                      It's a selfish take.

                                                    • ksec 2 years ago
                                                      I guess everyone goes through the stage of life thinking that Open System, or Cross Platform should be the norm. Java write once run everywhere in the 90s or earlier attempt like Smalltalk. But forgetting the lesson of Write Once, Debug Everywhere. Even if you had "open" Ecosystem completely built on top of Linux you will still have completing OS with different parts like UX, UI or windowing systems / rendering engine. So what you want is a single OS for everything and everyone. Then you run into the other sets of argument which I wont name here.

                                                      There is probably a reason why many working in Tech or specifically software is heavily leaning into certain political spectrum which relates to the above.

                                                      • mvuksano 2 years ago
                                                        I think about these frameworks as products. They are meant to solve specific problem for specific audience. I also think we need to start differentiating between different classes of developers. I think a good analogy is car mechanic vs mechanical engineer. when a car is made there will be a lot of need for mechanical engineering. Once it's on the road and needs to be fixed is when car mechanic comes into play. You need to decide whether you want to be mechanical engineering or a mechanic - skillet is very different.
                                                        • detourdog 2 years ago
                                                          I feel these complaints are misguided. If anybody thinks an Apple II was the good old days should lose their mind with this computer.

                                                          https://www.analog.com/en/products/max78000.html#product-ove...

                                                          This has all the freedom one could need and amazing computing power. If one needs a non-propriety way to reach iOS users use a webpage.

                                                          Nobody is stopping anyone from making the next big thing.

                                                          • dasil003 2 years ago
                                                            This is utopian thinking that disregards how software ecosystems actually work in practice. Take the opening sentence:

                                                            > In the world of mobile development (though likely also elsewhere), we sink so much engineering talent into making tools that are great within-ecosystem, but as we don’t bother making them available to other ecosystems, everyone ends up reinventing the wheel.

                                                            I get the frustration with software churn and substandard tooling when you have to code for multiple platforms, but this is a very hand-wavy admonishment. Leaving aside who "we" are and what our cross-platform responsibilities are for the moment, how would this even work? Different platforms have different capabilities. Cross-platform tooling will therefore always be more complex and less capable than platform-specific tooling.

                                                            One could then argue that we should consolidate platforms, which generally will be more efficient, but who will be responsible for this platform? Whether closed or open, you are now in a situation where one platform has to be all things to all people, and that means there will be tradeoffs that hurt someone. I'm a happy iOS user, but I'm sure glad Android exists because diversity is healthy.

                                                            Technology will always trend towards consolidation because bits are cheap and easy to move, and there's always an incentive to harness economies of scale. The problem is mono-cultures are brittle. Some amount of "reinventing the wheel" is just the cost of a healthy and diverse software ecosystem. The OA should be careful what he wishes for.

                                                            • asdfman123 2 years ago
                                                              Developers don’t like closed ecosystems for obvious reasons. But companies like them because they’re very profitable, if they can get enough users trapped in them.

                                                              Having an open ecosystem can often mean you have no moat around your business.

                                                              • solarkraft 2 years ago
                                                                Ecosystems interest me ("how do I get my product/feature adopted in a larger landscape?"). The following are some observations everyone could make, yet I see some companies (Microsoft in particular) struggling with it, so maybe it's not that obvious.

                                                                > The lack of interest in Unimodules taught me that it’s not enough to come up with an opt-in common standard.

                                                                It's a tough sell if it offers no immediate value to the developer. If there's no immediate value for the user or a big push, they aren't going to be asking for it either. This can turn into a vicious cycle Apple keeps avoiding and Microsoft keeps falling into.

                                                                > Given it’s far too late to convince each framework to redesign their native module interfaces from the ground up for compatibility, it may be worth exploring a top-down approach instead. That is, producing tools to translate modules from one ecosystem to another “whether they like it or not”.

                                                                That's the gold standard, IMO. Once you need people to do anything for your feature to work, your work becomes a lot harder. "If everyone would adopt it you'd see the benefit!" doesn't convince many users OR developers. By removing the requirement for developer opt-in, you're suddenly avoiding a huge part of the viscous cycle (no users because no devs, no devs because no users), which is a huge part of Apple's ARM success and probably a good part of Microsoft's ARM failure.

                                                                • brookst 2 years ago
                                                                  Developers care about modularity, flexibility, and reusability.

                                                                  Users care about unique value.

                                                                  Vertical integration and differentiation lend themselves to building something unique and valuable.

                                                                  • 2 years ago
                                                                    • 2 years ago
                                                                    • samsquire 2 years ago
                                                                      What upsets me is the waste of effort building the same things again and again. I would like to reuse solutions to problems I solved and use them going forward.

                                                                      Imagine if we were all building upon the state of the art at all times and upgrades were free and things don't break between upgrades.

                                                                      • butterfi 2 years ago
                                                                        Good luck with that. Developers love creating frameworks and new ways of doing the same things. You might as well complain about how movies keep using the same plots.
                                                                        • croisillon 2 years ago
                                                                          There are only two plots:

                                                                          (1) a developer creates a framework

                                                                          (2) web is more convenient than apps

                                                                          • rafark 2 years ago
                                                                            Actually I do complain about movies being very similar.
                                                                          • ipsin 2 years ago
                                                                            Content streaming is one case where I wish,wish,wish they were non-closed ecosystems.

                                                                            Make your offerings available via an API. Make the actual content stream with whatever DRM standards you (the "platform") need to feel comfortable.

                                                                            Let me wrap all my streaming services with a single platform, having decent search and ability for me to do automatic price arbitrage. Why rent on Netflix when it's free this week on Hulu?

                                                                            It could be so much better, but it's not.

                                                                            • hammyhavoc 2 years ago
                                                                              People invoke corps when discussing this problem, but fail to realize that publicly traded stocks only care about monetary value; that's why they're there. Any notion of bettering humanity or doing something sensible in terms of software is purely secondary. They're a business.

                                                                              Is it any surprise that tech is the way it is with this in mind? Is it frustrating? Absolutely. Is it as expected? Yup.

                                                                              • rafark 2 years ago
                                                                                Huh? Apple and Android (google) are for profit companies and are literally competing against each other. One of the iPhone’s biggest selling points is iOS. Why does the author think Apple would want to share a single, unified interface with its competitor?

                                                                                It sounds ideal in a developer POV, but this is not open source territory.

                                                                                • emodendroket 2 years ago
                                                                                  A lot of these responses make me wonder how closely the original article was read because his critique goes beyond that and he’s also upset about, like, code that only works with React.
                                                                                • LinguaBrowse 2 years ago
                                                                                  This short essay is a lament about how close we are to creating really good cross-platform solutions, but how we always fall short because of closing off our ecosystems to each other. I hope to spark a bit of conversation with this about how we can do better moving forwards!
                                                                                  • detourdog 2 years ago
                                                                                    I see and understand the premiss. I disagree becuase the internet exists and any group can define or adopt a specification for inter-operation. The web is also part of the internet and has plenty of opportunity for development outside the norms. Let us move the conversation with out strawman arguments about what is holding us back. Let us move the conversation forward by demonstrating all the great things we can do right now. Almost any argument regarding constraints is more likely to boil down to some value dreamed up by a VC. Which is not a technical problem caused by proprietary tech.
                                                                                  • spion 2 years ago
                                                                                    Almost every single programming language ever invented has to reinvent more or less the same ecosystem of libraries from scratch. What is the best estimate of how many hours of work that is per language?
                                                                                    • sfpotter 2 years ago
                                                                                      Stop writing articles titled "Stop Doing X".
                                                                                      • ammarahmed6506 2 years ago
                                                                                        Stop adding comments starting with "Stop bla bla bla".
                                                                                      • thealchemistdev 2 years ago
                                                                                        Whatever Jamie. (Nice blog name) Move out of the technician role and into either stake holder or owner, then run your mouth. ;)
                                                                                        • emodendroket 2 years ago
                                                                                          Like everything else you have to trade off some other properties to prioritize this sort of “openness.”
                                                                                          • powera 2 years ago
                                                                                            There is no such thing as an "open ecosystem".

                                                                                            You can only choose between having your own closed ecosystem, or being part of someone else's larger closed ecosystem.

                                                                                            • Kinrany 2 years ago
                                                                                              An open ecosystem can be used by more than one closed ecosystem.
                                                                                            • znpy 2 years ago
                                                                                              Qt is fairly open, I don’t get why the author doesn’t point at qt for a valid alternative.
                                                                                              • LinguaBrowse 2 years ago
                                                                                                Author here. Very confusing licence, is my main complaint (I speak also as the author of Svelte NodeGUI, which is built on top of Qt). The fact that there are hour-long seminars explaining the licencing (https://www.youtube.com/watch?v=m7etOQfrMiM) show that it's a real issue. I recall Qt for mobile has an even muddier story, with a different licencing/pricing model again.

                                                                                                Besides that, I also personally find it horrible to program with, because different elements have differents way of managing their child nodes (unlike HTML Elements, which have one consistent API). And of course I'm a JS dev, though NodeGUI does solve that. But maybe these aren't valid gripes.

                                                                                                • vinyl7 2 years ago
                                                                                                  Qt is awful. Its basically the equivalent of boost but for UI
                                                                                                  • fatneckbeard 2 years ago
                                                                                                    first rule of qt is nobody talks about qt
                                                                                                    • marsven_422 2 years ago
                                                                                                      [dead]
                                                                                                    • photochemsyn 2 years ago
                                                                                                      The long-term solution seems to be to ditch iOS and Android on mobile devices entirely and replace them with fully featured operating systems based on Linux, e.g.

                                                                                                      https://itsfoss.com/open-source-alternatives-android/

                                                                                                      • ksec 2 years ago
                                                                                                        So we didn't actually fix cross platform ( as the article implies ), instead we should make all platform as one?
                                                                                                        • LinguaBrowse 2 years ago
                                                                                                          I like the idea of Ubuntu Touch (having worked with Ubuntu a lot), but even more so Firefox OS. As a web developer, the idea that "native" could simply mean "the Web platform" is really attractive.
                                                                                                          • satvikpendem 2 years ago
                                                                                                            I don't want to run a browser to run applications, that's almost as bad as running Electron apps on the desktop.
                                                                                                            • alpaca128 2 years ago
                                                                                                              Who says every app has to run in a separate browser instance like with Electron? It could be as efficient as a browser tab, which would be perfectly fine as long as the UI is built in a reasonable way. On Android it's been possible for a while to install webapps via the browser that are then displayed like normal apps on the homescreen, and that is nothing more than running a website in the single browser app instance running on the device.
                                                                                                            • muyuu 2 years ago
                                                                                                              Attractive-for-the-developer ideas are fine but attractive-for-the-user dominates. That's the sad lesson since the 80s and 90s OS wars and the early dominance of the market over the committee-standards that happened repeatedly with databases, with web browsers, with text editors, with spreadsheets, etc etc.
                                                                                                              • scarface74 2 years ago
                                                                                                                Why is it a “sad” lesson that users have preferences that are not in line with developers?
                                                                                                            • rvz 2 years ago
                                                                                                              That isn't realistic. We already gave pure 'Linux-based' mobile devices and desktops a chance years ago and unfortunately, they haven't taken off commercially.

                                                                                                              The only one that came out with a inkling of 'Linux' is ChromeOS and Android which both are not even fully open-source and will eventually be moving to Fuchsia-based OS and will ditch the Linux kernel.

                                                                                                              • ladyanita22 2 years ago
                                                                                                                At this point I think everyone should have it clear that Fuchsia is not happening.
                                                                                                                • rvz 2 years ago
                                                                                                                  And your source is according to what exactly? Layoffs?

                                                                                                                  It is already running in production on Nest devices and is able to run the latest Chrome browser and they just did a release days ago.

                                                                                                                  So it is clear that the intention is that it already just 'happened'.

                                                                                                              • scarface74 2 years ago
                                                                                                                I’m sure that will happen right after the “year of Linux on the desktop”