Sunday, December 23, 2012

Changes in Programming Styles and Techniques w.r.t changing Platforms [PART 2]

[continued...]
Shifting to My observations in language specific route for Programing styles

I.]The first thing on this specific topic.... I have worked on platforms like .NET, JAVA and C/C++ or can be basically termed as  OOP languages. Usually in the beginning people work on every OOP platform with the basics that they learn from C++. Though C++ is a necessary foundation for a good programmer, you cannot apply all the techniques and styles you use in C++ as it cannot  guarantee you optimal quality in all the aspects even though it is pretty handy and effective.


   In C++ what you actually do is start the coding from line one complete it (this might be in proper stages) and then compile and  run it or debug it and then slowly move onto the DB, interfacing and other stuff in that order   
   Shifting to JAVA a really beautiful Object Oriented language. Now if you consider the case of JAVA, especially if you are implementing it with the help of tools more recent tools like Eclipse and NetBeans then you could divide the stages that i mentioned earlier into even smaller pieces verify its working and then build on. Increasing the size and complexity of the programs with every successive stage. Helping you to keep a tab on your progress in a much better way. This applies more so especially in the case of game development etc.
     Talking of .NET now, This platform developed by Microsoft was a real path-breaker. It redefined the Style and Techniques of  Object Oriented Programing by a huge way. It has really simplified software and Web-application development(ASP.NET). Helping  the development procedures take place in a much quicker period as compared to other conventional platforms. Many complicated tasks have been automated and the remaining can be achieved with relative ease. Coming to the point of discussion in .NET  developers start with the GUI in the first place building it according to the task or objective at hand. Then shifting focus to  backhand subjects. The front-end and back-end can be even developed parallely without clutter given that the DataBase is already     in place. Thus style and technically this platform becomes much different from the other two with much more advantages but as       for the negative points the functionalities of .NET is officially limited to the Windows platform unlike the other two which are    extremely flexible in this aspect.

II.]An other such thing important thing is the 'Identifier Naming Styles'.
    There are two major identifier naming styles: the Camel-Case style and the underscore_between_tokens style. Some projects use     former and some projects use the latter.
    E.g. Usually the Java and C# uses the Camel-Case (like System.out.println()) whereas C/C++ & PHP uses underscore_between style     for function names like   str_replace().
    An example of Camel-Case style in variables
    userName = "My Name"
    userSex = "Male/Female";
    An example of underscore style:
    user_Name = "My Name"
    user_sex = "Male/Female";
    The CamelCase style is in some cases more convenient because editors usually support selecting a word by clicking over it. W ith underscore style the separate_words may not be copied as a single entity when clicked. The fine print is that there is also variation of CamelCase called Pascal Style that is seen in Java class
    identifiers. There also existed a short while Hungarian notation w hich w as popularized by Microsoft in its
    C/C ++ programs. The style was pretty short lived. Apart from the predefined methods and structures if we change the naming styles it doesn't make much difference yet it is wrong etiquette wise to do the same.
  
For some examples on languages like ModuLiq, Python, and Haskell you could refer to Wikipedia  

   That is why I said earlier that though the styles and techniques of the C/C++ could be user in other platforms it would not guarantee you optimal productivity or quality. So it is always advised to adjust your techniques according to the platform you are working to. It could provide you with multiple benefits. And in case you feel that you won't be able to show that level of flexibility or adjust-ability then it is advisable to just stick to a single language that suits your style of working and keep practicing in it and increase your expertise in that platform over time making up for your lacking in flexibility and adjustability.
   These etiquette and styles are more so important in order to make the re-usability of codes simpler in the dynamic and fast-bred times of modern software technology.
[More info is to be added into this topic and in this series over the time period so stay tuned.]

No comments:

Post a Comment