Marco Mariani, blog, report-e-pubblicazioni
Jun 29, 2011
Want to get rich? Create a methodology. Want to write better programs? Go to EuroPython!
It has been a tiring but exciting week in Florence.
After four years of national PyCon Italy, the team has been excellent and set up an event that clearly shows the level of maturity of the community.
Over the years since the first EuroPython conference, the big change is that we don't have to justify our language choice anymore.
Actually, I would not even be a programmer it where was no Python. I was a system administrator, more like a plumber than an internal decorator.
Python has taken me by hand, teaching and letting me write things I would not have attempted in other languages available at the time.
As programmers, we make trade-offs and take compromises several times per day, while we design and write applications.
Very often we take a different road than we did the day before, because we've seen what lays ahead and want to avoid it, or the customer has changed his mind, or we have a better understanding of the whole.
As a matter of fact the right answer to a programming question is often "it depends", because the architectures, markets and business models are getting more and more complex, and we as software craftsmen have none of the certainties than mathematicians or computer science people take for granted.
Fortunately for us and our customers, software can be easily changed, and nothing prevents experimenting with different approaches if time allows.
But once in a while - typically at the start of a development cycle - we have bigger choices, the decisions that make room for the following ones: the basic architecture.
- What language(s) are we going to use? (that's easy, Python. but it depends)
- Light framework or a heavy, full featured one?
- Relational or non-relational database? And if non-relational, which of the many?
- Is our application process or data driven, or both? (this is vague. it's usually both)
- Browser or server side processing?
- How will it scale to many concurrent users?
and so on, and on.
At this point, if we pick the wrong road, the application could still be delivered, hopefully in time and the customer will be happy (at first), but the program itself might be a lot more complicated than it needs to be, and hard to change. The price will be paid over time, as new needs come and maintenance is required.
Unfortunately for us, some of these are hard questions, also subject of fashions and marker pressure, and it is very hard to have a comprehensive picture just by following technical blogs.
That's why I long for conferences like EuroPython, where the scope of the talks is as wide as can be, while still remaining highly technical.
Where the authors are ready to discuss about it over the lunch, and everybody is smart for having chosen Python :-)
Best talks.. ever :-)
A few of the talks tackling old problems in light of new tools and experiences:
Relate or !Relate (Mark Ramm-Christensen)
Mark explains the difference between the forest of NoSQL databases, and shows that a good SQL DBMS can scale surprisingly well.
This is a dear topic to me, because direct approaches in one side require complex contraptions on the other one, and vice-versa.
As a side note, lately the MySQL - Postgres debate seems to be over. The latter one has sharply won, if not the market, the minds of the programmers.
How to build complex web applications having fun? (Andrew Mleczko)
If the user wants both, give them both. Instead of fitting every requirement in a single architecture, try deploying a full-featured
CMS along with a light, flexible framework and divide the tasks -- a little like loading a bike on your camper.
You can go anywhere and they integrate well.
This is easier today (in the post-WSGI world) thanks to Pyramid, a highly refined foundation for web applications that lets a lot
of freedom: should the architecture be modeled after Zope, Plone, Pylons, Turbogears, Rails or Django? With Pyramid, "it depends" is the main concept :)
Other worth mentioning
- Challenges in developing a large Django site (Simon Willison)
- An iPhone-Python love affair: Building APIs for mobile (Anna Callahan - Nate Aune)
I also had fun with Raymond Hettinger, the only developer I've known that adds a +1 charisma bonus within a 10mt radius.
In his training track, he tore apart core concepts of Python (classes, decorators, properties, descriptors, dictionaries) and as he spoke rebuilt them using lists only. MacGyver couldn't do better!
But really, I could list half of the talks in the schedule, they are that good, and they kept a good balance of more and less advanced matters.
and the plone-ish stuff?
Sure, I would have liked a few more talks about Zope, Plone, BlueBream or Grok, especially highlighting how they have changed in the latest years, becoming more powerful, easier to extend and deploy, and there should be some effort communicating that to new developers.
They are coming to the conference to look for directions, and might go after some fashionable, but less capable tools.