IT and programming are changing every day. Not all the changes lead to the revolution in the industry but I would like to mention some really significant things, which came to IT projects.
Today many applications are not focused on business value, they are focused on new user experience. In modern systems we often can’t even separate user experience and business value. Business is focused on users and proposes new ways of doing work, new ways of having fun and even new ways of thinking.
That is why user experience (UX) became more important than performance, application size and task solution. Nowadays UX is not a well defined concept, but UX-design comes before system design.
Computers are affecting the way we communicate. Today every application should have integration with Facebook, Twitter and Instagram. You can’t just measure the average speed of your car. You need to make a snapshot of the speedometer, share it with your friends and allow them to comment on it. Video players should not play video only. They have to have rating systems and opportunity to share comments on Facebook.
Each system should allow us to login with Facebook credentials. Some of them are so closely integrated with one of the networks that can’t be used without it. This point is connected with the previous one. Social networks become an important part of users’ lives and experience.
Single Page Applications (SPA) and Node.JS
Popularity trends of Programming languages in GitHub (source).
Mobile platforms are growing very fast today. Mobile devices are becoming more and more powerful. Screen size, resolution and processor speed allow us to put the main business logic to the client side and process video and audio in real time.
Intensive development of mobile platform requires the specialists to develop new skills. New tools and libraries appear every week and the only way to be in the forefront is self-education. By reason of the lack of human resources, many mobile development companies start their trainings and internship programs.
The popularity of cross-platform instruments is growing. Such tools as PhoneGap and Xamarine allow writing one application for all mobile platforms. It enables us to reduce the cost of development and eliminate the need for separate development teams for each platform.
Functional languages have a long history. They were popular in 60s, but they were almost forgotten in the IT industry. But the new Millennium has brought concepts of big data, parallelism and cloud computing which breathed new life into functional computing. Functional programming becomes really useful when there is a need to process a huge amount of uniform data with complex functions.
The initial cost to implement the application in functional way is still higher than in OOP (for lack of tools and developers). But the total cost of ownership and scalability can be much higher than usual. Functional programming still has a limited value but FP elements (such as immutable objects and pure functions) can significantly improve the application system design.