Are You Ready for a Web Browser-Based IDE?

800x500xlaptop_cloud_computing_800_clr_9211.png.pagespeed.ic.OEd_dBdAlf

Admit it. You’re skeptical.

Is a cloud-hosted integrated development environment really possible?

Sure, you’ve seen applications such as MS Office—and even your favorite games—move to the web. But those applications are run-of-the-mill.

An IDE, on the other hand, is a complex tool. Is a browser-based IDE even advisable? You can’t help wondering …

The web reinvents itself

Over the past 20 years, we’ve seen the web transform itself beyond recognition, moving from static HTML pages to web 2.0 and now HTML5. Today, even highly interactive applications are web-based, with Google’s Chrome OS playing a significant role in shaping the web.

The web’s dramatic development traces back to several key technological shifts. First, virtualization has commoditized the IT landscape, initially on premises, and now on the cloud. Second, cheap cloud-based computing coupled with affordable high-speed Internet connections has made the widespread use of web applications possible.

In turn, web applications have brought low costs, interoperability, and ease of integration. Each web application operates as a service, seamlessly communicating with other web applications via APIs. Users have been quick to embrace web apps, caring little what lies behind a service as long as it runs.

Mobile applications are now becoming the interface of choice for the general public. It will soon be the case for businesses. Increased CPU power allows today’s mobile devices to run sophisticated web apps, rapidly turning native applications into a thing of the past.

Browser-based development is already happening

If accessing services through a browser has become the new norm, should you be surprised to see it applied to software development?

You’re probably already using a browser-based case system, as well as virtual machines to test and demo your software. You may be storing your source code in GitHub, the popular web-based repository. You likely run unit testing in a hosted environment, whether on Azure, Amazon, SoftLayer or on any other standardized environment (J2EE/node.js/LAMP). You may even use JSFiddle in a browser to test your JavaScript code.

But when it comes to your integrated development environment and local development server, you feel those are different. Why?

Introducing the ultimate IDE

There are no good reasons why an IDE should not run in a browser, with a backend as a service. In fact, there are excellent reasons to switch as soon as technology makes it possible.

First, having a worry free and complete back end of your development environment will help you focus on what is really important: building great software that users love. Software development in a browser cuts ties with a specific machine, location, and time. It brings down the cost of the hardware and software you use and of its associated maintenance.

So prepare yourself for the inevitable. Get ready for your new, browser-based IDE!

PS:In case you are wondering: yes, Servoy is spending serious research in this area.

Servoy 4.1 Pre-Release Now Available!

Well – it’s HERE! Servoy 4.1 pre-release is now available for download. You can read the release notes on the forum.

What’s the big deal in Servoy 4.1? Well, it’s all about the power of customization. In addition to a bunch of fixes and enhancements, the big “new” thing is the SolutionModel node in the Solution Explorer.

This new SolutionModel node allows you to modify or create new forms and form objects – on-the-fly at runtime! Oh yeah, it also works in the Web Client!

This means that you can modify any form, create a new, blank for – or programatically use form inheritance (new in 4.0) to make a derivative of an existing form. Now, there are lots of other tools in the market that will allow you to create new objects on-the-fly at runtime, however, no other tool allows you to create objects and have them function automatically the way that Servoy 4.1 does.

For example, all the objects you create will automatically “just work” – including data broadcasting and full AJAX functionality –  just by adding a single line of code to your solution.

This will work for all types of form objects including: forms, fields, labels, buttons, and tabpanels (portals coming in b2). You can add whatever controls you want to any form – and for the first time you can even change any of the properties on objects (even the databinding!) on any object at runtime.

When adding or changing forms you can add/change the parts of a form at runtime to create sub-summary reports on-the-fly! You can even assign global methods to all of the form events (onShow, onHide, onLoad, etc.) as well as all of the form methods (onNewRecord, onDeleteRecord, etc.) This really opens up the world of possibilities for customization of your applications by end-users.

There are, of course a couple of caveats:

  1. You can only change the properties of an object on a form that is not currently visible;
  2. The changes only persist as long as the client session does. So if you want to keep the changes between sessions – you need to code your solution to restore the changes the user made.

