Языки и технологический стeк
Наша команда использует разные языки программирования, фреймворки и библиотеки. Ниже приведен краткий перечень технологического стека:
Java — типизированный объектно-ориентированный язык программирования, созданный компанией Sun Microsystems (позже приобретённой компанией Oracle). Приложения Java обычно транслируются в специальный байт-код.
Java крайне популярный язык, в том числе и за счет того, что байт-код не зависит от операционной системы и оборудования, что позволяет выполняться Java-приложению на любом устройстве, на котором можно запустить виртуальную Java-машину (программа, обрабатывающая байтовый код и передающая инструкции оборудованию как интерпретатор). Это позволяет обеспечить безопасность выполнения приложения, так как исполнение программы контролируется виртуальной машиной. Java активно применяется для создания мобильных Android-приложений.
C# — объектно-ориентированный язык программирования. Относится к семье языков с C-подобным синтаксисом (синтаксис наиболее близок к C++ и Java). Разрабатывался как язык программирования прикладного уровня для CLR (Common Language Runtime — исполняющая среда для байт-кода CIL (MSIL), в который компилируются программы, написанные на .NET-совместимых языках программирования).
Kotlin - статически типизированный язык программирования, работающий поверх JVM и разрабатываемый компанией JetBrains. Компилируется также в JavaScript и на другие платформы через инфраструктуру LLVM. Позиционируется разработчиками как объектно-ориентированный язык промышленного уровня, а также как язык, который сможет заменить Java. При этом язык полностью совместим с Java, что позволяет разработчикам постепенно перейти с Java на Kotlin. В частности, в Android язык встраивается с помощью Gradle, что позволяет для существующего Android-приложения внедрять новые функции на Kotlin без переписывания приложения целиком.
Objective-C - компилируемый объектно-ориентированный язык, используемый корпорацией Apple, построенный на основе языка C и парадигм Smalltalk. Язык Objective-C является надмножеством языка C, поэтому C-код полностью понятен компилятору Objective-C. Компилятор Objective-C входит в GCC и доступен на большинстве основных платформ. Язык используется в первую очередь для macOS, а также для iOS.
Swift - открытый мультипарадигменный компилируемый язык программирования. Создан компанией Apple в первую очередь для разработчиков iOS и macOS. Swift задумывался как более легкий для чтения и устойчивый к ошибкам программиста язык, нежели предшествовавший ему Objective-C. Swift может использовать рантайм Objective-C, что делает возможным использование обоих языков в рамках одной программы.
NodeJS — программная платформа, основанная на движке V8 (транслирующем JavaScript в машинный код), превращающая JavaScript из узкоспециализированного языка в язык общего назначения. Node.js применяется преимущественно на сервере, выполняя роль веб-сервера.
JavaScript — мультипарадигменный язык программирования. Поддерживает объектно-ориентированный, императивный и функциональный стили. JavaScript обычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам. На JavaScript оказали влияние многие языки, при разработке была цель сделать язык похожим на Java, но при этом лёгким для использования неспециалистами. Лидирующую позицию JavaScript занял в связи с развитием AJAX, поскольку браузер стал превалирующей системой доставки приложений. Является самым популярным языком программирования, используемым для разработки веб-приложений на фронтэнде. На сегодняшний день поддержку JavaScript обеспечивают современные версии всех наиболее часто используемых браузеров.
HTML5 — язык для структурирования и представления содержимого Интернета. Пятая версия HTML. Цель разработки HTML5 — улучшение уровня поддержки мультимедиа-технологий с одновременным сохранением обратной совместимости, удобочитаемости кода и простоты анализа.
Perl — высокоуровневый интерпретируемый динамический язык программирования общего назначения. Основной особенностью языка считаются его богатые возможности для работы с текстом, в том числе работа с регулярными выражениями.
Python - скриптовый язык программирования, который поддерживает несколько парадигм программирования. Несмотря на то, что язык прост и скромен по выразительным средствам, он имеет широкие возможности и позвляет писать красивый и производительный код. Самая знаменитая особенность синтаксиса языка — использование отступов для выделения блоков кода и управляющих структур. До сих пор сосуществуют две ветви языка - Python 2 и Python 3.
PHP — скриптовый (сценарный) язык общего назначения, интенсивно применяемый для разработки веб-приложений. Более 82% сайтов во всём мире написаны на этом языке, что говорит о его простоте и эффективности.
Mocha — многофункциональная среда JavaScript-тестирования, работающая на Node.js. Упрощает асинхронное тестирование. Тесты Mocha выполняются серийно, что обеспечивает гибкую и точную отчетность.
JUnit — библиотека для модульного тестирования Java-программ. Фреймворк для тестирования отдельных участков кода, например, методов или классов. Использование JUnit позволяет автоматизировано проверить код программы без значительных усилий и не занимает много времени.
Spring Framework — универсальный фреймворк с открытым исходным кодом для Java-платформы. Spring предоставляет большую свободу Java-разработчикам в проектировании; кроме того, он предоставляет хорошо документированные и лёгкие в использовании средства решения проблем, возникающих при создании приложений корпоративного масштаба. Spring обеспечивает решения многих задач, с которыми сталкиваются Java-разработчики и организации, которые хотят создать информационную систему, основанную на платформе Java. Из-за широкой функциональности трудно определить наиболее значимые структурные элементы, из которых он состоит. Этот фреймворк предлагает последовательную модель и делает её применимой к большинству типов приложений, которые уже созданы на основе платформы Java. Считается, что Spring реализует модель разработки, основанную на лучших стандартах индустрии, и делает её доступной во многих областях Java.