The History of Microsoft with Charles Simonyi: Part Two
- Posted: Jun 13, 2010 at 6:44 AM
- 59,868 Views
- 2 Comments
Loading User Information from Channel 9
Something went wrong getting user information from Channel 9
Loading User Information from MSDN
Something went wrong getting user information from MSDN
Loading Visual Studio Achievements
Something went wrong getting the Visual Studio Achievements
Right click “Save as…”
Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation,
please create a new thread in our Forums,
or
Contact Us and let us know.
Follow the Discussion
Oops, something didn't work.
What does this mean?
Following an item on Channel 9 allows you to watch for new content and comments that you are interested in. You need to be signed in to Channel 9 to use this feature.What does this mean?
Following an item on Channel 9 allows you to watch for new content and comments that you are interested in and view them all on your notifications page.sign up for email notifications?
I am such a huge fan of Simonyi! If anyone is unfamiliar with 'intentional programming' / 'language orientation', Martin Fowler has a great write up here - http://martinfowler.com/articles/languageWorkbench.html
I've leveraged his ideas to create a DSL development facility in my embedded C++ game engine. The facility enables end-users to quickly define new external DSLs for their specific game requirements. Once the DSL is specified, they can concentrate directly on their game-specific problem(s). It takes the concept of 'data-driven' engine design to a whole new level. However, implementing the language building facilities in C++ presented some very novel challenges
Most game engines expose a single monolithic imperative scripting language such as Python or Lua. While initially a very simplifying solution, anyone who has used those on a non-trivial game project can attest to what a mess their game's scripts turns out to be in toto. I think the types of DSLs my engine offers keeps things much cleaner due to their generally declarative style and exact fit to each specific problem. Not only that, but the intermediate tree representation of each DSL document is exposed, making it available for inspection, transformation, and projection at runtime. Very lispy and very powerful.
I love intentional programming, and I wish the best to all of us trying to effectively leverage Simonyi's ideas in practice!
Did he really just say, "Imagine if a computer were as hard to use as an alarm clock."?
Remove this comment
Remove this thread
close