Comment by BiteCode_dev

4 years ago

Besides, I know they want to turn the browser into an os, but it's not one.

It's sandboxed from the os and limited to some use cases, which is the point. I don't want something capable of hot loading code from any web site to have the capabilities of my OS.

The browser is indeed an application platform. Even HackerNews is an app, although it uses a minimum of browser functionality.

Maybe you don't want things like videochat or paint programs or music learning apps to run in a browser, but lots of people do.

Imagine if Firefox said "we're not going to let any web page access the camera"... their market share would probably drop in half overnight.

I wonder if and when the splitup will happen between the "text" web and "app" web.

I know you can disable Javascript, but this is still different.

It's kind of sad though because it's still 10X easier to build a browser app than a native app simply because of the wealth of highly-usable stuff written for JS.

Every time I have to build a GUI in Linux I just build a webapp that connects to a TCP backend on localhost because that way I can just build a beautiful UI in HTML/JS/CSS and I don't have to deal with the mess that is GTK, QT, TCL, TK, and all that crap.

Android programming is another can of worms and I'm frankly fed up with Gradle updates breaking my project every update and needing 79+ files, multiple cludgy steps for signing APKs, zipalign (wtf) and other crap just for a Hello World.

What would be nice to have is "installable" apps that use the webkit rendering engine but have full access to the system including directly opening TCP ports and direct access to /dev. These would have to be trusted apps obviously. Websites that load code without consent should be restricted, of course.

  • > Every time I have to build a GUI in Linux I just build a webapp that connects to a TCP backend on localhost because that way I can just build a beautiful UI in HTML/JS/CSS and I don't have to deal with the mess that is GTK, QT, TCL, TK, and all that crap.

    I suspect this has more to do with the state of native Linux development tools versus Javascript dev tools then it has to do with the general case. Dev tools for Windows and iOS/ MacOs are fairly straight forward. Not sure about Android, since my burning hatred of Java has removed my desire to mess with that platform entirely. (I know Kotlin exists, still not interested)

    Update: I'm basing my comment of what it's like based on the quoted comment, not making an assertion about how good/ bad it is.

    • > Dev tools for Windows and iOS/ MacOs are fairly straight forward.

      Can't speak much for Windows, but the Apple dev story is pretty good. Platform SDKs are deep and capable, if sometimes not well documented, and there's a clear "right" way to do most things. One can build a "world class" app with nothing but Swift+UIKit and few or no third party libraries. SwiftUI is rapidly improving this too, bringing a fully native "modern" reactive approach that works across all Apple OSes.

      Xcode can be a cantankerous beast at times but it's been getting a lot better in recent releases.

      > Not sure about Android, since my burning hatred of Java has removed my desire to mess with that platform entirely. (I know Kotlin exists, still not interested)

      It's slowly improving but still very much a mess. Jetpack Compose looks to be poising itself as the SwiftUI of Android and that will no doubt improve things, but I have doubts that Android development will ever be as nice as iOS development is.

      4 replies →

    • > Dev tools for Windows and iOS/ MacOs are fairly straight forward

      Are they? It's probably been a decade since I touched a native GUI (and I was without a mentor and working on already-old software) so I legitimately don't know. Using something like Visual Studio's form builder was fine enough, but it was not a very expressive toolset as I recall.

      Web you can get started "instantly". Your browser covers most of the tooling you need and you can tweak any live site.

      I don't like that that's how it is. From an abstract perspective I'd rather not be working on web because it seems like we're trying to make a better car by building a bicycle inside of it. But the low bar for entry is hard to beat.

      2 replies →

  • Why not just use GTK or Qt?

    • GTK:

          import gi
      
          gi.require_version("Gtk", "3.0")
          from gi.repository import Gtk
      
      
          class MyWindow(Gtk.Window):
              def __init__(self):
                  Gtk.Window.__init__(self, title="Hello World")
      
                  self.button = Gtk.Button(label="Click Here")
                  self.button.connect("clicked", self.on_button_clicked)
                  self.add(self.button)
      
              def on_button_clicked(self, widget):
                  print("Hello World")
      
      
          win = MyWindow()
          win.connect("destroy", Gtk.main_quit)
          win.show_all()
          Gtk.main()
      

      HTML:

          <html><body>
            <button onclick="alert('Hello World')">Click Here</button>
          </body></html>
      

      Now try implementing a swipe tab UI in GTK with animations and embedded video. In HTML you can probably import someone's awesome library .js file and be done with it in 5 minutes. Video is a snap. In GTK you have to deal with some idiotic factories, pipelines, sinks, faucets, and other god-knows-what abstractions. In HTML it's just <video>.

      1 reply →