
A Constructive Look at TempleOS - kayamon
http://www.codersnotes.com/notes/a-constructive-look-at-templeos
======
white-flame
While not very familiar to many, this is highly similar to the old Lisp
Machine environments. Those were similarly a clean break from prior OSes,
with:

    
    
      - a powerful REPL to call either apps, inline tools, or direct commands
      - interactive shells made up of mouse-interactable graphical components being
          printed to the screen
      - compilation of source code directly into the running image

etc.

They were also single-user, but did networking as well. People logged into a
machine remotely could have the same interactive graphical sessions in their
own context.

Given the history of computing from the 50s - 80s, this desktop architecture
idea comes naturally to a lot of people. The major OSes, however, all have
their ancestral lineage which prevents major rethinking. But another issue is
that these ideas are at least power-user oriented.

While the mobile market did some major rethinks about the UIs, they're still
*nix inspired descendants underneath, and don't expose anything but pre-baked
applications to their users.

~~~
api
Windows NT is sad for its missed opportunity. MS could have done something
inspired by these newer architectures. They did depart from Unix, but to do
something in no way better and in many ways worse.

~~~
kayamon
MS were very inspired, unfortunately by VMS.

~~~
wolfgke
Why do you consider being inspired by VMS (which NT is to my knowledge) as
unfortunate (serious question)?

~~~
kayamon
It's just... sigh... I dunno.

It's like COBOL. Or COM. There's nothing in any way pleasant about it. It's
undeniable that it works, and perhaps gets things done in a practical manner.

But there's no love in it. Just my 2c though.

------
dang
It's time to retire the disputes about Terry's mental health and his use of
racist language that perennially dominate these threads. These arguments are
always the same, they lead nowhere of value, and it's wrong to gossip about a
human being as a case specimen as if he weren't here.

We've had years of this already and it's enough. If someone wants to do the
work of making a list of threads we've had about it in the past, we can all
point to that the next time someone inevitably starts this controversy up
again.

I'm not talking about Terry's technical work, of course. That is as on topic
as anyone else's.

~~~
Nursie
His mental health directly impacts and influences what he writes.

~~~
pmelendez
Some of his remarks are actually technical and relevant but invisible to most
people (only accounts with the show-dead-threads flag active can see them). It
would be nice if one could sponsor just those comments, I think would be a
good thing for him too.

~~~
dang
We're working on that.

------
VieElm
Someone should start a Kickstarter for a professionally done documentary of
Terry Davis and TempleOS. He's such an interesting person. I'd watch it. It
would probably be an amazing documentary if done well and assuming Terry Davis
would be OK with it.

~~~
frou_dh
There's a guy known as Ulillillia who has a somewhat similar long term
obsessive project (a game, Platform Masters). There was a documentary shot
about him that unfortunately seemed to go off the rails in post-production and
wasn't released.

~~~
synchronise
Do you have any links with related information to this?

