Saturday, April 10, 2010

Four trends that developers have to concieve for the next decade

Past two decades were very exciting and important for software developers and we saw web(www) emerging as a dominant platform for computation and communication.We also witnessed different trends like distributed computing and service orientation gaining popularity.Looking at recent years I am pointing to four exciting developments that is going to challenge the developer of the next decade.

Cloud
Cloud is going to redefine the traditional software development platform.Here are some points.

1) Abstraction over Deployment platform
Developer is abstracted from the platform(hardware,OS,Server etc) where the application is going to be running. But he need to be aware of the Cloud provider's platform .Since everything is available as per "pay per use" policy applications needs to be optimized to use less resources as possible.
2) Abstraction over data storage and usage
Since data will be available as services ,he need not be bothered about the underlying implementation,but only needs to know the API's to retrieve the data from the service provider.Scalability will also be addressed by the provider
3) Changes in traditional software development life cycle
The development life-cycle for the cloud is going to be different from traditional one.The builds and releases should be aligned to the targeted cloud platform
4) Security and Dependency on specific cloud platforms
These are contentious issues that developer have to be aware of and the design should be optimized to minimize any impacts.Security in the cloud is different from the traditional environments and no standards have been evolved right now.The applications should be developed in such a way that it should be easy to switch to a different cloud provider if needed.

Emergence of multiple platforms

PC is no more the dominant platform for applications in the coming age.Alternate platforms like Mobile and other hand-held devices like Ipad,e-readers etc are also becoming much more popular.For eg. Iphone and Android have already become popular platform for developers.It is becoming more important that applications should be made available in multiple platforms to reach out to more users.So it is time for developers to gain understanding of multiple platforms.

No Sql Alternatives


The dominance of RDBMS is getting challenged and everyone in the industry is getting the understanding that RDBMS as a one size fit for all is not a good idea. RDBMS is designed with ACID compliance as a principle ,but not all the real systems need full ACID compliance and also have problems to address like performance ,scalability and availability.So alternate implementations gained attention in recent times and many companies are moving to a better no-sql alternative which suites their application domain.

Functional Programming

Fuctional programming(FP) is gaining more importance as better paradigm for concurrent applications. Due to the emergence of multicore processors it become the duty of applications to be more concurrent to make maximum use of multiple cores.FP also helps programmers to code in higher level of abstraction and helps to reduce duplication of algorithms and in program correctness. Mainstream languages are adopting functional programming features like closures,functions as first class objects and immutability . Languages like ruby,python,C# has already adopted many of these features and new languages like scala,F#,Clojure have come up with strong functional programming support.

No comments:

Post a Comment