One thing we can’t forget is the constant search for a new version of LibFácil. When I used to program in Clipper, a friend nicknamed our library FazTudo, because we had almost everything ready in that library.

The time passed and I continue to look for a new version of LibFácil, whether in Java, C#, Python or Ruby. It’s interesting the effort a programmer makes to find new libraries. Many times, I’ve wasted more time searching for a new library than if I had implemented it from scratch myself. That’s part of the risk, but normally the reward of a library is greater stability and today in the Open Source world, we can count on daily updates, communities to solve bugs and endless downloads, tutorials and websites to learn how to do.

But finding LibFácil isn’t easy. I participate in the Python Brasil group, a mailing list about Python, and there are frequent searches for graphical libraries: GTK, QT, Wx… it’s the same for games where we have PyGame and Pyglet. In Delphi it’s the same thing, with an added twist: components.

Not that all this is bad, but excess options have their disadvantages. An example is choosing a language and set of libraries to write a new Web application. There are so many options that the choice becomes Herculean work. J2EE, Ruby on Rails, Django, Microsoft technologies, Zope and the thousands of almost frameworks PHP, site managers and magical wikis we find around.

I myself am looking for LibFácil for sites and I discovered a very interesting way to choose a library for the service, in this case, Web sites with databases, the old systems now called web applications :-). Since the Web is our platform, one way to think about this type of problem is to see the hosting options. Any web application today needs a secure and fast server, both in terms of Internet bandwidth and processing. Hosting in the USA is almost free, but not quite. If you choose J2EE or Python, be prepared to spend more. Most sites I found only offer hosting in Python or Java with dedicated hosts… it gets very expensive. But the question is LibFácil.

Before starting to develop the system, we have to choose the database, the object-relational mapping library, the framework, etc., etc., etc. And each of these questions is answered by a different library. The number of abstraction layers grows terrifyingly, making even the simplest applications slow, even on computers with absurd resources like we have today. This week I was discussing the use of XML or YAML in our systems :-) However, the decision is always taken regarding the maturity of YAML or XML libraries. As I hate XML, it’s easier, but not always.

In the end, you use about 15 libraries to do anything stupid. And each one is a new world. Perhaps this is the explanation why professional programmers don’t change libraries so easily. Once they learn or master a concept, they stick with it for 10 or 15 years… that’s why I still find people nostalgic for Visual Basic or Clipper. It was so simple back then. You installed the compiler and you were ready to do almost anything, but there were already commercial libraries and components… but it was easier. Life with Delphi or .Net doesn’t make choices much easier either. I use the new Delphi 2007 for Win32 and it comes with about 4 or 5 different ways to access databases. I found that little and still installed another way… and so on.

The search for LibFácil sometimes diverts us from real problems. I’ve seen many developers modify a simple problem just to be able to use the library they like most. Anyone who works with Java thinks XML is the most natural thing in the world, Perl is beautiful, Python is perfect. That’s why I defend a certain independence between those who develop the solution and those who determine the architecture of all this. Who has never seen Delphi application forms completely infuriating, everything to use DataAware controls and make life easier for the programmer :-).

And the search for LibFácil continues. Long live Google and the Internet. The search will never end !