11 December, 2010

Does Dynamic Programming Languages more Productive for Web Development?

While Dynamic Programming Languages like Python and Groovy are hot topics in recent years. Surprisingly, there is not a clear definition for "Dynamic Programming Language". So, what "Dynamic Programming Language" refers to and does it really helps to spped your next web application?

Dynamic Programming Language

In general, dynamic programming language refers to the languages which exhibits the following nature:

  • Dynamical Typing support
  • Meta-programming support
  • Support for functional-programming
  • Support for aspect-orient features

And most likely, all the three dynamic languages mentioned above have the following natures:

  • Intrepreted
  • Web Application Framework support rapid application development, usually emphasis convention over configuration

How does these features is considered a good thing? Below, I'll use Groovy, Python as the examples to demostrate the capability of these language on traditional / mainstream language like Java.

Dynamic Typing Support

Through automatic type coercion, dynamic languages like Groovy free you statically defining type.

Metaprogramming Support

Metaprogramming is the foundation for all kinds of fancy features in this new language. For example, we can easily use Metaprogramming to implement dynamic proxy or implement mixin, all these are traditionally hard to implements.

Functional Programming

Groovy provide closure. While in Python, lamba, map and reduce is built-in functionI, in additionsl and method is just another object in Python. All this allow programmer easily define template and as well as implementing some logic in functional style.

Aspect Oriented Programming

Usually through the support of the meta-programming facility, implementing AOP in dynamic language is relatively much easily. For example, in Groovy, Meta Object Protocol provide tonless means to injecting / intercepting method join, which is one of most commonly use case of AOP. In Python, new style class and decorator provides similar kind of foundation for injecting extra functions.

Intrepret Language

Intrepret nature, in other words, new code can be compiled at runtime can greatly save the development time and improving the turn around for each cycle. This seems a by-product of the dynamic language. Contrary to tradional language which rely on compiling linking, dynamic language usuing resolve the method at runtime, it also allow each file can individually updated, without re-compiling the whole package / module.

Frameowkr which favors Convention over Configuration

Interesting, all these new language also accompanied with new web application framework which emphais convention over configuration. For example, there is Grails (on Groovy) and Django (on Python). These framework allow developers create new function without paying too much tax on the configuration.

2 comments:

Alakmalak Technologies said...

Impressive post, Its very helpful for me, As this language is updated more regularly than any other programming languages, it has achieved massive reputation among developers. Thanks for sharing this.
mike

Alakmalak Technologies said...

Good informative information, I really like this so much. dynamic web pages require server-side scripting languages such as PHP, ASP, JSP etc.
Thanks
anderson