Файл: Обзор и анализ характеристик языков программирования.pdf
Добавлен: 25.04.2023
Просмотров: 337
Скачиваний: 2
СОДЕРЖАНИЕ
ГЛАВА 1. СИСТЕМЫ ПРОГРАММИРОВАНИЯ
1.1 Понятие о языках программирования
1.2 Виды языков программирования
Декларативные языки программирования
Функциональные языки программирования
1.3 История развития языков программирования
ГЛАВА 2. ОБЗОР СОВРЕМЕННЫХ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ДЛЯ РАБОТЫ С «БОЛЬШИМИ ДАННЫМИ»
2.1. Возможности синтаксиса и использования
Большинство современных языков программирования — объектно-ориентированные. Среди них последние версии языка Turbo Pascal, C++, Ada и др. В настоящее время широко используются системы визуального программирования Visual Basic, Visual C++, Delphi и др. Они позволяют создавать сложные прикладные пакеты, обладающие простым и удобным пользовательским интерфейсом.[2]
ГЛАВА 2. ОБЗОР СОВРЕМЕННЫХ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ДЛЯ РАБОТЫ С «БОЛЬШИМИ ДАННЫМИ»
2.1. Возможности синтаксиса и использования
Разработчики программного обеспечения любят спорить о том, какой язык программирования является лучшим. Однако критерий того, что является «лучшим», сбивает с толку. Когда мы обсуждаем разработку программного обеспечения для использования в машинном обучении и областях науки, связанных с данными, этот вопрос вечен и никогда не потеряет своей актуальности.
Лучшими языками программирования являются языки, объединяющие в себе простоту синтаксиса и использования, что является довольно субъективным критерием, но такие факторы, как безопасность, скорость, количество библиотек и поддержка сообщества такими не являются, поэтому при выборе будет происходить упор на них. Итак, давайте рассмотрим шесть лучших языков программирования для работы с данными и машинным обучением.
Scala [1]
Scala является популярным языком программирования, и, скорее всего, большинство ученых, работающих с данными, сталкивались с ним. Это мультипарадигмальный язык, поддерживающий использование открытого исходного кода. Язык был разработан в 2003 году Мартином Одерским. Scala – это сокращенная форма «Scalable Language». Он был создан для того, чтобы излагать стандартные основы программирования элегантным, безопасным и лаконичным образом.
Если вы знакомы с синтаксисом Java, вы можете быстро освоить Scala. Изучение этого языка значительно проще, если вы знаете другие языки, такие как Python, C или C ++. Многие предпочитают Scala, так как он стабильный, гибкий, быстрый и масштабируемый. Написание программного кода в Scala организуется и выполняется довольно быстрее по сравнению с Python. При этом его можно применять Scala для создания прибыльных продуктов, которые работают с огромным количеством данных.
Julia [2]
Julia набирает популярность в мире данных и машинного обучения. Некоторые эксперты уже сравнивают его с Python, что, возможно, является преждевременным выводом, но это ни в коей мере не уменьшает возможности Julia.
Этот язык программирования является современным, высокопроизводительным и значительным, был создан группой математиков из Массачусетского технологического института (MIT) и ученых-компьютерщиков. Данный язык, в основном, применяется для манипуляции большим количеством данных и научных расчетов. Если вы раньше работали с такими языками как Matlab, R или Python, то Вы быстро привыкнете к Julia. Скорость Julia делает его отличным языком для машинного обучения и науки о данных.
JavaScript
Если вы пытаетесь войти в науку о данных как разработчик и не хотите изучать новый язык, JavaScript – это Ваш выбор. JavaScript - легкий, простой в реализации и мощный язык программирования.
Прежде чем приступить к работе с JavaScript, не мешало бы иметь опыт работы с HTML и иметь опыт работы с концепциями объектно-ориентированного программирования. Это дает вам основную идею разработки онлайн-приложений. Это также становится полезным, когда Вы расширяете свой модуль машинного обучения в браузере или мобильных приложениях. Помимо этого, в JavaScript есть замечательные библиотеки для разработки информационных панелей и визуализации данных. Многие методы машинного обучения, такие как сочинение музыки, распознавание возражений и жестов и т. д., могут быть реализованы с помощью TensorFlow.js, который является динамической библиотекой JavaScript для работы с данными.
Swift [3]
Если вы являетесь поклонником продукции Apple и Вам нравится использовать их многочисленные устройства и их привлекательную iOS, скорее всего, вам понравится Swift. Этот язык программирования является открытым, гибким и простым. Apple создала его для приложений OS x и iOS. Swift основан на лучшем из Objective-C и C, но без ограничений адаптируемости C. Это отличный язык для начинающих из-за его точного, но обширного синтаксиса и быстрой скорости работы приложений.
В последнее время Swift начал привлекать внимание сообщества специалистов в области данных и машинного обучения. Это настоятельно рекомендуется Джереми Ховардом, соучредителем fast.ai. Существует множество библиотек для выполнения таких задач, как высокопроизводительные вычисления в матричной математике, численных вычислений, использования методов глубокого обучения, обработки цифрового сигнала, разработки моделей машинного обучения и т.д.
Golang [4]
Go, или Golang – это язык программирования, разработанный Google. Go эффективен, прост и надежен. Решения на Go довольно однозначны, что помогает избежать разногласий при разработке, концентрируясь на одной технике за раз по сравнению с другими языками, где задачи имеют несколько решений.
Существует огромное количество ресурсов, инструментов и пакетов для работы с данными на Golang. Это включает в себя статистические и арифметические вычисления, сбор данных, анализ данных, EDA, организацию данных, создание моделей машинного обучения и т.д.
Spark [5]
Spark – это не столько язык, сколько среда, но есть причина, по которой он так популярен среди исследователей и инженеров в области работы с данными.
Spark предлагает высокоуровневые API-интерфейсы (интерфейс прикладного программирования) на R, Python, Scala и Java, а также предоставляет оптимизированный механизм, поддерживающий отличные графики выполнения. Он является открытым и быстрым кластерным фреймворком для вычислений, который применяется для обработки, проверки и оценки больших данных. Преимущество Spark перед другими фреймворками для работы с большими данными заключается в том, что они основаны на вычислениях в памяти, что позволяет ему работать очень быстро.
Минимального опыта в Python достаточно, чтобы быстро освоить Spark. Spark может выполнять множество заданий по обработке данных, таких как предварительная оценка данных, их создание и отладка.
2.2 Программирование в разработке приложений для Аndroid
Java - это язык программирования, впервые выпущенный Sun Microsystems еще в 1995 году. Его можно найти на самых разных типах устройств. Мы можем использовать его на вашем настольном ПК и даже на Raspberry Pi. Java не компилируется с собственным процессорным кодом, а скорее опирается на «виртуальную машину», которая понимает промежуточный формат, называемый байт-кодом Java. Каждая платформа, на которой работает Java, нуждается в реализации виртуальной машины (ВМ). На Android оригинальная виртуальная машина называется Dalvik. Google также начал предварительный просмотр своей виртуальной машины следующего поколения под названием ART. Задача этих виртуальных машин состоит в том, чтобы интерпретировать байт-код, который на самом деле является просто набором инструкций, аналогичных машинному коду, найденному в ЦП, и выполнять программу на процессоре. Виртуальные машины используют различные технологии, включая своевременную компиляцию (JIT) и своевременную компиляцию (AOT), чтобы ускорить процессы. Все это означает, что мы можем разрабатывать приложения для Android в Windows, Linux или OS X, а компилятор Java преобразует исходный код в байт-код. Это, в свою очередь, выполняется на встроенной в Android виртуальной машине. Это отличается от модели, используемой iOS, которая использует собственный компилятор, чтобы превратить Objective-C в машинный код ARM. Java используется для разработки под Android, потому что он очень популярен среди разработчиков, он не имеет сложностей с арифметикой указателей. Поскольку он работает на виртуальной машине, нет необходимости перекомпилировать код для каждого устройства, на котором он использовался. Хотя скорость является проблемой для JAVA, тем не менее, ее популярность и преимущества перевешивают скорость.
ЯЗЫК ПРОГРАММИРОВАНИЯ KOTLIN
Kotlin - это язык программирования со статической типизацией, который работает на виртуальной машине Java, а также может быть скомпилирован в исходный код JavaScript. Он был выпущен для широкой публики в феврале 2016 года. Его основная разработка - это команда программистов JetBrains из Санкт-Петербурга, Россия (название происходит от острова Котлин, недалеко от Санкт-Петербурга). В мае 2018 года команда Google Android объявила, что Kotlin теперь является официальным языком для разработки Android. Разработчики использовали Kotlin для создания приложений для Android в предыдущие годы, но Google только что объявил о поддержке этого.
И Kotlin, и Java можно использовать для создания приложений для Android. Теперь вопрос: Какая причина может быть использовать тот или иной язык программирования?
РАЗНИЦА МЕЖДУ KOTLIN И JAVA
Если требуется добавить некоторые дополнительные функции в класс, в большинстве языков программирования создается новый класс. Функция расширения является функцией-членом класса, который определен вне класса.
Функция расширения:
Функция расширения может быть разработана на примере (Рисунок 1).
В соответствии с примером нам нужна функция String, класс должен возвращать новую строку с удаленным первым и последним символом; этот метод недоступен в классе String. Функция расширения, объявленная вне класса, создает функциональность указанного класса, расширяя предопределенные функции.
Рисунок 1. Пример расширения
«Kotlin предоставляет возможность расширять класс новыми функциями без необходимости наследования от класса или использования любого типа шаблона проектирования, такого как Decorator. Это делается с помощью специальных объявлений, называемых расширениями. Kotlin поддерживает функции расширения и свойства расширения». Эта функция расширения отсутствует в Java. Для обеспечения функциональности функций расширения обычно используются платформы Android. Но Android Framework иногда усложняет ситуацию. Java предоставляет только одно решение - создание оболочек. Но Котлин дал нам преимущество функции расширения, которая устранит трудности, связанные с платформой Android.
Конструкторы[5]:
Kotlin может иметь как первичный конструктор, так и вторичный конструктор. Ключевое слово «конструктор» используется для объявления вторичного конструктора. Всегда следует ссылаться на первичный конструктор.
Рисунок 2. Конструктор на языке Kotlin
В приведенном выше примере (Рисунок 2) первичный конструктор имеет 3 параметра, а вторичный конструктор имеет 4 параметра. В случае перегрузки конструктора в JAVA код выглядел бы так (Рисунок 3):
Рисунок 3. Конструктор на языке Java
Эта вторичная функция конструктора отсутствует в Java. Полезность вторичного конструктора заключается в том, что он сокращает количество строк кода.
Null Safety:
Одна из наиболее распространенных ошибок во многих языках программирования, включая Java, заключается в том, что доступ к элементу пустой ссылки приведет к исключению пустой ссылки. В Java это будет эквивалентно NullPointerException или NPE для краткости.
Kotlin использует функцию под названием Null Safety для обработки ситуации с указателем NULL. Если это явно не вызвано, Kotlin не генерирует исключение NullPointerException.
При программировании на Kotlin исключение Null Pointer не нарушает поток кода в отличие от JAVA. Это дает вывод как NULL.
Lazy-Loading:
Lazy-Loading используется в компьютерных программах для отсрочки инициализации объекта до точки, в которой он необходим. Таким образом, функция отложенной загрузки уменьшает время загрузки. Kotlin дает нам функцию отложенной загрузки в отличие от JAVA. В случае java такой функции, как отложенная загрузка, не существует, поэтому во время запуска приложения загружается много ненужного содержимого, что замедляет загрузку приложения.
Анализируя, мы расшифровали, что у Java и Kotlin есть свои преимущества и недостатки. С точки зрения начинающих, Java является лучшим вариантом по следующим причинам:
Java является очень популярным языком, который широко используется разработчиками. Разработка Android - это всего лишь капля в море развития, происходящего во всем мире. Таким образом, будучи новичком, знание JAVA выгоднее, чем Kotlin, расширяющий спектр возможностей.
Во-вторых, существует огромное сообщество программистов на Java, а это значит, что мы можем найти множество ответов на вопросы, связанные с программированием на Java. Это очень важно, потому что, для новичка. Когда мы ищем информацию, связанных с Java, мы обязаны получить ответы; то же самое нельзя сказать о Kotlin, который все еще является будущим языком программирования. Есть также больше учебников, книг и курсов, как бесплатных, так и платных, которые могут научить нас разработке Android с Java, чего нельзя сказать о Kotlin.
Думая с точки зрения разработчиков, Kotlin будет предпочтительнее по следующим причинам: