The software development industry continues to move forward. In 2017, we saw new versions of popular languages, frameworks and tools that gave us more power and changed the way we work. It’s hard to keep up with everything, so at the end of each year, let’s talk about what might be most important to learn about the next 12 months.
So, first of all, let’s talk about D, S, S, Q.
Progressive Web Apps (Progressive Web application PWA)
In case you didn’t know it, a new concept called PWA has emerged in 2016, so let’s take a look inside the ♂.
Have you ever opened Taobao Zhihu or B station without net or almost without net in your life? Those places which should be articles and videos of goods may not have pictures, but they can also complete some simple functions, such as displaying the name of goods, articles and videos. When you are attracted by a commodity, you find yourself not open the net, and you can enter the commodity purchase page after opening the net. But without the web, where would the data come from? This is a good example of the PWA’s shell shape and de-linearity, rendering something like a border first, and because of its server architecture, users can open things in seconds even without a network or weak network. We think PWA will become more important and worth investigating in 2018.
Artificial intelligence + Robots, Hype or future?
Everyone is talking about robots now. From the platforms on which they run to the frameworks on which they are built, the entire Internet society is trying to make robots of its own. Robots could be the next big thing like today’s mobile apps, and if you pick up the pace, you might be able to catch on. But it’s not without risks, and once people get tired of it, robots could be relegated to boring roles like automated customer support. But we can dream!
Artificial intelligence was the buzzword of 2016. Speech recognition and image classification are just two user-facing applications of the technology where machines match or exceed human performance. There are a lot of startups that are applying AI and machine learning to new areas. Many open source projects have been released, like Google’s Tensor Flow and Microsoft’s Cognition Toolkit.
Front-end framework consolidation
In the JavaScript community, it’s interesting to see new tools coming out almost every week, but in 2016, these new tools didn’t replace the old ones in applications. Instead, we see popular frameworks for exchanging ideas and incorporating innovations proposed by novices. So in 2017, it doesn’t matter which major JS framework you choose, their functionality is mostly similar.
cloud
Companies and developers everywhere are throwing themselves into the cloud. This virtualized computer infrastructure is available on demand and can be fully configured from the control panel. The top three Cloud providers are AWS, Google Cloud and Azure. As they continue to compete, prices have been falling, which has attracted more small companies and individual developers. Therefore, whether you work at BAT or startup, familiarity with cloud workflows will be a good investment in 2018.
Machine learning
Machine learning has exploded in the past 12 months. The AlphaGo vs Lee 乭 game in March brought machine learning into the public consciousness. Smart computer systems that learn from raw data are changing the way we interact with mobile devices. On the face of it, machine learning will be the bigger winner in 2017.
VR&AR
Virtual reality (VR) and augmented reality (AR) have been around for a while, but eventually the technology has matured enough to provide compelling experiences. VR shopping on Taobao, or gaming devices such as LeapMotion and Kinect, are all signs of the future of VR/AR devices. Facebook (Oculus Rift), Google (Daydream), and Microsoft (Windows Holographic) all have VIRTUAL reality platforms, and companies are welcoming third-party developers.
Learn one of them: cloud deployment, machine learning libraries, VR development.
Programming languages — the foundation of your life
JavaScript
Continue its incredible pace of innovation. The JS standard is updated annually to accommodate the rapid release schedule of Web browsers. The next release, ES2017, is expected to be completed in mid-2017. It will bring the dream feature of many JS developers — asynchronous/wait — for handling asynchronous functions. What, new features? Then maybe you can learn from the basic JS library on http://igeekbar.com/igeekbar/post/20.htm
TypeScript
TypeScript 2.1, released in late 2016, brings async/wait to older browsers and improves type inference. TypeScript is a statically typed language compiled into JavaScript. It adds powerful features such as a classic OOP model and optional static typing to make a large code base easier to maintain. It is the preferred language for writing Angular 2 applications, and we recommend you try it.
C #
C# 7.0 is expected in 2017. When they launched the open source Visual Studio code editor and. When it came to Net Core, Microsoft surprised everyone. Reading this, you might ask, how can you be surprised when a new release updates a framework and an editor? Forget the “second day, second day, second air” VS (Microsoft released a Mac version of VS in 2016) and just talk about it. Net Core, a less familiar framework, is an indication of how powerful this generation of C# is. As we all know, Java is almost the most widely used programming language, and the reason why it is so widely used and chosen as android’s design language is because it is cross-platform. .net Core is the original architecture of C#. Net Framework and excellent editor Mono (Mono code hints and errors are pretty good in my experience), integrated on cross-platform implementation, and open source on GitHub. This goes right to the heart of Java’s competitiveness, and is therefore jaw-dropping. C# now runs not only on Windows, but also on Linux, Unix, MacOS, and even BSD, and we believe 2017 will be an exciting year for all C# programmers.
Python
Python 3.6 was released in December. IT is solidifying its position as the scripting language of choice for developers, IT professionals, and scientists. It is suitable for automation, Web development, machine learning and scientific computing. When you want to write a simple crawler to get information, Python should now be your first choice. The issue of Python version 2/3 has been debated for years, thanks to community efforts, but now you can easily choose 3 and enjoy full library support. For those who need extra performance, they can look at PyPy and have the option of jIT-enabled Python runtime.
Ruby
Ruby 2.3 released some performance improvements earlier this year. Ruby is also a good choice for a general-purpose scripting language, but may shine when paired with Rails. The Ruby 3×3 initiative was announced, which will attempt to make the upcoming Version of Ruby 3 three times faster than the current version, providing a foundation for using Ruby in more contexts.
PHP
PHP 7.1 was released in December with small enhancements to the language. This builds on major performance improvements in last year’s version 7.0, transforming PHP into a fast platform for building Web applications. We think PHP is a good choice when you need to develop a Web application.
Java
Java 9 is expected in 2017 and will bring welcome new features such as evaluating code, HTTP 2.0 support and new APIS for the REPL. There is a strong demand for talented Java developers and a wide range of exciting projects using the language. If Java isn’t your cup of tea, there are jVA-BASED languages like Kotlin and Scala that you can try.
Swift
The Swift 3 was released earlier this year. This is Apple’s vision for modern programming languages. , which simplifies application development on iOS and macOS. Swift is open source and has attracted a large community to its maintenance and development. Version 4, scheduled for 2017, will improve the language and introduce the server API, making it a good choice for writing web applications and backends. If you’re looking for something more exciting, you can try Crystal and Elixir, which combine a friendly Ruby-like language platform. Or you can look at a functional language like Haskell or Clojure. Two other fast languages to choose from would be Rust and Go.
Language Direction suggestions for 2018:
Learn one or more: JS (ES2017), TypeScript, C#, Python, Ruby, PHP7, Java/Kotlin/Scala.
Front end (9K) to full stack(10k+)
Web
The Web platform has recently made two major advances — Web Assembly and Service Workers, which open the door to fast and efficient Web applications and bridge the gap with native-compiled applications. Service Workers, in particular, enable technology for progressive Web applications (PWA mentioned above) and provide support for notification on the Web platform, with more apis to come.
Angular.js 2 Angular.js 2 was released this year. The framework is supported by Google and is very popular with enterprises and companies. It has a wealth of features that make writing from the web to desktop and mobile applications possible. Frameworks are written in TypeScript, which is the recommended language for writing applications. There’s a lot to learn, but we think learning Angular 2 in 2017 will be a good investment.
Vue.js Vue.js also saw version 2.0 this year. It takes good ideas from Angular, React, and Ember, and puts them in an easy-to-use package. It is also lighter and faster than the first two. We suggest you try it this year, starting with one of our vue.js tutorials. http://igeekbar.com/igeekbar/post/109.htm
Ember Ember is another option for JavaScript frameworks. It supports data binding, automatic updating of templates, components, and server-side rendering. One advantage it has over its competitors is that it is more mature and stable. Change breaking is much less frequent and the community is less compatible. This makes the framework a good choice for long-term applications. Two other frameworks worth looking at are Aurelia and React. In the last year, the React ecosystem has become increasingly complex, making it difficult to recommend for beginners. But experienced developers can combine the library with GraphQL, Relay, Flux, and Immutable. Js into a comprehensive complete stack solution. No front-end build can bypass Bootstrap. Bootstrap4 is currently in Alpha and is expected to be released in 2017. Notable changes are the new universal card components and flexbox grid, a modern framework that makes the working environment simpler and happier.
SASS and LESS are still the two most popular CSS preprocessors today. Although Vanilla CSS finally got support for variables, SASS and LESS still outperformed support for mixins, functions and code organization. If you haven’t already, check out our Quick start guide to SASS and LESS.
Tips for 2018 front-end framework directions: Learn one or more of the following: Angular 2, vue.js, Ember, Bootstrap, LESS/SASS.
The back-end
There are many options on the back end, all depending on your preference for a programming language or specific performance requirements. The continuing trend in Web development is to move away from the back end and transform that layer into an API used by front-end and mobile applications. However, a full stack framework is generally simpler, faster to develop, and remains a valid choice for many Web applications.
Node.js Is the main way to run JS outside the browser. It saw many new releases this year, adding performance and adding coverage across the ES6 standard. Node has a framework for building fast apis, servers, desktop applications, and even robots, as well as a huge community for building every module imaginable. Within the Node.js framework you might want to explore: Express, Koa, Next, Nodal.
PHP? PHP, I’m not kidding. PHP is first and foremost a Web language, and there are a number of Web frameworks to choose from. Laravel has formed an active community because of its excellent documentation and future. Version 3 of the Zend Framework has been released, marking a significant upgrade for this business-oriented Framework. Symfony has also seen many new versions this year, making it a complete stack solution and a better choice.
Ruby For Ruby, the Rails framework is preferred. Version 5.0, released in 2016, provides support for Web sockets, API patterns. Sinatra is also a good choice for applets, with version 2.0 expected in 2017.
Python Python has its own full stack/minimal framework combination in the form of Django and Flask. Django 1.10 was released in August, introducing full-text search Postgres and an overhauled middleware layer.
Java
The Java ecosystem also has popular Web frameworks to choose from. Play and Spark are two solid choices, and they can also be used with Scala.
Phoenix Phoenix is also a back-end option for hobbyists, written in Elixir and intended to be a full-featured, high-performance alternative to Rails. If Elixir is one of the languages you want to learn in 2017, try Phoenix.
Suggestions for back-end direction in 2018:
Learn one of them: the full stack backend framework, a microframework.
The database
MySQL
MySQL 8.0 will be the next major release of the database. It is expected to bring a lot of improvements to the system sometime in 2017. MySQL remains the most popular (mian) (FEI) database management system and the entire industry is benefiting from these new releases.
PostgreSQL PostgreSQL 9.6 was released in September. It results in better full-text search, faster parallel queries for database systems and more efficient replication, aggregation, indexing, and sorting. Postgres is used for large, terabyte datasets, as well as busy web applications, optimizations that are welcome in the era of big data and mass data.
NoSQL
For NoSQL fans, we can recommend CouchDB. It is a fast and extensible JSON storage system that exposes a Rest-ful HTTP API. The database is easy to use with excellent performance. PouchDB is a spiritual counterpart to CouchDB that works entirely in a browser and syncs with Couch. This allows you to use Pouch in web applications prepared offline and automatically synchronize when an Internet connection is available.
Redis
Redis is our favorite key-value store. It is lightweight, fast, and versatile. You can use it as a smart memory alternative, as a NoSQL data store or as a process messaging and synchronization channel. It offers a large number of data structures to choose from, and the upcoming 4.0 release will have a modular system and improved replication.
Advice on database directions for 2018: Learn one of them: MySQL, Postgres, CouchDB, Redis.
The development tools
Yarn
Yarn is an alternative package manager to Node.js developed by Facebook. It is an upgrade to the NPM command-line tool, providing faster installation, better security, and stable project builds. It still uses the NPM package registry as its back end, so you can access great JavaScript modules. Yarn is compatible with the package.json format used by NPM, and the biggest difference between the two formats is probably faster installation.
Two of the most popular open source editors – Visual Studio Code and Atom – have delivered incredible innovations over the past 12 months. First, web build projects. If you’re a “do-it-yourself” programmer, you probably don’t need web projects, but if you don’t develop good version control habits ahead of time, you’ll probably be the one who has to run back to work the most times on the way home when you get into big projects. Syntax checking can help you eliminate bugs ahead of time. The editor has a large number of language plug-ins available for language checking, linting and refactoring tools.
Git Git is the most popular source code version control system. It’s serverless, and you can turn any folder on your computer into a repository. If you want to share code, you have a lot of options, like GitLab,
Bitbucket and making
Bitbucket and Github, to name a few. For 2017, we recommend familiarizing yourself with the Git command line, as it will be more convenient than you think. Desktop applications are not dead. Even as web applications become more and more capable, sometimes you need powerful features and apis that are simply not available on web platforms. With tools like Electron and Nw.js, you can write desktop applications using Web technologies. This allows you to make the most of the NPM modules in your operating system.
The latest trend in DevOps software team organizations is to put developers in charge of their own software deployment. Also known as DevOps, this leads to faster releases and faster fixes for problems in production. Companies are increasingly looking for programmers who can run and write code (or who are likely to stay with the company after age 35), so being familiar with the technology that makes this possible would be a huge step forward. Some of the tools we recommend are Ansible and Docker. Experience with the Linux command line and basic system administration skills will also make you look good.
Try one or more of these: Yarn, Git, Visual Studio, Electron, Ansible, Docker.