This is a creation in Article, where the information may have evolved or changed.
Over the past year, the software development industry has continued to stride forward. Looking back 2016 years, we've seen more emerging popular languages, frameworks and tools that change the way we work and let us see more possibilities. But in this industry, it is difficult to follow the trend. So at the end of each year, we'll give you some advice on what's most important and what you should learn in the coming year.
megatrends
Progressive Web Apps
Over the past 2016 years, we have witnessed the booming emergence of Progressive Web App concept. It means that WEB applications can work offline and provide a native mobile app experience. They can be added to your smart device's home screen and can even send you push notifications to compensate for the gap with your native mobile app. We believe that in 2017, incremental Web Apps will become more important and worth exploring. See the relevant overview here.
Chat robot
Everyone is talking about it from the platform that runs the chat robot to the framework in which it is built. And the community is busy with this activity. (Read our introduction) the robot is an emerging mobile app that makes us feel excited. If you hurry, you can catch the wave. But once the freshness disappears, it will only take on some boring roles, such as automated customer support. But, believe that we can realize the dream.
Merging of front-end frames
In the JavaScript community, with the incredible mix of frameworks and tools, new things are going to happen every week. Until recently, it was hoped that the old tools would be replaced by new tools, but that was not what we wanted to see in 2016. Instead, we see the idea of a popular framework exchange and the innovative elements that are incorporated into the new birth framework. So in 2017, it doesn't matter which JS frame you choose, because most of their functionality can be compared.
Cloud
In view of the current situation, many companies and developers are actively embracing the "cloud." The cloud is a virtualized computer infrastructure that can be fully configured according to different needs and through the control Panel. The three biggest cloud providers are Amazon AWS, Google Cloud and Microsoft Azure. The familiarity with cloud workflows will be a good investment in 2017, as their competitive prices have been falling, allowing small companies and individual developers to incorporate the cloud into their budgets.
Machine learning
Machine learning (ML) exploded over the past year. March AlphaGo and Li Shishi's wonderful duel , also let it become the focus. Intelligent computer systems that are learned from raw data are changing the way we interact with mobile devices. It seems that machine learning will become a bigger factor in 2017.
Programming Languages
JavaScript continues to move in the incredible pace of innovation. Due to the rapid release plan of WEB browsers, JS standard is set to update every year. Therefore, "ES2017" is expected to be completed in the middle of 2017, it will also bring JS developers dream of a new feature-for the processing of asynchronous functions аsync/аwait
. Also thanks to Babel , because you can now write ES2017 in each browser.
Released at the end of 2016, TypeScript 2.1 will bring asynchronous solutions to legacy browsers Async/Await
and improve type inference. TypeScript is a statically typed language compiled into pure JavaScript. It enhances the classic OOP model and optional static types, making large code libraries easier to maintain. At the same time, it is also the preferred language for writing Angular 2 applications, and we recommend that you try it out. This is a Quick start guide for it.
c#7.0 is expected to be released in 2017 as an excellent programming language, and it will also be improved. When Microsoft launched the open source Visual Studio Code Editor and. Net Core, the move was a surprise to everyone. Not only can they run on Linux, Windows, and MacOS operating systems, but you can write fast, efficient applications in C # (read more here ). At the same time, both of these tools have created a vibrant community. Believe that they will bring us more surprises in 2017 years.
The Python 3.6 version will be released in December. It is consolidating its position in the scripting language choices of developers, IT professionals, and scientists. It is suitable for automation, web development, machine learning, and scientific computing. While the Python 2.X and 3.X versions are fragmented, it's a struggle for the community for years, but for now, you can confidently choose Python 3 and enjoy the full library support. For those who need additional performance, it is recommended that you look at pypy, a replacement that enables Python runtime JIT.
Ruby 2.3 has been released earlier this year and has brought some performance improvements. At the same time, Ruby is a good choice for learning a common scripting language, but only when it works with Rails can it do its best. The announcement, along with the Ruby 3x3 program, also prompted the upcoming Ruby 3 version to run 3 times times faster than the current version. And you can open the door to using Ruby in more scenarios.
The PHP 7.1 version was released in December with a small-scale enhancement of the language. This version is based on a major performance improvement of last year's 7.0 release, transforming PHP into a fast platform for building WEB applications. If you are going to study, we recommend you look at the best practices in the PHP path.
Java 9 is expected to be released in 2017, and it will bring some new features that are popular with developers, such as evaluating Code REPL, HTTP 2.0 support, and some new APIs. For talented Java developers and people who use the language extensively for project development, they have a strong demand for these new features. If Java is not your "dish", there are also some JVM-based programming languages, like Kotlin and Scala, that you can understand.
The Swift 3 has been released earlier this year. Simplifying the development of apps on IOS and MacOS is Apple's vision for modern programming languages. Because Swift is open source , a large number of communities have sprung up. Launched in 2017, Swift 4 will improve the language and introduce server APIs to make it a good choice for writing Web applications and backend.
If you're looking for something that excites you, you can try Crystal and Elixir. They all have a friendly syntax similar to Ruby and excellent performance, or you can look at a functional language similar to Haskell or Clojure . In the other two fast programming languages, we recommend you Rust and Go languages.
pick one or more studies: JS (ES2017), TypeScript, C #, Python, Ruby, PHP7, Java/kotlin/scala.
Front End
The recent web platform has made two significant advances:Web Assembly bytecode technology and Service Workers technology. They open the door to fast, efficient WEB applications and effectively compensate for the gaps in compiling local applications. Service Workers is a start-up technology for progressive web apps that provides notification support for the Web platform and more APIs in the future.
The angular.js 2 has also been released this year. The framework is maintained by Google and is favored by many companies and big companies. It has a multitude of features that make it possible to write anything from the Web to the desktop and mobile applications. Its framework is also written in TypeScript, which is the programming language recommended by the application. While learning it also requires reading more, we believe that learning Angular 2 in 2017 will be a good investment.
This year we also saw the release of Vue.js 2.0 , which draws on good ideas from Angular,react and Ember, and is lighter and faster than the first two frames. We suggest you try this year and you can start with our vue.js tutorial .
Ember is another good choice for the JavaScript framework. It supports two-way binding of data and the ability to automatically update templates, components, and server-side rendering. The advantage of using it compared to other competitors is that it is more mature and stable, and its framework has a low frequency of significant changes, and the community values backward compatibility, which makes this framework the perfect choice for developing applications with longer lifecycles.
The other two noteworthy frameworks are Aurelia and React. The React ecosystem has become more complex in the past year, so it is difficult to recommend it to beginners. But experienced developers can combine libraries with graphql ,Relay ,Flux , and immutable.js into a complete, full-stack solution.
No mention of Bootstrap 's front end is not complete at all. Bootstrap 4 is currently in the Alpha phase and is expected to be released in 2017. A notable change is the new Universal card component and the Flexbox grid (which looks at the contrast to the regular grid ), which makes the framework more modern and more enjoyable for users to work with.
SASS and less are still the two most popular types of CSS pre-processors today. Although Vanilla CSS has implemented support for variables, SASS and less are still more supportive of mixins, functions, and Code organization. If you don't know them yet, take a look at our quick start Guide for SASS and less.
pick one or more studies: Angular 2, Vue.js, Ember, Bootstrap, Less/sass
back end
The backend has a number of options, but all choices depend on your preference for programming languages or specific performance requirements. A continuing trend in WEB development is to move away from the back-end business logic and transform that layer into APIs used by front-end and mobile applications. But a full-stack framework is often easier and faster to apply to development, and it is still the most effective choice for WEB applications.
node. JS is the main way to run JS outside of the browser. This year, we also saw that it released many new versions. In addition to improved performance, an overlay of the entire ES6 specification was added. Node has a framework for building fast APIs, servers, desktop applications, and even robots, and it can create a vast community of imagined modules. Here are some of the frameworks you might want to study:Express ,Koa ,Next ,nodal.
PHP is a web development language that has a large number of web frameworks available for you to choose from. Thanks to its excellent documentation and features,Laravel has built an active community. The Zend framework released its 3rd edition , marking a huge upgrade to the business framework. This year, we also saw that Symfony released many new versions, making it a better choice for all-stack solutions.
For Ruby , the Rails framework is preferred. The Rails 5.0 release has been released this year and provides support for Web Sockets, API models, and more. Sinatra is also a good choice for small applications, and the Sinatra 2.0 version is expected to be released in 2017.
Python has a full stack/mini frame in combination with Django and Flask . Django 1.10 was released this August, introducing full-text search and a major modification of the middleware layer for Postgres.
In the Java ecosystem, there are still many popular WEB frameworks available for you to choose from. Play and Spark are the two essential options, and they can be used with Scala as well.
For programming enthusiasts, you can also choose Phoenix, which is written in Elixir, which attempts to become a framework with excellent performance and a complete alternative to the Rails functionality. If Elixir is one of the languages you want to learn in 2017, try Phoenix.
learn one of them: full stack back end frame, one micro frame
Database
PostgreSQL has released two full versions of9.5 and 9.6this year. They bring the UPSERT feature that we've been looking forward to from MySQL ON DUPLICATE KEY UPDATE
, And better full-text search and speed improvements, thanks to parallel queries for more efficient replication, aggregation, indexing, and sorting. Postgres is ideal for large-scale, terabytes-sized datasets and busy Web Apps, which are popular.
MySQL 8.0 will be the next major version of the database. It is expected to be released in 2017, which will bring more improvements to the system. MySQL is still the most popular database management system, and the entire industry has benefited from these new versions.
For NoSQL fans, we recommend CouchDB. It is a fast, extensible JSON storage system that exposes a rest-ful HTTP API. This database is easy to use and has excellent performance. The CouchDB corresponds to pouchdb , which works entirely in the browser and can synchronize data with couch. So you can use POUCHDB on an offline application, and it will automatically sync the data when connected.
Redis is our favorite key-value storage database. It is small, fast and rich in characteristics. As a NoSQL data store or process message and synchronization channel, you can use it as an alternative to an intelligent distributed cache system. It provides a number of data structures to choose from, and will have a modular system in the upcoming 4.0 release, and will improve replication capabilities.
learn one of them: Postgres, MySQL, CouchDB, Redis.
Tools
Yarn is a node. js Package Manager developed by Facebook. It is an upgrade to the NPM command-line tool and provides faster installation, better security, and a deterministic build. It still uses the NPM package registry as the back end, so you can even access the ecosystem of the same JavaScript module. Yarn and NPM Use the Package.json format is compatible, the difference is that the former can achieve rapid installation.
As the two most popular open source editor for developers-Visual Studio code and Atom -we've seen a lot of incredible innovations over the past year. These two projects are built using WEB technology, and the community attracts a lot of fans. The editor is highly extensible and provides plug-ins for syntax checking, linting, and refactoring tools.
As the most popular source code version control system,Git deserves it. Although it does not have a server, you can convert any folder on your computer to a repository. If you want to share code, like GitLab ,bitbucket , and GitHub are good choices. In 2017, we recommend that you familiarize yourself with the git command line because it is more convenient than you might think.
The desktop application still does not disappear. Even if Web apps become more powerful, sometimes you still need powerful features and APIs that the Web platform cannot provide. You can use tools such as Electron and nw.js to create desktop applications using WEB technology, and you have full access to the operating system and the breadth of NPM modules available. To learn more about these tools, please read the tutorials on Electron and nw.js .
The latest trend in the software development team is to let developers take care of the deployment in their own software projects, also known as DevOps. This can produce faster releases and more rapid fixes to problems in production. Developers with operations experience will be highly valued by the company, so it will be a huge boost for you to become familiar with the technology that can achieve this goal from now on. The tools we recommend are Ansible and Docker . At the same time, with the Linux command line and basic system management skills, you will also be a significant addition to your career.
Try one or more studies: Yarn, Git, Visual Studio Code, Electron, Ansible, Docker.
Technology
With large companies shutting down their data centers and adjusting their entire infrastructure to the cloud, we can see that the cloud has won the entire software industry. Currently, the three main platforms are AWS , Google Cloud and Azure. All three platforms have powerful capabilities, while constantly expanding their feature set, involving virtual machines, database hosting, machine learning services, and more. Because of the rapid decline in prices, small businesses and individual developers can also reach the cloud. For 2017, deploying an amateur project on the cloud would be a good learning experience.
AI is a popular word in the 2016. Speech recognition and image classification just the technology in the two parts of the user-oriented application, the performance of AI devices to reach even beyond the human level. Many startups are also applying AI and machine learning to their new areas, as well as a number of related open source projects, such as Google's Tensor Flow and Microsoft's cognitive Toolkit. Machine learning is a topic that is very relevant to mathematics, and for those who are just starting out, there is a comprehensive online course for you to learn.
Virtual Reality (VR) and augmented Reality (AR) have been around for some time, and eventually the technology is ripe enough to deliver compelling experiences. Facebook (Oculus Rift), Google (Daydream), and Microsoft (Windows holographic ) There are virtual reality platforms that welcome third-party developers to join. However, VR wearable devices still face formidable challenges. For example, how to eliminate the sensation of the wearer's nausea, and out of the game, and how to create compelling use cases.
Pick a learning: Cloud Deployment, machine learning Library, VR development
If you feel that the article is good, may wish to point a praise. ^_^, this article is also published in the "It Technology sharing" column.
Note:
1. If there is a wrong translation, but also ask you to correct me, I will promptly revise;
2. The copyright of this article is owned by the original author. If you want to reprint the translation, please indicate the source, thank you!
English Original: the Languages, frameworks and Tools you should learn
Author: Martin angelov Translator: It program Lion