Remember – this is PRE-RELEASE software – so make SURE you back up your databases and workspace before trying it out. The best thing would be just do a FRESH install of 4.1 into a new directory and new workspace, and then import the solution(s) you want to work with – that way you can continue your “normal” development in 4.0 and try out the new SolutionModel in 4.1 and not have to worry about it.

We would love your feedback on what you plan to do with this new functionality. Please either leave a comment here – or post it to our Online Forum.

Servoy Featured in eWEEK (again!)

Many thanks to journalist extraordinaire – Frank Ohlhorst for being kind enough to include us in his excellent eWEEK cover story article “Armed & Ready” in the August 2008 issue.

In the article Frank outlines the “7 Criteria For Choosing The Right Tool” – and it sounds like it was custom-designed to describe exactly what Servoy is. NOTE: The stuff in italics does not appear in the original article and are my comments:

  1. Commonality: A single development model has to cover both desktop and web users, and support native RDBMS, SQL Server, MySQL and PDF reporting. They didn’t mention Sybase, DB2, Oracle, PostgreSQL, etc. that Servoy supports – but hey, you get the idea.
  2. Speed of Development: The tool must have a professional IDE that reduces or eliminates the need for handwritten code. Eclipse is the most-used IDE on the plant – and code samples allow you to get fully working code in a single click.
  3. Performance: The tool has to be on par with desktop-only applications. Of course performance is important – but so is scalability. Any product is “fast” with a single user!
  4. Ease of use: Language tools are intuitive and allow faster development than Visual Basic, PHP  or others. Yes – especially these days. You want your tool to be more productive, and not less productive. That’s why we’ve done a direct comparison between Servoy and .NET.
  5. Versatility: There is complete end-user customization of forms, field rules (via XML) and styles (via CSS). In Servoy you can also extend and integrate the environment itself via Java.
  6. Integrity: All processing is centralized There would be no client/server or thick client updates. We totally agree – that’s why Servoy’s Web Client processing is all done on the server side – maximum performance, maximum security, maximum concurrency.
  7. Functionality: Extensive use of standard library functions cover just about anything, including instance XML DOM manipulation, instead of having to use third-party libraries or extensive custom development. Servoy has it – CHECK!

If you’re thinking about rewriting your application in a tool – make sure that whatever you choose meets those 7 criteria. It’ll save you tons of time and money!

IDC Event – San Francisco

I just got back from a quick trip to San Francisco for an IDC analyst event. It just so happened that Oracle’s OpenWorld conference was taking place at the same time over at Moscone Center – which explains why I had such a difficult time getting a hotel reservation!

Anyway, Servoy’s PR expert Brenda Christensen managed to work with Emilie Ingram from IDC to set up a separate meeting at the Royal Hotel (where the IDC event was taking place) with noted analyst Al Hilwa. This is really a hard thing to do – but Mr. Hilwa was in town for the Oracle event and there was a “hole” in his schedule (I think it was for dinner – SORRY, Al!).

It’s the first time I’ve met Mr. Hilwa in person. We’ve talked on the phone twice when we were briefing him on Servoy 4.0 and more recently on the upcoming Servoy 4.1, and in those conversations things just really “clicked.”

He’s one of those guys that is just crazy smart. He was an analyst at Gardner in the late 90’s and then moved to Senior Product Manager on the SQL Server database team at Microsoft. He has a ton of real world expertise in enterprise computing and the whole application development and product lifecycle management “thing.”

He had some really interesting observations, insights and advice for where he sees Servoy in the marketplace and in particular how our go to market strategy was particularly interesting. Well, needless to say, that hour absolutely FLEW by! Seriously, it seemed like we had just sat down and it was time for him to bolt off to the next customer meeting (Oracle).

Next, it was off to the IDC event where there were 9 more analysts who specialized in all sorts of industries and market segments. There were also about 90 other people from companies of all sizes who were invited to come and get acquainted with the IDC folks.

What a cool event! It was really cool to talk to some of the other business folks there and understand what business they were in, and talk to (and listen to!) all the other analysts. Talk about a great education… so thanks to Mr. Hilwa, Ms. Ingram and the IDC folks for a great evening.

