Today I was reading some blogs and forum posts which were describing and comparing the benefits and weaknesses of some of the top CMS systems including TYPO3. One of the major things described as a weakness of TYPO3, and which is often brought up in such CMS comparisons, is that TYPO3 has a sharp learning curve. This is most often attributed to TYPO3's use of its own configuration language, typoscript. Having used TYPO3 for three years, I see typoscript as anything but a weakness.

Typoscript is a powerful configuration language that makes it very easy to configure such a large and flexible content management system as TYPO3.

I set up my first commissioned TYPO3 site without really learning typoscript. I basically just copy and pasted typoscript code samples that I found around the web in order to implement the features I wanted. I never really had to understand typoscript in order to do this.

Doing that and using some of the thousands of freely available TYPO3 extensions and configuring them by entering settings into HTML forms, one with very little understanding of typoscript can build a decent site pretty much the way that they want to, and without much sweat.

Basically, other CMS's use PHP (a programming language) as a configuration language.

Instead of being a weakness, typoscript is a strength It makes every thing easier. In TYPO3 you don't have to edit any PHP files in order to set up a site or a site template. I noticed with other CMS systems, you have to know which PHP files to modify what they're called and where they're located. And then, if you enter some PHP with a missing bracket you're in trouble.

But typoscript fails gracefully. Syntax errors in typoscript in most normal circumstances are ignored and a missing bracket usually won't cause a fatal error or result in the printing of errors on the frontend like equivalent PHP errors might do.

Typoscript is a nice and easy way to configure TYPO3's underlying code procedures. Much like .htaccess and http.conf files easily allow configuration of the Apache web server without messing with any C code, typoscript allows for the configuration of what is sent to various PHP functions that make up TYPO3, and without having to become overly familiar with those functions.

The same thing goes for PHP. Nobody considers the various options that can be placed into a PHP.ini file to be a weakness of PHP. No. PHP is easy to configure, because it allows a person to configure PHP through the PHP.ini file without having to know anything about the code that runs PHP.

The same thing goes for MySQL configuration files. Or the Windows registry, which is very similar in structure and syntax to typoscript. Typoscript allows a developer to make changes to how a TYPO3 site functions in the same way that users are able to change the operation of Apache, MySQL, and other programs through similar means of configuration.

It's not that I don't think PHP is a great programming language. It is. But I feel it's a messy and less manageable way to configure a CMS than with an interfaced configuration language like typoscript. To clarify, imagine that compiled languages like C were actually interpreted languages. What sense would it make to configure Windows, Apache, or MySQL - by modifying C code in various files in order to modify those programs to get the functionality desired.

Programming languages are great for creating applications, but for configuring them, I'd prefer not to use a programming language to do it. Better yet, for a big CMS, I prefer to do configuration with a configuration language like typoscript which allows configuration to remain centralized and easy to manage with a tool like the typoscript browser.

Type of three was difficult for me to learn. And I understand how typoscript may be difficult for a beginner to grasp. And in hindsight, I could have understood typoscript more easily (and faster) if I just understood it for what it really is - a configuration language, and not a programming language!

Approaching typoscript from the position that it is a configuration language, I believe, makes it much easier to learn.

Beginners often think that typoscript is a programming language. And that's where I think many TYPO3 beginners get confused. They approach it with the wrong mindset, one that makes typoscript seem way more difficult than it actually is.

With the proper understanding of typoscript one will see that it makes management of large sites very easy. With typoscript you don't have to edit numerous PHP files in order to make a template. In fact, with typoscript, a person using TYPO3 really doesn't have to do much PHP coding - if ever, and the times you will need PHP is only if you want to make an extension (which is also easy with TYPO3's API & the extension kickstarter. And like I said before, typoscript fails gracefully in the event that any syntax errors are made

I think critics of typoscript need to take another look at it and understand that typoscript was never intended as a programming language. It's much simpler than one might think. And typoscript, in my opinion, makes managing a sophisticated CMS like TYPO3 much easier than if it had to be managed by tweaking and hacking a slew of PHP files.