1 2 Previous Next
17 Replies Last post: Aug 12, 2008 12:37 AM by neel.in

Why to choose Curl as a RIA language?

Jul 2, 2008 1:38 AM

Click to view URPradhan's profile BlackBelt URPradhan 167 posts since
Mar 6, 2008
Hi Friends

May be you must have surprised by the title of the discussion. But still we need a better understanding to explore Curl in more detail. And I hope many will contribute to this discussion.

Currently there are many popular RIA solutions available in market. For ex, Microsoft Silverlight, Adobe AIR (Flex/Flash/Ajax + JavaScript) and obliviously Curl. And when we are saying rich internet application means, any application developed using (one of the) above technologies, MUST be rich in its user interfaces with smooth/flashy graphics with animations and easy of use for the end user. And another thing which matters to an end user is the run time engine MUST be as small as possible and he/she should be able to access the application anywhere, even at an airport terminal PC (a public PC where users CANNOT install any software !).

So, keeping the above facts in mind, if I have been asked to develop a RIA application with a freedom to choose the language/platform...
Why should I choose Curl against Silverlight, AIR/Flex/Flash/, and Ajax ?

In other words ...
What makes Curl special against its competitors -OR-
What Curl has in it and it's competitors does not have (If the cost of s/w does not matter to me) ?

Thank you
Click to view tiju's profile Level 6 tiju 118 posts since
Oct 17, 2007
1. Re: Why to choose Curl as a RIA language? Jul 2, 2008 2:04 AM
Hi,

I am a developer working in Curl all day, everyday, eventhough I might not be even close to becoming an expert. If you go through the community blogs, you will get umpteen number of answers for your question. _http://developers.curl.com/blogs/community_blog/2008/06/13/enterprise-ria-real-examples-in-use_ is just one such wherein you will see real-life developers in various platform converge together.

I work on an enterprise-application in curl and I mainly vote for these (being a developer)
  • ease of development and code maintanability, thanks to a great IDE
  • good oo-based language which helps build robust frameworks
  • flexibity compared to other languages

We can indeed implement flashy graphics in our application, but then we are concentrating on the enterprise-application. Nevertheless, I too felt sometimes we do not match exactly in terms of the flashy graphics, but then again, it does not matter for an enterprise-application which needs robustness, ability to handle huge data-sets, should be light on the client machine etc over flashiness.

Thanks
Click to view RMH's profile Curl RMH 45 posts since
Feb 17, 2008
2. Re: Why to choose Curl as a RIA language? Jul 2, 2008 2:24 AM
Every RIA solution has its strengths and, in terms of application domain, its sweet spot. It's obvious to say this, but your specific requirements should dictate the RIA solution you use. You can't say which is better over all as they all have strengths in certain areas and weaknesses in others.

Your requirements, if I understand your post, is that the RIA solution should (a) provide the capability of doing smooth and flashy graphics and (b) the runtime should be as small as possible. All of the RIA solutions (e.g. Silverlight, Flash, Curl) are capable of providing smooth and flashy graphics. It's a matter of design skill rather than technology so this requirement is fulfilled by any of the usual suspects.

Your second point is a bit less clear to me. You say that the runtime should be small so that applications can be accessed from anywhere (e.g. public PC). In this case, Curl is clearly not the solution as it has a fairly large runtime (9 meg) that must be installed before Curl applications can be used. That said, Curl applications are typically smaller than Ajax or Flex applications (not sure about Silverlight). Curl applications are smaller for a number of reasons: because the runtime has so much functionality less is needed in the application; because the source code is naturally terse; because the applications are served as pure-text which is very compact when zipped up. So if your actual requirement is application size, than Curl is a great choice. If this requirement is reach - the availability of the runtime on arbitrary machines - than you have to go with Flash or Ajax.

Curl is an exemplary solution in the Enterprise where the audience is captive (you control or dictate what every user has on their machine) and when raw performance and security are of importance. In terms of performance Curl is an order of magnitude faster than Flex and (according to engineers at curl) about two orders of magnitude faster than Ajax. This makes a huge difference when you have to deal with lots of data (e.g. a table with tens-of-thousands of records, advanced data visualization, complex product configuration). Curl is also capable of handling a lot more data in memory than other solutions (e.g. hundreds-of-thousands of records). Finally, Curl's security model is extremely strong.

