Dynamic languages troubles

I have read http://www.manageability.org/blog/stuff/chandler-failure and I think it is very danger way of exposing concepts.

In the article pointed out, the quite dead Chandler project is compared to the multi-billion Eclipse project. And then a too easy analysis is done against dynamic languages, where Java is the absolute winner.

I will try to fix some of the things said there, and to add also my two cents here :)


 

First of all, I use Java a lot, but I am also a fan of dynamic languages. Every tool has its place in the world, and I will avoid some holy war here. 

Anyway, it is important to understand major differences between very distant projects.

 

First of all, Eclipse is a very huge project, developed by IBM and based from the beginning with a very strong hype on plugin modularization.

The effort pushed inside Eclipse is very huge and come also from the San Francisco Project. Other IDEs (like JBuilder and Together) stops fighting Eclipse years ago, and eventually failed even to sell their stuff.

 So there are no similar example to Eclipse in Python/Ruby/Perl world. Even in PHP is hard to find a so huge and well designed program. And the languge here is less important: a company big as IBM can also code in PL/I all its stuff, without so much pain :)

Second, PHP is very successful language, even if a bit too insecure, at the present time.

PHP Language has poor support for modules and so on, but project like Drupal, Joomla and other are full of plugins, quite easy to write.

RubyOnRails is falling down because nobody is understanding why PHP should be abandoned for Rails.

Java architectural model is very well written and Sun worked very hard to it. Java Hot Spot VM is derivered from the Self dynamic language,  and has inside technology difficult to develop in an open source project.

Surely Dynamic languages are strong when there is the one-man-band paradigm: sharing works in Smalltalk was  a bit complex in early days.

Put Perl, python and ruby have a strong modularization concepts, and so this issue is often solved.

I have tried Zope and I think it is weak because:

  • Zope is user is non-existent. Zope user is a super-skilled web master which wants a web CMS without writing so much code.
  • Zope product upgrade is a nightmare
  • A stuck Zope Product can destroy your work. So hosting Zope is a problem
  • A lot of Zope basic objects (like cache accelerators and so on) are poorly minded: they works only on RAM, and are not thinked well. Drupal 5 has more strong theory for this issue, and Drupal is poor PHP code.
  • Zope use a proprietary database, when a simple SQL database with a relational mapper can do the same thing…think twice before reinventing the wheel!
  • Every major Zope releases breaks a lot of the API. This is the most stupid thing you can do as open source developer.

Chandler failed because they tried a very difficult business: calendar software is a very difficult area to address. All operating system (including possibly C/64 :-) has now a huge set of Personal Information Manager software (PIM), and LDAP solves sharing issue for big companies

Even Ximian Evolution is near death.

And your bigger competitor is Microsoft Exchange and… yes… old Unix.

Dynamic lanuages has many lacks, and difficult refactoring is a problem but… remember frefactoring tools was INVENTED under SMALLTALK!

IT is a place where you must be careful… isn't it?

 

 

 

 

La caduata del governo per interessi personali

Lo scandalo della caduta del governo Prodi sta in questo piccolo fatto: il governo cade perche’ un ministro (Clemente Mastella) ha deciso di fare una stupida ripicca.

Clemente Mastella negli ultimi sei mesi si e’ distinto per essere il piu’ fulgido rappresentante della peggiore casta politica italiana.

E questa affermazione, si badi bene, è solo una constatazione.

Prima si è reso partecipe dello scandalo dell’aereo usato per scopi personali.

Poi ha dimostrato una totale intolleranza verso la satira, adirandosi contro Grillo e Crozza.

Infine, si è lamentato del fatto che la giustizia stia facendo il suo corso, interessandosi a vicende poco chiare

che coinvolgono lui e la moglie.

Infatti tra i distinguo che bisogna fare, di sicuro è esecrabile il fatto che la notizia sia

giunta prima alla stampa che a lui.

Ma questo è normale nel mondo dell’informazione (almeno dal 1950 in poi….).

L’italia, paese che io amo, fa purtroppo una magra figura agli occhi dell’europa: il governo cade per gli interessi

di una sola persona, e il paese ne risente per una cosa così stupida.

Entrambi i poli dovranno meditare su questo ennesimo insuccesso, che non porterà vantaggi duraturi a nessuno

statista che sia veramente responsabile

Shopping in the IT

Oracle buys BEA and Sun buys MySql.

In reply,Migrosoft is hungry and is watching Yahoo :-)

<joking> 

Any bets on the next money-based-news?

I'm going for

  • Oracle buys Sun: "We need more hardware to run Oracle and WebLogic together! "
  • Google buys Oracle: "We have *even* more hardware…come on!"
  • Apple buys Google: "So nice LOGO", retrodating a bunch of stock options, I suppose.
  • Microsoft buys Apple ("So annoied their are more cool then us!") and shut down all them all so you will end up using their search engine, I hope.

</joking> 

Surely Oracle needed a good application server to push its db.
Sun move seems  a bit strange in my humble opinion: anyway the big competitors in standard dominance (Sun,Oracle,MS) now have all the same stuff: broad used databases and application servers.

Even Apple has acquired FileMaker, pushing it with the "Bento" single-user-oriented db. 

Google has a different approach and a bit different market scope, so do not enter in the plan drafted here.

Sun move is very strange because MySql is not an "enterprise" stuff as in the Sun-way-of-life; normally Sun wants big software which need big computers, to buy at Sun Shop.

MySql should be acquired by Microsoft because of its very light footprint: but it sounds too much open source stuff for this move.

 

 

 

 

pyparsing review

This is the sad true: parsing is boring. And writing parser is even worst.