Accomplishing More By Doing Less

There’s a big temptation when you’re creating a software product: work harder. Do more. More marketing, more features, more platform support, more blogging, more money raising… just MORE.

But you can actually do less – and get more done.

Whether your a one-person-band or part of a small start up – you will have to wear… well… 47 hats! That much is a given. However, if you can apply a filter to your activities – you’ll find that you’re actually able to accomplish more – while doing less work.

Let me explain. Let’s say that you’re working on the next great “it” and you’re working on your own, and you’ve decided to bootstrap it until things get rolling. As we all know – there are 101 things that need your attention and that must be done in order for you to get that first, all-important sales dollar.

If you’re like me – you find yourself pulled in all directions all the time. Between getting the actual product coded there are manuals to write, a website to create, graphics, promotions, Google Ads, blogging, order fulfillment, technical support, marketing, advertising, forums to post to, social media to keep up with – not to mention your social life and family time.

The key to accomplishing more by doing less – is actually very simple. You need to ask yourself a single question before you start down a particular task: “How much revenue will this generate for me?” If you begin to apply that filter to your list of activities – you’ll find yourself changing what you do, and the order and importance of your daily tasks.

Now, I’m not really a big “list” guy. I don’t have a compulsive need to write detailed lists and get them “checked off.” But, I will say – if you ask yourself that (potentially) million dollar question “How much revenue will this generate for me” – you’ll be more focused on what you do, and will be able to make measurable progress toward your goal.

Come up with an outline list of all the things you need to do to make that first sale. For example:

1) Product Development

  • Debug login section
  • Add paging feature
  • Get latest URL to outside testers
  • Investigate iPhone version
  • Investigate Blackberry version

2) Product Marketing

  • Finish website
  • Add page for ordering
  • Add comment page for support
  • Fill out the “about us” section
  • Make a version for mobile devices
  • Link blog to main site
  • Add blog entries
  • Post to forums to raise awareness
  • Take out banner ad on xyz.com
  • Make PDF brochure
  • Write “intro” email
  • Update social media with blog entries

Of course your list will be more comprehensive – this is only a guide. But in taking a look at all the stuff that “needs to be done” – ask your question: “How much revenue will this generate for me?”

If you put each task through that filter – you may decide that getting the mobile version stuff can come out in 1.x. You can also see that getting your site where people can actually buy something directly relates where tasks like “fill out the about us section”, while important, can wait until you get the basics done.

Once you’ve put all your items through the filter – it may wind up looking something like this:

A) Product Launch TO DO:

1) Product Development

  • Debug login section
  • Add paging feature
  • Get latest URL to outside testers (by Monday)

2) Product Marketing

  • Finish website
  • Add page for ordering
  • Write “intro” email

B) Directly After Launch:

1) Product Marketing

  • Finish website
  • Add comment page for support
  • Fill out the “about us” section
  • Link blog to main site
  • Post to forums to raise awareness
  • Make PDF brochure
  • Write “intro” email

C) 1.x Enhancements

1) Product Development

  • Investigate iPhone version
  • Investigate Blackberry version

2) Product Marketing

  • Finish website
  • Make a version for mobile devices
  • Take out banner ad on xyz.com

D) On-going tasks:

1) Product Marketing

  • Add blog entry (1x per week – Wednesday afternoon)
  • Update social media with blog entries
  • Post to forums to raise awareness (2x per week – Wednesday & Friday afternoon)

You still will accomplish everything on your list – but what you wind up with is a prioritized list of just the stuff you need to do in order to answer the question “How much revenue will this generate for me?” Everything else, no matter how “fun” or “interesting” needs to be put on hold until the appropriate time.

That’s the only part that really sucks. Sometimes you have to do the “gotta’ do” rather than the “like to do.” But, in the end, you’re the only one that can determine how much revenue your actions will generate for you.

Covering Your SaaS

As the adoption rate of SaaS (Software as a Service) applications goes through the roof – it looks like Washington has finally taken notice. There are several issues that are coming to the forefront – including privacy, data security, data ownership and data portability that I think will become hot issues both in the press and in the legal system over the next couple of years.

