
Charles Simonyi on Intentional Software Joining Microsoft - lx
http://www.intentional.com/charles-simonyi/
======
haspok
It always amazed me that during their ~10 years of existence they never
actually produced anything visible, other than demos. I remember I had been
very excited about their "intentional" approach, even though so many years
later I tend to think that it is actually an evolutionary dead-end (anyone
remembers 4GL and 5GL languages? The late 90s when CASE tools and visual IDEs
like Delphi were all the rage?). There is no silver bullet.

I'd love to be proven wrong, though, and hope to see some of the "intentional"
stuff in any real software product.

~~~
WaxProlix
I worked there for about a year, there were a number of contracts fulfilled
using the workbench and associated technology (mostly NDA). At some point
there was a pivot to a graphics-heavy reinterpretation of the core tech, which
was pretty secretive and so didn't get a lot of press.

My project didn't use the core 'intentional' tech and we got spun off into an
atrociously mismanaged, doomed sub-startup, so don't ask me too much about the
intentsoft tech itself (though I can probably give rough answers for any high
level stuff if you're curious).

~~~
SpindleyQ
I worked at Intentsoft in its earlier days (2006-2011) and left just as it was
really starting to seriously staff up. I look at the pictures of the office
these days and it's so surreal to me to see the absurd growth of what had
stayed a small team for a really long time.

Is the Pole Position cabinet still there? Did anyone ever fix the monitor? I
miss that thing.

~~~
WaxProlix
They actually moved down the street from that original office about 2 and
change years ago. This is around when I left, coincidentally, so it's hard to
remember which cabinets made the trip or not.

------
walterbell
2009 article by Martin Fowler on Intentional's Domain Workbench,
[https://martinfowler.com/bliki/IntentionalSoftware.html](https://martinfowler.com/bliki/IntentionalSoftware.html)

> _Afterwards a couple of people said it was the most important demo they 'd
> ever seen, comparing it even to the Mother of all Demos. For many there was
> a sense that the whole world of software development had just changed._

~~~
DalekBaldwin
For the curious: it's difficult to find that particular demo on the web now,
but the system didn't look too much different from its earlier incarnation at
Microsoft in the '90s:
[https://www.youtube.com/watch?v=tSnnfUj1XCQ](https://www.youtube.com/watch?v=tSnnfUj1XCQ)

~~~
haspok
I know it is not a fair comparison, but modern IDEs such as IntelliJ IDEA do
pretty much everything demonstrated in this video. They build a database of
the project, and let you do refactoring with the help of that.

The only thing that is notably missing from IDEA is the graphical
representation: but raise your hand if you ever missed to see your program
represented as a flowchart, for example. Does it actually have any real value?
Perhaps, while you are learning programming.

The diagrams that are actually important and useful are mostly architecture
diagrams and are impossible to create from source code - and it is also very
hard to generate meaningful programs from architecture diagrams.

~~~
coldtea
> _The only thing that is notably missing from IDEA is the graphical
> representation: but raise your hand if you ever missed to see your program
> represented as a flowchart, for example._

(raises hand).

> _Does it actually have any real value?_

Yes.

> _Perhaps, while you are learning programming._

Or when you're trying to understand the structure of a program you've just
been assigned to work on, or that you wrote years ago and have to do a change,
or when you want to see the big picture, etc etc.

Ever worked with a visual language?

~~~
haspok
Whenever I try to understand a program, I do draw structures of it. But it is
NEVER the structure of the source code as is, but some parts the main flow
with the unimportant bits left out (what is unimportant depends on the goal of
the task at hand), mapped in some way that aligns with the goal of the
investigation. It also has to include the runtime components, eg. objects, not
classes.

Watching Eric Evans talk about DDD along the example of maps was a real eye
opener for me. This: [https://www.infoq.com/presentations/model-to-work-
evans](https://www.infoq.com/presentations/model-to-work-evans)

I tried to use tools like Enterprise Architect in the past but failed to
produce anything useful with them (that includes architecture diagrams -
charts based on standards never seem to be fit for what I actually wanted to
communicate).

The closest I ever got to usefulness was with database structures, we did
manage to generate the actual production schema from ERwin for a SQL database
at one place I worked, but of course, not the stored procedures.

~~~
coldtea
> _Whenever I try to understand a program, I do draw structures of it. But it
> is NEVER the structure of the source code as is, but some parts the main
> flow with the unimportant bits left out_

While some tools might be more or less accommodating, there's nothing about
visual representation per se that can't do that (including filtering the non-
important parts, producing something akin to UML's interaction diagrams, etc).

------
gigelu
I respect what Simonyi did for the industry back in the day, but Intentional
Software is just useless vaporware (or -at best- weird academic research
without practical applications). As a Microsoft shareholder, I'm disappointed
they're paying money for it (probably only to get Simonyi back, though his
technical expertise is totally outdated and his management skills are
questionable).

~~~
rfrey
Genuinely curious how you're assessing his technical expertise - you must have
serious insider access to be able to judge it as totally outdated.

------
rrdharan
I had never heard of Intentional Software until I recently read Dreaming In
Code[1] where the company is mentioned briefly.

Prompted me to wonder if they were still around, which led me to their
Glasdoor reviews page which is sort of entertaining popcorn fodder[2].

Then lo and behold a few weeks later the acquisition popped up in the news.
Synchronicity at work I guess.

[1]
[https://en.wikipedia.org/wiki/Dreaming_in_Code](https://en.wikipedia.org/wiki/Dreaming_in_Code)
[2] [https://www.glassdoor.com/Reviews/Intentional-Software-
Revie...](https://www.glassdoor.com/Reviews/Intentional-Software-
Reviews-E284295.htm)

~~~
kornish
> Synchronicity at work I guess.

Gotta love the Baader-Meinhof Effect:
[https://en.wikipedia.org/wiki/List_of_cognitive_biases#Frequ...](https://en.wikipedia.org/wiki/List_of_cognitive_biases#Frequency_illusion).

------
phlakaton
My introduction to intentional software was by way of the book "Generative
Programming: Methods, Tools, and Applications" by Czarnecki and Eisenecker. I
can't say that the book has had broad application to my engineering work, but
it's been fun to think about from a philosophical perspective, bits like
feature modeling have stuck, and even the early research into IP covered in
the book impressed me...

------
AceJohnny2
For reference, Simonyi worked on the legendary Xerox Alto, where he wrote
_Bravo_ , the first WYSIWYG editor.

He later joined Microsoft in 1991, where he started Word.

~~~
gaius
He is also the inventor of so-called Hungarian Notation
[https://en.wikipedia.org/wiki/Hungarian_notation](https://en.wikipedia.org/wiki/Hungarian_notation)

------
bitL
What's the difference between Intentional's product and JetBrains' MPS? To me
it seems like MPS can do much more and can accommodate Intentional's model as
well. Anyone knows better?

~~~
solomatov
It's hard to know. Intentional asks people who they show the product to, to
sign a restrictive NDA, so they can't share what they do. I hope, after MS
acquired them, they will release it under less restrictive license.

------
agumonkey
Wow, it's been long since I looked into Intentional Software. I was so
enamored with their ideas back in the days.

Also reminds me of subtextual (jonathan edwards phd)

~~~
politician
[http://www.subtext-lang.org/](http://www.subtext-lang.org/) This?

~~~
msingle
that's it.

------
matchagaucho
_Research has shown that handwritten notes are more effective for learning and
recall than typed notes, and for this reason pen computing will flourish
whenever notetaking is required_

Really? This smells like over-fitting the research to justify a desired
commercial outcome.

------
bluesmoon
Charles Simonyi is also the person behind the Hungarian Notation of naming
variables.

~~~
DonaldFisk
According to Joel Spolsky, Hungarian notation
([https://en.wikipedia.org/wiki/Hungarian_notation](https://en.wikipedia.org/wiki/Hungarian_notation))
has been misunderstood (as System Hungarian). In its intended form (Apps
Hungarian), it's a good idea:
[https://www.joelonsoftware.com/2005/05/11/making-wrong-
code-...](https://www.joelonsoftware.com/2005/05/11/making-wrong-code-look-
wrong/)

~~~
SpindleyQ
This is true. We used Hungarian Notation internally extensively. The most
counterintuitive thing is that having a cryptic name for a concept can have
advantages: it has a precise meaning, and if you don't know what it is, you
can't convince yourself that you do. If there's a class in my code called, I
don't know, "View", that's going to give me clues as to what it is, but it may
also mislead me into thinking it should support certain operations that it
doesn't, or that we're talking about a UI view when actually it's referring to
a database view, or whatever. If you just string together a handful of random
letters, at least when communicating with someone else you know you're talking
about the same thing, and you'll use the same name consistently.

Not a good idea for code that you want people to be able to use without
gaining a deep understanding of, but for collaborating on inventing new
things, it's a very effective communication hack.

~~~
frou_dh
> The most counterintuitive thing is that having a cryptic name for a concept
> can have advantages: it has a precise meaning, and if you don't know what it
> is, you can't convince yourself that you do.

To see complete and total saturation of that concept, take a look at the
source code of Urbit

~~~
crazy2be
Example:
[https://github.com/urbit/urbit/blob/master/noun/vortex.c#L23...](https://github.com/urbit/urbit/blob/master/noun/vortex.c#L239)

I can confirm this is roughly what the intentional source code looked like.

Personally I found it a huge pain and an unnecessary difficulty, but opinions
differed :). The bigger problem was a lot of the code was crap (yay research
code!). The lack of english names only made this more difficult because it
removed valuable clues as to what the intention of the author might have been.

------
oh_sigh
Is this massive ontology similar to what Leibnitz attempted with his
characteristica universalis?

~~~
ilaksh
Nope. Not really related except in the most vague way.

------
twsted
"I wasn't able to make anything interesting out of Microsoft so I'm joining
them again"

~~~
dang
Personal attacks aren't allowed on HN. Please don't post like this.

