Forum OpenACS Q&A: Re: Updated technical answer for "the PHP Question" Requested
- Knowledge. There a hundred thousands of people that write knowledge of PHP on their resume. They know it, because it is easy to learn, there are courses for PHP in every university and if you want to extend your PHP solution you can just pick the guy around the corner. Though this statement is naive as it seriously neglects the fact that in any decent sized software project, knowledge of the API of the toolkit is considerably more valuable than knowing the programming language (ever saw someone advertising: "Looking for developer with BASIC skills?". On the other hand there are ton's of adverts for people with "Visual Basic Skills"). And I'm pretty sure you can ask any developer in the community that the ratio "learning tcl" vs. "learning openacs api" is around 1:10. But again, this is something often overlooked by IT people
- Our neighbours are using it, we use it, you can't fire me for choosing what they choose. Though this isn't as strongly true as it was before, you still won't get fired for choosing Java, SAP or any other major force in the landscape.
- Market awareness. There are 173 books in german on PHP. There are 19 on TCL. There are around 700k hits for "tcl language" on google, around 8000k for "php language".
Now for some of the good things of TCL:
- Reliability: The language is 15 years older and still as capable as PHP, with a higher grade of maturity (as the links you mentioned above show. The deficiencies are to me clear signs of immaturity).
- Ease of learning: If you know Perl or PHP, learning TCL is a piece of cake. You have to get used to different conventions, but any decent develop should be able to do this.
But why have this argument in the first place? The only answers to this should be:
a) Language does not matter with regards to scripting languages, as you can learn them within a couple of days. The API and development tools are what counts.
b) When Naviserver / AOLserver started, PHP was not even in existence (it's predecessor was developed in 1995). TCL is more mature and used in high risk environments.
Optional: c) In contrast to PHP, TCL does not come from a web only background. This actually might backfire, depends on how you argue the case.
Last but not least, you should always argue with the whole package:
- A multithreaded webserver that runs the worlds most busiest sites, serving personalized content without much of a hickup. Furthermore, this webserver happens to have years of refinement spend on it, bringing it to a fast and reliable state for the applications it runs.
- Postgres / Oracle. In a highly complex environment it is mandatory that your databases fullfil the ACID tests, support transactions and allow operations to be executed via a programming language within the database itself. MySQL does not fullfil these criteria, at least not a year ago and still not completely this year (support for programming language is still missing. Sourceforge (I think) got screwed because the MySQL backup was broken because of a transaction problem. The choosing of Postgres should therefore be justified and you never get fired for buying Oracle :).
- A serious number of pre integrated modules containing over 2 million lines of code (is this the correct number? Roberto ?)
- A vibrant and active community willing to help out people who stumble across any problems with multiple dedicated major players investing over 3 million dollars per year in the development of the toolkit.
And if people ask you why so few people have heard about OpenACS and .LRN be upfront and name the culprit: "Bad marketing".