
Ask HN: Why can't we just build one app that does it all? - miguelrochefort
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.<p>From a user&#x27;s perspective, this is a nightmare. I must discover these services&#x2F;apps (actively or passively through ads), install the app, create an account, maintain a profile, add friends&#x2F;interests, learn a new UI, etc.<p>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.<p>I will not accept the idea that this fragmentation is necessary or, worse, beneficial. This is one of today&#x27;s most important problems. It&#x27;s the bottleneck of human progress. This must end.<p>Let&#x27;s build one system&#x2F;interface&#x2F;app&#x2F;service&#x2F;OS&#x2F;language that will make 80% of others obsolete.<p>You don&#x27;t think that&#x27;s possible? Think again.
======
DanBC
When the UK was tinkering with National ID cards I was mostly horrified at the
idea, but a tiny part of me was so relieved at the idea of not having to put
my name and address on so many forms.

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.

------
tedyoung
Aren't the variety of individual needs, desires, preferences, etc. going to
get in the way? I get the frustration, but it feels like saying there should
be only one food item for everyone (why do we need yet another variation on
the Oreo?), but clearly not everyone wants the same thing.

------
Millennium
Is this not essentially Microsoft's catalog?

------
flukus
Sure, but you have to conform to what I need out of my apps/OS, I'm not
sacrificing anything to suit you.

~~~
miguelrochefort
This is a mistake. It is users that need to conform to the system.

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.

~~~
grzm
_It is users that need to conform to the system._

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.

~~~
miguelrochefort
> Can you think of any other domain where this is expected?

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.

~~~
grzm
>> Can you think of any other domain where this is expected?

> 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.

~~~
miguelrochefort
> 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 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.

------
sitkack
HyperCard + Gopher all running on a sweet sweet Minitel network?

~~~
miguelrochefort
It doesn't solve any of the big challenges:

\- Identity

\- Reputation

\- Semantics

~~~
sitkack
\+ Blockchain

~~~
miguelrochefort
Correct.

------
ycapplication
It appears to me that your critique may be of capitalism/free enterprise which
extends far beyond the scope of apps. It's quite a big topic to unfold, but in
the example you provided, stagnation and a lack of convergence on what
constitutes the ideal app are low hanging fruit to be addressed.

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/](https://xkcd.com/927/)

~~~
miguelrochefort
Diversity and competition is good as a creative process to discover value.
However, this doesn't scale very well, and unification is eventually
necessary. My position might sound extreme, but I intend it more as a
guideline than as a law that should be enforced. I'm 100% in favor of free
market and opposed to coercion.

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.

~~~
ycapplication
I don't think it's extreme and I think many people favor such a system on a
categorical basis.

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.

~~~
miguelrochefort
You are correct. The market will decide these things. What's missing today is
an architecture that allows seamless/automatic branching and merging. When you
must manually consider whether it's time to branch or merge, you've already
lost.

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.

------
ayushgp
There is such an app. It's called the browser.

~~~
miguelrochefort
Websites are just like apps. They need to be built, people need to discover
them, create accounts, etc.

~~~
colonelpopcorn
So like a shell? Content creation is still necessary even if we create the
end-all, be-all CMS.

~~~
miguelrochefort
True.

Most software jobs are about creating containers, not content. This is
extremely wasteful.

