Non-standard PaaS – The Software Industry’s Rubber Stamp

Mar 2, 2009 by

Coghead’s departure from the PaaS world sparked plenty of interesting debate. One small debate that caught my attention started on Phil Wainewright’s post about Coghead’s demise with a comment by Microsoft’s Eugenio Pace, which then spilled into a post Eugenio wrote here.

To give a brief synopsis, Phil argues that Coghead’s demise and the subsequent stranding of customers highlights the need for a “…standard for transferring not just data but application logic…” The argument stems from the fact that Coghead customers could not easily migrate their applications to another platform, potentially setting those folks back by months of development time, but more importantly, possibly having to throw in the towel on their applications if Coghead goes offline before they manage to perform the migration. Eugenio replied that such a standard essentially exists through standard technology stacks like Java & .NET and that if Coghead was anchored around one of these substacks, customers would not be stranded. He [Eugenio] went on to say that a “standard” was not essential. Phil responded with the following post over at eBizQ.

It’s probably of no surprise to readers that I’m siding with Eugenio on this one. First, let’s clear up some definitions. Let’s call well known development platforms like .NET, Java and Ruby to mention a few ’Standard stacks’. Standard here is being used to describe wide use and general acceptance: that is, I can walk into a development shop and drop one of those names, and engineers either work on that platform regularly or are very aware of its existence. Let’s refer to everything else as ‘Non-standard stacks.’ Something like Coghead or Caspio is definitely ‘Non-standard’; outside of the SaaS choir, few have heard of them. Note that I’m refraining from using words like ‘proprietary’; being proprietary is ok if you’ve achieved a gold standard status in the industry. 

Complex Apps Need Expressive Runtimes

First, a root problem of Non-standard stacks is that they do not Stand on the shoulders of giants. They attempt to re-invent full stacks but fail miserably. I’d be ok if these platforms focused on helping business analysts, casual developers, etc. but they all claim to solve the ailments of ISVs and software engineers. This is simply not the case. They are far too restrictive to be general purpose and solve complex issues. Stacks like Java, Ruby and .NET are unbelievably expressive. It’s like handing Michaelangelo a rubber stamp instead of a full set of paint and brushes: I’m sure he could have done something at the Sistine Chapel with a rubber stamp (see title), but it would look nothing like what we have today. For example, what happens if someone wants to build an audioprocessing application on Coghead (or an equivalent) and deliver it as SaaS? It can’t be done. The expressiveness required for this sort of endeavor is beyond any current Non-standard stack for SaaS. Clearly, .NET, Java and Ruby can support this endeavor. Now, build a Non-standard stack with the expressiveness of the ‘antiquated’ stacks and it has a fighting chance!

A Standard Probably Won’t Help

Assuming one is ok with the limited stack and understands that they will function in a small corral, then the discussion moves to ‘lock in/lock out’. The whole conversation stemmed from the idea of ‘lock-out’ experienced on Coghead. Yes, having an intermediary ‘logic standard’ would have prevented lock out. I can appreciate Phil’s desire for a ‘kill all’ logic standard, but it’s quite impractical, almost impossible to implement correctly, and wouldn’t eliminate the ‘lock in/lock  out’ problem. Eugenio really hit the nail on the head with some of his comments regarding “minimum common denominator syndrome” (the fact that a standard has to be the baseline and expose only control mechanisms that are common across translation targets) and the fact that each implementation can innovate atop of the standard, but this is hidden from the standard. Most folks want to take advantage of innovation, but if you do and you live in standard world, you’ve now re-locked yourself. It seems that it doesn’t really solve the problem, only pushes the boundary out into the world of mediocrity. Many moons ago, I was a Java architect and  also worked as a .NET architect. I can assure you that even in similar stacks, the idea that the ‘logic’ could be captured generically in a standard is difficult to swallow. For the sake of making a point, imagine writing an audio processor delivered as a SaaS application in this generic standard (XML or otherwise). Next, what happens when rogue group X doesn’t like the standard? They’ll define a competing ‘standard’ of course! This never happens in the dev industry…

If you’re locked into Java or .NET, yes, in agreement with Phil, it’s still lock-in, but not anywhere near as bad as lock in to a non standard stack. Locking to a standard stack provides some sense of ubiquity with a max downside of having to figure out where and how to run your IP, and how to fill the gaps left by the now done platform. Lock in to a non-standard stack means a downside of disaster.

The Better Way

At Apprenda, we chose to implement a real multi-tenant, SaaS commercialization and architecture platform ontop of a giant – .NET, and allow those writing apps to leverage this. This gives you a certain amount of mobility and ubiquity, and defers SaaS architecture and commercialization issues to the platform. In SaaSGrid’s case, we treat SaaS like a cross-cutting concern, which leaves most of the application to it’s own concern. This ensures that lock in/lock out is minimized and the application can actually function somewhere other than SaaSGrid, but when in SaaSGrid it runs fully as a service. I think Eugenio’s point that this design seems much more reasonable and would have helped ISVs with application from simple to complex deal with the disastrous Coghead outcome. This is very different to Phil’s examples of Heroku or Engineyard for Rails.

The SaaSBlogs group on LinkedIn now has 1500+ members and it’s growing every day; make sure you are not missing out and join today.

read more

Farewall to PaaS Provider, Coghead

Feb 19, 2009 by

