Chaotic PatternExclusively Symphony, straight from the source

Screening it to the right audience

Calling your film “Big Sexy Jugs” for a film about pottery is only going to leave your audience confused, dissapointed and annoyed.

Symphony certainly is a bit of a head scratcher. It’s difficult to really put your finger on it; “A ha, Symphony is [insert pre-existing definition]!”. It suffers from an identity crisis. Correction, Symphony knows very well who she is, the problem is people’s perception of her. Judging from the public’s opinion of Symphony and the type of support enquiries we receive, it’s obvious that many people have the wrong idea about Symphony. It’s our fault really, the product website fails to really define Symphony, who should use it and why it’s useful. Now that I’ve acknowledged it, I am going to address the problem right here.

Is it a blogging app?

In the past, my answers had always been “yes, but…” then followed by a long and elaborated explanation. Recently, my answers have been a quick and short “no”. In the wake of the blogger generation, what bloggers have been exposed to and have come to expect makes Symphony a very awkward girl. It’s not that Symphony cannot do the things a typical blog system can do. It’s like asking a Samurai to cut your bread - the blade is sharp and the wielder certainly knows how to use it but where in the world will you find a Samurai these days? More bluntly put, the issue is about finding the right tool for the right purpose. If all a blogger want is a system that is simple to skin, ready right out-of-the-box with a modest learning curve, most dedicated blog systems does the job exceptionally well.

Is it a CMS?

My problem with the term CMS is that it’s too broad. My wife often asks me to explain how she should tell others what I do for a living. I usually reply, “Just tell them I’m in I.T.”. Tragically, “I surf the net” is not only more descriptive but also fairly accurate. Content Management System essentially manage one’s content over Internet protocols (Internet and Intranet) and by that definition, almost anything online can be a CMS. I am, of course oversimplifying it but the fact remains that the term CMS is just too broad. Symphony is a CMS, but I consider it as a blanket term for all data-driven systems.

Is it a framework?

Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.

Ruby on Rails and Django are definitions of a framework. The idea of a framework is to give a developer a means of interfacing with a lower level system with ease. For RoR, that’s Ruby and for Django, it’s Python. Another important attribute of a framework is the concept of constraint. Unlike general-purpose programming languages such as C or Java, Frameworks promote constraint on coding methods in effort to achieve “good coding practices”. Both of these attributes are also found in Symphony. The lower level system in Symphony’s case is PHP and Symphony promotes a segmentation of presentation v.s. logic to promote “good coding practices”. This comes naturally from how XSLT fundamentally works with XML but going further, Symphony extends upon it with concepts such as events, data sources, sections and URL Schema.

Yet despite the similarities, Symphony is not a framework. Generally speaking, frameworks does not have an user interface. A developer spends most of its time hacking away at lines of code to build their system. Symphony on the other-hand has an user interface and most of the structure is built through it. On the side of XSLT however, is synonymous to code hacking in frameworks.

Another important difference is in its scope. Symphony cannot do everything you would expect from a framework but nor does it try to. To solve its limitation, Symphony utilises a plug-in system called Campfire services. Depending on a developer’s skill, one can achieve the scope of a framework by creating Campfire services through PHP, but the point is moot seeing how the same thing applies to purpose-built apps like blogging systems.

How about an IDE?

I especially like the idea of coining Symphony as an IDE. Integrated Development Environments like Dreamweaver, XCode and recently, Coda seem to fit more with how I personally perceive Symphony but once again, it’s not quite one. Like an IDE though, Symphony’s purpose is to provide a developer with tools to interface with existing technologies. Also, like an IDE, there is an editor for XSLT, data sources and creating data structures (sections and custom fields). Along with all of that is a debug page, which is another concept found in IDEs.

Unlike an IDE however, Symphony comes with an engine that interprets the components put together through its editor and executes it. Applications like dreamweaver merely create the assets but the output source does not require the application itself to function.

Symphony defined

Pipes also has a full web-based IDE. Even more amazingly, the IDE is incredibly rich and powerful, with the usual complement of editing tools you’d expect from a visual editor in a desktop application.

So what is Symphony really? Although it does not quite fit in any of the definitions described above, it certainly got qualities found in all of them. Most accurately speaking, I would say Symphony is a development environment to the same degree as technologies like Yahoo Pipes and Microsoft Popfly – all of which has got an integrated editor and some kind of core-level engine. Another important similarity between these technologies is the fundamental idea of interpreting data. Both Pipes and Popfly have an editor for hooking up data, much like you would with creating sections and custom fields and hooking it up with a data source. The main difference is, Symphony runs entirely on open technologies. These technologies are very new and this goes to show that the Internet is still young and new genre-defying technologies are created daily.

Discussion

So now that you know how we’ve defined Symphony, why don’t you share your thoughts on what Symphony is to you?

Almost-guaranteed discussion of intrigue

Pat 25 May 07

Hot new site design there, Allen. Especially love how the footer's borders perfectly fit the fixed date. Nice attention to detail :d

Actually, so far, I've yet to use Symphony for anything other than blogs—simple or complex. My next (current) project I'm working on w/ Symphony is going to be much more challenging, but Symphony is going to make it a whole lot easier for me and users.

ZhenS 25 May 07

Great new design, Allen. :D

