Языки, фреймворки и инструменты или дорожная карта для курса «Проектирование интернет-приложений»

Индустрия разработки программного обеспечения продолжает уверенно продвигаться вперед. Необходимо отметить, что в 2016 году новые версии популярных языков, фреймворков и инструментов добавили нам больше энергии и изменили характер нашей работы. За всем новым трудно уследить, поэтому в начале года надо понять, что важно и чему должно учиться в течение следующих двенадцати месяцев, а для студентов Бизнес-информатики наметить дорожную карту курса «Проектирование интернет-приложений», особенно, в контексте подготовки ВКР.

Тренды

Progressive Web Apps

В прошлом, 2016 году, утвердилась концепция Progressive Web App. В соответствии с ней веб-приложения могут работать в автономном режиме, используя накопленный пользовательский опыт. Приложение может быть добавлено в качестве главного экрана вашего смарт-устройства и даже может отправлять вам push-уведомления, игнорируя отсутствие связи родного мобильного приложения. Думается, что в 2017 году PWA станут еще более важны и на это стоит обратить внимание. Посмотрите обзор здесь.

Боты

Уже сейчас все повсеместно говорят о ботах. Сообщество напряженно гудит, обсуждая платформы и фреймворки для их создания (полезно прочитать введение). Пока все в восторге от ботов, новых мобильных приложений, если вы поспешите, то можете поймать эту перспективную волну. Со временем, когда боты потеряют ауру новизны, вероятно, им отведут скучную роль автоматизированных систем поддержки клиентов. Но, пока, об этом мы можем только мечтать!

Консолидация фреймворков для Frontend

В сообществе JavaScript наблюдается невероятная «движуха» механизмов и инструментов, а новинки рождаются чуть ли не каждую неделю. До недавнего времени считалось, что старые инструменты просто будут заменяться на новые, но этого, как показал 2016 год, не происходит. Вместо этого появились популярные платформы для обмена идеями, включающие инновации, предложенные новичками. Так что, в 2017 году не имеет особого значения, какой из основных JS фреймворков вы выберете, их возможности, в основном, сопоставимы.

Облако

И отдельные компании, и независимые разработчики повсеместно используют “облака”. Это виртуализированная компьютерная инфраструктура, доступная по запросу и полностью настраиваемая из панели управления. Большая тройка провайдеров облачных сервисов — это AWS, Google Cloud и Azure. Благодаря постоянной конкуренции между ними цены падают, и сервисы становятся подъёмными для бюджетов небольших компаний и индивидуальных разработчиков. Изучение облачных рабочих процессов может стать хорошей интеллектуальной инвестицией в 2017 году.

Машинное обучение

За последние 12 месяцев взрыв популярности испытало Машинное обучение (Machine Learning, ML). Историческое мартовское противостояние в соперничестве AlphaGo против Lee Sedol стало мейнстримом. Умные компьютерные системы, обученные на необработанных данных, способны совершить революцию нашего взаимодействия с мобильными устройствами. Судя по всему в 2017 Machine Learning будет одной из основных технологий инноваций.

Языки

В JavaScript невероятными темпами появляются новшества. Катализаторы для ускорения прорисовки графики в стандартных расширениях JS обновляются каждый год. Выход следующей редакции ES2017 планируется в середине 2017. В ней будет добавлены потрясающие возможности, мечта разработчика, – аsync/аwait для. И огромное спасибо Babel за то, что писать в стиле ES2017 можно уже сегодня.

TypeScript 2.1 был выпущен в конце 2016, обеспечивающий async/await для старых браузеров и с улучшенным определением типов. TypeScript — это статический типизированный язык, который компилируется в JavaScript. Он обладает мощнейшими свойствами, например, классическая модель ООП и опциональная статическая типизация для простоты поддержания и масштабирования кода. Это язык рекомендую использовать для приложений Angular 2. Вот здесь руководство для quick start.

C# 7.0 ожидается в 2017 и должен прославить сам по себе великолепный язык. Microsoft всех удивил, когда открыл исходный код своего редактора для Visual Studio и .Net Core. Теперь они загружаются под Linux, Windows и macOS, предоставляя великолепные возможности для быстрой записи кода приложений на C# (более подробно читайте здесь). Вокруг двух этих инструментов формируется сообщество и мы уверены, что вперед нас ожидает интересный год.

Python 3.6 был выпущен в декабре. Он укрепил свои позиции в качестве языка сценариев для ИТ-специалистов и ученых. Он идеально подходит для автоматизации при веб-разработке, решения задач машинного обучения, искусственного интеллекта и научных вычислений. Многолетняя борьба и раскол Python 2/3 сообществ успешно преодолен и теперь Вы можете смело выбирать Python 3, где можно использовать теперь все библиотеки. Тем, кому нужна дополнительная производительность могут посмотреть <а href="http://pypy.org/" целевых="_blank">руководство для пользователей и альтернативный jit-компилятор, который включен в среду исполнения Python.

