This is my first blog, ever, and I hope that this will just be my first step in the world of blogging with many more to follow.
These are interesting times. The world seems to be moving from the desktop base applications to the Rich Internet Applications by taking the advantage of one of the greatest happenings of our life time, the Internet. A lot of folks are trying to build technologies to make it easier to write applications for the internet. Some of the technologies that immediately come to my mind are Curl, Adobe Flex/Air, Silverlight and REBOL. Each of these technologies are improving by day, and because of the competition they bring in, they are helping each other to be more and more powerful.
Here I am not going to compare these technologies. To be fair, I cannot. I have very superficial knowledge of these except for Curl. I have been associated with Curl since the year 2000 (remember the era of Y2K).
To make a Technology easy to use one must have tools around that technology. If you are developing using Curl then you must know about these tools. I will not go in details as there is already a lot of documentation about these.
1. IDE
- Curl has its own Editor and a powerful Debugger.
Although you can use any text editor to write Curl applications it is not recommended. You miss on syntax highlighting, auto completion, and many, many features that the Curl IDE provides you to write code.
Since you can write your entire client side application using the Curl platform, you can debug each bit of it. That is the best thing I like about using one language to write an entire application. It would be a nightmare to debug it if I had to use other technologies like HTML, JAVA etc. Then the best you could do would be to debug pieces of it only. The same thing is true when doing graphical inspection, profiling, testing, etc.
The IDE also provides you with extensive help. You will find that the Curl help system is very interactive. You can change the code in the example box and hit the "Execute" button and you can immediately see the changes. You do not have to copy these examples to a file and then run it.
In future Curl is going to provide a plugin for Eclipse (it is in Beta stages now) with a lot of features that the current IDE does not have, like error highlighting when writing the code.
2. Graphical Inspector.
If you run a Curl applet, you can do Ctrl+Right click to bring up a context menu. There you can select the "Graphical Hierarchy ..." menu item. This is a very useful tool. Note that this tools lets you inspect the way the graphical objects are arranged. It is a great tool to help you debug and fix a problem and understand how the Applications layout was arranged. Apart from showing the graphical hierarchy, it lets you inspect and change various properties of a Graphic. You can trace the origin of a Graphic and or the height and width preferences and the actual height and width that was give to them by the layout system. It could help you figure out a layout issue.
3. Class Browser.
It lets you browse, navigate, or visualize the class hierarchy.
4. Coverage Viewer.
When ever we write applications, we also write tests against it to make sure that our application works as expected and any future changes to it can help us avoid regression. But how can we be confident about our test suits. Are we testing enough? Coverage tools helps you identify the lines of code that you do not have test cases for.
5. HTTP Monitor.
Helps you investigate the HTTP traffic in your application.
6. Profile Viewer.
Suppose you find that some parts/functionality of your application is taking more time than that you would expect it to take. It will be very difficult if you had to read your code to find that. Curl provides you various ways to profile your application and it also provides you with a UI to analyze the performance data that you collected when doing profiling.
7. VLE (Visual Layout Editor)
It provides you with a visual environment to develop the user interface for your application.
8. Mercury QuickTest professional (QTP) integration.
This facilitates in automated testing.