Archive for the 'language oriented programming' Category

Expressiveness Omnibus

Recently a friend discovered this blog. She asked me why do I write so much about Expressive Design. This is not the first time I’m asked this so I decided to write down my answer. I will try to give some overview of the topic and link to the many articles in this blog about […]

Thoughts on Abstractions: Part 1 – Abstractions Everywhere

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 […]

Nevermind Domain-Driven Design

Over the past years I’ve held many workshops on Domain-Driven Design. We had more than one hundred people on those sessions, and feedback was often pretty good. After my last run I told my business partner that this was my last time running those workshops.
I think that Domain-Driven Design is one of the most […]

I Wish I Knew That Before Getting This Job – Slides and (Long) Notes

As I said here before I was in Brazil some weeks ago to present at a conference. I had a really great time over there with some amazing people and would like to thank Caelum for their hard work in creating such a great conference. I’m making the slide deck and notes available in my […]

ThoughtWorks Away Day Presentation: Common Myths about Type Systems

In ThoughtWorks we get together at least once an year for a whole weekend to drink beer and do whatever people consider interesting. This year’s ThoughtWorks Australia Away Day (AKA Team Hug) was somewhere in Victoria and among other activities (and a bus crash) we had technical sessions.
I used one of those slots to do […]

Watch Your Language!

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 […]

Tag Clouds: See How Noisy Your Code Is

If you follow this blog then you probably know that one of current interests is expressive design, either using Domain-Driven Design or Domain-Specific Languages. Here is a presentation about this topic.
One of the tricky things about expressive code is that it is very hard to see how noisy a code base is. What I found […]

Expessive Design - Slides

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 […]

Programming Languages Pragmatics, 2nd Edition – A Review

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 […]

Presentation Slides: Macros in 20 Minutes

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 […]




About

You are currently browsing the PhilCalcado.com weblog archives for the language oriented programming category.

Longer entries are truncated. Click the headline of an entry to read it in its entirety.





Creative Commons License

This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.