📜 ⬆️ ⬇️

Three main areas of software development in the future

(Translation of the post: Top 3 paradigm shifts that will shape the TAYLAN )


Computer technology is changing very rapidly. New software and hardware is constantly being developed in laboratories, it enters the market and becomes more accessible. Developers are the first to feel the impact of changes and adapt to them so as not to stay on the sidelines. Therefore, life in a jet helps us react earlier than others. Thus, I see three main factors that will change the essence of software development in the near future.

1. Cloud computing
')
Thanks to the Internet, computers have evolved from individual workstations into a fully integrated environment of many computers and servers. The degree of integration is increasing and now many applications are working on a cloud basis. Companies billionaires are developing more and more products for cloud computing. Steve Ballmer said that in two years 95% of Microsoft applications will work in the cloud. MS Office is also being rebuilt under cloud technologies. Google Docs has become the main tool we use to collaborate on documents. We can deploy our applications on Amazon, Google Apps, Microsoft Azure or many other platforms.

During this period, key tasks for developers are:
- focusing on web applications: the development of desktop applications is no longer so important;
- developers must connect applications to the Internet through web services and develop applications that run on a web server.

How to adapt:
- study web services (based on soap, json, rest ...), web technologies (ASP.NET, JSP ...), RIA technologies (Flex, Silverlight ...), programming web pages (JavaScript, JQuery ...)

2. Multicore programming, concurrency

When scientists realized that the growth in performance of multi-core computing systems obeys Moore's law better than the growth in performance of an individual processor, the paradigm of building multi-core computers has become mainstream. Development approaches that were previously used to develop supercomputer software are now common to all developers.

The essence of the problem is manifested in the statement of John Schalf “Parallel algorithms are not just parallel versions of ordinary sequential algorithms. They require different approaches and programming languages. ”
Parallel programming requires new approaches. But some elements of concurrency appear in popular programming languages.

How to adapt:
- learn multiprocessor programming and functional languages. Functional programming languages ​​have no side effects. They are the natural choice for developers of parallel programs.

3. Mobile application development

More and more smartphones and tablet PCs appear on the market. In 2012, such devices will be sold more than conventional PCs.

Key problems:
- although smartphones, now, have better performance than in the past, they still lose a lot to the desktop PC. Therefore, the development of software for smartphones in the strict framework of their limitations is not an easy task;
- programs are executed on various platforms or written in new programming languages.

How to adapt:
- learn new development technologies for mobile devices (iPhone, Android, Windows Phone ...).

Source: https://habr.com/ru/post/98127/


All Articles