

Ask HN: What would you do differently? - chris_l

If you started all over again, what would you do differently? If we started all over again with software, that is. Imagine a scenario in which all software implementations and specifications are lost while the hardware remains intact, sort of like after a software neutron bomb. Every last Linux CD, ANSI C manual and copy of the R5RS spec is forever gone. Now starting all over from scratch we would surely avoid the worst mistakes, incompatibilities and artificial limits (think 640k). The most obvious thing to redo is a clean design, learning from our collective memory of the past attempts, making use of the best ideas in the history of computing so far.<p>But once we are going down the path of cutting away dead branches in the tree of possibilities and straightening out the data paths, where do we stop? Do we still want to have file systems? And should they be exposed to the average user? And what about files themselves, are they a useful paradigm? What about all the other internals that are routinely exposed to end users. I think they might be caused by the cultural geek roots of the PC business.<p>How about the following goal: computing that is completely transparent of location and device, with no application boundaries. No more copying files, configuring the IP, downloading the browser, etc. Would such a reset of the software world end up getting us ahead faster in the long run. I have the suspicion that might be the case. What do you think?
======
gm
As long as there are people with different opinions, there will be different
answers to your questions. We will split up to different "religions" again,
since we cannot agree even on whether command lines are a good thing, or on
what amount of freedom is a good tradeoff versus security. There simply are
too many variables: Power users want freedom, corporations want security,
productivity, and low cost (and not even all the coprporations want that)...

Too many players, too many egos.

Right now the Mac zealot's ego prevents him from seeing anything good in a PC,
and vice versa. If we started all over, people will, within a short amount of
time, identify with a particular solution, and then we will have religions all
over again.

I'm not saying it's hopeless, but what I am saying is that the problem's root
is people, human behavior; not necessarily technology. The technological
mistakes (which itself is subjective), were kept alive mainly by egos, easily
justified with the cost of undoing the mistake. And don't forget every mistake
is a steppingstone for a later success. IBM's OS2 was a financial mistake, but
which O/S has not borrowed from it?

So I gues we might have the same kinds of problems if we start over again,
with the names of the companies and people involved shuffled around.

Maybe it's just better to keep going and try to do our best.

~~~
chris_l
Yeah, that's pretty true (and sad). My main idea is that things we could do
better, even if still in several different ways across cultures/companies,
would have already emerged, but for the momentum of the legacy interfaces (in
the widest sense).

------
bayareaguy
If I could go back in time, I would make a much more serious effort to
encourage people I did business with that software patents are a bad idea and
that they should always insist on software for which they have sufficient
source code to always allow them to legally maintain their systems without
involving the original vendor.

To me that means it has to either be open source from the start or have a
license that would guarantee an eventual open source release (i.e. along the
lines of aladdin ghostscript).

------
watmough
I think all the things you've objected to are 'local minimums' of some cost
function.

We have Windows because it was popular, then snowballed. We have C because it
was the best systems language for the 'best' computers of its day, the PDP's.

It seems that between people clustering to a local minimum, and momentum, we
often get 'stuck' on less than perfect technologies.

I'm sure if we started all over again, we would encounter similar problems.

~~~
chris_l
I don't think we would encounter Windows Vista again, to take an example. It
seems to require the path from DOS and the company culture that grew along
with it.

------
edw519
If I could go back in time, there's one major thing I would do differently. I
would:

START WITH THE ANSWER, THEN WORK BACK.

I wasted way too much time "coding forward" from where I was at to where I
wanted to be. I should have just mocked up the final product first, worked my
way back to the building blocks, filled in the rest, and fixed what wasn't
right. Would have saved years.

~~~
raju
I think thats the philosophy 37 Signals' "Getting real" gets to. Start with
what it should look like, and work backwards...

Good advice though. Thanks

------
andr
The most recent starting from scratch that I can remember was Palm. No real
file system, no legacy anything, databases for everything. Rather quick for
its hardware but wasn't groundbreaking.

------
deathbyzen
If I had to do it all over again... I wouldn't have taken my CIS classes so
early in the morning. My brain cannot comprehend a linked list before 10am.

------
dant
I'd keep files but use tags instead of folders. I like powershell's object
based cli, make sure nothing like the windows registry ever existed, the OS
would only run byte code, memory would be transactional and grey would not be
the default window background color.

------
ajross
Just had to jump on this: 640k was no more an "artificial" limit than 4G is.
The 8086, like all CPUs, had only a finite amount of die space. They chose to
implement a 20 bit wide bus, because that fit the problem space of a
contemporary minicomputer (the biggets PDP/11 had 4MB). But they didn't have
space for paging or mapping hardware, so the operating system needed to
reserve some space for hardware (video framebuffers, etc...) to use. So thus
was born the 640k/384k memory mapping of PC-DOS. It made perfect sense given
the limitations of the hardware.

Now, IBM could have chosen a different part like the 68000, which was a bigger
and more expensive chip that had an internal 32 bit architecture. But they
didn't, for some pretty justifiable reasons (like the need to compete with
computers like the Apple II which were under $2k).

------
gojomo
"The big re-write" is a classic anti-pattern. There's hard-earned wisdom
hidden in that cruft.

~~~
chris_l
I'm not after an implementation (i.e. code) rewrite so much as more of an
interface redesign. I think that happens anyway, but at a slower pace than
such a radical cut would allow.

------
swombat
Wtf? How did this masturbatory piece get modded up?

~~~
chris_l
Sorry if my tone or style disgusts you, I'm no pg. I'll try and say it more
succinctly: I think it's possible to innovate quite a bit, simply by ignoring
the status quo to a yet unknown extent. In a worse-is-better way to serve
simplicity and clean interface before compatibility.

~~~
j2d2
Don't apologize for your curiosities. This is the first of many times people
will knock you down. Brush the dirt off and keep going if you don't see a
lesson in what people tell you.