There are other advantages to Curl such as the ease-of-learning, the simplicity of the code, the rich feature set, the stability of the platform, etc. I could talk about those until I'm blue in the face and until this comment is the size of a short novel, but your second requirement is perhaps the most important qualifier. If you need small applications that can be downloaded quickly than Curl is an excellent solution. If you need a ubiquitous runtime than Flex or Ajax are better choices today.

I hope that helps.

Richard Monson-Haefel
VP of Developer Relations
Curl, Inc.
Click to view cbarber's profile Curl cbarber 124 posts since
Sep 27, 2007
3. Re: Why to choose Curl as a RIA language? Jul 2, 2008 8:27 AM
I don't understand your point about the RIA engine being as small as possible. You state that you feel the user should be able to access the application anywhere, but if the engine itself is very small with minimal built-in libraries, then all of that code must be embedded in the application itself which will force you to download more code onto the client and will result in much slower load times. Really you want the engine to have as much built-in capabilities as you can reasonably fit on the client device so that your applications can be smaller. As an end-user, wouldn't you rather spend five or ten minutes installing a plugin once rather than having to wait for a minute or two every time you start an RIA based application?

In the case of an airport PC, you are probably out of luck. Chances are that not only will you not be able to install any software but they may even restrict use of JavaScript to a few trusted sites. In general, any web application you want to be usable from a public PC should not use any plugin and should not even require use of JavaScript. As you probably know, for this reason many web sites are unusable from public PCs. Now an airport may very well decide to install Curl or some other RIA plugin on airport machines to run their own restricted set of applications such as interfaces to flight data or airport directories.

I would not choose Curl in any domain where a significant number of users cannot or will not install the plugin and where the loss of those users would be significant to your business. Examples would include large internet sites that make money through direct sales or advertising. For those domains you are stuck with AJAX or Flash (not AIR which requires an even larger download than Curl).

Now for business domains where plugins are acceptable, Curl has a number of advantages over other technologies:

  • The Curl language itself is far more powerful than other RIA languages and in fact is more powerful than most commonly used commercial programming languages. This power includes the ability to mix dynamic and static typing idioms, the ability to mix code and marked up text, the ability to define efficient parameterized types, the ability to dynamically generate, compile and run source code during program execution, and even the ability to extend the language itself through a procedural macro system. All of this gives the developer a greater ability to write compact, readable and efficient code.

  • While Curl may not always enjoy this advantage, it currently generates faster code than other RIAs. This may not matter for all applications, but it is significant for any CPU or memory intensive tasks, such as dynamic charting, large-scale data analysis or procedural animation.

  • The Curl RTE persistently caches packages in binary form (machine code, not byte code), so once an application has been loaded and cached it can be reloaded very quickly, even if it is very large. This technology is used for the Curl IDE itself.

  • The fact that there is no explicit compile-link cycle for building Curl applications and the speed of its compiler allow developers to spend more time coding and running their application and less time waiting for it to build.

  • The set of libraries included in the RTE download is more comprehensive than other RIA platforms which further helps Curl applications to have smaller download sizes than other technologies.

Not having had any experience with writing UIs using other RIA technologies, I cannot say to what degree our UI libraries might be better than those of competing technologies, but I personally have found it very easy to write UIs in Curl with very little previous UI experience prior to Curl (I did the UI for the Curl Coverage Viewer and the Applet Manager)..
Click to view URPradhan's profile BlackBelt URPradhan 167 posts since
Mar 6, 2008
4. Re: Why to choose Curl as a RIA language? Jul 3, 2008 6:11 AM
Thank you all. I have gone through all the posts and the inline links for reference too like ...


1. http://www.garyrgilbert.com/blog/index.cfm/2008/4/21/Curl-VS-Adobe-Air
2. http://developers.curl.com/blogs/community_blog/2008/06/13/enterprise-ria-real-examples-in-use


