Hot on the heels of Dreamforce, I am amazed at the amount of interest from our corporate Dev community (IT folks at customers) in the latest addition to our Cloud Computing family of technologies- Force.com Sites. Most of my conversations in the Dev lounge at the show centered around Sites and it's technology enabler- Visualforce.
Following on Ryan's most recent post, I started to wonder what exactly spurred this enthusiastic discovery of the Force.com platform for these developers, and I think I've hit upon a common thread. Most of these developers were familiar with older technologies like .NET and Java. Many had used common frameworks for building their business apps in the past, and now everyone is challenged about how to move their apps (and development skills) "to the cloud." In one such discussion, the developer reminisced about building business apps with PowerBuilder and likened Force.com to that ilk of development solutions – the 4GL.
While this analogy is not new (What Happened To The 4GL?), it did strike a chord with me as I too hearken back to the days of promise that was to be delivered by the 4GL. What led to the demise of the 4GL? Java (and later J2EE) and it's promise? .NET and it's promise? I am not entirely sure, but one thing I am certain of – the Force.com platform has all of the hallmarks of a great 4GL – specifically tuned for the delivery of SaaS applications:
- Forms-based apps are a breeze to put together. The definition of your data model (tables or objects) automatically generates default views that can be used to enter and display data (forms), complete with field level security, form validation rules, action triggers, and more.
- Reporting is a core feature of the platform. Any data definition is immediately accesible to the Force.com reporting engine- which includes ad hoc reporting, canned reports, scheduled reporting, dashboards and exporting report data to excel and csv files.
- Error handling is built into the platform itself. For example, constructs for web site specific error handling is built into Force.com Sites. Any application that you develop with our declarative tools (known as Force.com Builder) has built-in error handling. You can choose to allow Force.com to manage almost all errors in your apps, or you can override this behavior to catch and deal with your own errors using Visualforce and Apex code.
- Application Server constructs like Workflow, Approvals, Notifications, User Management are features of the platform. Want to perform an action like email a user's manager when an expense is entered that exceeds the company allowance? Perform some business logic and update some field values based on the outcome? Create multi-step approvals with controls on data security, integration with email and robust rules? All of this and more can be built with "clicks – not code" using Force.com.
- Advanced programmatic control. The Force.com platform is steeped in the Model-View-Controller (MVC) paradigm of application development. If you want to develop features of your application using your own advanced logic (code), presentation (style sheets and layout) or other web technologies (like AJAX or Flex), Force.com offers up Apex Code and Visualforce to allow you the freedom to build your own. This allows you to develop any application for any purpose and any internet-aware device.
I consider all of the above as core requirements for any platform to have, if it is live up to the promise of a 4GL. Does this mean that other self-proclaimed PaaS vendors have what it takes to deliver a 4GL for Cloud Computing? I contend that other technology providers are only delivering components of Infrastructure as a Service (IaaS), rather than PaaS. You need to look a little deeper into what you really need in any new found 4GL for Cloud Computing:
- Robust technology platform: How does the PaaS technology support and embrace the best web technologies like HTML, XML, AJAX and Flex? Is there a complete set of MVC tools provided to the developer? Does the platform provide for an entire suite of functionality (configurable components, application services) needed to build your application, or will you need to build needed core components yourself (reporting, workflow engine, notification engine, web services API, data security, etc.)?
- Complete Infrastructure: Raw computing power is only one attribute of the infrastructure needed to deliver on the PaaS vision. Proven reliability, scalability and security are all required attributes of any business-grade PaaS platform. Only Force.com provides the transparancy and track record in this regard via our trust.salesforce.com site. Selling your app to businesses? Force.com apps are delivered from the same infrastructure trusted by more than 51,800 companies worldwide.
- Development Model: True 4GL-like platforms will deliver sophisticated and powerful declarative (point-and-click) development tools, in addition to supporting a robust programming language. Compare the MVC approach delivered by Force.com (Builder, Visualforce, Apex) to other so-called PaaS platforms.
- Integrated deployment. What level of effort is required to deploy your application to users? What tools are provided and built into the platform? The Force.com platform includes the means to do instantaneous deployment to users from within the platform itself, as well as supporting robust deployment tools built into our Eclipse based IDE that supports team development.
- Distribution and Provisioning. Intrinsic distribution of your application via the AppExchange is also included with Force.com. This "distribution" feature not only allows you to deliver your application to your users or customers, but also affords you a high profile channel to market and sell your application.
A 4GL for Cloud Computing?
I contend that Force.com is more than a 4GL – it is the 4GL for Cloud Computing. Discover for yourself what the platform has to offer you and see why more than 100,000 developers are choosing to build their business apps on Force.com today.