Hacker News new | ask | show | jobs
by ReaperOfCode 3984 days ago
Sounds to me like things already work on mobile OS-es e.g. on android tapping a youtube linke can take you to the app to view instead of in the browser. Perhaps you could have the same kind of function on desktop OS-es shouldn't be too hard , all the apps just need to understand URLs. Could even go further than a lookup table for certain domains, and have different protocols etc.
3 comments

Taking Android as a example here. The way this works is by basically letting apps declare that they are interested in certain URLs, and then present the URL-clicking user a list of applications that are interested to choose from. This quickly becomes annoying and checking the "Remember" button is something you quickly regret when you change your preference. This simply will not be practical on a desktop where you might use a hundred different programs. There is also the inherent limitation that you only send the URL to one program.

A better approach is having good defaults, and letting the user add associations as he needs. That way the control is returned to the user, and he will feel confident updating the list of associations. Bonus points for multicast and not being restricted to one string format.

Upcoming Android has deep links/defaults.
How do you deal with getting the execution environment, and the software itself, onto the client machine? With HTML+CSS+JS, it's automatic because the assets are loaded with the website and the browser itself is the execution environment. That's the biggest draw to making "web applications", there's no difficulty in delivering and executing the software; e.g. if I want to write in Java instead, the user needs to go and download a JRE.

I would love to be able to eschew the web tech altogether, since we can all agree that HTML/CSS/JS is a terrible solution for building rich applications. But how else do I deliver my software without making users jump through download + install + update hoops?

That's really only the situation for Windows users. Unix derivatives usually have a package management system, where you can get your package included — dependencies taken care of and all.

But yes, I agree. Many people use windows, and the download-install-update circus seems to be driving people to develop web applications.

Which means also that Unix as a whole has many dozens of package management systems... So you package your app as deb, rpm, yum, pacman, ports, brew, nix, and plain tarball and then hopefully most Unix users can get it to work. That's a maintainance nightmare in itself...
Javascript package managers like npm tend to work much more seamlessly than the old unix ones. Wouldnt mind scrapping them all for https://node-os.com/

Also, the reason package managers suck is because.. entropy. See Joe Armstrong, The Mess We're In http://www.youtube.com/watch?v=lKXe3HUG2l4

I find that the Nix package manager is much more principled, general, and promising as a model for robust and easy package managing. And with NixOS, it's a huge step towards a declarative and reversible way of managing a whole computer system.
Doesn't Windows already have that? Go to ''Control Panel'', ''Default Programs'', ''Associate a file or protocol with a specific program''. For example FTP, HTTP, HTTPS get associated with Firefox, MAILTO with Thunderbird, URL:PowerPoint with PowerPoint etc.
This fades in comparison to the customisability and powerfulness of Plumber.