According to a September 2008 report from Pew Internet – 69% of all Internet users have either stored data online or used a web-based software application. And from the following statistics – that number isn’t going to be shrinking any time soon:

  • 51% of Internet users who have done a cloud computing activity say a major reason they do this is that it is easy and convenient.
  • 41% of cloud users say a major reason they use these applications is that they like being able to access their data from whatever computer they are using.
  • 39% cite the ease of sharing information as a major reason they use applications in cyberspace or store data there.

Unfortunately, I also suspect that as cloud-based solution adoption continues to grow – it’s inevitable that government will get involved at some point. We all know that there will be lawsuits – that’s a given. The good news (if you’re an ISV) or the bad news (if you’re a major SaaS/PaaS player) is that the big guys will get it first.

There are a whole host of issues that have not yet been worked out – either from a legal perspective, or from a marketplace “common practices” view point:

  • Who owns the data?
  • Should law enforcement have easier access to cloud data than data on a PC (hint: they do right now)
  • What happens if you want to move your data to another provider with similar services?
  • What is the liability limit if the host gets hacked and sensitive data is made public (or just stolen)?

The best defense is a good offense. Make sure you plan from the beginning how (or if) your users will be able to extract their own data from the system either for backup purposes or for moving it to a different system. How will you handle record deletion – really delete or just “hide” the records for easy “restore?” How long will you maintain a customer’s data after they cancel their account? How will you handle security and data privacy? Does your insurance cover you in case of data breach?

Thre are lots of things to think about – and you should get some advice from both legal counsel and also talk to your hosting provider and see if they can help point you in the right direction.

From a tech point-of-view: if you’re building your SaaS application in Servoy – you’re already ahead of the game since Servoy is flexible enough to allow you to do on-premises as well as hosted SaaS; is already cross platform and multi-database aware; allows you to script exports easily, etc.

By choosing Servoy at least you know that the technology side is handled… now if only the other parts of your business were as easy!

Servoy Makes Social Media Updates Easy

In looking around at all the social media sites that are available today – a thought hit me: “How in the world would you update all that stuff?” Apparently, it occurred to someone else as well because I found a tool that makes updating multiple social media sites a lot easier: ping.fm.

This nifty site (still in beta – but just request a log in and in a couple of days they will give you one) – is basically an aggregation service that will allow you to input all your log ins for all the social media sites you’re a member of – and then blast your update to them in near real time.

It will also let you post to any single service by adding “@” and then a two letter abbreviation – e.g. Twitter = @tt. Not only will it allow you to do status updates and micro-blogging – but it will allow you to do full blog posts as well. To post a blog entry to blogger – you would use something like this: @bl This is Cool!^Body of my blog. Ping.fm would then post a new posting to your blogger account with title^posting.

I also ran across some very interesting other stuff when looking at the APIs of LinkedIn (still not public yet) and Twitter, as well as Pownce, Plurk, Rejaw and Tumblr.

For LinkedIn there is a webservice widget called “Company Insider” that you can call that will see if there is anyone you know in any company. It’s VERY easy to insert into any HTML page.

If you’re into Twitter – there is some great documentation on their RESTful API here. Basically, a RESTful API means you can call it with simple URLs. For example – enter this text into a browser (Firefox or IE work best): http://twitter.com/statuses/replies.xml. You will be prompted to enter your username/password (use your Twitter login and password) – and you’ll get back an XML string of the last 2 people that posted to you.

You can also get it back in atom, rss, or json formats as well – simply by changing the “xml” in the url to one of the supported formats.

It’s basically the same thing for Tumblr, Rejaw, Pownce, Plurk, etc. They all offer a RESTful API that you can get XML or JSON files out of. This means that you can add all of this social media to whatever site you have. In fact, if you develop applications – it’s conceivable to create a really cool social networking mashup/dashboard type of application.

You could, also create a Smart Client application that would allow all the updates – or include cool widgets like the LinkedIn Company Insider functionality next to a client listing in your Web Client applications. The possibilities are really endless – and Servoy makes it easy to integrate all of these type of content.

