Published by Phillip Calçado August 17th, 2010
in abstractions, books, c#, components, domain driven design, domain specific languages, java, language adaptation, language oriented programming, layers, object orientation, ruby, software architecture and software design.
Update: Part II is here.
Most complex tasks are solved using abstractions. To create an abstraction one groups lower-level concepts, what I will call primitives in this text, and make them interact in a pre-defined way.
Abstractions are present at all levels in a system. Computers work based on electric signals. To reduce the Essential Complexity we […]
It was one of my first days in the job. I was hired to head the development of several products for a media company and my new boss and I went to my first meeting.
The room was full of different types of people. You could tell those who were media producers from the managers […]
Published by Phillip Calçado March 12th, 2009
in domain driven design, domain specific languages, fluent interfaces, language adaptation, language oriented programming, object orientation, ruby, software architecture, software design, thoughtworks and trends.
Just posted slides for a presentation I gave this week for one of our clients.
Expressive Design (in 20 minutes)
View more presentations from Phillip Calçado.
It was a very nice session where we talked about the hard work that is introducing such ideas in a corporate environment as those are finally reaching mainstream.
Notice that in this presentation […]
Long time since my last book review. I just finished reading Programming Language Pragmatics, by Michael L. Scott.
The book describes how diverse programming languages implement diverse features and paradigms. It uses a cleat language and it is full of examples.
It starts really well with an overview of the steps executed during parsing and compilation. It […]
Published by Phillip Calçado January 20th, 2009
in clojure, domain specific languages, fluent interfaces, java, language adaptation, language oriented programming, lisp, object orientation, ruby, software design and thoughtworks.
We just started holding 20 minutes presentations during lunch time in the ThoughtWorks Sydney office. For the first session I gave a not-that-short talk on Lisp macros using Clojure. The slides are below.
Lisp Macros in 20 Minutes (Featuring Clojure)
View more presentations or upload your own. (tags: thoughtworks clojure)
It turns out that 20 minutes is too […]
Published by Phillip Calçado September 17th, 2008
in agile, domain driven design, domain specific languages, fluent interfaces, java, language adaptation, language oriented programming, object orientation, software design, trends and web.
I’ve been experimenting a lot with Internal Domain-Specific Languages (or embedded DSLs if you prefer the classic and more accurate term) during my recent projects and by doing that I’m facing the real benefits and caveats of that technique.
One of the biggest issues with embedded languages is that is very hard to get developers’ minds […]
Ajaxian.com published an article on Ojay, an interesting JavaScript library that rests on top of Yahoo!’s YUI. The library has a DSLish way of expressing form validation rules, like in these snippets from their website:
form(’signup’)
.requires(’username’).toHaveLength({minimum: 6})
.requires(’email’).toMatch(EMAIL_FORMAT, ‘must be a valid email address’)
.expects(’email_conf’).toConfirm(’email’)
.expects(’title’).toBeOneOf([’Mr’, ‘Mrs’, ‘Miss’])
.requires(’dob’, ‘Birth […]
I was very happy to see that Ruby 1.8.7 made a method named Binding#eval public.
This method is very useful when you need to mix two Domain-Specific Languages. In Ruby you often evaluate a block in a different context than where it was defined, using instance_eval and friends. The problems is that a block can […]
Published by Phillip Calçado June 2nd, 2008
in Uncategorized, domain driven design, domain specific languages, fluent interfaces, java, language adaptation, language oriented programming, object orientation, ruby, soa, software design, thoughtworks and trends.
I’m attending JAOO in Sydney. Today’s most interesting presentation was by Johnny Chung Lee, a Internet Celebrity(tm) with some of the most viewed videos in youtube and a researcher in human-computer interaction.
Johnny gave a brilliant talk and stressed the fact that although we have better graphics nowadays we still suck at how to interact […]
Ok, it’s not that true. Not everything but quite a significant bit of the motivation behind Domain-Specific Languages can be understood just by thinking about how video games are evolving.
I’m not a User Experience/Machine Interface expert but it is very clear for anyone that video games have evolved quite a bit in the last decades. […]