Hi Robert, Thank you, a very comprehensive break down of the development features. You should publish that in a blog post or something.
PHP is sounding all grow'd up. It has almost as many features of ASP.NET and Visual Studio ;-) But of course I'm curious what a Zend Server (Platform?) license costs (the website just say to contact sales). Scott, On Monday, January 28, 2008 3:47pm, Robert Garcia <[EMAIL PROTECTED]> said: > There are couple of things I would like to add to these comments. > > First, I think PHP is more of a programming language, and less of a > scripting language in terms of its methodology and abilities. It is a > script language only in that it doesn't compile, but allows you to > program at a very low level, like you would with Java, VB, C#, and the > like. I use PHP the most, but I use all of these languages regularly. > > Second, I would agree about some of the limitations of php, like load > balancing and such. But that is why I have always tried to be careful > to mention and compare witango to Zend/PHP, or more specifically the > Zend Platform. The zend platform is an amazing server platform for PHP > that gives it the robust enterprise level qualities and features. For > instance, it allows for clustering of servers very simply. It is not > only easier to setup than witango, but more more robust and reliable. > > So first, I would like to make my position clear, that when I refer to > the benefits of PHP, I am referring to PHP 5 and the Zend Platform > together. I was never fond of PHP 4, and adhere to PHP 5 OOP methods > as much as possible. > > I remember a couple of years ago, fielding a question on this list, > regarding whether witango was ready for the enterprise. I defended it > at the time, with its load balancing techniques. However, now that I > have put witango under very heavy loads, I wouldn't make the same > defense. I would also not say that PHP on its own is enterprise ready. > However, I believe Zend/PHP 5 is well suited for the enterprise, and > here is my reasoning. This is not complete, and you may have other > comparisons. > > Load balancing: Witango load balancing and Zend/PHP (zphp) are very > similar, but the zphp system is much more robust, and reliable. > Witango load balancing is not configurable other than setting up the > servers in the group. ZPHP has some very cool features, one of them > being the ability to save session data onto disk, instead of memory, > for better reliability than memory. Witango, stores session data in > memory, and dumps to disk on restart. And we all know, this is one of > the things you have to be careful to delete when the system crashes. > ZPHP can work the same way, or it can instead save the session data to > disk. There are even 2 choices with that. One is more secure, it > writes to disk, and the process waits while it is written, another is > it threads writing the process to disk, and it is in memory, until it > gets the chance to right to disk. So you have 3 choices, just memory, > combination of memory and disk, and just disk. I have found the middle > to be just as fast as the memory version, and very secure. Even if the > cluster daemon crashes, the session data is still in tact on the disk. > There are also additional features to the ZPHP load balancing system, > that make it far superior to witango. > Session data shared among servers, more EFFICIENT load balancing: When > a witango web server receives a request, witango gives it a sessionid > which is encoded with which server in the load group this request > belongs to. So this means, that this session/user, will stay on the > SAME witango server during the entire session. Even if a subsequent > request comes into a different webserver, the sessionid will dictate > it to go to the same witango server. There are 2 problems with this. > First, it doesn't distribute load effectively, when 1 session may be > performing very intensive tasks, and others may not be. Also, servers > crash, especially witango servers. They are not stable with complex > applications under heavy load. When a server crashes, all subsequent > requests from that crashed server, will hang. They contain a session > id, and so the witango plugin will force it to a server that is dead. > Client plug in error insert here. The user may close the browser, lose > session id, but then they come back, and will get a working witango > server but all session data is lost. Also, witango is SUPPOSED TO not > send requests to a crashed witango server, but witango many times > enters a crash state, where it responds to the plugin, so the plugin > thinks it can take requests, but it just hangs. ZPHP also assigns a > session id to the first request, and the zphp server that receives the > request, OWNS the session data for this session/user. However, on > subsequent requests, the request may come into any other zphp server > in the cluster. If the server that receives this subsequent request is > NOT the owning server, it communicates in the background and receives > the session data from the owning server. This means that requests into > a zphp cluster, are truly distributed by REQUEST, and not SESSION, > which is much more efficient. This arrangement seemed more complex, > and slower. However, after using it for 2 years, it has never failed, > and even under severe load. > HIGH AVAILABILITY: This is an additional feature, that you can turn > on. As already explained zphp servers share session data with each > other constantly. However, one server OWNS one or more sessions, many > sessions spread across cluster, however the owning server is always > updated with the session data it owns. High availability makes sure > that each session is owned on one server, and fully backed up in real > time on at least ONE other server. This means, that is a zphp has a > disk failure or something, nothing is missed, nothing is lossed. The > backup zphp server for that session, is now the owning server for that > session. > The above 2 features seems very complex, and resource hogging. But it > works, and is extremely fast and transparent. In 18 months, I have not > seen a failure. Also, I have yet to see a zphp server crash for > anything other than a hardware failure. Also, setup is very easy in > install wizard, and then there is the ZendPHP dashboard. Remember when > witango had a web based config utility, that worked? The Zend PHP > dashboard allows you to change all of these settings, add servers, and > it works well. You can even edit php.ini settings, and then copy them > to the rest of your group of servers. > Reliablity: Witango servers crash, my zend php servers don't, ever. > Also, I have 3 large sites, that were first witango sites, and now > zphp sites, so I am comparing apples to apples. > Team Development: First, the zend php development system is completely > integrated with either subversion or CVS, witango still is not. This > is a huge issue for the enterprise, as team development is a must. > There is another hinderance to team dev, which I didn't realize until > digging in. Its the TAF file structure. SVN and CVS work really well > with text files, like PHP files and html, but not tafs and tcfs. They > work, but its like dealing with binaries in SVN. Allow me to esplain. > One of the benefits of svn, is if 2 people work on the same file, it > can show you the differences, so that you can merge the work of both > programmers. This does NOT work in a taf, and is a pain in the butt. > Also, with php, you tend to use many files, and lots of includes, > which is VERY SVN friendly, and keeps people from stepping on toes. > However, how many tafs do you have, that have become ginormous, that > would be like 50 seperate html pages or php files? I have a few. In a > team environment, the taf/tcf file structure is not an assett, but a > liability. > Debugging: This is huge, and honestly, I didn't even realize it, until > I had it. .NET also has line by line step debugging, which is SO VERY > necessary and helpful. But zphp has something for team development, > called REMOTE DEBUGGING. In a witango team environment, you have to do > one of two things. You have a single staging server, that everyone > commits code to, or everyone has their own witango personal dev > server. I have found that most witango devs like the latter, and its a > nightmare to administrate. Because for an app to be properly tested, > it must be tested on a server, setup IDENTICAL to production. And so > you have to setup multiple personal witango servers identically. Not > so tough with simple apps. But what about when you have com objects? > JDBC? Java Beans? External objects? etc. So you setup one central > witango server, and you have to commit, test, commit, test, and you > can't step, debugging and testing is SLOW AND PAINFUL. I have found > that a lot of witango devs, will dev on there own personal servers, > then commit to the BigHead staging server to test. Just prolonging the > process further. Then if the witango code actually crashes the staging > server, everybody has to stop and figure out what is going on. With > zphp remote debugging you setup a single zphp server, identically to > your production system. You setup each zend dev studio to talk to the > zphp server. The dev studios comm to the server securely, and debug > over a tunnel, and results show in your firefox browser as you step > line by line. Processing being handled by the centrally configured > server for consistency, but the ability to test code locally without > committing. And if you code crashes the server, or does an infinite > loop or something, no worries, its just a single thread of httpd, and > doesn't take down the zphp server, and everyone just keeps working. > Don't let me understate this, IT IS FRICKING UNBELIEVABLY BEAUTIFUL. > Its not a vapor feature either, it really works with the zend studio > and a zend provided firefox plugin. > Zend Optimization/Precompiling: It is true that zphp is NOT compiled > code, and compiled code is faster. But the zend platform includes the > zend optimizer, which does something called precompiling. I gotta be > honest here, this is one of the features, I have not dived into, and > don't thoroughly understand. However, I don't have to understand to > reap its benefits. While zphp code is not compiled, and not as fast as > compiled code, zphp code runs circles around witango code. This is > extremely noticeable with any data processing within loops. zphp can > sometimes rival compiled code in the zend optimizer. I have created > many tests and have done the pepsi challenges. I think I posted > results on this before. > Dynamic Data Caching: This is another feature, that allows you to > incredibly effect performance of everyday operations, with just a few > clicks. First a simple example. Think of a css drop down menu on a > site, that is built dynamically from a database. Every time a page on > the site is called, the code hits the db, loops through menus and > builds the css. On witango, you would start by trying to build a > system where the data is cached in domain variables, then optimize the > processing and such. On zphp, just go to your zend dashboard, and find > this page under "Dynamic Content Caching" and check it. Set its > refresh time to 5 minutes, or 5 hours, whatever you want. zphp will > automatically cache the OUTPUT of the script on the first hit, and > then just return the cached output on subsequent hits. This is dream > to guys like me monitoring traffic, server load, programming hours, > etc. Now here is the real cool part. This feature is VERY smart. You > can specify get arguments, or even server variables that can be looked > at to cache different results. So for instance, /products.php? > sku=abc123 and /products.php?sku=ghj789 will cache as seperate output > files. This allows you to code quick, and easily gain huge levels of > performance, and never needing to compile. Go HERE to see a demo. > > There are other features that I could add, but these are one that > really tip the scale in my opinion. Kinda turn the scale up on its > head. The last piece, is that zend sales and service/support has been > wonderful. I called them direct, and they allowed me to have a 6 month > trial of a 3 server cluster so that I could fully evaluate the system > before purchasing. They had to give me special keys and everything. > After I purchased, I can call or email, or use support tickets, all > responsive and wonderful. After almost 2 years, not once crash. > Witango crashes in the thousands. > > For the record, someone from this list had asked me to make this > comparison, and I had been working on it, and planned to send to them. > But this topic made me pull it out, finish, and just post here. > > -- > > Robert Garcia > President - BigHead Technology > VP Application Development - eventpix.com > 13653 West Park Dr > Magalia, Ca 95954 > ph: 530.645.4040 x222 fax: 530.645.4040 > [EMAIL PROTECTED] - [EMAIL PROTECTED] > http://bighead.net/ - http://eventpix.com/ > > On Jan 28, 2008, at 10:07 AM, Rick Sanders wrote: > >> Those are some really good points Scott. >> >> PhP though in my opinion isn't as robust of a language, at least on >> Windows. It needs constant attention, load-balancing isn't >> available, and it has far too many security holes which makes it >> easily hackable. If you use PhP, I suggest using on Linux with >> Apache, that's what it was built for in the first place! >> >> Needless to say, I love Witango and it is by far the best >> development language for rapid application development. However, >> looking at Visual Studio 2008, and Dreamweaver CS3, the WiTango >> editor is light-years behind these development platforms. The >> integration between code and design layers just isn't there. >> Typically I would build the application, then plug-in the design >> with a series of include files, then build any additional WiTango >> app functionality in the include files. TCF's are great, but is it >> me or when the TCF's get too large they tend to not function as >> well, and bog-down the server? I don't have any issues when using >> cfc's with Cold Fusion. And, I build my CSS in dreamweaver because >> it's so easy to do. It doesn't make sense today to use 5 programs to >> develop an application. >> >> ASP.NET is a tough language to learn if you are new to it. However, >> the control you have over the code and options you have for >> developing are phenomenal. It ties into the operating system >> extremely well, and you can build web applications that talk to >> active directory, and even go to the extent of installing a network >> printer and defining permissions right from a web application >> without any external components! Building CSS in Visual Studio 2008 >> is also a breeze. Unforunately, Mac users can't take advantage of >> Visual Studio, or host ASP.NET applications on a Mac. >> >> Cold Fusion is a faster development language, and I would say it's >> as fast as WiTango if you are familiar with Dreamweaver. Dreamweaver >> will build the SQL just like WiTango, and integrating it with the >> design layer is a snap! Cold fusion 8 has alot of new features built- >> in, like uploading a picture and resizing it on the fly like image >> magic. If you use flash alot for applications, video and such, then >> Flex is the ultimate design tool for developing a graphic layer >> around Cold Fusion. >> >> Converting WiTango code to Cold Fusion is fairly easy. I've >> converted many apps, and they work just as well. >> >> Customers are getting smarter and more educated about web >> programming and database platforms, which makes it increasingly >> difficult to suggest WiTango as a language. Very few people host it, >> and have heard of it. I know that Pervasive is a dirty word to alot >> of you, but they did do alot of marketing and promotion of the >> product to gain awareness, and they did make the product into XML >> instead of binary code. >> >> >> Rick Sanders >> Webenergy >> Canada: 902-401-7689 >> USA: 919-799-9076 >> Canada: www.webenergy.ca >> USA: www.webenergyusa.com >> >> -----Original Message----- >> From: Scott Cadillac [mailto:[EMAIL PROTECTED] >> Sent: January-28-08 12:38 PM >> To: [email protected] >> Subject: RE: Witango-Talk: Re: is witango alive? >> >> Hi Stefan, >> >> That's an interesting observation. I did the opposite. I was >> actually doing ColdFusion prior to starting in Tango, which I found >> was one of the reason I found Tango so easy to learn. The syntax and >> tag methodologies are very similar. >> >> PHP is not too dissimilar as well I think, given that all three are >> interpreted languages. >> >> I guess the difference with PHP is that additional architecture >> features have been bolted on to PHP since its original design, and >> of course many serious developers want to take advantage of that. I >> think PHP apps can even be compiled now if I'm not mistaken, but >> maybe I have that wrong? >> >> With ASP.NET for example, it's not an interpreted language (classic >> ASP was), it's compiled. And given that it's integrated with IIS to >> create a real application server, the underlying architecture that >> handles the code execution is very different than ColdFusion, Tango >> or PHP. Java is also in this class of architecture, to a degree. >> This makes the transition from Tango to ASP.NET much more challenging. >> >> I've converted many Tango apps to ASP.NET for myself and other >> folks, and as long as you know both languages well, the transposing >> of the code is reasonably painless. >> >> I guess the key is, depending on where you're heading, is to learn >> your new platform first before the conversion, and just don't assume >> as you start out that it'll be just like Tango. >> >> For those not interested in PHP, I would checkout the conversion >> tool in Witango that compiles to Java. I haven't used it myself, but >> I bet that would fast track anybody's learning curve to a deeper >> application architecture very much. >> >> When Phil first proposed the Java compiler apparently there was >> plans for a .NET compiler too, but it never materialized >> unfortunately. Oh well. >> >> >> Scott, >> >> >> On Monday, January 28, 2008 11:36am, Stefan Gonick <[EMAIL PROTECTED] >> > said: >> >>> Hi Everyone, >>> >>> I'm here and continuing to program in Witango for my existing >>> clients. >>> >>> I found it very interesting to read how hard it is to convert a >>> Witango application >>> to PHP since I don't know PHP. Years ago I learned ColdFusion and >>> converted >>> a Witango application back then. >>> >>> I found it extremely easy to do the conversion. The two languages >>> were very >>> compatible in how they did things. In fact, mostly all I did was >>> promote the >>> html result actions into their own pages and substitute equivalent CF >>> tags for the >>> Witango ones. Obviously, I had to add the sql query at the top of >>> the page, but >>> I even used the View SQL command of the search action to get a head >>> start on >>> that. It was very quick and easy. >>> >>> I later did a CF application from scratch but actually found >>> development to go >>> faster by using the search and new record builders in the Witango >>> editor and then >>> convert the results to CF! Pretty cool. :) Anyway, I just thought >>> that I would share >>> my experience of the compatibility between CF and Witango. >>> >>> I appreciate this thread. I've been wondering if Witango is alive >>> lately myself. A major >>> part of what has been making me wonder about the viability of Witango >>> is the lack of >>> news from With. It would be great if they would chip in at some >>> point... >>> >>> Best to all, >>> Stefan >>> >>> ===================================================== >>> Database WebWorks: Dynamic web sites through database integration >>> http://www.DatabaseWebWorks.com >>> >>> ________________________________________________________________________ >>> TO UNSUBSCRIBE: Go to http://www.witango.com/developer/maillist.taf >>> >>> >> >> ________________________________________________________________________ >> TO UNSUBSCRIBE: Go to http://www.witango.com/developer/maillist.taf >> >> >> >> >> ________________________________________________________________________ >> TO UNSUBSCRIBE: Go to http://www.witango.com/developer/maillist.taf >> > > > ________________________________________________________________________ > TO UNSUBSCRIBE: Go to http://www.witango.com/developer/maillist.taf ________________________________________________________________________ TO UNSUBSCRIBE: Go to http://www.witango.com/developer/maillist.taf