Servoy developers here a challenge: create an application (Web Client or Smart Client) that will interact with one or more sites. We’ll post it up for others to use as inspiration. You can contact me directly at bcusick AT servoy DOT com (put “Servoy Social Media” somewhere in the subject so it doesn’t get into my spam folder).

Something Shiny

We’ve been having a look at Google’s new browser called Chrome – and the good news is – it appears to work with our test suite just fine – meaning that your Servoy applications should run great without any modifications. On Windows. For now.

Of course we’ll have to re-test when the Mac and Linux versions come out (like we always do) – but in the preliminary analysis – it’s a thumbs up.

Servoy and Chrome have a lot in common: they’re both based on open standards. Both pieces of software work really well for SaaS/web 2.0 applications – and both are really responsive. The nice thing about Servoy browser-based applications (Web Client) is the fact that it’s pure HTML and CSS on the client side. As long as browser makers adhere to standards – then all Servoy applications will be instantly compatible.

It’s the same thing when new core architectures or chips are made available. Our client/server applications (Smart Client) worked out-of-the-box the first day multi-core processors hit the streets – because Java was available on those new platforms. Since we use a single code base for both client/server and browser deployments – SaaS/web 2.0 vendors have one LESS thing/platform/browser/chipset/architecture to worry about.

ServoyWorld 2008 – It’s a Wrap!

I’m just back from Las Vegas where we had our annual developer’s conference – ServoyWorld. Wow! Every year it seems like it’s better than the last – and this year was no exception.

I wanted to thank all the attendees, the speakers and our sponsors (The Support Group, adBlocks, Sybase iAnywhere, IT2Be, Data Mosaic, McGilly Information Systems, STB, Direct ICT, Ambitius, DataBridge and ProjectLocker). I know that taking time out of your business to attend/exhibit at/speak at a conference is something that is not done lightly – and we appreciate your attendance and help in making ServoyWorld 2008 such a rousing success.

I’m always simply AMAZED at all the innovative things people are doing with Servoy. I really get a kick out of seeing how creative people are – and how they are using (and extending) the product in ways that we never even envisioned.

The feedback we get from our customers is the driving force behind this product and this company – and there was no shortage of it last week! It was really cool to see customers doing the “laptop huddle” with engineers, implementation folks and executives. Everywhere I looked there were animated hand gestures (the good kind) and passionate conversations about favorite features, missing features and “why would you ever do that?”

Beyond the terrific speakers (THANK YOU!), the yummy food, the trip to the Las Vegas strip, and the no holds barred Poker Tournament (THANKS ProjectLocker!) – my favorite part of the event was the networking.

I had the opportunity to talk with our long-time customers as well as meet folks who were just evaluating the technology and hadn’t made up their mind if Servoy was going to be right for them (yet!). I met some new friends – and had the opportunity to catch up with others that I only “talk” to on our forum.

I also had the pleasure of moderating our third annual ISV Executive Summit. This is an event we organize specifically for C-level executives who are running software companies that deliver products to end customers. We had a really great program this year – everything from “How to pitch to Venture Capitalists” by Tim Danford from Storm Ventures; to “Using Public Relations to Spread the Word” by our own Brenda Christensen; to “Which Tech Tool is Best for an ISV” by Jan Aleman our CEO; to “Pricing, Retaining and Gaining NEW Clients” by Dean Westover from Choices Software.

Beyond the great presentations – I really enjoyed the interaction and number of questions and real life stories that were shared. We discussed everything from pricing to hosting to the conversion process. We talked about the impact of social media on business, how to leverage outsourced hosting and what the most effective methods were for customer retention in a SaaS model. I simply love hearing how our customers are being successful with Servoy – it’s so inspiring. I also really like hearing areas that we can improve – or areas they’re having challenges in – so we can try to help overcome issues and make the path even more straight and narrow.

I wanted to take a moment to thank our staff. No great event or great company or great product can exist without great people. Personally, I think we have some of the best out there! I really appreciate all the time spent in preparing for presentations, for all the time spent helping debug/evaluate/review customer applications, for being there early after getting to bed late – and for just being yourselves. You really helped make the conference the success it was.

