Home | WebSiphon | Learning Resources WebSiphon Developer Central

Introductory Essay:

Welcome to WebSiphon
by Mark Holtz

September 1997

When an associate of mine first recommended we use WebSiphon on our site, I thought to myself, "Great, another language to learn and another component to throw into the mix of programs running on our server." I figured it, like many other products I had used, would fall short of what we wanted it to do, leaving me to find yet another program to fill the gap.

Boy, was I ever wrong.

WebSiphon is an ACGI application and server plug-in that works with your Mac OS-based web server to provide a powerful, flexible server-side scripting engine within a very reasonable resource budget. The WebSiphon package, in addition to its own copious internal facilities, also includes Verona, a high-speed flat-file database system designed for use with web servers. WebSiphon's scripting language, SiphonScript, provides not only a full complement of features such as looping, local and persistent global variables, case statements, and conditional expressions, but also contains powerful list and string handling capabilities, automatic parsing of CGI arguments, and the ability to create modular script libraries to maximize code reusability. In addition to these features, the WebSiphon implementation model provides a very rapid development cycle, allowing you do bring complex systems on-line in a very short amount of time.

SiphonScript is also extensible through the use of "built-in libraries" which contain SiphonScript functions written in native PowerPC code for increased speed and capability. Purity provides over 200 such built-in functions, providing Date & Time handling, flexible file handling, database interfaces to both FileMaker Pro and Verona, and other powerful features. Plus, if you want to write your own functions in C, Purity provides a WebSiphon SDK for making your own high performance libraries. Several third-party developers are already doing this, bringing even more functionality to WebSiphon.

So, How Does It Work?
Once you've installed WebSiphon and configured your web server, extending your web pages is a simple task. Simply open your page in the text editor of your choice. Add in the appropriate SiphonScript for what you'd like your page to do. Save the file. You've now created a "template", which is a file containing HTML and SiphonScript. Bring up your web browser, and hit the corresponding page on your server. WebSiphon will compile the SiphonScript in your template, execute the commands, and serve back the appropriate response. It's that simple, but not that limited. WebSiphon can also run scripts at scheduled times, or as part of another script. And you don't have to write separate script files and HTML files. You can intermix both script and HTML within a template. (In fact, I've even combined dozens of pages into one file using SiphonScript..) Finally, because WebSiphon only recompiles scripts when changes are made, you can edit your site while other people are using it. You will not need to restart WebSiphon when you make changes, giving you the ability to modify your site without taking it offline.

What Do You Do Now?
As a first step, I suggest you read the rest of this manual. Familiarize yourself with what WebSiphon can do before you embark on a major scripting project. You'll find that SiphonScript already has functions for doing a wide variety of tasks, saving you the hassle of writing the function yourself. When I started using SiphonScript, I tried a simple example that printed the results of a calculation as part of the existing home page on my web server. From there, I started putting counters on my pages, generating web pages from chunks of data stored in a database, and integrating WebSiphon with other CGI scripts running on my server. At the present, I've developed an entire site based on WebSiphon, generating its content in a variety of methods, all script based. I've also found myself writing SiphonScript built-in libraries to handle some of the esoteric functionality I've needed. In the end, WebSiphon has replaced virtually every other content-serving CGI application on my server.

So what should you do? Anything you want! Start simple, with hit counters, modification dates, integrating that navigation bar into all your pages using only one line of script. The more you use WebSiphon, the more ideas you'll have about things to try. And there are lots of good examples out there! Chat rooms, multi-user forums, banner ad mechanisms, database editors..The list goes on and on.

I've also saved the best feature for last: The WebSiphon User community. No matter if you're just starting out or are a savvy SiphonScripter, you will learn a thing or two from your fellow users. There is the WebSiphon-Talk mailing list, and several other community-driven venues where you can share ideas and get answers. I would encourage you to use this "feature" early on in your development. The people participating in these forums are the people writing, using, and pushing WebSiphon to its fullest. And of course, you want your web site to push the envelope, don't you? (or at least get past the sticky part, right?)

So, Get Going!
In closing, let me just say that you've made a good decision in selecting WebSiphon. Your web server will appreciate it. Your users will appreciate it. You'll appreciate it. (Your boss may even appreciate it..) Start out small, keep your eyes open for new ideas, participate in the WebSiphon community, and above all, have fun!

Pure code for pure minds; live to love and learn.
Copyright © 1995-2022 Purity Software. All rights reserved worldwide.
Purity Software® is a registered trademark of Nathan Nunn.