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:
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
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
Post a Comment