Oh... almost forgot...
"Syntax also plays a role. Although Smalltalk is pure OO and beautiful, it is easier for a programmer to learn Java (most of them know Pascal/C ou Basic)."
Some of the most successful Smalltalk projects I've worked on involved people who were never introduced to Pascal, C, or BASIC. It's a subtle point, but I'm not sure that programmers are the best people to have developing software. There's too much baggage they bring to the project.
Successfully modeling a real-world process is more concerned with understanding what questions to ask the model's consumers than understanding the side-effects of auto-incrementing a variable in an assignment statement, or even how C++ implements multiple inheritence.
There have been a couple projects I've worked on where I used Smalltalk to model a system under development DURING user interviews. When asked what I was doing, I simply said I was "capturing the system specifications in an active, graphical note-taking environment." On one project, at the end of a five-day series of meetings, I actually had some of the non-technical staff modifying my classes while I wrote on the white board. I am fairly confident that you will NEVER see non-technical people volunteer to edit .java files to represent changes in an ongoing specification, even if you're using JBuilder, Forte (NetBeans?), Eclipse, or IDEA.