Ruby 2.3 появился released в начале этого года с рядом улучшений в части производительности. Ruby является хорошим выбором языка программирования общего назначения и просто блистает в сочетании с Rails. Лозунг Ruby 3×3 для предстоящего релиза обещает, что он станет быстрее в 3 раза текущей версии, что широко открывает двери для его использования в самых разнообразных контекстах.

PHP 7.1 появился в декабре и в него внесены небольшие изменения. В основном это относится к увеличению производительности относительно предыдущей версии 7.0, что превращает PHP в быструю платформу для веб-разработки. Рекомендую PHP The Right Way для хорошей практики и современного взгляда на создание веб-приложений на этом языке.

Java 9 ожидается в 2017 и будет поставляться с новыми функциями такими, как репликатор развития кода, поддержка протокола HTTP 2.0 и новые API. Сегодня громадный спрос на талантливых Java-разработчиков и различные интересные пректы с использованием этого языка. Если Java не ваш выбор, то есть несколько JVM на основе таких языков, как Kotlin и Scala, которые Вы можете проверить.

Swift 3 был выпущенв начале этого года. Он воплощает в себе видение Apple на современный язык программирования, упрощающий разработку приложений под iOS и macOS. Swift — это open source и поэтому привлекает к себе солидное сообщество. Версия 4 запланирована в 2017 году и она позволит улучшить язык, внедрив API сервера, что делает его хорошим выбором для написания веб-приложений и серверной части.

Если вы ищете что-то более увлекательное, то можете попробовать Crystal и Elixir, которые объединяют дружественность синтаксиса Ruby с высокой производительностью. Кроме того, можно посмотреть в сторону функциональных языков Haskell или Clojure. Так же рекомендую два других производительных языка Rust и Go.

Изучите что-то или всё из этого: JS (ES2017), TypeScript, C#, Python, Ruby, PHP7, Java/Kotlin/Scala.


Frontend (внешний интерфейс)

The web platform made two major advancements recently – Web Assembly and Service Workers. They open the gates for fast and performant web applications that bridge the gap with native compiled applications. Service Workers in particular are the enabling technology for Progressive Web Apps and bring support for Notifications to the web platform, with more APIs to follow in the future.

Angular.js 2 was released this year. The framework is backed by Google and is very popular with enterprises and large companies. It has a vast number of features that make writing everything from web to desktop and mobile apps possible. The framework is written in TypeScript, which is also the recommended language to write applications in. There is a lot to read about, but we think learning Angular 2 in 2017 would be a good investment.

Vue.js also saw its 2.0 release this year. It borrows the good ideas from Angular, React and Ember, and puts them into an easy to use package. It is also quite a bit leaner and faster than the first two. We suggest that you give it a try this year, by starting with one of our Vue.js tutorials.

Ember is another solid choice for a JavaScript framework. It supports data bindings, auto-updating templates, components and server-side rendering. One benefit that it has over its competitors, is that it is more mature and stable. Breaking changes are much less frequent and the community values backwards compatibility. This makes the framework a good choice for long-lived applications.

Two other frameworks that are worth a look are Aurelia and React. The ecosystem around React has grown considerably more complicated in the last year, making it difficult to recommend for beginners. But experienced devs can combine the library with GraphQL, Relay, Flux and Immutable.js into a comprehensive full stack solution.

No frontend compilation would be complete without mentioning Bootstrap. Version 4 is currently in Alpha and a release is expected in 2017. Notable changes are the new versatile card component and the flexbox grid (see our comparison with the regular grid here), which modernize the framework and make it a joy to work with.

SASS and LESS remain the two most popular CSS preprocessors today. Although vanilla CSS is finally getting support for variables, SASS and LESS are still superior with their support for mixins, functions and code organization. If you haven’t already, take a look at our SASS and LESS quick start guides.

Изучите что-то или всё из этого: Angular 2, Vue.js, Ember, Bootstrap, LESS/SASS.


Backend

Существует большой выбор для реализации серверных приложений, и он определяется вашими предпочтениями языка программирования или конкретными требованиями производительности. Актуальная тенденция в веб-разработке бизнес-логики заключается в том, чтобы отойти от бэкэнда, превратив этот слой в API, и в дальнейшем использовать его в веб-интерфейсе и мобильных приложениях. Однако, часто проще и быстрее реализовать полноценный стек инфраструктуры, и, по-прежнему, для многих веб-приложений такой подход является верным выбором.

Node.js is the primary way for running JS outside the browser. It saw many new releases this year, which increased performance and added coverage for the entire ES6 spec. Node has frameworks for building fast APIs, servers, desktop apps and even robots, and a vast community creating every kind of module imaginable. Some frameworks that you may like to look into: Express, Koa, Next, Nodal.

PHP is a web language first and foremost, and has a large number of web frameworks to choose from. Thanks to its excellent documentation and features, Laravel has formed an active community. Zend Framework released version 3, which marks a great upgrade for this business oriented framework. Symfony also saw a lot of new releases this year, making it an even better choice as a full stack solution.

