Tom Lauck’s Deseloper.org

Time is Money, Platform Matters

author:

Moral of the story, choose your platform wisely.  When I drafted this post in the spring, the intent was to showcase the power of highly developed platforms like ASP.NET as opposed to Ruby.  I was then going to throw all the RoR people under the bus for jumping on a bandwagon :) [prepare for getting hit over the head by Ruby people]

But now that I am in an environment where I am constantly confronted with a heavy Java back-end, this comparison seems so much more powerful. [prepare for getting hit over the head by Java people]  Granted process has a lot to do with the excessive production time some companies face, however, language and platform choice clearly has a significant impact.  In large corporate environments, elevations to production can creep on several years of work.  Platform choice, along with process management goes a long way in cutting down on time it takes to elevate.

Below is a collection of 4 screencasts from betterwebapp.com that I found on Viddler depicting a “bake-off”.  Essentially developers were given the same task of building the same basic web application.  The results were recorded and put side by side.

ASP.NET, Ruby, Java, Perl Side by Side Comparison

In the end, if time is money the findings show that it would be logical to use ASP.NET.  In many cases, this could be attributed to Visual Studio as an excellent development tool.  The intellisense available in VS is very different and far better from almost ever other tool/editor I have used.

To add more in favor of Visual Studio being a winning tool, this screencast was completed before jQuery began shipping with Visual Studio.  jQuery has transformed the JavaScript world, and coupled with beefed up support for JavaScript intellisense in Visual Studio 2008, development time is cut down dramitically.  

One can argue over intricacies of the languages, however, the speed of C# and RAD capabilities in Visual Studio make the VS/.NET combo a robust and rapid web development platform.

And I Digress…

While slightly off topic, this also serves a nice message to Adobe.  Flex is a step in the right direction, but Visual Studio 2008 is a far better development tool than Flex Builder is in its wildest dreams.  If Silverlight begins to get better market penetration, Adobe will be forced to innovate, and perhaps Microsoft would even create a development tool for Mac.  The reality is, Flex will have the Mac market so long as Visual Studio is Windows only.  If Adobe is to keep their choke hold on the RIA market for years to come, they need to take some lessons from VS2008.

10 Responses

date: October 29th, 2008

I think it will be useful to compare, not only the Platforms, because development platforms like Java does have a lot of frameworks to build your application upon them, and each one has its advantages in terms of scalability/legibility and easy of coding.

I am not much in the .microsoft world but I don’t see much frameworks for building up sites more that what is already there in visual studio IDE that is heavily integrated with all its technologies, which indeed saves a lot of time.

spoken by: David Hofmann

date: October 29th, 2008

nice video, too bad we cant see what you are doing. Java can be faster if you dont care about maintainence you can just use scriplets and development will be almost as fast as php. Please put the bigger versions(so we could see the code), because in this kind of programming i could write java app in 1min and ASP in 10h.

spoken by: raveman

date: October 29th, 2008

Wrong. It can be done faster, cleaner and more cost efficiently for longer than the time to put up this project.

You want fast, clean, extensible with no OS lock-in. You want to benefit from the widely available API’s and tools available: messaging, scheduling, email, rules, etc. Or maybe just keep it simple.

Here’s what you do:

