Ext.: http://top.jobbole.com/35926/?utm_source=blog.jobbole.com&utm_medium=sidebar-top-news
The Software development industry continues to stride forward. In 2016, we saw many new versions of popular languages, frameworks, and tools. It has given us more support and changed the way we work. It is difficult to keep up with the trend, so at the end of each year, we will introduce you what is important and should be studied in the next 12 months.
First, trends
Progressive Web Apps
- In 2016, we saw the rise of the Progressive Web App concept. It represents a WEB application that works offline and provides an experience like the Native App. They can be added to the home screen of your tracker and can even send you push notifications to compensate for the gap with your on-premises mobile app. We believe that in the 2017, PWA will become more important and more worthy of discussion.
Progressive Web App (PWA) is a new concept that Google has started to promote on the Web platform, and is understood to be as much as possible with current technologies (such as Service Worker,push Notification and other presentation layer technologies) to enhance Web App experience and functionality, so that the Web App experience is infinitely close to the Native app. PWA is not just used on mobile devices, there is a place where modern browsers exist that can have PWA. PWA is not Chrome only, which is basically supported by modern browsers.
Chat Robot
- Now everyone is talking about chat bots. From the platform that runs them to the framework in which they are built, the community is also busy with various activities (read the introduction). Robots are a new mobile app, and if you're quick you can catch up with the waves when everyone else is curious. Once the novelty fades, the robot may be relegated to some boring role, such as automatic customer service. But no matter what, we can all dream!
merging of front-end frames
- In the JavaScript community, there is an incredible mix of frameworks and tools, and new is emerging almost every week. Until recently, it was expected that old tools would be replaced by new ones, but that was not what we saw in 2016. Instead, we see a popular framework for exchanging ideas and adopting innovations from the new framework. So in 2017, it is not important to choose which frame to use as the main JS frame, and their functions are mostly comparable.
Cloud
- Companies and developers around the world are embracing the "cloud" in a positive way. The cloud is a virtualized computer infrastructure that is available on demand and fully configurable from the control Panel. The three biggest cloud providers are Aws,google Cloud and Azure. Small companies and individual developers also put them into the budget because their continued competitive prices have been falling. Familiarity with the cloud workflow will be a good 2017 investment.
Machine Learning
- Machine learning has exploded in growth over the past 12 months. It entered the mainstream through the historic game of AlphaGo vs Lee Sedol in this March. The intelligent computer system that we learn from raw data is changing the way we interact with mobile devices. Machine learning, it seems, will be a bigger factor of influence in the 2017.
Second, programming language
JavaScript
- JavaScript continues its incredible pace of innovation. The JS standard is updated every year due to the push of a Web browser's rapid release plan. The next version, ES2017, is expected to be completed by mid-2017. It will bring many features that JS developers crave-for handling asynchronous functions
аsync/await
. Thanks to Babel, even today, you can write ES2017 in every browser.
TypeScript
- TypeScript 2.1 was released at the end of 2016, brought to the old browser
async/await
and improved type inference. TypeScript is a statically typed language compiled into JavaScript. It adds powerful features such as the classic OOP model and optional static types, making the huge code base easier to maintain. It is the preferred language for writing Angular 2 applications, and it is recommended that you try. This is a quick start guide for it.
C #
- C # 7.0 is expected to be released in 2017, and there will be greater improvement as a good language. Everyone was surprised when Microsoft launched the open source Visual Studio Code Editor and. Net Core. They all run on linux,windows and MacOS and allow you to write fast, efficient applications in C # (click here to read more). These tools have led to a vibrant community.
Python
- Python 3.6 will be released in December this year. It is consolidating its position as a choice of scripting languages for developers, IT professionals, and scientists. It is suitable for automation, WEB development, machine learning, and scientific computing. The Python 2/3 choice is a struggle for the community for years, but now you can confidently choose Python 3 and enjoy the full library support. For those who need additional performance, they can look at pypy-a JIT alternative that enables Python runtime.
Ruby
- Ruby 2.3 released earlier this year and brought performance improvements. As a generic scripting language, Ruby is also a good choice. The Ruby 3x3 Initiative has been announced, which will make the upcoming Ruby 3 3 times times faster than the current version, and will open the door to using Ruby in more scenarios.
PHP
- PHP 7.1 was released in December and brought small enhancements. This is based on the major performance improvements in last year's 7.0 release, transforming PHP into a fast platform for building WEB applications. We recommend that you take the PHP right-way as a good practice and a modern approach to building Web Apps.
Java
- Java 9 is expected to be released in 2017 and will introduce new and popular features such as REPL for evaluating code, support for HTTP 2.0, and new APIs. Talented Java developers and people who use the language to develop projects have a strong need for these features. If Java is not what you need, there are some JVM-based languages like Kotlin and Scala that you can learn about.
Swift
- Swift 3 was released earlier this year. This is Apple's vision for modern programming languages-simplifying the development of applications on IOS and MacOS. Swift is open source and attracts a large number of communities. Version 4, scheduled for release in 2017, will improve language features and introduce server APIs as a good choice for writing Web Apps and backend.
other
- If you are looking for something more exciting, you can try Crystal and Elixir, which combine a friendly Ruby-like syntax with excellent performance. Or you can look at functional languages such as Haskell or Clojure. The other two recommended quick languages are Rust and Go.
Learn one or more of these doors: JS (ES2017), Typescript,c#,python,ruby,php7,java/kotlin/scala
Third, the front-end
The Web platform has recently made two significant advances-web Assembly and Service Workers. They open the door to building fast and efficient Web applications and make up for the gap with Native apps. Service Workers, especially the enabling technology for Progressive Web Apps, provides support for Web platform notifications and more APIs in the future.
Angular 2
- The Angular 2 was released this year. Supported by Google, the framework is very popular with companies and large companies. It has a number of features that make it possible to write anything from the Web to the desktop and mobile applications. The framework is written using TypeScript, which is also the recommended language for writing applications in the framework. Learning it has a lot to read, but we think learning Angular 2 in 2017 will be a good investment.
Vue.js
- Vue.js also released the 2.0 version this year. It draws on good ideas from Angular,react and Ember and puts them in an easy-to-use package. It is also more streamlined and faster than the first two. It is recommended that you try it out and refer to the Getting Started tutorial.
Ember.js
- Ember is another firm choice for the JavaScript framework. It supports data binding, automatic updating of templates, components, and server-side rendering. One of its benefits is that it is more mature and stable than its competitors. Significant changes are much less frequent and the community attaches importance to backward compatibility. This makes the framework a good choice for applications with long life cycles.
other
- Another two frames worth seeing are Aurelia and React. The React ecosystem has become more complex in the past year, making it difficult to recommend to beginners. But experienced developers can combine libraries with Graphql,relay,flux and immutable.js into a comprehensive, full-stack solution.
- No mention of Bootstrap 's front-end rollup is incomplete. Bootstrap 4 is currently in the Alpha phase and is expected to be officially released in 2017. A notable change is the new Universal card component and the Flexbox grid (see 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 CSS pre-processors today. Although the vanilla CSS ultimately supports variables, SASS and less still prioritize mixins, functions, and Code organization support. If you don't know them yet, you can check out the SASS and less quick start guide here.
Learn one or more of the following: Angular 2,vue.js,ember,bootstrap,less/sass
Four, back end
The backend has many choices, all of which 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 an all-stack framework is often easier and faster to develop, and is an effective choice for many Web Apps.
node. js
- node. JS is the main way to run JS outside of the browser. This year we saw that it released many new versions, improved performance, and added coverage for the entire ES6 specification. Node has a framework for quickly building APIs, servers, desktop applications, and even robots, as well as creating a vast community of modules that can be imagined. Some of the frameworks you might want to study: Express, Koa, Next, nodal.
PHP
- PHP is first and foremost a Web language, and there are a number of web frameworks to choose from. Thanks to its excellent documentation and functionality, Laravel has built an active community. The Zend framework released its 3rd edition, marking a huge upgrade to the business-oriented framework. Symfony also released a lot of new versions this year, making it a better choice as a full stack solution.
Ruby
- for Ruby, the Rails framework is preferred. Version 5.0 was released in 2016 and provides support for Web Sockets,api mode. Sinatra is also a good choice for small applications, and version 2.0 is expected to be released in 2017.
Python
- Python has a full stack/minimum frame that is combined in the form of Django and Flask. Django 1.10 was released in August, introducing full-text search and a large modified middleware layer for Postgres.
Java
- The Java ecosystem also has a popular WEB framework to choose from. Play and Spark are two strong choices, and as a bonus, they can be used with Scala.
other
- For enthusiasts, there is also Phoenix to choose from, which is written in Elixir language and tries to become a feature that completely replaces the Rails framework and has excellent performance. 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
V. Database
PostgreSQL
- PostgreSQL released two full versions of 9.5 and 9.6 this year. They bring long-awaited UPSERT functionality (aka
ON DUPLICATE KEY UPDATE
), better full-text search and speed improvements, thanks to parallel queries, more efficient replication, aggregation, indexing, and sorting. Postgres is ideal for large-scale, terabytes-sized datasets and busy Web Apps, so these optimizations are popular.
MySQL
- MySQL 8.0 will be the next major version of the database. The official version is expected to be released in 2017 and will bring many improvements to the system. MySQL is still the most popular database management system, and the entire industry has benefited from these new releases.
NoSQL
- For NoSQL fans, CouchDB is recommended. It is a fast and extensible JSON storage system that exposes a rest-ful HTTP API. This database is easy to use and has excellent performance. Pouchdb is an open source JavaScript database that works entirely in the browser. Data can be synchronized via couch. When the application is offline, the user data can be saved locally and synced automatically when the network connection is available.
Redis
- Redis is the most popular Key-value database. It is small in size, fast and versatile. As a NoSQL data store or process messaging and synchronization channel, you can use it as an alternative to smart memory caching. It offers a number of data structures to choose from, and the upcoming 4.0 version will have a modular system and improved replication capabilities.
Learn one of the following: Postgres,mysql,couchdb,redis
Vi. Tools
Yarn
- Yarn is a Javascript package manager developed by Facebook. It is an upgrade to the NPM command-line tool, providing faster installation, better security, and deterministic builds. It still uses the NPM package registry as its backend, so it can access the ecosystem of the same JavaScript module. Yarn is compatible with the format used by NPM
package.json
.
Visual Studio Code and Atom
- The two most popular open source code editors- Visual Studio code and Atom have made a lot of incredible innovations in the last 12 months. These two projects are built using network technology and attract a large number of fan groups. The editor has a plugin for most language syntax checking, linting, and refactoring tools.
Git
- Git is the most popular source code version control system. It is server-free and you can convert any folder on your computer to a repository. If you want to share the code, there are a lot of options, like Gitlab,bitbucket and Github (and of course the code cloud). 2017, it is recommended to familiarize yourself with the git command line, as it will be useful in more scenarios than you might think.
Electron and Nw.js
- Desktop apps are not dead yet, even as Web apps become more powerful. Sometimes you need powerful features and APIs that are not available on the Web platform. Using tools such as Electron and nw.js , you can write desktop applications by using WEB technology. You have full access to the operating system and NPM available breadth modules. To learn more about these tools, please read the tutorials on Electron and nw.js.
DevOps
- The recent trend in software development is for developers to be responsible for their own system deployment-also known as DEVOPS-which results in faster releases and faster fixes to problems in production. Developers with operations experience will be highly regarded by the company, so it will be a great step to familiarize themselves with the technology that can achieve this goal from now on. Some of the recommended tools are Ansible and Docker. Having a Linux command line and basic system management skills will also help you.
Try one or more of these: Yarn,git,visual Studio code,electron,ansible,docker
VII. Technical
The cloud has won the entire software industry, seeing large companies shutting down their data centers and migrating their entire infrastructure to the cloud. Currently, the three main platforms are AWS, Google Cloud and Azure. These three platforms feature a powerful, ever-expanding set of features, including virtual machines, database hosting, machine learning services, and more. And prices are falling rapidly, so the cloud is accessible to small companies and individual developers. For 2017, deploying an amateur project to these providers ' platforms would be a great learning experience.
Artificial Intelligence
- AI is a popular word in the 2016. Speech recognition and image classification are just two applications of this technology to the user, and AI machines meet or exceed human performance. There are many startups that apply AI and machine learning to new areas, as well as many 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 people who are just starting out, there is a comprehensive online course.
virtual reality and augmented reality
- virtual reality (VR) and augmented reality (AR) have been around for some time, and eventually the technology is ripe enough to provide a compelling experience. Facebook (Oculus Rift), Google (Daydream) and Microsoft (Windows holographic) all have virtual reality platforms that welcome third-party developers to join. VR headsets still face challenges such as eliminating nausea and providing compelling use cases beyond the game.
Learn one of them: cloud deployment, machine learning Library, VR development
Compiled from: tutorialzine.com
Original link: https://my.oschina.net/hardbone/blog/805349
2017 programming languages, frameworks and tools for learning