Просмотров-1509
0

Что выбирать язык или платформу программирования?

Что важнее язык или платформа программирования

Что такое язык программирования?

Язык и платформа программирования это важнейшие две составляющие процесса разработки и исполнения программы. Определений языка программирования много. Вот, например, определение из Википедии.

Язы́к программи́рования — формальный язык, предназначенный для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических равил, определяющих внешний вид программы и действия, которые выполнит исполнитель (обычно — ЭВМ) под её управлением.

Проще сказать язык программирования это совокупность алфавита(набора допустимых символов), синтаксиса(набора правил) и семантики(смыслового содержания).

Современные языки программирования(Delphi, C#, Java, Python и др.) в качестве алфавита широко используют мультиязычные символы Юникода  для идентификаторов и хранения исходного кода. Исторически, до начала 2000-х годов в языках применялась 7-и битная кодировка ASCII, принятая стандартом в США.

Синтаксис или грамматика языка программирования предписывает правила написания кода программы из допустимых символов.

При описании семантики в рамках операционного подхода обычно понимается смысл исполнения конструкций языка программирования, который интерпретируется с помощью некоторой воображаемой (абстрактной) ЭВМ.

Для программиста важным является возможности языка программирования и простота их использования при решении определенного класса задач.

Основные приемы выбора языка программирования представлены в статье Как выбирать язык программирования высокого уровня для изучения.

Что такое платформа программирования?

Термин платформа программирования имеет двойное значение — платформа разработки(создания) и платформа исполнения программы. Иногда оба значения имеют одно и тоже наименование. Но функции у них разные.

Можно найти много различных определений платформы программирования. Приведем некоторые их них, представленные в статье «Всё ли то «платформа», что называют «платформой»?«.

Например, в Wikipedia приводится следующее определение.

Вычислительная платформа или цифровая платформа — это среда, в которой выполняется часть программного обеспечения. Это может быть аппаратное обеспечение или операционная система (ОС), даже веб-браузер и связанные интерфейсы прикладного программирования или другое базовое программное обеспечение, если программный код выполняется вместе с ним. Вычислительные платформы имеют разные уровни абстракции, включая архитектуру компьютера, ОС или библиотеки времени выполнения. Вычислительная платформа — это сцена, на которой могут работать компьютерные программы.

А в книге «Современные операционные системы» Таненбаум Э. приводится следующее определение.

Платформа — это комплекс аппаратных и программных средств, на котором функционирует программное обеспечение пользователя ЭВМ.

Последнее более простое и понятное, его и будем брать за основу. Далее рассмотрим общую характеристику основных платформ программирования, как среды исполнения программ, их состав и структуру, а также основные возможности.

Платформа исполнения программ

Разработанные программы нуждаются в выполнении, для этого им также необходима платформа(среда) для исполнения. Среда выполнения это вычислительное окружение, необходимое для выполнения компьютерной программы и доступное во время выполнения компьютерной программы. В среде выполнения, как правило, невозможно изменение исходного текста программы, но может наличествовать доступ к переменным окружения операционной системы, таблицам объектов и модулей разделяемых библиотек.

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

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

Для бывалых программистов важным является то, что кроме программных средств в среде выполнения необходимо учитывать и особенности построения аппаратной части платформы, оказывающей влияние на программирование.

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

Программные средства платформы программирования

К программным средствам платформы исполнения программ относится совокупность некоторых базовых библиотек, используемых при работе приложений в конкретной операционной системе, имеющих свой программный интерфейс API, с помощью которого эти библиотеки используются при разработке программ. Это, прежде всего библиотеки классов, на основе которых могут создаваться и выполняться объекты.

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

Далее под термином платформа программирования будет пониматься общая среда исполнения программы.

Таким образом, платформа программирования определяется как комплекс аппаратных (технических) средств, реализованных на соответствующем типе процессора, соответствующей операционной системы с ее программным интерфейсом API.

Программно-аппаратная платформа состоит из взаимосвязанной совокупности следующих основных элементов:

  • комплекс технических средств, на базе которого проектируются программы;
  • базовое программное обеспечение интеграции комплекса технических средств в программно-технический комплекс, обеспечивающее конфигурирование программ и реализующее другие универсальные функции программы.

Основным компонентом комплекса технических средств является электронная вычислительная машина (ЭВМ) — комплекс технических средств, предназначенных для автоматической обработки информации в процессе решения вычислительных и информационных задач, тип которого определяется типом процессора: Macintosh, Atari, Sincler, Intel, J2EE и т.д.

Основным компонентом базового программного обеспечения (программной платформы) является операционная система( Windows, UNIX, LINUX и т.д.), обеспечивающая работоспособность прикладного программного обеспечения на том или ином процессоре, программный интерфейс API и статические или динамические библиотеки классов, функций(фреймворки).

Примечание. Кроме того термин платформа может применяться к разным уровням абстракции, включая определенную аппаратную архитектуру, операционную систему или библиотеку времени выполнения программы.

Совокупность аппаратной и программной платформ составляет единую среду выполнения программы. Как только программа запущена, она находится в состоянии выполнения. В этом состоянии программа может отправлять инструкции процессору компьютера и получать доступ к памяти компьютера (RAM) и другим системным ресурсам. Такое состояние программы принято называть процессом.

Процесс имеет виртуальное адресное пространство, исполняемый код, открытые дескрипторы системных объектов, контекст безопасности, уникальный идентификатор процесса, переменные среды, класс приоритета, минимальный и максимальный размеры рабочего набора и по крайней мере один поток выполнения. Каждый процесс запускается с одного потока, часто называемого основным потоком, но может создавать дополнительные потоки из любого из своих потоков.

Таким образом, платформа(система времени выполнения, среда выполнения)-это программное обеспечение, предназначенное для поддержки выполнения компьютерных программ, написанных на некотором компьютерном языке.

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

Что важнее на практике язык программирования или среда выполнения программы(платформа), что больше оказывает влияние на качество программы? Ответ на этот вопрос не является тривиальным, потому что они не только взаимообусловлены, но и каждый по своему оказывают существенное влияние на качество программы. Однако существуют ситуации, когда возникает вопрос — язык или платформа программирования?

Программистам — новичкам не обязательно знать в какой программно-аппаратной среде выполняются их программы, ибо за них все решает инструментальная среда программирования. Для них важно правильно выбрать язык программирования.

Опытные же программисты, обычно, не спрашивают друг друга — на каком языке ты программируешь, они спрашивают – с каким компилятором или в какой библиотеке ты работаешь? Поэтому для бывалых программистов важным вопросом является — что выбирать язык или платформу программирования? И зачастую ответом на этот вопрос звучит то, что правильно выбирать не Язык, а Платформу. 

Это связано с тем, что не всегда качество языка играет решающую роль. Например, сложный язык Java не был бы хорошим языком с момента его создания, если бы не появилась виртуальная машина(платформа), которая оказалась настоящим прорывом для своего времени. Именно она вывела язык Java в самый популярный язык. Другой пример, платформа dotNet Framework также сделала популярным язык программирования C#, иначе он мог бы так и остаться простым совершенствованием С+.

Выбор платформы близок по существу к выбору языка программирования по профессии. Потому что платформы создаются и поддерживаются крупными корпорациями. Практически все известные вам IT корпорации продвигают свои и языки и платформы программирования. Microsoft: dotNet, IBM, Oracle: Java VM.  И тогда вопроса — язык или платформа программирования нет.

В прошлом, большинство программ использовали операционную систему (ОС) в качестве среды выполнения. Программы запускались на любом компьютере, но для доступа к ресурсам полагались на параметры операционной системы. Ресурсами выступали память, программные файлы и зависимости. В свое время именно среда выполнения Java изменила все это, по крайней мере, для Java-программ. Вопроса что важнее язык или платформа программирования практически не возникало.

В настоящее время применяются развитые платформы программирования, имеющие большие возможности. Среди таких платформ можно выделяются: Платформа программирования на языке Java, а также специально созданная для языка программирования C# и имеющая явно выраженные отличительные особенности Платформа программирования dotNet Framework. Аналогично для языка программирования Python созданы две разновидности платформы программирования(библиотки), познакомиться с особенностями построения каждой из них можно в статье Платформы языка Python.

Таким образом, коротко платформа это среда выполнения программы. И чтобы ответить на вопрос что выбирать язык или платформу программирования рассмотрим эти понятия более подробно. Прежде всего, рассмотрим программные средства платформы программирования.

Выбор программных платформ

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

Если возникает ситуация, когда ответ на  вопрос — язык или платформа программирования, склоняется в сторону платформы, то естественно приходится делать выбор среди платформ. Чтобы выбрать платформу программирования и далее соответствующий ей язык, необходимо определиться с критериями, о которых шла речь выше, и сделать правильный выбор — язык или платформа программирования, если платформу, то какая.

При выборе платформы программирования необходимо руководствоваться следующими критериями:

  • высокая производительность решения прикладных задач;
  • высокая степень надежности и устойчивости к сбоям;
  • достаточный уровень защиты от несанкционированного доступа посторонних лиц.

Учитывая то, что  Java SE и dotNET это две ведущие, можно сказать конкурирующие, современные платформы создания и исполнения разнообразных приложений, то выбирать чаще всего приходится из них двоих. Но такой выбор практически эквивалентен выбору языка программирования.

Например, язык C#, являющийся основным в dotNET, ничуть не труднее Java, а если Вы знакомы с C-подобным синтаксисом, то с легкостью освоите любой из этих языков программирования на платформе dotNet Framework или JavaVM.

Настоящим выбором платформы программирования является выбор различных сред исполнения для одного и того же языка программирования. Так, например, при решении задач на языке программирования Java, что лучше выбрать Java EE, Java ME, Java SE или JavaFX Script?

Аналогично и с С-подобными языками программирования. Здесь тоже есть над чем задуматься. Что лучше подходит для решения поставленной задачи старенькая библиотека OWL, более современная библиотека MFC или современная библиотека dotNet Framework?

Аналогично и для языка программирования Python есть что выбирать Python Django илм Python Flask? Об этом подробнее смотри в данной статье ниже.

Иногда выбор необходимо сделать при создании приложения для компьютеров под управлением установленной операционной системы. В этом случае также нужно принять решение о том, какая платформа приложений будет использоваться. Так, например, операционная система Windows предоставляет четыре основные платформы приложений, каждая из которых имеет свои преимущества:

  • универсальная платформа Windows (UWP). На этой платформе предоставляется система общих типов, интерфейсы API и модель приложений для всех устройств под управлением Windows 10. Приложения UWP могут быть нативными или управляемыми;
  • WPF и Windows Forms. Эти платформы на базе .NET предоставляют систему общих типов, интерфейсы API и модель приложений для управляемых приложений;
  • Win32/64. Это исходная платформа для нативных Windows-приложений C/C++, которым требуется прямой доступ к Windows и оборудованию. Благодаря этому API Win32/64 стает оптимальной платформой для приложений, которым требуется самый высокий уровень производительности и прямой доступ к системному оборудованию.

Примечание. В цитируемой статье приводятся сведения и о других современных платформах, которые могут выполняться в Windows 10, а также могут работать на iOS и Android. Каждая из этих платформ содержит полнофункциональную инфраструктуру и набор элементов управления пользовательского интерфейса.

Чтобы стать высококлассным программистом на современных алгоритмических языках целесообразно хорошо знать не только языки, но и платформы программирования.

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

Изучение платформ программирования можно осуществлять на курсах по программированию Среди курсов с высоким рейтингом можно выделить курсы онлайн-университетов Skillbox и GeekBrains.

Широко известный онлайн-университет Skillbox является одним из лидеров в сфере дистанционного обучения программированию, включая и изучение платформ программирования для алгоритмических языков Python, Java, C++, C#. По окончанию обучения на некоторых гарантируется трудоустройство. Это тоже важно на сегодняшний день. На образовательном IT-портале GeekBrains и Mail.Ru Group имеется первый в России онлайн-университет GeekBrains, который по популярности незначительно уступает онлайн-университету Skillbox, а в кое в чем может и опережает его. На этом портале также можно найти различные программы обучения по многим IT-направлениям, включая как платные, так и бесплатные курсы по всем направлениям .

Что выбирать Django или Flask?

Популярность языка Python  обусловлена его лёгкостью в изучении и простотой восприятия, а также ростом популярности фреймворков на его основе. Среди представленного множества популярных вариантов фреймворков языка Python чаще всего сравниваются между собой платформы Django и Flask. Каждый из этих фреймворков имеет свои уникальные особенности, поэтому использовать их следует в соответствии с требованиями конкретного проекта разработки приложения. Так что же выбрать Django или Flask?

Flask обеспечивает полный контроль и отлично подходит для небольших проектов, требующих свободу действий.

Django более сложный и требует хороших знаний, но он выделяется как один из лучших фреймворков для создания сложных приложений.

Django – это отличный выбор в ситуациях, когда речь идет о проектах с большим объемом наполнения (например, медиафайлов), со взаимодействием с пользователем, большим трафиком и сложными функциями или технологиями (например, машинное обучение).

Django поддерживает объектно-реляционное управление ORM (Object Relational Management), что  позволяет API легко получать доступ к данным без необходимости писать SQL-команды. Что, в свою очередь, позволяет писать сложные запросы.

А Flask не поддерживает ORM, поэтому разработчикам, к сожалению, придется писать все свои SQL-операторы самостоятельно, что, конечно, может добавить лишней работы, но зато в нем используется диспетчеризация запросов в RESTful-стиле.

Выбирать соедует тот фреймворк, с помощью которого легче и рациональнее построить требуемую программу.

Заключение

Язык и платформа программирования важные элементы приложения, которые оказывают существенное влияние на его качество. Поэтому вопрос что выбирать язык или платформу программирования совсем не риторический.

Чтобы ответить на вопрос что важнее язык или платформа программирования, необходимо получить некоторый опыт программирования на различных языках и платформах. Чаще всего язык и платформа программирования это основа среды исполнения и они неразрывны.

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

Если необходимо писать достаточно сложные приложения под Windows, то на сегодняшний день рекомендуется платформа программирования dotNET Framework. Эта платформа позволяет писать приложения, взаимодействующие с другими аналогичными приложениями и технологиями, достаточно легким способом.

Связанные материалы

Внимание! Кто хочет своевременно узнавать о выходе новой статьи на сайте должен подписаться.

ПОДПИСКА НА РАССЫЛКУ

Статьи об онлайн курсах обучения

Дистанционное обучение
Обучение программированию
Проектирование информационных систем
 
Реклама. Информация о рекламодателе по ссылкам в статье.

brasm

Пенсионер с 33 - летним педагогическим стажем

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *