Ask HN: If money was no object what software would you create?
Imagine you had a Sufficiently Large Budget to create the software you've always imagined. There are still hard problems, you can't just wish a revolutionary new operating system into existence of solve NP hard problems, but you don't have to worry about the budget.
What do you create?
(As a bonus question, what software would benefit humanity as a whole the most if it suddenly sprang into existence)
70 comments
[ 4.7 ms ] story [ 132 ms ] threadAnd add onto that all the insanity of JavaScript and it's ecosystem and different browsers etc etc etc.
I know the world has changed but the ecosystem you mentioned is one I found to be HIGHLY comfortable.
(Aside from java.awt.Color... Eternal mistakes...)
One can feed a man a fish, or one can create a robot that finds the sustainable amount of fish to catch, cleans it with no harmful soaps, cooks it to a safely edible form, and serves it on a biodegradable stick.
Can someone make that please? Sounds doable.
Furthermore, it should also let you assign metadata like materials to objects so that you can do accurate physics simulations. For example, if I make an object and set its material type to "spring_steel" I could then run a physics simulation where I get to see how much force is required to make it bend (e.g. while being inserted into something else). It would also be nice if you could just manually set the flexural modulus, fatigue index, etc to any given material for the same purpose.
Any manipulation via the GUI would automatically update the script/code and vice versa. It would be the ultimate parametric CAD tool.
Benefit: Ability to evict spying corporations from your life.
How it would appear to the end user: You buy a packaged device (like a RPi in form factor and openness) from Wal-mart and plug it in. Set up the wifi (or wired) internet access, and it operates as your personal gateway. Need more storage? Plug in an additional USB drive. For convenience in this description, call it a "Home Hub" (probably already used by some product... not affiliated).
Possibilities (1): You can have a Home Hub. Your parents can have a Home Hub. Your friend has a Home Hub. Your Home Hubs could act as an encrypted, distributed backup for each other (similar in idea to Raid 6?). If yours goes down, you can reconstitute the contents from your trusted backup pool (parent's and friend's devices). They have the same benefit, too. The more backup space that you offer to others, the more backup space you have available.
Possibilities (2): Your phone. All pictures, contacts, messages, and other misc data could be backed up on and accessible by this system. Communication could use this system for calls, text, mail, etc., rather than the phone company. End-to-end encryption through the interconnections of Home Hub devices. (E.g., your phone -> your Home Hub -> your friend's Home Hub -> your friend's phone.)
Possibilities (3): No need for G4e Drive, G4e Docs, M7t Office 365, Ae3 Cloud, etc. (Yes, I know that there is currently NextCloud and similar, but it appears to be a stand-alone solution, as opposed to a plugin to this larger ecosystem that I am proposing.) This system could host your own, available from anywhere.
Possibilities (4): Track your device's location (or your child's location) without needing to share that information with a 3rd party.
Possibilities (5): No more email. Replace with communications through Home Hub. It's almost impossible to run your own email server these days because the big providers reject any email not sent through the big providers. It will be impossible to bring in another standard, however, unless it is absolutely simple for the average user to use. I can think of several ways of supporting the common email use cases while also prohibiting spam.
Possibilities (6): Yes, corporations and governments can use this system, too. But they will be constrained by the protections designed into the system. For example, a corporation could sell backup space (mentioned in #1) as a service, but because the information is encrypted (and Raid-striped?), they cannot know what is contained in the data.
Possibilities (7): Social media could be built on this as well. I know about Mastadon, but it solves a different problem than my proposal.
In short, we need a dead-simple widget that anyone can buy, plug-in, and connect to the Internet, and that can act as their way forcibly extract spying companies from their life. (Of course, associated mobile software would have to be created, etc.)
2. Use software produced via (1) to build more software to catch every bit of data from the human body, analyze and superimpose it with data and knowledge to recommend and administer treatments to reverse aging or heal the body.
3.Use software produced by (1) to explore and invent new products , natural laws to feed into a knowledge system (produced again by number (1).
4. Use this loop to jumpstart a software engine that monitors and automatically understands humanity’s needs and produce and run software to solve them at global scale.
As to the last question the best thing to benefit humanity is a software system that determines policies at all level of governance based completely on data (including voting data) and removing bias from the systems.
For mankind in general: A simple way to self-host/access self-hosted content. People ought to be able to own their own data without gargantuan efforts.
This one is mine too. Self hosting ought to be as straightforward as using an iPhone.
Define "gargantuan efforts"
Seriously
No, not everyone needs to be running a Nextcloud instance
But storing/saving/hosting your own data is not "hard" today
More info is available here: https://loan-free-ed.neocities.org
Anyone interested in teaming up to make this a reality?
Also just random Haskell with no care about Professional Software Engineering idiocy.
Although I do the latter already when I do have free time. My personal projects have 0 code standards or style consistency. I write whatever forms are the most fun to the touch at the moment. For instance, why pass a parameter around when you can use Kleisli arrows? It's like playing games while coding, but when you're done you have a working thing that people can use.
https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2686534/
Or actually build this https://github.com/runvnc/tersenet
What I have been thinking about for a few years is a SaaS that takes a video stream and in real-time outputs a 3d reconstruction with separate labeled posed meshes, or maybe even some type of (CAD-like) boundary representation.
It should be possible to use NeRFs to create a VR "teleportation" application.
Also I think that VR or mixed reality user interfaces should be 3D and possibly haptic, and that doing everything in 2d windows in VR doesn't make much sense. So there will eventually be an OS for mixed reality that has 3D widgets or components that can interact and have interesting interfaces.
It will also soon be possible to "clone" a person using dynamic NeRF-like technology combined with new multimodal models of behavior and cognition. Such as take every script from the Colbert show, feed it into a model that combines a LLM with gestures and some visual/spatial correspondence. Automatically create a late night monologue prompted by the news. AKA "Deep Colbert".
1. A Lisp that makes some improvements on Common Lisp in a few areas without losing its essential nature, including its comprehensive support for livecoding.
2. An OS designed for ubiquitous computing and strong individual ownership of data and computing environment.
3. A livecoding environment designed for interactively building 3D worlds.
I've previously been paid to work on things like all of these before, and of all the things I've worked on, they're the ones I would most like to keep working on. I therefore still spend spare time on them now.
Ideally, I would work on all three, and build them all to work together.
But I made a new programming language ACPUL, which is essentially not much different from Lisp
For example, some of the effort on the 3D stuff ended up in a prototype of a networked multiplayer game. I built that with a Scheme compiler, and the author of the Scheme compiler presented it at a developer conference one year as a way of showing something interesting that could be done with his compiler.
I used one of the implementations of my experimental Lisp in an educational game about resource allocation for the Office of Naval Research. I wrote the rules engine, the event-handling system, and a compiler for those subsystems so that the delivered game didn't need the Lisp to run.
Think tens of thousands to millions on a die (obviously the prototypes would need to be smaller).
I'd like a system that so "flat" in terms of implementation stack that each object is implemented just one or two step above silicon.
There are HUGE advantages to computing this way, in terms of relocating code, routing around defective cells, security, etc. I've blogged about it at length in the past.[1]
[1] https://bitgrid.blogspot.com/
I believe VR is a large part of the future, but in the mean time, the GTA franchise has nothing even close to 2nd place to it.
> software would benefit humanity as a whole the most
Easy. I will just emulate what the richest man in world did:
- either an open AI Foundation (= OpenAI) but it will be truly open source 100%
- or an open social network (= twitter) but it will be truly decentralized and public 100% (whatever that will turn out to be)
(Trying to expand so I don't get down voted)
For what purpose?
However, platforms is what benefit humanity the most, the same way they benefit all the top technology companies (they are all "platforms" first)
Suppose you look at the environment (nature) as a platform. You will never ask: For what purpose? Of course, Life is the purpose.
The right question is: should it be privatised ? Well, in the case of the environment, you know what a Yes for an answer has brought us…
The thing about nature is that it's also above/beside us, it has no defined ruler, we don't have control over it.
Technology / platforms are our own creations. own creations need to be controlled and guided, at-the-least just to ensure lights stay on; and humans are fallible. The argument goes that if someone has control over it, they are allowed to exert that control.
Now you can simply say "I will control it" or "my chosen governance will" or "it's democratised rotating name list" or whatever, it's still going to be an aspect of human control, and humans will always have an "in group" and "out group" to them, the platform will benefit humanity the most (for the in group).
I wonder if there's a way to make a "decentralised" platform. using your open source twitter as an example, go a step further and have:
* anyone can contribute code. as long as PR automated checks go green, it can merge?
* Then we must ensure that we have checks that all new code is not malicious, has testing, has documentation, etc. -- as part of the automated process?
* PR automated checks might run every day and delay themselves for a year to ensure that others can observe the code changes? (and do what? they can't block it, they can only put in a contingency plan ?)
I think we're trying to near towards making our own creations here where there's a "tower of babel" or "icarus close to the sun" vibe.
Also, how High-level (AI) Automation will interact with that High-level decentralization could indeed lead us toward that "Icarus close to the sun" vibe. (is that what you meant ?)
I say: Let's not rush ourselves. we are still all too frail. we are still stuck with elective democracy and corporate capitalism [1] for the foreseeable future.
And Nature, as the ruler, has its secrets.
[1] https://en.wikipedia.org/wiki/Corporate_capitalism
I think the richest entity in the world also spent a lot of time on an eerily similar design research in the last century. Unfortunately, they stopped at OSI layer nb.7 (This one looks like a part of an 8th)
The entity is of course the US Government, and the decentralized network is OSI 1-7, also known as...
Although these tools are great, after all they have been critical in the development of the web, they are slow! Additionally, many lack good Typescript support for various reasons, so there's often guesswork involved, and there's more problems that would be too voluminous to get into.
So my dream software that I would create would be a collection of Go-centric Javascript tooling, essentially growing what esbuild started. I envisage an npm written in Go (imagine deps installed in 1 second rather than 30), hot reloading dev servers using esbuild all written in Go (imagine ~100ms hot reloading of an enterprise-grade website), SASS parsers written in Go, the whole JS toolchain rewritten in a fast compiled langauge.
Unfortunately, the web development community isn't yet ready for such. I personally believe it's the obvious future of web development, just like how it became silly to use anything other than compiled C libs for python development. I go into a bit more detail in my blog post :)
[0] https://samhuk.substack.com/p/what-im-working-on
I think the web development community is already adopting this approach in a lot of places, except they're not limiting themselves to Go. Deno is written in Rust, a lot of Bun is written in Zig.
I want to make a local/personalised photo-album backup system that can annotate my photos with who they were and at what time. So then I can easily create a timeline of my grandfather's life or my mother's story, which my family could just add to and keep annotating in perpetuity.
(Note photomyne does this, I recently found, but I'm not sure if I like the company yet to trust them with this data)
Then the next bit would be organisational apps, perhaps try and find a way to make life easier/automatic. Then perhaps robot simulations and video games.
Good question, thanks for asking, I've been doing some soul searching on my career and what I want to do with it. I've decided that I don't think the start up hustle culture is for me..
With privacy and a lot more level of ability than they currently have.
In particular, I want the "assistant" part to be really robust. Note-taking, remembering things, reminders, lists, schedules, priorities.
Preferably without a lot of arcane, specific phrases. But if they're required, so be it. I'll become Harry Potter.
2) A 2D game engine. I might just be plagued by an abundance of non-obvious choices, but I'm baffled that I can't confidently draw pixels to the screen in 2022. If I were to start developing a 2D indie game at gunpoint I would probably choose Gamemaker or dare I say Unity, but I would much prefer something like the Processing/p5.js API (but with better performance/portability).