For Ruby, the Rails framework is the premier choice. Version 5.0 was released in 2016, bringing support for Web Sockets, API mode and more. Sinatra is also a good choice for small apps, with version 2.0 expected sometime in 2017.

Python has its own full stack/minimal framework combo in the form of Django and Flask. Django 1.10 was released in August introducing full text search for Postgres and an overhauled middleware layer.

The Java ecosystem also has popular web frameworks to choose from. Play and Spark are two solid choices, and as a bonus they can be used with Scala as well.

For the enthusiasts there is also Phoenix, which is written in Elixir and attempts to be a feature complete alternative to Rails with superior performance. If Elixir is one of the languages you would like to learn in 2017, give Phoenix a try.

Изучите что-то из этого: A full stack backend framework, a micro framework.


Базы данных

PostgreSQL saw two whole releases this year – 9.5 and 9.6. They brought the long awaited UPSERT functionality that we know from MySQL (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 used for massive, terabyte scale datasets, as well as for busy web apps, and these optimizations are welcome.

MySQL 8.0 is going to be the next major release of the database. It is expected sometime in 2017 and it will bring a lot of improvements to the system. MySQL is still the most popular database management system and the entire industry benefits from these new releases.

For NoSQL fans, we can recommend CouchDB. It is a fast and scalable JSON storage system which exposes a REST-ful HTTP API. The database is easy to use and offers great performance. PouchDB is a spiritual counterpart to CouchDB that works entirely in the browser and can sync with Couch. This allows you to use Pouch in an offline ready web app, and get automatic syncing once internet connectivity is available.

Redis is our favorite key value store. It is small, fast and versatile. You can use it as a smart memcache alternative, as a NoSQL data store or 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 module system and improved replication.

Изучите что-то из этого: Postgres, MySQL, CouchDB, Redis.


Инструменты

Yarn is an alternative package manager for Node.js which is developed by Facebook. It is an upgrade over the npm command line tool and provides faster installs, better security and deterministic builds. It still uses the npm package registry as its backend, so you have access to the same incredible ecosystem of JavaScript modules. Yarn is compatible with the package.json format that npm uses, and is just a quick install away.

The two most popular open source code editors – Visual Studio Code and Atom have seen an incredible amount of innovation in the past 12 months. Both of these projects are built using web technologies and have attracted huge communities of fans. The editors have plugins available which bring syntax checking, linting and refactoring tools for a large number of languages.

Git is the most popular source code version control system out there. It is serverless and you can turn any folder on your computer into a repository. If you wish to share code, you have many options like GitLab, Bitbucket and Github, to name a few. For 2017 we suggest that you familiarize yourself with the git command line, as it will come in handy more times than you think.

Desktop applications are not dead yet. Even though web apps are becoming more and more capable, sometimes you need powerful capabilities and APIs that are simply not available to the web platform. With tools like Electron and NW.js you can write desktop applications by using web technologies. You get full access to the operating system and the breadth of modules available to npm. To learn more about these tools, read our tutorials about Electron and NW.js.

A recent trend in software team organization is to have developers who are in charge of their own software deployment. Also called DevOps, this leads to quicker releases and faster fixes of issues in production. Developers with operations experience are highly valued by companies, so familiarity with the technologies that enable it is going to be a huge plus from now on. Some of the tools that we recommend are Ansible and Docker. Experience with the Linux command line and basic system administration skills will also serve you well.

Попробуйте что-то или всё из этого: Yarn, Git, Visual Studio Code, Electron, Ansible, Docker.


Технологии

The cloud has won over the entire software industry, with large companies closing down their datacenters and moving their entire infrastructure there. The three main platforms are AWS, Google Cloud and Azure. All three have powerful, ever expanding feature sets, including virtual machines, hosted databases, machine learning services and more. Prices are going down rapidly, and the cloud is within reach of small companies and individual developers. For 2017, it would be a good learning experience to deploy a side project to one of these providers.

Artificial Intelligence was the buzzword of 2016. Speech recognition and image classification are only two of the user facing applications of the technology, with machines reaching and even surpassing human level performance. There are a lot of startups that apply AI and Machine Learning to new domains. And a lot of open source projects were released like Google’s Tensor Flow and Microsoft’s Cognitive Toolkit. Machine Learning is a very math-heavy topic, and for those just starting out there are comprehensive online courses available.

Virtual Reality (VR) and Augmented Reality (AR) have been around for a while, but finally the technology is mature enough to offer a compelling experience. Facebook (Oculus Rift), Google (Daydream) and Microsoft (Windows Holographic) all have virtual reality platforms that welcome third party developers. VR headsets still face challenges like eliminating nausea and offering compelling use cases outside of gaming, but they are getting there.

Изучите что-то из этого: Cloud deployment, a Machine Learning library, VR Development.

По мотивам: The Languages, Frameworks and Tools You Should Learn in 2017

CC BY-NC 4.0 Языки, фреймворки и инструменты или дорожная карта для курса «Проектирование интернет-приложений», опубликовано waksoft, лицензия — Creative Commons Attribution-NonCommercial 4.0 International.


Респект и уважуха

Добавить комментарий