I also wanted to extend a special thanks to Brenda Duncan and Carla Benassi – those hundreds of hours of organization and agonizing over the “small stuff” really paid off. GREAT JOB, guys!

And, finally, for those of you that didn’t have the chance to make it to Las Vegas this year – I hope to be able to meet up with you next year in Europe for ServoyWorld 2009. Watch this space for details…

Why Can’t We Have Both?

I love reading stories by John Dvorak – he is very opinionated – and I love that (I’m a tad opinionated as well). I read his column at PC magazine and watch his streamed show called “Cranky Geeks” on a regular basis.

John’s latest tirade is against Web 2.0 applications. The subtitle on the Article entitled “Stormy Weather for Cloud Computing” sums up his view very succinctly: “Cloud computing apps are for suckers. If there is an alternative that runs locally on your own machine, it will always be better.”

He goes on to list 7 things that are wrong – or could go wrong with software that’s hosted in the cloud. I have to say – that I totally agree with him on some points, and totally disagree with him on others.

First – where we agree: whenever you host something off premises – you’re going to run the risk that it will be offline. Either your connection will go “down” or theirs will – or there will be a server issue or whatever. That’s the case with all Internet-based applications.

I would even take it a step farther and say that even with completely in-house applications – there is going to be down time. I guarantee it. The reason is because we still host applications on servers – and servers go down. The hard drive dies, or the processor melts or Windows has a spaz and just ups and dies.

Either way – it’s downtime.

However, I do think that John is throwing the baby out with the bath water (an American saying). Hosted applications save people tons of money and tons of time in terms of buying, managing and maintaining a whole IT infrastructure in-house.

When it comes to designing a network topology, buying (and updating) server hardware, network storage, database servers, performing backups, ensuring redundant everything, paying heating and cooling and electricity bills, updating and installing patches and new application versions – it’s just a heck of a lot easier to let other people handle that part of the equation.

Especially if you’re an ISV (Independent Software Vendor). If you’re an ISV – your business is building software – not managing a data center.

At the same time – if you’re building applications – you often have to choose whether you’re going to use browser-based technology or client/server technology. It’s apparent that with the outsourcing of the hardware becoming a more affordable option – more and more people are looking to develop browser-based applications.

However, there are times when a client/server model or having a native client or having an offline version of your software is necessary (or even preferred over a pure browser deployment model). For example, what if you have a POS system that must interact with local hardware like scanners and cash drawers?

Try doing that in a browser!

In general, we find that people who use an application all day every day want a native, rich, thin client (we call it a “Smart Client” here at Servoy). The native client means that the user can work in their preferred operating system and the application will have the same look-and-feel as all the other applications they are already used to using. It can talk to hardware, the local file system, etc. – things that are impossible to do with straight HTML.

On the other hand – browser-based application are great for occasionally connected users, for end-user customers to check status, or answer a particular question, update their account information, etc. It’s also great for portions of the application (think an executive dashboard, a remote sales report, etc).

The big question to ask yourself is: “Why can’t we have both?”

The answer is usually: “Because we have to build the entire application twice.” And, in general, it’s true. Most products require that you re-build the data entry screens and reports in HTML for the browser, IN ADDITION to re-building the business logic behind the calculations, validations, etc.

This means that you are doing double the work – and maintaining two separate code bases quickly becomes a nightmare! Not to mention the fact that you have to then manage how you’re going to roll out new features: is it a client/server-feature only? Both? Only browser-based?

I can’t tell you the number of times I’ve seen this approach taken by well-meaning companies trying to gain the advantage of either first-mover advantage or because their struggling to modernize their aging application and immediately think “browser.”

At Servoy our answer to “Why can’t we have both?” is simply this: YOU CAN. Not only that – you can have a SINGLE code base – and deploy your solution as a client/server application as well as a pure HTML/CSS browser-based application. At the same time. From the same server.

Not only that – but you can also sell it to your customers as a SaaS (Software as a Service) application either with a native client or a browser client; you can also sell it as an on-premises solution that your customer can host inside their firewall or in the cloud and deploy to their employees as client/server or browser-based. From the same server. At the same time.

You CAN have both – the solution is Servoy.