Curl Blog

Previous Next
8

What makes Curl such a great programming platform? Here are seven things.

Single Platform: The Curl RTE is the same on every platform, in any browser. No need to work around browser quirks and bugs.

Security: Curl has a security model that prevents unprivileged applets from doing arbitrary things on your computer. For safety's sake, we think that most applets should be unprivileged. For commonly needed but potentially insecure operations, such as reading or writing a file, the RTE will ask the user for permission before allowing the operation. This is better than always preventing it and also better than not allowing it at all. It is of course possible to grant applets full privileges, but it's not a step to be taken lightly.

Speed: The Curl RTE compiles an applet to machine code so execution is fast. As an applet is downloaded from your web site it is compiled and evaluated incrementally. Any expression that produces output is shown immediately in the web browser. Class definitions, procedures, packages, and so on are compiled and cached, so subsequent downloads are faster than the first one.

Software Engineering: Curl is the kind of language you want if you are serious about software engineering. Strong type checking is enforced, though you can declare a variable to be of type "any". The language supports multiple inheritence. It has parameterized types (generic classes), as well user defined macros. It doesn't force you to put everything into a class. Development is fast too, because of the large number of useful APIs provided and because the compile time type checking helps you eliminate errors early. Plus when debugging, you don't have to "build" anything. Just edit and reload in the browser.

Single Language: The Curl language is suitable for all of the things that go into a modern web application: Classes, algorithms, data, expressions, events and handlers, text, graphics, forms, tables, and everything else can be expressed in the same language. You don't need to use a messy combination of XML, JavaScript, HTML, ActionScript, and various other languages and formats.

Server deployed: A Curl applet is distributed simply by putting it on a web server. It is updated by updating the files on the web server. It can be is as easy as updating a static web site.

Service Oriented: A Curl applet is the ideal consumer for web services and API's. Any SOAP endpoint can be turned into a Curl package and called directly. REST API's can also be easily handled. Both synchronous and asynchronous requests are supported.

We'll be talking more about these and other advantages of the Curl platform over the next few weeks. Let us know if any of them is of particular interest.

If you're a web developer, download the free IDE (which also installs the RTE if needed) and give Curl a try. You can use Curl for any programming project, even if you aren't planning to deploy it on the web. If you need to do any kind of computation and user interaction, Curl makes it easy. There are extensive examples in the Developer's Guide to get you started.



Add a comment Leave a comment on this blog post.
Mar 25, 2008 2:21 PM Reply Click to view RMH's profile RMH

Great post, Mike! Curl sounds pretty cool when talk about the seven things that make such a great platform. Thanks!

Mar 26, 2008 10:23 AM Reply Click to view fukuta's profile fukuta

I made a Japanese translation of this post.
http://d.hatena.ne.jp/giuseppe/20080326

I'd like to introduce these things to Japanese developers for letting them understand more about Curl. If there is any problem, please let me know.

Apr 15, 2008 3:15 AM Reply Click to view URPradhan's profile URPradhan

Can we develop really RICH UI applications with smooth graphics, animations, fading effects, different transition effects to objects ?

Recently I saw the Flex application like http://examples.adobe.com/flex3/devnet/dashboard/main.html and I really wish if we can develop such RICH animated RIA apps ?

How to add effects like fading, moving, or other transitional effects to graphs, charts, or other objects using Curl ?

Apr 15, 2008 1:51 PM Reply Click to view Duke's profile Duke in response to: URPradhan

The Flex application you link to is comparable to the Curl demo http://www.curl.com/demos/cbi/COM.CURL.CBI/start.curl which is discussed in Curl Business Intelligence Application. But I don't know if that applet's Curl source is available.

You can do a search for "opacity" in the IDE documentation to find out about fading effects. And a search for "animation" in the documentation turns up some examples of various forms of animation.

Apr 15, 2008 10:00 PM Reply Click to view URPradhan's profile URPradhan in response to: Duke

I had tried the Curl applet earlier that you have given the link.
But frankly, the Flex/Flash application is still looking rich, smooth to my eyes especially the bar chart,line chart, pie chat effects. yes, I agree that, we can not compare the applications exactly, but I'm eager to know/develop such flashy apps using Curl.

Apr 16, 2008 2:32 AM Reply Click to view RMH's profile RMH in response to: URPradhan

Hi URPradhan,

The Flex application you reference is pretty cool - no doubt about it. Adobe has created some really wonderful looking graph widgets but you have to buy the Flex 3 Professional IDE (~$700.00 US) to get them - they are not free. You could reproduce the Flex application in Curl but the transitions, drop shadows, and so on our not a part of our charts out-of-the-box. In our roadmap there is a plan to upgrade the default UI and that includes the type of effects in charts that you see in the Flex application.

I guess the short answer is that you can achieve the same effects - Curl has extremely powerful 2D and 3D capabilities including everything you see in the Flex application - but its not the default behavior of our charts as they are today. Because the Look & Feel of Curl is fully skinnable charts like these can be created but at this point you would need to create a skin that does that yourself. Hopefully, we will have more compelling charts in the near future.

One thing that strikes me is that the fully skinnablity of Curl opens up the opportunity for some fun open source projects. For example, a person could create a whole catalog of chart tools similar to Adobe Flex but implemented in Curl. If anyone is interested then dive into the power of Curl and make it happen. That's what open source is all about! In the mean time, we'll work on a default look & feel for our charts and the rest of the UI that is uniquely Curl and provides a visually stunning alternative to Flex.

Apr 16, 2008 2:51 AM Reply Click to view URPradhan's profile URPradhan in response to: RMH

Nice useful info from RMH.

If you can share the code for http://www.curl.com/demos/cbi/COM.CURL.CBI/start.curl, it can be good learning material for us.

//Thank you

Apr 16, 2008 3:29 AM Reply Click to view RMH's profile RMH in response to: URPradhan

I'm not positive, but I think that application belongs to one of our customers (we put it up with their permission). However, I'll check into it and see if we can make the source code public.