Structured vs. Dynamic 
There has been many posts all over the web lately about why the world still working in the stone aged structured world and break free to the all new dynamic world. With languages like Ruby and Groovy being flaunted around, claiming to making things simpler and faster.

I am getting the feeling that structured programming languages are having a hard time in the popularity contest. I wonder why? Probably the because the new dynamic languages allows the developer to code whatever wherever and things will work. In this modern space-age I guess that it was destined to happened in technology... till the day where we code in plain English.... oh hell why not Turkish.

For me personally it comes down to one simple thing, I don't care what a developer is coding or in what language. As long as he fully understands what he is coding and the logic contained in it, I will be a happy camper. Question is, how do you motivate the practice to continuously analyze and improve your own work to become more consistent, stable and modular? Especially when everything is so dynamic. What is stopping a developer to unwillingly (or maybe not) fall into to the classical coding traps where an application's code start to spiral out? Yes there is plenty check points that get used during a development cycle to maintain the sanity, but all of these safety protocols are external restrictions. These external restrictions to a person's development can very easily be overseen or neglected (also unwillingly or maybe not).

One approach that can be followed is the clear abstraction between logic and data. Yet I have experienced that developers seems to easily adjust their logic according to change in data. Code changes are made simply anywhere in the logic in an ad hoc manner, instead of applying the proper logic in the appropriate module. For example, quickly putting in code to convert two integer values to a single floating data type because of data structure change... but doing it in a business facade class or transfer object instead in a class or module where all the mapping and/or conversions are done. When I query the developers on this, the most common response is “I don't see the difference”. Yes in execution it probably wont make a difference, but it just take several of these “quick fixes” all over the place to make code more harder to maintain. Hence my strong believe in structure to force code to be placed in the right place, but structure by no means have to be limiting. By finding the right balance I have experienced working with solid structured code yet it was flexible enough to conform to any business request.

Structure and consistency is the key to good modular manageable software, as simple as that. And this principle can be applied on any development platform and/or language. Its one thing to choose a framework or patterns to implement a design, but architects/developers are way to willing to compromise on their own design to conform to a implementation requirement. Particularity with the new and upcoming dynamic languages, promoting code what you want where you want. Personally I wont allow a developer on my team even touch any dynamic language without at least 5 -7 years solid structured and OO programming.

[ add comment ] ( 2 views )   |  permalink  |   ( 3 / 91 )

<Back | 1 | Next> Last>>