Currently I'm just using Symphony for my own blog, and I'm still learning XSLT. Glad to hear more XSLT concepts and advanced XSLT techniques will come here. ;-)

Brian Z. 25 May 07

Allen, I like the new design. Thanks for pulling together this site to explain all things Symphony. I'm really looking forward to your next round of posts. Oh, by the way, thanks for the screencast tutorials on XSLT, I've watched them several times. They are very, very helpful!

Stephen Bau 25 May 07

Allen, it's good to see you stretching your legs with the system that you, Alistair and Scott have poured your heart and soul into for the past number of years. I remember trying out Symphony before it knew what it was. There was a vision and a refined, minimalist design sense that, to me, was reason enough to stick around and find out what this application could become. I bought in early and waited to see how the system would mature.

Though it has taken some time to get to this level of maturity, you have certainly not disappointed. In fact, what I have found to be the most compelling reason to stick around has been not only your depth of knowledge, but your willingness to listen to your users and implement our ideas with the greatest skill and attention to detail. I remember the discussion about how to order pages and suggesting the drag and drop feature and being quite surprised to find the feature added to the next update. I suggested section links, and again, there it was in the next update. I suggested adding a means to select a date and the ability choose the section in which to publish an entry from the Date Widget, and there it was in the next update. Frankly, I came to consider Twentyone Degrees as my personal development team, and you were working for nothing.

After a time, I felt I needed to compensate you for the amazing work you have doing on Symphony. So, I commissioned a registration system with automatic author creation and front end entry creation, and Twentyone Degrees created Campfire Services that exceeded my expectations. (Yes, such things exist. The cat's out of the bag now. Should it be licensed? Should it be open-sourced? I don't know. But something should happen. I don't want to keep these all to myself.)

So, for myself, Symphony has inspired a passion for building sites and applications that go way beyond the constraints of blogging. I build everything I can with Symphony. It has been the launch pad for my own portfolio site (never finished, always a work in progress), for several client sites and for a project management system that tracks clients, projects and timesheets.

The flexibility of the system allows the possibility for many more ideas that I would like to try. My problem is finding the time to try out all the new features and to finish implementing what I have already started. Also, Symphony is more than just the application. It is the people behind the system that make it amazing: the development team and the community that is developing at Overture.

Now that Symphony has attracted the likes of Virb creators, Ryan Sims, Brad Smith and Keegan Jones, who have built thebignoob.com in Symphony, I can only imagine where all this will lead. And I'm dying to find out what you have in store for the new update.

Congratulations!

Allen 26 May 07

Stephen, thank you for the ultra kind words. Ultimately, Symphony without an audience is just self-indulgence and that can get tiring after a while. Actually I lie, Symphony for me is 2 part self-indulgence and 1 part community support but this obsession is why we care so much about Symphony.

I've seen your project management system and I think it's a shame others haven't yet! I really think you've got something really good going there. Throw up a sneak-peek on your site and announce it to the Interwebphere 2.0!

Young Hahn 1 June 07

Allen, many thanks to your hard work (and your colleagues).

I am very excited about the upcoming release and I hope it helps generate more attention for Symphony, it really is a highly original approach to web development that is hard to go back from.

I've said this before, but my main requests are core user handling (I know Lewis is developing a campfire for it, but it would be nice for it to be "built in" with some minimal features (permission control, etc.)) and internationalization (maybe some sort of tabbed language interface in the content editor). User handling is a must if Symphony is to grow beyond blogs/closed-access websites, and it seems like it would be a moderate but not unreasonably difficult extension of Symphony. Similarly, I know you guys have plans for i18n, I guess it is just not a priority at the moment.

Lastly, when I have more time I think I will try to put together some alternate "workspaces," maybe even define certain Symphony site types (e.g. standardized sections/custom fields) for those who would rather use Symphony as a quick & dirty blogging platform. That way "themes" could be made and applied to Symphony in the same download & unpack way they are to platforms like WordPress.

Nathan 8 June 07

Well Allan, all I can say is "damn you"… I was all prepared to launch my brand spanking website on wordpress when I stumbled on a link to symphony, now I'm back to the drawing board.

I'm a web designer, so wordpress while an excellent application is immensely limited as far as customisation goes, it has so much "stuff" I simply don't need and yet it's a light weight system. I've just installed symphony on my local server and now I'm having trouble scraping my jaw off the floor, this is the app I have been looking for, for too long.

It's not like I couldn't develop something to run my own site and save me time with constant updates, I could, but I simply don't have the time to develop a system to suit my needs, there's just not enough hours in the day. But this system is by far the most suitable system I've found, it's flexible and extensible but most importantly from an interface perspective it's simple and fast and that's exactly what I need.

I'm really looking forward to diving into XSLT for the first time now, this will surly delay my launch date but I'm so impressed that I really don't care about that, I'm just stoked I found something that fits my needs like a "sock"… oh that's the other post… ;)

Cheers Nathan

Allen 8 June 07

I'm glad you find Symphony fitting for your needs.

We're a helpful bunch here, don't hesitate to ask your questions over at the Overture Forum. Seeing how documentation is still light, no question is stupid or silly.

On behalf of the Symphonians, welcome onboard the colony!

Emit your deadly intellect rays