Coghead announced it was shutting it doors yesterday evening. For those unfamiliar with Coghead, it was a much talked about PaaS offering that offered an online application editor for rapid application development. They fell under the category of non-standard stack, a “4th generation language and runtime” (4GL) if you will. It seems that slow adoption coupled with the economic situation got the best of them. This is clearly a big problem for Coghead customers, and is indicative of why I don’t particularly like the “PaaS requires a new language/runtime/stack (pick and choose) because older runtimes and languages simply don’t work” statements. First, the notion that something like C# (or any .NET runtime language), Java, or Python can’t work is simply a problem with fundamentally understanding runtimes and what they can and cannot do. Second, new languages and stacks are generally dangerous unless they have MAJOR support from a large platform vendor. Why? Risk. Coghead is letting folks know they can access their data until April 30th, 2009. Unfortunately, data is not the application and any VARs, ISVs, or IT departments are up the creek without a paddle when it comes to the application itself. If the apps were built on some industry standard runtime, and the PaaS injected native SaaS into the applications, they would still retain the ability to run and use the code elsewhere (this is what SaaSGrid does). Last, some 4GL has a tough time leveraging existing code assets that your company may have invested thousands or millions into.

As for Coghead, it’s always a shame to see a startup go, despite our market approach differences. I wish the Coghead team the best of luck. Fortunately for customers, it didn’t take long for many of their competitors in the “WYSIWIG” DIY application platform space to come to the rescue:

  1. Intuit QuickBase>
  2. TrackVia
  3. Caspio
  4. TeamDesk

There have also been a few development firms offering to ease the pain as well:

  1. Scio Consulting (Full disclosure, Scio is a partner of ours at Apprenda)
  2. DeliveredInnovations

While it’s great to see that there are options for Coghead’s customers, it also causes me wonder once again why anyone would want to lock themselves into a full non-standard stack offering?  Granted, I have a bias as one of the creators of SaaSGrid, because our model is the exact opposite. However, our model is the exact opposite because we didn’t even see that as a reasonable approach to doing business and this is a clear example of why. A startup should focus on ensuring that it’s customers are safe and are not sinking time and money into something that cannot function outside of that runtime. If you’re building ontop of a runtime that does not have a natural “fail safe”, take a lesson from what’s going on here.

Is my fear of non standard languages overblown? Is reducing risk a better ‘key feature’ of a 3GL based PaaS, or is the fact that it can leverage existing software assets the more appealing attribute? If you are a Coghead customer, have you found alternatives yet?

The SaaSBlogs group on LinkedIn now has 1450+ members and it’s growing every day; make sure you are not missing out and join today.

read more

The Right Tools for the Job

May 29, 2007 by

Are today’s SaaS enablement technologies robust enough to support business to business SaaS?  It’s a question I ask myself everytime I am introduced to a new ‘mashup engine’ or ‘online SaaS IDE’.  Granted, there are some very impressive products out there right now, Bungee Labs’ BungeeConnect and CogHead for example.  But initial impressions aside – are these whole product enablement environments robust enough to support extremely high levels of customization? Multi-tiered integration? Legacy integration? Complex computation and data types, and the myriad other requirements of the world’s most powerful business software? Even Salesforce’s proprietary Apex language born from Java seems a bit limiting in terms of programming expressiveness.  Or so I’ve heard.

CogHead made a statement in their early advertising that has stuck with me for awhile now – they said [paraphrasing] that “CogHead wasn’t designed for computational fluid dynamics calculations”, instead spotlighting ease of use for the business individual. The idea: an environment to quickly build business process applications, and it’s so easy that anybody in your business can do it.

The problem I have is not with the ingenuity or inventiveness of these types of environments. I think there is a ton of very cool, and applicable, things that can be done with them.  But I feel they alienate one crowd that, well, we owe pretty much everything to – software developers and engineers.  Those that have been schooled and trained in the complex sciences of computer programming and application engineering.  Believe it or not, but these folks are masters of an art – because there is a significant amount of expressiveness that goes into architecting an application, writing code, and optimizing it.  Furthermore, business to business SaaS includes applications and services that fundamentally require a powerful computational platform and languages expressive enough to harness the power of that platform.  I spoke with a vendor the other day who is looking for the right tools to develop an online service that provides genomic computation.  Yes, that’s right – genome sequencing for researchers, on demand.  

Some of the feedback I’ve read and heard from developers who’ve gotten their hands on languages such as Apex leads me to believe that developers’ hands are tied – even if they stretched the technology to its limits there’d be so much more they’d want to do with it that it’s almost not worth their time.  They’ve spent years honing skills in the .NET languages, in Java, PHP, Ruby, in name your favorite programming language – and now they’re being handed Javascript-based online IDEs and proprietary languages and told to deliver enterprise SaaS applications.  They’re being told by managers to port existing client\server code to an on-demand architecture using tools that simply don’t match up.

The tools exist, and developers have been using them for years.  They’re experts.  Perhaps SaaS enablers should focus on bringing the existing developer toolbet to the SaaS world, instead of enabling the rest of the business world around them with brand-spanking new tools that limit and eventually alienate developers.  Frankly, I think the novelty of so-easy-your-manager-could-do-it development tools will eventually wear off and the business world will turn back to developers looking for programmatic magic.  But, that’s a whole other post for another time.

The point is, handing an enterprise software developer some of these enablement tools and asking for a business-to-business SaaS application is like handing Mario Batali an EasyBake™ oven and asking for a six-course Italian dinner.  No matter the amount of genius and talent involved, there’s only so much you can do with a 100-watt lightbulb.

 

 

read more