Что такое языковая платформа
Самые эффективные сервисы онлайн-уроков для учеников и преподавателей: пятерка лучших
Дистанционное обучение сейчас по всем нам понятным причинам становится все популярнее. И если многие читатели Хабра знают о разного рода курсах по цифровым специальностям — разработке ПО, дизайну, продакт-менеджменту и т.п., то вот с уроками для подрастающего поколения ситуация немного иная. Сервисов для онлайн-уроков много, но что выбрать?
В феврале я оценивал разные платформы, и сейчас решил рассказать о тех из них, что мне (да и не только мне, но и детям) понравились больше всего. В подборке — пять сервисов, если у вас есть, что добавить, то расскажите о них в комментариях, изучим.
Uchi.ru
Что умеет. Эта платформа позволяет детям самостоятельно изучать в интерактивной форме такие предметы, как математика, русский и английский языки, биология, природоведение, география. Есть, кстати, и программирование — мой ребенок опробовал этот раздел и ему очень понравилось.
Если ученик допускает ошибку, система его мягко поправляет, предлагает уточняющие вопросы. Платформа персонализированная, она подстраивается под учащихся, так что если кому-то нужно больше времени для изучения какой-то темы, а кому-то — меньше, все это будет учтено.
Есть персонализированный помощник — интерактивный дракончик. Во многом благодаря ему ребенок не относится к платформе, как к «сервису уроков».
Что нужно для начала работы? Только ПК, ноутбук, планшет и интернет. Смартфон тоже подходит, но, по моему мнению, он не подходят для некоторых видов активностей.
Подходит платформа как для индивидуальных занятий, так и для онлайн-обучения в школе — многие учителя используют задания Uchi.ru.
Достоинства. Дает возможность осваивать материал в игровой форме, включая программирование. Даже сложные темы интересно объясняются. Задания хорошо структурированы и распределены по возрасту/классам. Есть персонализация.
Недостатки. Почти нет. Встречал мнения, что недостатком является платность сервиса (есть и бесплатная версия, но она очень урезанная, это, скорее лишь возможность протестировать платформу). Но это явно не недостаток — за хорошие продукты в мире победившего капитализма принято платить, верно?
Сколько стоит. Оплата за разные курсы и занятия разные. Для примера возьму обучение английскому с преподавателем. 8 занятий, каждое по полчаса, обойдутся семье в 8560 рублей. Чем больше занятий, тем меньше стоимость одного урока. Так, если взять обучение сразу на полгода, то один урок стоит 720 рублей, если взять 8 уроков, то цена одного — 1070.
Яндекс.Школа
Что умеет. Это бесплатная онлайн-школа, запущенная «Яндексом» вместе с Центром педагогического мастерства департамента образования и науки Москвы. Обучение ведется с 9 до 14 часов, как в обычной школе. Платформа предлагает видеоуроки по более чем 15 предметам школьной программы, включая физику и МКХ. Есть и дополнительные занятия для подготовки к ОГЭ и ЕГЭ.
Для учителей есть специальная платформа для онлайн-трансляций уроков и возможность задавать «домашку» для младших классов, причем с функцией автоматической проверки.
Еще Яндекс.Школа проводит интенсивы по разным предметам, научно-популярные лекции и многое другое — все это транслируется в онлайне. Моему ребенку научно-популярные лекции зашли очень хорошо, бывают моменты, когда просто не оторвать.
Что нужно для начала работы. Интернет, устройство, подключенное к нему и учетная запись «Яндекса». Если просто смотреть трансляцию уроков, то вроде и она не нужна.
Достоинства. Хороший подбор материалов. Так, учителям и родителям доступны несколько тысяч готовых заданий по трем предметам — русскому языку, математике, окружающему миру и некоторым другим темам. Несомненное достоинство для родителей — бесплатность платформы.
Недостатки. Охват тем пока не самый большой, но он постепенно пополняется. В принципе, ресурс бесплатный, так что требовать универсальности от него не стоит — то, что есть, сделано очень хорошо.
Сколько стоит. Бесплатно, то есть даром.
Gooogle «Учим из дома»
Что умеет. Совместный проект Google и Института ЮНЕСКО по информационным технологиям в образовании представляет собой платформу для проведения онлайн-уроков. Насколько я понял, здесь нет заготовленных заранее тем, платформа предназначена именно для проведения уроков в онлайне.
При помощи платформы учителя могут создавать сайты для своего класса по необходимым предметам, загружать туда разные учебные материалы и онлайн-курсы. Урок можно просмотреть олайн в режиме реального времени или в записи.
Учителя могут проводить индивидуальные консультации с учениками онлайн, работая с виртуальной доской — на ней можно писать необходимые графики и формулы. А еще учителя могут пить виртуальный кофе друг с другом.
Сервис интегрирован с другими сервисами Google, включая Docs, G Suite, Hangouts Meet и другими.
Что нужно для начала работы? Учетная запись Google и, как в предыдущих случаях, интернет и устройство для просмотра онлайн-видео.
Достоинства. Во-первых, инструмент бесплатный. Его разработали для работы учителей в период коронавируса. Во-вторых, это действительно отличная платформа для проведения уроков в онлайн-режиме.
Недостатки. Их тоже не очень много. Платформа отлично справляется с задачей, для которой ее создавали. Да, нет заранее приготовленных тем, но их и не обещали.
Сколько стоит. Бесплатно.
Foxford
Что умеет. Платформа несколько отличается от тех, что описаны выше. Позиционируется сервис как возможность улучшить оценки и подготовиться к ЕГЭ, ОГЭ и олимпиадам. Программы курсов разделены на несколько уровней, включая базовый, экзаменационный, углубленный и олимпиадный. Каждый состоит примерно из 30 уроков, они проходят раз в неделю по 2-3 академических часа.
Есть курсы по большому тем, доступны репетиторы, подборки тем, тесты и олимпиадные занятия по физике, русскому и английскому языку, биологии, химии, информатике, обществознанию и истории. Есть учебник, по которому можно готовиться самостоятельно. О сервисе можно судить по самым популярным предметам. На момент написания обзора это были суперинтенсивы ЕГЭ по математике, физике, русскому языку и обществознанию.
Индивидуальные уроки проводятся по скайпу, групповые — в форме онлайн-трансляций. Общаться с учителем можно через чат.
Что нужно для начала работы? Боюсь повториться, но нужны интернет, гаджет и учетка сервиса.
Достоинства. Материалы хорошо подготовлены, учат здесь преподаватели лучших вузов страны, включая МФТИ, ВШЭ, МГУ. Преподавателя может выбрать сам ученик. По статистике самой платформы, результаты студентов курсов на выпускных экзаменах на 30 баллов выше средних по стране.
Недостатки. Почти нет, как и во всех предыдущих случаях. Да, есть какие-то мелкие недоработки, но глобальных недостатков я не выявил.
Сколько стоит? Система ценообразования достаточно сложная, так что платформа предлагает персональное обсуждение цен с менеджерами.
Тьютор.Класс
Что умеет. Сервис отличается от тех, что были описаны выше. Это, в первую очередь, инструмент для преподавателей, который могут использовать учителя, лекторы университетов, репетиторы, коучи и т.п. В качестве примера можно привести репетитора, который лишь собирается начать работу. Для старта он разрабатывает программу, регистрируется на сервисе и набирает учеников.
Сервис предлагает участникам обычный школьный кабинет, только виртуальный и с рядом цифровых инструментов. Это доска, редактор формул, редактор геометрических фигур. Есть онлайн-тестирование, которое позволяет преподавателям проверить знания учеников, не подключая дополнительно “Google формы” или другие подобные инструменты.
Учитель может во время урока прямо в системе включить видео с YouTube или запустить презентацию. В любой момент изображение можно остановить и выделять на нем необходимые детали, как и в режиме обычной онлайн-доски.
Для общения разработан чат, причем кроме текстового общения, как во многих сервисах, указанных выше, есть возможность «поднять руку», «говорить погромче» и т.п. А еще разработчики добавили возможность проведения видеоконференций. Все, как в обычном классе. Вопросы для удобства учителя передаются в отдельный раздел. Предусмотрен и редактор кода — для тех учителей, кто преподает программирование.
При желании учитель может записать урок и выложить его на платформе или в другом месте. Отдельного упоминания заслуживает возможность проведения уроков с оффлайн- и онлайн-школами.
Что нужно для начала работы? Вы уже знаете и так — интернет, гаджет и браузер.
Достоинства. Для обучающихся плюс — виртуальный кабинет, в котором есть все, необходимое для занятий. Для преподавателей это и возможность получить тот же кабинет для преподавания, плюс сервис подбора учеников, плюс фиксированная оплата. Почти все сервисы онлайн-уроков берут с преподавателей комиссию в процентах — т.е. 20% или даже 50% от суммы, полученной с ученика. У «Тьютор.Класс» предусмотрено четыре вида тарифов — 399, 560, 830 и 1200 рублей в месяц. Чем больше вместимость онлайн-комнаты необходима, тем выше ценник.
Недостатки. Их и здесь особо нет. Критические проблемы не замечены, да и мелких не особо много. Иногда случаются сбои из-за большой нагрузки на серверы, но так сейчас везде.
Сколько стоит? Как и говорилось выше, для преподавателей это 399, 560, 830 и 1200 рублей в месяц в зависимости от нагрузки.
Так что же выбрать?
Я постарался включить в подборку разные сервисы с разной “специализацией”, фокусировании на разных задачах. Для детей младшего возраста очень советую Учи.ру. Для тех, кто постарше — Foxford. Ну а для преподавателей — «Тьютор.Класс».
Конечно, выбор несколько субъективный, так что пишите в комментариях, что используете вы, и обсудим.
Что выбирать язык или платформу программирования?
Что такое платформа программирования?
Язык и платформа программирования это важнейшие две составляющие процесса разработки программы. Программы нуждаются в выполнении, для этого им необходима платформа(среда) для исполнения. Среда выполнения загружает файлы программы, обеспечивает доступ к памяти и другим системным ресурсам для их запуска. Программа, написанная на определенном языке программирования может выполняться на (или предназначаться для) различных платформах. При этом различают аппаратную(компьютерную) и программную платформы.
Аппаратная или компьютерная платформа — в общем смысле, это аппаратная среда выполнения, в которой должен выполняться фрагмент программного обеспечения или объектный модуль с учётом накладываемых этой средой ограничений и предоставляемых возможностей. Основой этой платформы является разрядность процессора и регистров, объем оперативной и постоянной памяти и т.п.
Программная платформа представляет собой общую организацию исполнения прикладных программ, задавая, например, порядок запуска программы, схему использования ею адресного пространства, зафиксированные в архитектуре операционной системы плюс API на уровне операционной системы. Основой этой платформы на самом низком уровне является система команд процессора.
Примечание. Часто понятие программная платформа относится не к области выполнения, а к области разработки программы. Например, программная платформа это совокупность программных решений и технологий, позволяющая осуществлять разработку и/или производство программных продуктов в определенной предметной области методом компоновки и настройки уже готовых модулей и модулей, специально разработанных в целях расширения функционала и включаемых затем в платформу.
Таким образом, платформа программирования включает в себя:
Кроме того термин платформа может применяться к разным уровням абстракции, включая определенную аппаратную архитектуру, операционную систему или библиотеку времени выполнения.
Совокупность аппаратной и программной платформ составляет единую среду выполнения программы. Как только программа запущена, она находится в состоянии выполнения. В этом состоянии программа может отправлять инструкции процессору компьютера и получать доступ к памяти компьютера (RAM) и другим системным ресурсам. Такое состояние программы принято называть процессом.
Процесс имеет виртуальное адресное пространство, исполняемый код, открытые дескрипторы системных объектов, контекст безопасности, уникальный идентификатор процесса, переменные среды, класс приоритета, минимальный и максимальный размеры рабочего набора и по крайней мере один поток выполнения. Каждый процесс запускается с одного потока, часто называемого основным потоком, но может создавать дополнительные потоки из любого из своих потоков.
Таким образом, платформа(система времени выполнения, среда выполнения)-это программное обеспечение, предназначенное для поддержки выполнения компьютерных программ, написанных на некотором компьютерном языке. Система времени выполнения содержит реализации базовых команд низкого уровня, а также может реализовывать команды более высокого уровня и может поддерживать проверку типов, отладку и даже генерацию и оптимизацию кода. Некоторые службы системы времени выполнения доступны программисту через интерфейс прикладного программирования, но другие службы (такие как планирование задач и управление ресурсами) могут быть недоступны.
Что важнее на практике язык программирования или среда выполнения программы(платформа), что больше оказывает влияние на качество программы? Ответ на этот вопрос не является тривиальным, потому что они не только взаимообусловленны, но и каждый по своему оказывают существенное влияние на качество программы. Однако существуют ситуации, когда возникает вопрос — язык или платформа программирования?
Программистам — новичкам не обязательно знать в какой программно-аппаратной среде выполняются их программы, ибо за них все решает инструментальная среда программирования. Для них важно правильно выбрать язык программирования. Опытные же программисты, обычно, не спрашивают друг друга — на каком языке ты программируешь, они спрашивают – с каким компилятором или в какой библиотеке ты работаешь? Поэтому для бывалых программистов важным вопросом является — что выбирать язык или платформу программирования? И зачастую ответом на этот вопрос звучит то, что правильно выбирать не Язык, а Платформу.
Это связано с тем, что не всегда качество языка играет решающую роль. Например, сложный язык Java не был бы хорошим языком с момента его создания, если бы не появилась виртуальная машина(платформа), которая оказалась настоящим прорывом для своего времени. Именно она вывела язык Java в самый популярный язык. Другой пример, платформа dotNet Framework также сделала популярным язык программирования C#, иначе он мог бы так и остаться простым совершенствованием С+.
Таким образом, коротко платформа это среда выполнения программы. И чтобы ответить на вопрос что выбирать язык или платформу программирования рассмотрим эти понятия более подробно. Прежде всего, рассмотрим программные средства платформы программирования.
Программные средства платформы программирования
К программным средствам платформы относится совокупность некоторых базовых библиотек, используемых при работе приложений в конкретной операционной системе, имеющих свой программный интерфейс API, с помощью которого эти библиотеки используются при разработке программ. Это, прежде всего библиотеки классов, на основе которых могут создаваться и выполняться объекты.
Выбор платформы близок по существу к выбору языка программирования по профессии. Потому что платформы создаются и поддерживаются крупными корпорациями. Практически все известные вам IT корпорации продвигают свои и языки и платформы программирования. Microsoft: dotNet, IBM, Oracle: Java VM. И тогда вопроса — язык или платформа программирования нет.
В прошлом, большинство программ использовали операционную систему (ОС) в качестве среды выполнения. Программы запускались на любом компьютере, но для доступа к ресурсам полагались на параметры операционной системы. Ресурсами выступали память, программные файлы и зависимости. В свое время именно среда выполнения Java изменила все это, по крайней мере, для Java-программ. Вопроса что важнее язык или платформа программирования практически не возникало.
Платформы программирования на языке Java
Основой платформы программирования для языка Java является виртуальная машина. Среда времени выполнения Java –программ позволяет запускать программу в любом месте и в любое время, где существует виртуальная Java-машина. Эта способность Java исполнять свой код на любой из поддерживаемых платформ достигается тем, что ее программы транслируются в некое промежуточное представление, называемое байт-кодом (bytecode).
Байт-код, в свою очередь, может интерпретироваться в любой системе, в которой есть среда времени выполнения Java. Несмотря на то, что в Java используется интерпретатор, байт-код легко переводится непосредственно в “родные” машинные коды (Just In Time compilers) “на лету”. При этом достигается очень высокая производительность (Symantec JIT встроен в Netscape Navigator).
Для языка Java существуют несколько редакций платформы, позволяющие разработчикам приложений, поставщикам услуг и производителям аппаратного обеспечения создавать решения, отвечающих требованиям конкретных групп пользователей. Рассмотрим их по порядку.
Редакция Java Platform, Standard Edition(Java SE) включает большое количество библиотек классов, необходимых для создания различного рода приложений от Java-приложений для настольных компьютеров до серверных Java-приложений, а также разрабатывать встроенное программное обеспечение и программы для систем реального времени и Web-сервисов и т.д.
Используя платформу программирования Java SE, Вы можете создавать и развертывать Java-приложения для настольных компьютеров и серверов, а также разрабатывать встроенное программное обеспечение и программы для систем реального времени. Редакция Java SE включает классы, необходимые для создания Web-сервисов, и базовые компоненты Java EE (Java Platform, Enterprise Edition). Среди версией платформы Java SE в недалеком прошлом применялись Java SE 5 или «Тигр», Java SE 6, также известная как «Мустанг». Текущей версией платформы Java SE является Java SE 11, которая в течение года стала достаточно популярной.
Следующей редакцией платформы является Java EE (Java Platform, Enterprise Edition). Эта корпоративная версия платформы программирования помогает разработчикам создавать и развертывать переносимые, надежные, масштабируемые и безопасные серверные приложения на Java. Развивая возможности Java SE, Java EE предоставляет API Web-сервисов, компонентных моделей, удаленного взаимодействия и управления для реализации корпоративного программного обеспечения по принципам сервис — ориентированной архитектуры(SOA) и Web 2.0.
Мобильной версией платформы программирования на языке Java является Java ME (Java Platform, Micro Edition). Java ME предоставляет среду для выполнения приложений, созданных для широкого круга мобильных и встроенных систем, например мобильных телефонов, карманных компьютеров, телевизионных приставок и принтеров. Эта редакция платформы предоставляет средства создания гибких пользовательских интерфейсов, надежную модель обеспечения безопасности, полный спектр встроенных сетевых протоколов, а также мощную поддержку сетевых и оффлайновых динамически загружаемых приложений. Приложения, базирующиеся на спецификациях Java ME, могут быть запущены на множестве устройств и при этом способны эффективно задействовать их системные возможности.
Для создания функционально насыщенных приложений на скриптовых языках можно использовать JavaFX Script, работающую поверх платформы Java SE 6 и служащую для упрощения программирования сложных пользовательских интерфейсов. JavaFX работает на основеJava. На платформе JavaFX разработчики могут создавать и развертывать полнофункциональные интернет-приложения (RIA), одинаково стабильно функционирующие на различных платформах. JavaFX расширяет возможности Java, позволяя разработчикам использовать любые библиотеки Java в приложениях JavaFX. Разработчики могут расширить свои возможности в Java и воспользоваться технологией презентаций, обеспечиваемой JavaFX для создания увлекательных визуальных образов.
Платформа программирования dotNet Framework
В 2002 г. компания Microsoft создала новую платформу разработки и выполнения программ dotNET Framework. Платформа dotNet Framework предоставила новый подход к созданию и выполнению прикладных программ (приложений). Она является полностью объектно-ориентированной и позволяет использовать уже имеющиеся типы данных и создавать новые. В dotNET под термином «тип» понимаются: классы, структуры, перечисления и другие формы данных. Платформа dotNET позволяет разрабатывать компоненты (называемые сборками), которые предоставляют другим компонентам (возможно, написанным на других языках) доступ к описанным в них типам.
Основными компонентами платформы dotNET являются:
Взаимосвязи компонентов платформы программирования dotNET Framework с концептуальной точки зрения показаны на рисунке.
При этом следует отметить, что данная платформа активно развивается и с 2013 г. уже используется версия dotNET Framework 4.5.1. Платформа dotNET Framework позволяет также писать оконные приложения нового поколения — WPF. Эта технология позволит по — новому взглянуть на формы Windows, которые напоминают больше HTML-страницу, чем прежние WindowsForms, благодаря DirectX. Так как Windows полностью пропитана dotNet Framework, то разработчик dotNET может работать также и с сервером на Windows — благодаря ASP.NET. В паре с Silverlight — можно создавать проекты практически любой сложности.
Однако надо иметь в виду, что в dotNET все созданные приложения очень сильно привязаны к Microsoft Windows — одна операционная среда(ОС) и одна среда разработки IDE. Чего не скажешь о Java SE.
На конференции Build 2020 Microsoft анонсировала платформу для разработки Project Reunion, которая призвана упростить разработку приложений для Windows 10, в частности UWP-приложений. Новая платформа должна объединить программные интерфейсы Win32 и Universal Windows Platform и сохранить обратную совместимость. Структура Project Reunion показана на рисунке.
Один из компонентов Project Reunion — нативная библиотека интерфейса WinUI 3, с помощью которой приложение будет корректно адаптироваться и масштабироваться в зависимости от устройства. Также в состав Project Reunion включен компонент WebView2 — с его помощью любое приложение Windows будет поддерживать веб-контент через встроенный Microsoft Edge и Chromium.
Выбор среди программных платформ
Если возникает ситуация, когда ответ на вопрос — язык или платформа программирования, склоняется в сторону платформы, то естественно приходится делать выбор среди платформ. Чтобы выбрать платформу программирования и далее соответствующий ей язык, необходимо определиться с критериями, о которых шла речь выше, и сделать правильный выбор — язык или платформа программирования, если платформу, то какую.
Учитывая то, что Java SE и dotNET это две ведущие, можно сказать конкурирующие, современные платформы создания и исполнения разнообразных приложений, то выбирать чаще всего приходится их них двоих. Неправильного выбора бояться не надо. Переучиться с одной платформы на другую не так уж сложно. Более того программист, владеющий особенностями обоих платформ будет востребован больше.
Аналогично и с языком программирования. Например, язык C#, являющийся основным в dotNET, ничуть не труднее Java, а если Вы знакомы с C-подобным синтаксисом, то с легкостью освоите любой из этих языков программирования на платформе dotNet Framework и JavaVM.
Роль аппаратных средств платформы программирования
Для бывалых программистов важным является то, что кроме программных средств в среде выполнения необходимо учитывать и особенности построения аппаратной части платформы, оказывающей влияние на программирование.
К основным аппаратным средствам платформы программирования относится нижний слой многоуровневой организации вычислительной системы (аппаратура, операционная система, прикладное программное обеспечение), на который опираются ОС и прикладное ПО. Аппаратные платформы отличаются друг от друга архитектурой центрального процессора и используемыми шинами связи функциональных блоков. Каждой аппаратной платформе соответствуют совместимые с ней операционные системы и прикладные программы, которые могут на ней запускаться.
Основная программно-аппаратная платформа, на которой работают операционные системы фирмы Microsof, — компьютеры с архитектурой IBM PC. Именно их архитектура и определяет особенности построения аппаратной платформы среды выполнения программ.
История развития платформ от компании Microsoft началась с Microsoft COM, затем MS DOS, далее появилась Win16, затем Win32, сейчас все аппаратные средства ориентированы на Win64. С точки зрения архитектуры, данные системы имеют достаточно сильные отличия. Отличия обусловлены разрядностью используемых типов данных, указателей и форматов исполняемого файла. Основным отличительным фактором является формат исполняемого файла(программы в машинном коде). К настоящему времени известно о четырех форматах исполняемых файлов.
COM — формат исполняемого файла
Разработанный фирмой Microsoft COM-формат исполняемых файлов для компьютеров на базе 8-разрядных микропроцессоров мог применяться лишь для небольших программ. Одной из отличительных характеристик этих микропроцессоров была поддержка размера оперативной памяти не более 64 Кбайт. Таким образом, размер программы, выполняющейся на компьютере с 8-разрядным микропроцессором, изначально был ограничен его архитектурой. А с учетом того, что некоторая часть оперативной памяти отводилась для программ операционной системы, — реальный размер программы был еще меньше. COM-формат поддерживался операционной системой CP/M фирмы Digital Research и показал свою эффективность.
MZ — формат исполняемого файла
С появлением 16-разрядного микропроцессора фирмы Intel, возникла необходимость в операционной системе, которая в полной мере использовала бы его возможности. Фирма Microsoft разработала операционную систему MS-DOS. Для MS-DOS, поддерживающей сегментную организацию программы, был разработан специальный формат исполняемых файлов — MZ-формат. С точки зрения структуры, файл MZ-формата имеет три части: заголовок, таблицу размещения и программный код.
NE — формат исполняемого файла
Со временем был спроектирован для использования в программах специальный программный интерфейс API (Application Programming Interfaces): Windows API для операционной системы Windows, POSIX для различных UNIX-подобных операционных систем и т. д., с помощью которого был реализован наиболее близкий к системе способ взаимодействия с ней из прикладных программ пользователей.
Первым был программный интерфейс Win16 API это первая версия Windows API для 16-разрядных ОС типа Windows. Для Win16 был разработан новый NE-формат (New Executeable code file) исполняемого файла. Исполняемый файл NE-формата состоит из двух исполняемых файлов: исполняемый файл MZ-формата и исполняемый файл NE-формата. Этот формат долгое время полностью обеспечивал потребности 16-разрядной платформы Win16, хотя и имел ряд недостатков.
PE — формат исполняемого файла
С появлением 32-разрядных операционных систем фирма Microsoft разработала новый Win32 API и для него специальный формат исполняемого файла. Он получил название переносимый формат исполняемого файла (PE — Portable Executable). Это единый формат исполняемого файла, впервые реализованный в операционной системе Windows NT, выполнялся на различных аппаратных платформах, что, конечно, не означало совместимости на уровне машинных команд. Информация в PE-файле является, в основном, высокоуровневой и используется системой или приложениями, чтобы определить правила обращения с конкретным исполняемым файлом.
Основными особенностями данного формата являются: простота загрузки файла PE-формата; поддержка сплошной модели памяти; использование относительных адресов памяти, равных смещению от начала PE-файла — физическому адресу памяти, с которого начинается загруженный в память модуль. Одним из главных преимуществ плоской модели памяти, использующей 32-разрядные указатели, является возможность создания сегментов объемом до 4 Гбайт.
Сегодня повсеместно применяется Win 64 — код, который объединяет в себе основные возможности 32-разрядного кода и изменения, связанные с повышением разрядности. В распоряжении программиста оказываются: 64-разрядные типы данных, указатели и интерфейс Win64 API. Старые 32-разрядные типы данных не исчезли при повышении разрядности платформы (как было с 16-разрядными типами данных при переходе к Win32). Win64 допускает использование и 32-, и 64-разрядных данных. Новые 64-разрядные указатели обеспечивают возможность адресации до 16 Тбайт памяти (1 Тбайт = 1024 Мбайт). Современными бизнес-приложениями этот объем вполне востребован. Функции в Win64 API претерпели незначительные изменения.
Использовать особенности построения различных программных интерфейсов и аппаратных платформ могут только опытные программисты, хорошо владеющие операциями с указателями. Для многих программистов достаточно уметь использовать возможности программных средств платформы.
Таким образом, при создании приложения для компьютеров под управлением установленной операционной системы, сначала нужно принять решение о том, какая платформа приложений будет использоваться. Так, например, операционная система Windows предоставляет четыре основные платформы приложений, каждая из которых имеет свои преимущества:
Примечание. В цитируемой статье приводятся сведения и о других современных платформах, которые могут выполняться в Windows 10, а также могут работать на iOS и Android. Каждая из этих платформ содержит полнофункциональную инфраструктуру и набор элементов управления пользовательского интерфейса.
Заключение
Чтобы ответить на вопрос что важнее язык или платформа программирования, необходимо получить некоторый опыт программирования на различных языках и платформах. Чаще всего язык и платформа программирования это основа среды исполнения и они не разрывны.
Однако, если требуется создание многофункциональных и эффективных приложений для мобильных телефонов, удаленных процессоров, микроконтроллеров, беспроводных модулей, датчиков, шлюзов, потребительских продуктов и практически любых других категорий электронных устройств, то не заменимым средством является платформа языка Java.
Платформа Java также является основой практически для всех типов сетевых приложений и всеобщим стандартом для разработки и распространения встроенных и мобильных приложений, игр, веб-контента и корпоративного программного обеспечения. На платформе Java можно разрабатывать высокопроизводительные портативные приложения практически на всех компьютерных платформах.
Если необходимо писать достаточно сложные приложения под Windows, то на сегодняшний день рекомендуется dotNET Framework. Эта платформа позволяет писать приложения, взаимодействующие с другими аналогичными приложениями и технологиями, достаточно легким способом.
Основные компоненты платформы специальная виртуальная машина (общеязыковая исполняющая среда, Common Language Runtime, CLR), которая управляет компиляцией команд промежуточного языка в инструкции конкретного процессора и общая библиотека классов dotNET Framework (Framework Class Library, FCL), которые реализуют все базовые функции управляемых приложений, сделали ее достаточно простой в использовании и достаточно эффективной в разработках.
Чтобы стать высококлассным программистом на современных алгоритмических языках целесообразно хорошо знать не только языки, но и платформы программирования. Изучение платформ программирования можно осуществлять на курсах по программированию Среди курсов с высоким рейтингом можно выделить курсы онлайн-университетов Skillbox и GeekBrains.
Широко известный онлайн-университет Skillbox является одним из лидеров в сфере дистанционного обучения программированию, включая и изучение платформ программирования для алгоритмических языков Python, Java, C++, C#. По окончанию обучения на некоторых гарантируется трудоустройство. Это тоже важно на сегодняшний день.
На образовательном IT-портале GeekBrains и Mail.Ru Group имеется первый в России онлайн-университет GeekBrains, который по популярности незначительно уступает онлайн-университету Skillbox, а в кое в чем может и опережает его. На этом портале также можно найти различные программы обучения по многим IT-направлениям, включая как платные, так и бесплатные курсы программирования на аналогичных алгоритмических и скриптовых языках.
Вот и все. Удачи при выборе языка или платформы программирования.