So to be precise, what Curl claims is that... Its a RIA solution for Enterprise which can handle large set of data. But, all potential RIA applications are may not be Enterprise applications or even do not need such huge amount of data. So, that time we may have better choices opposed to Curl. So we need to choose the best RIA solution for individual RIA applications requirement. Even few replies to blogs have concern about the huge 9 MB RTE, again its only for one version (every Curl RTE version needs to be installed for applets written in different API versions :( ) I believe its the main hurdle for Curl to reach masses. But some members here advocates for the large set of packages available with the RTE, which contributes to the final size of the RTE. Can there be separate Curl RTE installer for incremental set of packages, like say, Minimal, Normal, Full versions of RTE (needs to be decided depending upon the most used packages) ? And about smooth graphics for UI objects, I think its depends upon the anti-aliasing implementation.

BTW, I have used the few demo AIR Flex/Flash, and Ajax applications like eBay Desktop, Yahoo Finance, Google Calendar, NASDAQ, AOL, FineTune, etc.... which I love to play with such rich UI applications with lots of transition, fading, animation effects. Can I have links to such kind of Curl applications ?

Thank you

Click to view cbarber's profile Curl cbarber 124 posts since
Sep 27, 2007
5. Re: Why to choose Curl as a RIA language? Jul 3, 2008 6:58 AM
in response to: URPradhan
Apart from from strictly Enterprise solutions, Curl would be good in situations where users might otherwise download software: B2B applications, tax preparation, financial portfolio management, etc.

I really don't think that 9MB is "huge" these days. Not when a common plugins like Adobe Reader weighs in at 33MB and Adobe AIR is about 12MB. Really the biggest hurdle to widespread adoption of Curl for large-scale websites is that AJAX and Flash are good enough for most of what they need to do. It just doesn't make business sense for us to spend a lot of time trying to make Curl into a better version of JavaScript or Flash.
Click to view cheese's profile Curl cheese 10 posts since
Oct 30, 2007
6. Re: Why to choose Curl as a RIA language? Jul 3, 2008 7:04 AM
in response to: URPradhan
Yes, Curl has identified the enterprise as its primary target, in no small part because we believe Curl's platform is much more well suited than other RIAs for enterprise-class applications. Of course the Curl platform could be used in many scenarios outside the enterprise as well, but every application has its own set of requirements that might or might not make Curl the right choice. The trade-off between RTE download size and application size is just one example.

And for whatever it's worth, Adobe's AIR installer is bigger than Curl's (the last AIR installer I saw was 12MB).

With regard to upgrading the runtime, you'll encounter the same problem with Flex/AIR applications that require a Flash Player or AIR upgrade. It's not a problem unique to Curl. Curl does, however, have a strong versioning story. Curl applications written for a specific API can run happily on a client machine that has since upgraded their runtime (say from 6.0 to 6.0 & 7.0). The "old" RTE still exists on the machine unless the user specifically uninstalls it (I have versions 7.0.0-beta, 6.0.2, 5.0.2, 4.0.4, 3.0.8, and 2.0.8 all at my disposal on my machine). Moreover, application developers don't have to change their applications' API version just because there's a new Curl RTE release available. Sure, if there's a feature or fix in a new release that you want to make available to customers using your old (e.g., 6.0 API) application, you can ask or require them to upgrade, but it's not necessary. In fact an application can be written to support multiple RTEs simultaneously and behave the right way according to whichever RTE is available on the client machine. Multi-API applications aren't always the right choice, but it offers one way to amortize the upgrade process.

It is worth remembering (at least from Curl's perspective) that Flash wasn't born in the browser either. It took a variety of "Frog in a Blender" type Flash applications to get things kick-started, and presumably a lot of hard work by Macromedia/Adobe to keep the momentum going, before they reached the penetration level they're at today. Viral marketing goes a long way. If you've got cool application ideas in mind, go right ahead and implement them then put the word out. We're trying to do out part, and we're hoping a vibrant developer community can help us while we help them.

For a nice effects you can have a look at the following. It requires Curl 7.0 (beta), and a reasonably well populated Facebook account, but the design and effects are pretty cool.

http://developers.curl.com/blogs/community_blog/2008/06/06/curlgraph-a-sample-curl-nitro-desktop-application

http://developers.curl.com/docs/DOC-1241
Click to view URPradhan's profile BlackBelt URPradhan 167 posts since
Mar 6, 2008
7. Re: Why to choose Curl as a RIA language? Jul 4, 2008 12:08 AM
in response to: cheese
Thank you for the links (I had already seen those apps, if you ve more flashy apps plz share).
But, as far as UI/graphics is concern, I'm not impressed wrt eBay Desktop, Yahoo Finance, Google Calendar, NASDAQ, AOL, FineTune, etc.... apps :(
(Note: Its my own taste)
Click to view tiju's profile Level 6 tiju 118 posts since
Oct 17, 2007
8. Re: Why to choose Curl as a RIA language? Jul 4, 2008 1:15 AM
in response to: URPradhan
Click to view URPradhan's profile BlackBelt URPradhan 167 posts since
Mar 6, 2008
9. Re: Why to choose Curl as a RIA language? Jul 4, 2008 1:51 AM
in response to: tiju
Omg ... I really do not like this .....

========================================================
<Error> - An error occurred while loading this applet.
SyntaxError: http://www.curlap.com/html/solutions/demo/stock-chart/ex-stock-chart.curl:4[1]: The herald '{curl 3.0 applet}' is not satisfied by any of the installed Curl API versions.

In order to view this Curl applet, you need to install additional software.
Click OK to download and install the software needed to run this applet
========================================================

Means, If I have 7 Curl applets (accessing from a website) written in 7 versions starting from 1-7, then I'm forced to download 1, 2, 3, 4, 5, 6, 7 API versions :( :( :( , even though I'm not accessing any ENTERPRISE application. But as Cheese earlier said there is no ESCAPE (Incremental, backward compatible versioning is the new generation feature).
Anyway TFS.
Click to view Harry's profile Level 1 Harry 20 posts since
Jun 19, 2008
10. Re: Why to choose Curl as a RIA language? Jul 4, 2008 1:51 AM
in response to: URPradhan

Found this:

http://www.curl.com/demos/raytrace/tutorial.curl

Nice animation at the end of the page.

Click to view cheese's profile Curl cheese 10 posts since
Oct 30, 2007
11. Re: Why to choose Curl as a RIA language? Jul 4, 2008 7:10 AM
in response to: URPradhan
I'm not sure you've understood my point about versioning. What I said earlier is that there IS a way to make the upgrade issue more tolerable for users. The ENTERPRISE nature of the application, or lack thereof, isn't relevant.

I don't happen to believe that it's practical for any organization to have applets deployed for more than a couple of API versions for significant periods of time without their users naturally upgrading over time. I think your example takes the issue to an impractical extreme. And, again, the issue is not unique to Curl.

By the way, the applet that gave you the error is probably more than 6 years old. It probably should be upgraded to a more recent API as a matter of course.
Click to view URPradhan's profile BlackBelt URPradhan 167 posts since
Mar 6, 2008
12. Re: Why to choose Curl as a RIA language? Jul 7, 2008 4:00 AM
in response to: cheese
Friends

yesterday first time i saw and played with a Mac notebook at my friends house. Really its a wonderful piece of h/w with ultimate UI which is value for money. I really like the UI of its applications with wonderful piece of UI effects. can we write such kinda apps in Curl ?
Click to view mgordon's profile Curl mgordon 48 posts since
Oct 17, 2007
13. Re: Why to choose Curl as a RIA language? Jul 7, 2008 12:32 PM
in response to: URPradhan
If you like the look of the Mac widgets, you're in luck. When you run a Curl applet on the Mac, you get the Mac look automatically. This is also true in the 7.0 beta (Nitro) but we expect to change that so that no matter what the platform, you get the skinned controls by default, and there will be an easy way to ask for the native look (which we call the "standard" look in our API, meaning standard for whatever platform you're running on). (see install-standard-look-and-feel in the Nitro beta)
Click to view URPradhan's profile BlackBelt URPradhan 167 posts since
Mar 6, 2008
14. Re: Why to choose Curl as a RIA language? Jul 7, 2008 9:06 PM
in response to: mgordon
WOW !
Native look-n-feel supported in Nitro ! Its a gr8 news as user should have flexibility to choose the look-n-feel he/she likes not restricting him/her to a same look-n-feel.

BTW, I have mentioned about the graphical EFFECTs (transition, flying, fading, etc ...), not about the widget. No doubt widgets are good, but more than that I had impressed with the effects of each and every UI items.

Thank you

Modified: Hmmm.... No native look on WinXP :( I think I took it wrong.

1 2 Previous Next