We live in a fragmented o/s world. If you're someone like me then you've got a Macbook from the office, a Windows PC for games, a Linux workstation for compiling code, a FreeBSD server, an OpenBSD router, etc. When you're dealing with so many different systems, sometimes just having something as simple as a sed command that works reliably the same seems like an impossible ask. Now we've got an entire app platform that works on the lion's share of PCs/servers in a small 1mb file.
It's also a question of being able to distribute code. I used to work on the TensorFlow team. We were tasked with building an open source library that people on pretty much every platform imaginable would use. It broke my brain just how difficult it was for us to ship open source binaries that actually work and don't cause an avalanche of GitHub issues. Even just working on more than a few Linux distros felt like an impossible ask back then. Now that I've figured out how to do it for every distro and seven operating systems total in just one file, I wish I could go back in time and use tools like redbean and Cosmopolitan Libc to fix all the things with TensorFlow that I wish I could have done. It'd've been a different project.
... and then people want you to distribute a libtensorflow.so which they may link to or dlopen. :cry:
I had been in this "trying to distribute binaries working on every Linux distro since 2010" game too and I hate it.
How would this work? Does the user start and stop the server manually? One nice thing about an electron app is that you open and close it like a normal application.
The way I used it was that if the user launched the binary, it spawned a server and opened the browser pointing at it.
If the user closed the tab, it automatically shut down the server. Or if it lost connection to any browsers for more than one hour.
LaunchBrowser('/')
That way when redbean starts up, it opens a tab in your desktop browser automatically to display your app. https://redbean.dev/#LaunchBrowserI cannot currently see it as a traditional web server replacement but perhaps that was not the intention. Running the web server locally loses the benefits of single place updates.
Isn't that what Docker set out to do using containers and IMO was hugely successful? How is this different?
If you're running a production web server you're not really switching OS's often. Something like nginx is battle tested so what would be the benefits of using redbean?
It is a marvelous piece of technology but I am struggling to see the use cases right now.