1. Get/buy an IntelliJ IDEA (http://www.jetbrains.com) license. This IDE beats down Eclipse & the rest. It has the mother of all refactoring in it.
2. Get/buy javarebel (www.zeroturnaround.com). A single jar for development time so that class reloading becomes non-issue.
3. Install Apache CLICK web presentation framework (http://click.sourceforge.net/). Mostly stateless, does not interfere with the HTML elements AT ALL: it simply uses the element ID in the page so your designer is happy. You may add velocity variables for finer control ($myvar). The mapping from the form elements to java objects could be brainless: form.copyTo(javaObject). Validation is provided or plugin in your own (apache commons validation works fine for me).
4. Use minimalistic ORM such as PERSIST (http://code.google.com/p/persist/). Provides mapping to java objects by convention or explicit with with just four annotations. You maintain full control over your SQL statements. The mapping can be done from sql result sets (not necessarily tables or views) to simple java objects (POJO) or arbitrary lists or maps. Ammentos (http://ammentos.biobytes.it/) does a similar job too.
5. Get DWR (http://directwebremoting.org/) for your AJAX needs. You will be shocked how easy Ajax becomes.
6. Use jQuery of course for DOM and stuff in the browser.
7. Hook up any database: Sqlite, PostgreSQL, MySql, MS server, whatever.

I am telling you, I have not yet seen a simpler, faster and more rewarding environment. You get static compilation, ajax, ORM, pretty much anything you need.

If things get more complex later (when projects scope demands it and money pours in) you can go higher to things like JPA, glassfish etc.

In the meantime, you can have free access to solid tools such as messaging (Apache ActiveMQ), mail server (Zimbra), scheduling (quartz), business processing (jBPM), rules (JBoss Rules) or even proprietary tools for which you pay thousands.

All you need is $400 for IDEA and JavaRebel – and a laptop. Well, also a good idea or tangible need that you or your employer provides.

Yes, time is money and my setup beats ASP.NET both for system and programming costs.

Or else, of course, if you get your news from NBC rather than have a mind of your own.

Regards,

Florin

spoken by: florin

date: October 29th, 2008

@Florin Thank you for the recommendation. One can still do all of this for free with Visual Web Developer Express. SQLServer Express is also free, or you could choose MySQL, or some of the other options you mentioned. LINQ is also a big selling point. If you haven’t looked into LINQ, I recommend that you do.

Now, I have been down similar roads to what you described, but imagine an entry point for a beginner. There is a lot involved there for someone who isn’t sure of what they are doing.

Also my organization, for instance, operates on WebSphere. Those servers cost a lot of money! Once you get into that realm, disputing licensing and server costs is negligible.

So for most Web applications (e.g. where one does not need to worry about robust scaling across thousands of servers), the cost with C# and .NET would not only be free (compared to $400), but would have key features like LINQ and great JavaScript Intellisense.

spoken by: tom

date: October 29th, 2008

Tom, I was advocating language embedded SQL in 1999 and I still want jLINQ somehow. However, a flower does not a spring make.

Your point was that platform and language choice translated into hard money which any results oriented person appreciates. It was not about entry point for beginners. Ruby or Perl disqualify from the outset depending on what a beginner is.

Your article suggests that language and platform choice are relevant for project startups if I don’t get it wrong. Well, the setup I propose beats any I’ve been presented so far. Weather from the outset or long term, I cannot possibly justify _at_this_time_ abandoning such an open platform like Linux/Java – not for ideologic but practical reasons, that is.

As you’ve been around such “enterprise” environments you certainly know that most architectural and platform decisions go beyond meritocracy and are seated in politics, job security and other nefarious reasons. That’s the only away to excuse the use of WebSphere. At the same time, I am also bewildered at the incredible tendency that many Java programmers have to complicate things to the point of universe meltdown. If a solution is simple, efficient and sends you to work rather than incite a hot debate, that is not a good solution.

IntelliJ has amazing support for JavaScript. Check it out in version 8. Aptana (Eclipse based IDE, free) has wonderful support for JavaScript as well including support for libraries such as jQuery, dojo, prototype, etc.

In my opinion, ASP.NET remains appealing for many reasons beyond it’s tools support. It is a very good platform. Yet it is not the best when it comes to time and money whether short term or long term. It is perfect for the click happy, click safe populace. Yes, it’s a good platform.

I would paraphrase your conclusion like this:

In the end, time is money – [if you want instant environment setup, no research headache, no need to explain yourself and little risk] – use ASP.NET.

Cheers.

Florin

spoken by: florin

date: October 29th, 2008

PERL

spoken by: camel

date: October 30th, 2008

Its hard to take your analysis serious when you start out with a statement that you want to show that ASP.NET is better than RoR.

If it was to be taken serious, your method should be explained in more detail. What do we actually see in the videos? Does each video show the same problem being solved? What is the problem to solve? Is it you who are doing each of the solutions? Is the experience of the problem-solver at the same level in each of the cases?

Without all this information, and some crummy video of Perl developers apparently stereotyped into using VIM, then you can’t expect this to be other than a biased praise for your platform of choice, ASP.NET.

Cheers,
Soren

spoken by: Soren

date: October 30th, 2008

Very strange video – you could make every language being the winner here…

As I can see from the comments one major thing that should be stated if a pre-assumption is to use standard libraries only or only standard + free or including use of commercial third party components. But that is just one parameter.

Another important thing: From all the languages I learned so far NEVER the standard libraries provided every routines that I would need in a first small project. There are always a lot of primitive routines missing to get really productive.

About RAD: I have used rapid application development tools when nobody was speaking about it and I either did not know that people will name it RAD but after many years of experience I can tell that speed is not everything. How enhanceable and maintainable is the result? How stable? How flexible? How secure?

And not talking about portability here…

So this comparison is just apples and bananas.

spoken by: Martin Wildam

date: November 5th, 2008

Once, I tried this experiment, I put a friend of mine to try and make the same app (which one doesn’t really matter as in your example), in both Excel and C/C++, just to find out which one is faster and better. Being an accountant experienced in Excel it seemed like an obvious choice, C/C++ was chosen, cuz’ of all the fuz they speak about in the linux kernel forums as being ideal for kernel and driver dev development. It also seemed natural.

Unexpectedly Excel turned out being faster! (She’s still debugging the C/C++ version). I will be proactive and suggest to my boss we start developing the next generation Excel application framework, a real Java/.NET/RoR buster!

See you then, Losers!!!

P.S. : Sarcasm now puked out, this post is a totally pointless comparison.

We all know PEEK and POKE rules.

spoken by: Notso Required

date: February 6th, 2009

I think I’m going to close the comments on this one. I don’t think people really took the post for what it I intended it to be. Rather, I seemed to have picked a fight with Java developers which was not my intention.

- Tom

spoken by: tom

Oct 29 2008