If you can choose a scripting language for parsing you can think to do it in perl.

For this way, take a big breath and go in the black sea  of perl's funny regexp. They are funny only if you have that special love for the regular expressions.

But if you are more confortable with python, pyparser is a better solution.

Pyparser is a library written in Python, for building parser described with a BNF (Backus-Naur Form).

O'Reilly has just published a "Short Cuts" e-book written by Paul McGuire; in less then 70 pages you get a very good insight of pyparser.

Even if you are new to python, the book is very easy to read.

And if you do not know nothing about parser and Backus & Naur, you will find an easy path to understand it. Parsing is a tricky topic because of the grammar theory behind it, but for all-day work, you can follow the McGuire introduction.

After some simple example, you'll dive into a small web page parser.

It is very amazing how you can do extraction from web pages without a complex Sax parser, and using only  a very compact grammar.

After this intro examples,  the manual take us to a more complex task: a lisp-like expression language parser called S-Expression.

This example is important because complex data structure are oftern recursive as S-Expression are.

The last chapter, "Search Engine in 100 Lines of Code", is a well-written example, and show us how to build a small search-engine-grammar.

 So this e-book is a "must" if you need to do even simple parsing and you… do not want to become crazy with too regular expressions :)

 

 

 

 

Why Open Source is important?

Hi readers,
with the beginning of 2008, ObjectsRoot.com will change a bit its face.

First of all, all Italian article will be moved to the new “vamp” site, thinked as a news site.

Objectsroot will focus on IT Business and it will host only english content: IT article will remain here, at least for a while.


ObjectsRoot.com will focus on publishing and advanced web services for our customers.

I  have done some deep  consideration on Open Source Software  and I will summarize them here.

From the beginning of my Univesity studies, GNU software helped me  to grow in my competence.
Linux was far more advanced the MSWindows in 1993, and helped innovation.

Commercial software is always a bit too expensive, especially in Italy when consulting firms got paid for doing a lot of work, and there is little space for the Independent software vendor (ISV).
Worst, in my last 12 years of experience, quite all of my Cutomers didn’t like the “out of the box” product sold by big companies. I spent about the 80% of my time in customization of already-done things.

Italians want things in a very particular way I think :-)

In the last year, I get stuck because a very bad designed product failed in so many area, the customer eventually decided to cancel the project after 12 months we cannot get basic things working (like for instance search in natural language like GOOGLE!).

That bad stuff is written in Java and is a Knowledge Management System.

I was in pain because the support was poor and they was unable to  give me the documentation.

Even worst , because the project was composed of all closed-source things, the 120MB ear was very difficult to understand.

They rewritten things like Hibernate and Log4J, with poor result in our environment. Worst they supported only AIX and Linux, a very limited platform choice, isn’t it?

(I omit the company name because I am a good guy, and I do not want to put shame on a company with good programmers, bad software archiects and even worst support)
I think these guys never read the JoelOnSoftware‘s WebSite.
Anyway they used all the Java technology out of there, and they wrote a very huge amount of code.

I get the same feelings of this guy, which wrote on his site about a very similar problem:

Once upon a time I had to deal with a company who sell flash charting components, their component had a bug that I needed fixing, so I emailed them about it asking when it’d be fixed. (Remember that I had paid real money for this software.) They were so incompetent, rude and obnoxious that after three or four weeks of emails I thought to myself “I could learn Flash and Actionscript and write my own charting component, release it as Open Source, host it on sourceforge and build up a community of helpful coders faster than they can fix a single bug.” And that is what I did. And that is why it is free. I guess the moral of the lesson is: don’t piss off your customers.

So I understand why open source is important.
Open source is a good way of sharing knowledge, and this is the most important things.

Please note that cost is not the most important thing.

Shared knowledge and examples are the most important things. Let’s see why, dear readers.

Why Shared Knowledge?

In the’80 and also in ’90 a lot of software company failed to true understand what shared knowledge is all about.

Shared kwnowledge is the big force which helped some open source software to survive far beyond its initial developers.
Netscape used it to keep Mozilla source code alive.
Others good things are quite dead (like AmigaOS) because are trying to **sell** an old, outdated things with a very little set of people interested in it.

Closed things can live well but require a very huge set of attention, money and love.
And some things cannot even born in that environment.

Get me at least THREEE EXAMPLES!

I admit it. I am a fan of Emacs. A very nerd thing. And I am also a fan of unix.

But I must learn those things, and while I am working, I have less time then an University guy.
So I’d like to see at least three examples for every stuff I must use.

Now do this joke. Think about three unix command (for example cat, rsync and  ls) and count the examples given in the manual pages.

On Linux you get ZERO examples for ls (you can get some more examples on the info pages,

but three examples are only three more line on the man page!).

You get more then three examples for rsync, and only two poor examples for “cat”.

So I suppose the rsync guys are more smart then others.

Try with another command.
This is the wrost thing of unix, in my own opinion.

Some big software company (like Microsoft)  can teach this lesson very well.
But Microsoft failed poorly about sharing knowledge, and so they avoided new ideas, because they cannot risk to afford so much money in innovation.

So Ideas need other ideas to grow, and must show at least some  good examples, the rationale, to  grow well.

For all this reasons  I will release all my software in double license: free and commercial.
The commercial is for true business man who want a click-and-install software, with paid support.
I mostly resell ready made web sites written for high speclialized customers.

The free one  (mostly GPLv2) is for who cannot afford the software, and wants to look at it, possibly extending it.

Last but not least: Happy new Year!

For the spammers: I really love you, because you do a very sad job, even worst then mine in this last year.
But please keep going on, because I like so much seeing you  working for so a futile task. And bad new year to all of you spammers!