Ask HN: Why can't we just build one app that does it all?
There are too many apps (websites included). The whole ceremony of coming up with an idea and business model, gather resources to implement it, implement it, market it, support it, etc. is extremely wasteful.
From a user's perspective, this is a nightmare. I must discover these services/apps (actively or passively through ads), install the app, create an account, maintain a profile, add friends/interests, learn a new UI, etc.
How many times have you filled a form with your name and email address in your life? How many different messaging apps can you contact your friends with? Likely dozens.
I will not accept the idea that this fragmentation is necessary or, worse, beneficial. This is one of today's most important problems. It's the bottleneck of human progress. This must end.
Let's build one system/interface/app/service/OS/language that will make 80% of others obsolete.
You don't think that's possible? Think again.
21 comments
[ 1.9 ms ] story [ 94.1 ms ] threadMost software jobs are about creating containers, not content. This is extremely wasteful.
The main reason why most software today is crap is because it's designed for users. The day we design software properly/purely, users will improve.
Can you think of any other domain where this is expected? This seems foolish on the face of it. People have different needs. How would you expect one system to provide for everything? How would such things be developed? Have some standard that everyone needs to conform to? How would you be able to improve such a system if everyone is expected to use the same one? If I'm working on something new, I'm not using the same system as anyone else.
What OS would you use? Which architecture? Which hardware? Which toolchain? Which programming language? Look at the heated discussions that occur just here on HN. Different domains often need very different tools. I can't imagine that there's one ideal system that fits all of these needs, and one that tries to incorporate all of them would surely be unwieldy.
If you have some thought that you can distinguish between developers and users, remember every developer is in turn a user of some system.
Mathematics? A keyboard?
> People have different needs.
I don't believe that. I believe that most needs are created as a side-effect of telling people they can have unique needs. Truth is, most people have the same needs.
> How would you expect one system to provide for everything? How would such things be developed? Have some standard that everyone needs to conform to? How would you be able to improve such a system if everyone is expected to use the same one? If I'm working on something new, I'm not using the same system as anyone else.
I don't expect a system to provide everything on day one. Most things will be added, not as features but as content.
Take something like the English language. It's general purpose enough to be used to communicate almost anything. I want to apply the same idea to software, make a general-purpose app/UI that can be used to communicate almost everything. Imagine a language like English, but communicated through an interactive interface rather than through static words.
Yes, there will be standards that people will need to conform to in order to use the system.
We're all using English. We're all using the Internet. Yet, they're flexible enough to allow creativity a wide range of content to be created.
> What OS would you use? Which architecture? Which hardware? Which toolchain? Which programming language?
Ultimately, I intend to replace the entire stack, down to the hardware. For now, I will live with the hardware and OS we have, and only create the language. It will heavily borrow logic programming and dependent typing ideas from Prolog and Idris. Hopefully, it will be an interactive language, not just text files.
> Look at the heated discussions that occur just here on HN. Different domains often need very different tools. I can't imagine that there's one ideal system that fits all of these needs, and one that tries to incorporate all of them would surely be unwieldy.
I don't buy it. Heated debates happen between idealists and realists. I'm an idealist, and I'm sure other idealists will agree with the vision. Realists are selfish and simply don't want to get out of their comfort zone to improve the world.
I don't see why the systems and languages should make any compromise. We're dealing with a digital/dynamic medium here, there's no reason it can't adapt to all contexts.
> If you have some thought that you can distinguish between developers and users, remember every developer is in turn a user of some system.
I find the developer/user dichotomy idiotic. I want to eliminate the distinction between consuming and creating software. It should be completely seamless. This is a prerequisite for such a system to even be considered.
> Mathematics? A keyboard?
In mathematics there are different notations used in different domains; sometimes different notations in the same domain. There are multiple different keyboard styles and layouts. To me, it makes sense for people to use a keyboard they like and works best for their language. And, no, I don't expect everyone to speak or work in the same language.
>> People have different needs.
> Truth is, most people have the same needs.
In your view, you can't say most. You only allow for one system. Or if they have different needs are they expected to have those needs unmet?
> I don't buy it. Heated debates happen between idealists and realists. I'm an idealist, and I'm sure other idealists will agree with the vision. Realists are selfish and simply don't want to get out of their comfort zone to improve the world.
There are heated debates between idealists of different flavors as well. You expect them to all to agree? Or are they selfish if they don't?
You're obviously very fired up about this. I think this idea is very naïve, though I wish you the best of luck.
I only prescribe one system (a default one), but I can't prevent alternatives to exist.
> There are heated debates between idealists of different flavors as well. You expect them to all to agree? Or are they selfish if they don't?
Show me an example. For now, I will assume they are selfish if they don't.
> You're obviously very fired up about this. I think this idea is very naïve, though I wish you the best of luck.
Thank you.
Note that in some industries the benefits of shared utility clearly outweigh those of competition, the classic example being infrastructure.
Relevant xkcd: https://xkcd.com/927/
I think that people don't believe or even consider that such a system could exist, which explains why nothing of the sort exists today. I'm interested in starting a discussion to evaluate possible approaches to this problem.
How do you know when all creative value has been unveiled and it's time for convergence? I would argue that the very nature of creativity makes this perhaps impossible to answer and best attempts to do so in the categories that you mentioned would be at best local maxima.
If I'm understanding the main issue you've raised, it's that utility would be higher from the productivity gains under a single agreed upon platform than exists today due to productivity limitations from fragmentation. There may be an equilibrium point, and I'm not convinced the market isn't fairly decent at finding it. Look at how difficult it's been for other vendors to enter the smartphone market and how quickly developers were willing to abandon Blackberry to decrease their development costs. I wouldn't be surprised if economic forces favor unification and that many hope for ecosystem diversity at the cost of lost utility/productivity for long term benefit. Thiel certainly argues the former in his recent book.
Funny you mention Peter Thiel. I decided to post this just after listening to a podcast featuring Peter Thiel. I agree with him regarding competition.
- Identity
- Reputation
- Semantics
It's frustrating to me that a government agency will mail a form and the envelope has my name and address, and the cover letter will have my name and address, and the first bit of the form is a field asking me for my name and address.
And then when the UK was tinkering with a fantastically expensive and mostly failed NHS IT project I thought "Are they taking the IETF RFC approach of specifying what the data MUST and MUST NOT be, and then leaving implementation down to vendors?"
So if you come up with a set of RFC-like documents for identifying me to a service, with cryptographic protection, and permissions for the amount of data I want to reveal, and allowing for clean separation of alternate identities, on a suitably tiny USB device it might take off.