May 2007
MicroApps - Microapps.org
by 2 othersMicroApps are small REST applications that are designed from the ground up to be integrated with other applications. Usually, they are not directly useful on their own, but must be integrated into other applications (this is what differentiates a MicroApp from a regular REST application).
March 2007
Python, Ruby, Testing
That aside, despite appreciating both languages, Andrzej feels that he learns more from the Ruby community. I mentioned earlier that Andrzej isn't a language zealot. He is a zealot for agile development techniques. What he appreciates about both Ruby and Python is that they are languages that assist and encourage in the production of beautiful and elegant code. He cares about the beauty of his code, ugly code offends him. Smile
This is something that I started to appreciate with Python, and why I fell in love with it. It is also what makes the art of software creation so beguiling. Not only can we solve problems, but we can do so in ways that are elegant. Beautiful code is easier to understand, is a clearer expression of the programmers intention (a concise encapsulation of concepts), and is therefore more reliable and easier to maintain.
This is why domain specific languages are important. They emphasise that code should be the clearest expression of meaning possible, and this is often exemplified in the declarative style. You write code that says what you mean, and then provide a framework which interprets this in ways the computer can understand. See this blog entry, about a PyCon talk, for an example of writing a DSL with Python.
For Andrzej, and also now for me since joining Resolver a year ago, agile practises like test driven development are an important part of creating beautiful code. This is what Andrzej means when he says that he learns more from the Ruby community than from the Python community. Part of this probably stems from his longer involvement in the Ruby community, but he feels that he learns more about effective testing (and explorations of other subjects about methodologies that are not specific to any individual programming language) when reading Ruby blogs than Python blogs.
I have to say that in the Python blogosphere it does seem like there is not a huge emphasis on testing and test driven development, and the nuances of when to test and when to mock. That isn't to say there is no-one talking about it, just not a focussed exploration of these issues. There are exceptions (and feel free to disagree with this point).
Grig Gheorghiu is a notable and important exception to this. (Andrzej and I were fortunate to meet Grig at PyCon, although only briefly, and I regularly point Andrzej to interesting posts on Grig's blog.) Not only does he blog regularly about testing, but he has also just started the Testing in Python mailing list. Hopefully this will become a focal point for the Python community in discussing and refining testing tools and practises.
1
(2 marks)