~~~
lepht
Probably not quite what you're looking for (I'd like to know more about the
documentary, too), but here's a 1h49m Youtube video of the author giving an
overview of Platform Masters:
[https://www.youtube.com/watch?v=rzjW0xsW7_A](https://www.youtube.com/watch?v=rzjW0xsW7_A)

and the author's website:

[http://www.ulillillia.us/mainindex.shtml](http://www.ulillillia.us/mainindex.shtml)

------
bane
Great article. I really like this kind of open-minded "everything can teach us
something" attitude.

I'm not sure I really want to use TemplOS, but if you look at it as a research
OS like the article suggests, lots of the ideas here are _very_ compelling.
DolDoc sounds like something I wish I had today.

I kind of wonder what could be created if these ideas were filtered through
more modern design ideas?

~~~
aaronem
A lot of the capabilities described for DolDoc, and for TempleOS documents in
general, also exist in Emacs' org-mode, albeit of course in a rather different
style -- inline images, hyperlinks to live searches as well as static content,
and the like.

You can also embed code fragments of arbitrary length, in any or all of dozens
of languages, and execute them inline with arbitrary input, including both
other sections of the same document and the output of other code snippets
therein. (TempleOS seems to have a similar capability, but of course only for
the single language in which everything to do with it is implemented.)

~~~
ams6110
It's a cliche, but Emacs really is almost like a LISP operating system
disguised as a text editor. It's easily possible to use a computer
productively using nothing else, if you devote a bit of time to learning how.

------
yen223
I have to admit - HolyC is a clever name
[http://en.wikipedia.org/wiki/Holy_See](http://en.wikipedia.org/wiki/Holy_See).

~~~
zymhan
I realized that the other day when I was reading about TempleOS and laughed at
how puntastic it was.

------
pcorey
I wrote a Julia Set viewer in HolyC about 6 months ago. It was a very
interesting experience to say the least.

Terry seemed to think it was pretty cool, so he made a 3rd Party Software page
and linked to the GitHub repo.

[https://github.com/pcorey/julia-
templeos/blob/master/julia.C...](https://github.com/pcorey/julia-
templeos/blob/master/julia.CPP)

~~~
oconnor663
How does installing software work without networking?

~~~
robin_reala
I feel very old now. Traditionally you went to the shop, bought your boxed set
of floppies[1] (or later CDs, though networking was becoming ubiquitous at
this point) then went home and installed them one by one to your hard drive. I
was early among my friends to get a modem in 1990 (along with a Compuserve
subscription), but before that every piece of software I had was bought or
copied from friends on floppy disk.

[1]
[http://farm8.staticflickr.com/7112/7488906888_f49800754f_z.j...](http://farm8.staticflickr.com/7112/7488906888_f49800754f_z.jpg)

~~~
oconnor663
I guess I'm surprised there's code to run the floppy drive but not code to run
the network card. Especially if the project started in 2003. But then again,
maybe with a memory model that permissive, it's not very safe to open yourself
up to unfriendly bytes.

------
markbnj
Very interesting article. But ...

>> If a crash in one users’ programs could take down all the others, then
obviously that would be bad. But for a personal computer, with just one user,
this makes no sense. Instead the OS should empower the single user and not get
in their way.

My PC doesn't have 100 users, it has 100 processes serving one user. It's nice
that they can't stomp all over each other.

But I hear you on the low level access. For me it was a Tandy Color Computer,
and then a Columbia 8088 luggable, and finally a 80286. All those systems ran
DOS or something similar to it in real mode, and I had fun poking bytes into
RAM too :).

~~~
UnoriginalGuy
When I got to the part where the article dismisses memory protection, I just
thought "wow someone never used any of the Windows 9x operating systems."
Because in that space the lack of memory protection most certainly WAS user
impacting, even single user...

The problem is that software is buggy, and without memory protections a buggy
piece of code in one process can cause unpredictable things to happen in
another. Essentially it turns a process which executes in a "knowable way"
into one that executes in a arbitrary way.

Windows 9x suffered from this with drivers in particular, where a single
buffer bug in one driver could cause other drivers to seemingly crash, and the
root cause was incredibly difficult to track down.

~~~
bencollier49
TempleOS would appear to be a computer from "before the fall" \- ie, before
error crept in, in the form of viruses and badly-behaved programs... in the
same way that the architecure of an IRL temple is designed to be a
representation of heaven on earth.

I understand his perspective - computing in the 1980s was very much an age of
innocence. The programmer's God/Genius is telling him to build a modern,
developed version of the environment that he spent his healthy youth in. I
don't suppose it's entirely beyond the realm of possibility that it might hold
a key to resolving his problems and coming to terms with his illness.

It may be a trite comment, but in an environment where these conditions are
treated as "holy madness" or shamanism, the sufferers have more of a place in
society.

cf. John Nash, although Schizophrenia is a scale of greys.

------
yoklov
Wow, theres actually a lot of cool stuff in that. HolyC[0] also has some very
nice features and is much more practical than I had previously thought,
although I'm not sure I could last for long with it -- a lack of type checking
is somewhat brutal.

[0]
[http://www.templeos.org/Wb/Doc/HolyC.html](http://www.templeos.org/Wb/Doc/HolyC.html)

~~~
imglorp
It reminds me of the Turbo family of IDE's from a past age: small, fast,
integrated.

------
ams6110
_It’s very easy to be negative, but you will never learn anything new by doing
so._

Couldn't agree more, and something I'm going to try to keep in mind more
often.

------
bliti
I enjoy reading the source code of TempleOS. Its simple and down to earth. No
gimmicks or traces of someone trying to show off. The kind of code you just
sit down to read whenever the daily grind of battling technical debt gets to
you.

------
byuu
What really gets to me about all this is that I probably see more articles
about losethos/TempleOS than I do about the BSDs.

There's a whole world of hundreds of small and innovative hobbyist/niche OSes
(Sortix to name just one), but we only ever hear about this one. Again and
again, over and over, because the author's mental health makes for good
clickbait articles for people to gawk and stare at, apparently. It's really
quite sickening.

I'm okay with this article though, I like that it presented something new for
a change.

------
alganet
It is very interesting to see some comparisons you did. You mentioned
Oberon[1], which has an explicit reference to Doug Engelbart. Seeing some
TempleOS highlights reminds me a lot of those ideas, including LightTable[2].

[1]:
[http://ignorethecode.net/blog/2009/04/22/oberon/](http://ignorethecode.net/blog/2009/04/22/oberon/)
[2]: [http://lighttable.com/](http://lighttable.com/)

------
c3d
Seeing projects like this makes me wonder: how come great ideas often fail to
be picked up, when bad ones are repeated again and again.

Take the idea of having a single language for the shell and system
programming. It forces you to think harder about the design of the language,
so that it correctly works both as a command-line interpreter and as a
compiled language. Lisp machines had that. Oberon system had that (in a
graphical way, even). Forth systems had that. So it's not like we collectively
didn't know. But neither Unix nor DOS/Windows even tried. Instead, they both
feature shell languages that can best be described as "pathetic". Why did we
have to wait until Windows 10 to have useful text selection in the CMD shell?

Or in programming languages, why is it that new languages always seem to take
C and C++ as role models, while spectacularly failing to take any inspiration
from Erlang, Ada, SmallTalk, Intentional Software, or Lisp? Why is XL, my own
language, still the only one I know where it's easy to do multi-operator
overloading, i.e. overload A+B*C, something it has been doing for at least a
decade? Why are we unable to create a language that would work well both on
GPUs and CPUs, or better yet, let me easily describe an application that uses
both?

Or in interactive apps, why do we still not have good reactive functional
frameworks for the web, similar to what Tao3D does for interactive 3D? (See
[http://bit.ly/1G8VOmr](http://bit.ly/1G8VOmr) for my rant on that topic). Why
is creating an OpenGL application getting more complex with each generation,
instead of simpler? Why can a kid easily use GameMaker, but none of the Apple
developer tools?

Or in operating systems, why did Linus Torvalds decide to mimick Unix and not
the kind of mind-blowing operating system design ideas that were floating at
the time? Like TaOS, the OS that was recompiling byte code at page-in time and
could run a same program on different processor architectures during its
lifetime? Or like MacOS, the original one, and its built-in graphical toolbox
where, unlike X11, you could easily draw an ellipse inside a rectangle
irrespective of line width? Or like GeOS and its 64K-based multitasking OS
with vector fonts and GUI apps?

In summary, why is it that we always seems to ignore good ideas, but have no
concerns repeating bad ones?

My theory is that inferior technology needs superior marketing, and that's how
you win in the end. That's just a theory, of course ;-)

~~~
pjc50
The canonical article on this is [http://www.jwz.org/doc/worse-is-
better.html](http://www.jwz.org/doc/worse-is-better.html) from 25 years ago.

The common thread in what you're saying is "why do people not choose
(technically pleasing solution) over (familiar solution with known warts)",
and the answer to that is that change is _really_ expensive and unpopular.
Especially if it forces people to abandon their existing custom tooling,
workflow, infrastructure, and skills.

Would most people use a new operating system with no web browser? Probably
not. So that sets a minimum bar on the quantity of software you have to port
to get it adopted. Which is a vast amount, especially if you want to write it
in a new language as well. And new languages have new pitfalls.

For the shell, it's not clear that the same language is necessarily ideal:
shell commands are ephemeral and the user wants to type as little as possible,
while code lives forever and is generally more complex. Strong type systems
and other forms of testability are important for code but clutter for the
command line.

Linux chose Minix to replicate partially because he'd been taught it at
university and partially because he could leverage the GNU infrastructure.

------
rectangletangle
This is basically how I've been viewing the project.

Like an esoteric programming language, it's likely never going to be used as a
mainstream or practical system. However, Terry has been afforded the
opportunity to create this system with few external constraints; this is one
of the reasons it utilizes so many novel approaches. It could likely influence
features in more practical systems.

People get too worked up about solving immediate problems, and often never see
the forest through the trees. He may end up solving problems we never even
realized were problems.

------
S4M
I like the idea of the shell being an HolyC interpreter. Do we have some
analogs with the mainstream languages - I know I could fire up, say, the
Python REPL and use it as my shell but that wouldn't be convenient to
manipulate files.

~~~
igravious
It'd be interesting to think about this from the inside out rather than the
outside in as is normally done.

So imagine if you wanted to fire up a Python REPL and use it as your shell.
What the shell essentially does is treat bare words as external
command/executable invocations. Every dynamic language treats bare words as
internal function/method invocations. That would mean that any executable
looked up in $PATH (a global variable that holds a list of directories) would
supersede any internal method in that scope! Is this workable? Why not try it
and see? Also if you created a Shell library for Python (in C ;-)) then it
could be used by Ruby and Perl and Node (or whatever they're calling it
nowadays) and ...

It is interesting to imagine not having to context switch to shell-speak to
interact with your machine. If you are a Pythonista just speak Python, a
Rubyist the same ...

The article proves your point, even Linux with its openness is still very much
tied to years of tradition.

And what if the shell output wasn't line-oriented but a live hypertext doc,
say HTML5?

~~~
reagency
Take a look at the "sh" module for python, and JuPyTer/iPython for the UI.

~~~
igravious
Did you mean this:

    
    
       https://pypi.python.org/pypi/sh
    

I'm not seeing what I'm supposed to be seeing :)

    
    
       https://try.jupyter.org/
    

Okay, thats' very cool.

~~~
lgas
You can also use ipython as a regular shell pretty easily:

[https://ipython.org/ipython-
doc/dev/interactive/shell.html](https://ipython.org/ipython-
doc/dev/interactive/shell.html)

And while that page doesn't really highlight it, it works pretty well out of
the box:

    
    
        % ipython
        Python 2.7.6 (default, Sep  9 2014, 15:04:36)
        Type "copyright", "credits" or "license" for more information.
        
        IPython 2.3.0 -- An enhanced Interactive Python.
        ?         -> Introduction and overview of IPython's features.
        %quickref -> Quick reference.
        help      -> Python's own help system.
        object?   -> Details about 'object', use 'object??' for extra details.
        
        In [1]: pwd
        Out[1]: u'/private/tmp'
        
        In [2]: ls
        KSOutOfProcessFetcher.0.r55jifrBu08ZlGAfPLYXKgYad4c=/   lein-trampoline-M8eCP9ASjLYqO
        KSOutOfProcessFetcher.501.r55jifrBu08ZlGAfPLYXKgYad4c=/ lein-trampoline-i3aRyHVGcm1Fr
        com.apple.launchd.QiAYKXJLr7/                           snow-nic1.pcap
        com.apple.launchd.iNBrDiEeE8/                           snow-nic2.pcap
        com.apple.launchd.z0Zss1uMx6/
        
        In [3]:

------
alxmdev
Long-term personal projects are the best things you can reward your developer
mind with. The dedication and achievement in TempleOS is phenomenal.

------
fit2rule
I wonder how far off TempleOS is to implementing the kid of environment
envisioned by Bret Victor?

See:
[http://worrydream.com/ExplorableExplanations/](http://worrydream.com/ExplorableExplanations/)

It seems to me that the way that the HolyC environment is designed, we're not
far off from having a pretty decent implementation of some of Brets' concepts
.. it at least seems closer than the features offered in other OS's for this
kind of interaction.

Perhaps some enterprising disciple of both TempleOS and Worrydream will find
motivation to push the last %5 of work through to completion .. seems like an
exciting opportunity to do something truly innovative.

------
jd3
>If GNU is the cathedral, and Linux is the bazaar, perhaps there is a place
for the temple somewhere too.

cute

------
cdelsolar
Look at this: [https://www.youtube.com/watch?v=dwa6rU-
Y_Ic](https://www.youtube.com/watch?v=dwa6rU-Y_Ic)

It's amazing. He has a whole bunch of videos of his programs. It's fascinating
how much stuff he puts out there!

------
zefei
Every time I read something about TempleOS, I was amazed by its concepts and
Terry's dedication. I wonder if one day we could see something like "doom
source code review" on TempleOS.

~~~
Pengwin
I really like watching the code reviews Terry has put on youtube. Watching him
use his own creation to navigate, test and explain his own creation is very
interesting.

~~~
duskwuff
I understand he has an interesting technique for putting together those code
reviews, too: he uses a random number generator to randomly pick a piece of
the code, then starts walking through whatever it chooses.

------
bitL
It's amazing to see that Terry achieves more than most healthy programmers.
Kudoz and all the best!

------
tomasien
Obsession by one person doesn't always work out for that person, but it does
so often provide insights that are instructive to a level that would have been
unfathomable to an outside observer at the start of the project/obsession. Not
surprised TempleOS seems to have similar qualities, even though even now it
seems to be a pretty bizarre project.

------
Immortalin
<code>In this video Terry gives a brief tour of some of the more interesting
features of TempleOS. At 5:50, he shows how to build a small graphical
application from scratch. Now let’s just think about how you’d do this in
Windows for a second. Consider for a minute how much code would be needed to
register a windowclass, create a window, do some GDI commands, run a message
pump, etc. You’d need to set up a Visual Studio project perhaps, and either
use the resource editor to embed a bitmap, or try and load it from disk
somehow. Now compare it to the tiny snippet of code that Terry writes to
accomplish the same task. It certainly makes you wonder where we went so
wrong.</code> Before MS killed Visual Basic 6, it was also almost this easy..

------
JulianMorrison
The days when you could be sure of being sole user of your machine ended with
the internet, alas. All that compartmentalization is there for a reason.

------
JSnake
Any look at an OS that doesn't consider the platform's usability is pretty
suspect, and this article doesn't even mention TempleOS' usability. It really
doesn't matter how many good ideas an OS or any other platform has if it isn't
at all usable. And TempleOS is the most unusable platform I've ever seen.

------
aedocw
I'm honestly curious, and not trolling here. I've followed some of what Terry
Davis has developed, and seen him pop up here frequently as a subject of
interest to many. In every thread here, I've seen something like:

Person A: TempleOS is amazing, written by just one guy! I'd love to know more
about Terry, someone should do a documentary!

Person B: Terry has a mental disorder, a documentary would just end up [making
fun of him|causing more mental issues]

As I understand it he does not believe he has mental issues, but does believe
everything he's doing is directly influenced by an entity he perceives to be
his God. Any of his supposed mental issues can just as easily be explained as
issues of deep faith, a faith most/all of us are incompatible with.

Maybe I'm missing something essential here but what's the difference between
Terry Davis and anyone else who believes their lives are being influenced/led
by the invisible forces that are part of their religion? If he's crazy, is his
brand of crazy significantly different from that of the pope or anyone else
who claims to be regularly spoken to by their God?

~~~
chc
You may be honestly curious, but I don't think this is a very good topic for
discussion here. The question "What is the difference between religion and
mental illness?" is something that has been rehashed thousands of times both
by famous philosophers and legions of Internet atheists. The short version of
one useful answer is "The line is somewhat blurry, and obviously there have
been many people who were both religious and mentally ill, but it's usually
obvious because most religious people are able to function just fine in
society and clearly do not have a crippling mental illness." To go further
than that would be pretty far off-topic.

I also feel like it's somewhat in bad taste to attempt to debate this in the
explicit context of a member here.

------
fierycatnet
That's nice. Glad to see it on here. I remember this guy and his OS back when
people on Reddit were mean to him because he has a mental disorder. His
dedication to this project is admirable.

~~~
danellis
No, people are not mean to him because he has a mental disorder. People are
mean to him because he posts things like this:

A nigger respects complicated programs. The more complicated the more the
little niggers respect it. Ask a nigger to design a operating system task
scheduler! It's hilarious watching a nigger make priority schedulers. I make
my programs simple. I have an electrical engineering degree. I am a master of
differential equations. Physics>Engineer>Computer Science> Psychology. The
nigger standard model is 20 pages instead of two and it's really really
complicated. When a computer scientist builds something he says, "What all
features might we possibly need?" When I design I make it as simple as
possible. Hello world joke: [http://www.infiltec.com/j-h-
wrld.htm](http://www.infiltec.com/j-h-wrld.htm) Look at what the nigger did to
graphic files formats:
[http://en.wikipedia.org/wiki/BMP_file_format](http://en.wikipedia.org/wiki/BMP_file_format)
Sound file formats:
[http://en.wikipedia.org/wiki/WAV](http://en.wikipedia.org/wiki/WAV) Any
nigger can make it complicated. A nigger makes it as complicated as possible.
I am a genius. I make it simple.

~~~
angersock
s/nigger/idiot/g

There, I fixed it. Do try and use the brain God gave you.

~~~
kazinator
Now it looks like a perfectly sane and predictably off-putting piece of self-
aggrandization. "I have a degree that is in a superior discipline relative to
computer science." "Unlike most other programmers, I know my differential
equations." "My ideas and approaches are better than those of all these other
idiots." "I am a genius compares to those who invent complex solutions."

Of course people hate this, even without the random sprinkling of "nigger".

And the choice of that word reveals obvious racism. It says, I dislike blacks
to the point that a word denoting them serves me as metaphor for other groups
of people or concepts I revile.

~~~
angersock
"And the choice of that word reveals obvious racism."

Nice armchair psychology--maybe it's chosen because it's considered taboo,
instead of because of some deep-seated dislike of blacks?

~~~
kazinator
Deep-rooted dislike or not, it is certainly _disregard_. Using that word, and
in those ways, shows disregard for how a person of African descent might feel
who reads that comment.

~~~
angersock
Fair enough, though that depends on whether or not you believe somebody with
that form of mental illness is capable of disregard at the same standard.

------
ebbv
While there's an element of truth here, that kernel is being overplayed.

It's important to be open minded, but at the same time it's important to also
have a filter for what's actually worth examining in depth and what isn't.
Otherwise you waste your time going down fruitless cul-de-sacs to nothing.
Which is exactly how you end up spending your life making something completely
useless like TempleOS.

Additionally, the author thrives on attention. He's been around forever, it's
true. But every time he gets any attention he goes on what seems to be a manic
streak which erupts in the racist diatribes and nonsense.

He certainly does need medical attention. He does not need this kind of
attention, treating his delusion seriously.

~~~
kayamon
It's not useless if you learn something from it. If you don't want to learn
anything, that's fine.

But I certainly learned a few new ideas from taking some time to judge it
objectively.

If tomorrow someone launched a new Linux shell because of an interesting idea
they'd seen in TempleOS, or was inspired to write a new IDE which borrowed
some features, then the world is a better place for it.

p.s. everyone thrives on attention.

~~~
ebbv
> If tomorrow someone launched a new Linux shell because of an interesting
> idea they'd seen in TempleOS

Yeah, this is not going to happen.

A) It's been around for a long time.

B) He's not some misunderstood genius full of great ideas.

------
Maken
It sounds like a security nightmare and I'm not sure about how efficient it
can be for not user oriented tasks. But the ubiquity of the system is like
what XML pretended to be but never was.

~~~
igravious
Read the article :) Not multi-user. No networking.

~~~
chomp
Terry,

You are currently shadow banned.

~~~
rosser
He knows this already.

