Отечественные языки программирования для учебных целей
Отечественные разработки
Наши программисты всегда были первопроходцами. С нелёгкой руки известного всему миру программиста Ульянова-Ленина вошли в обиход понятия «программа-минимум» и «программа-максимум». В 1916 году он написал «Военную программу пролетарской революции». Она была написана на языке Ада. А в следующем году этот проект был реализован на одной шестой части суши. На Западе язык Ада описали лишь шесть десятилетий спустя.
Из юмора советских программистов
К великому сожалению, отечественный след в истории кибернетики значительно скромнее, чем бы он мог быть. Особенно это касается и языков программирования. Единственный отечественный язык программирования, получивший общемировую известность, это язык Рефал. Однако распространённость этого языка весьма и весьма мала.
Ещё один след в истории оставил Александр Степанов, на идеях которого создана STL (библиотека стандартных шаблонов) для C++. Это библиотека повлияла и на развитие самого C++. Но сделал это Александр, будучи сотрудником «Hewlett Packard» и гражданином США.
Конечно, история создания языков программирования в нашей стране не исчерпывается перечисленным. Если полистать подшивки журнала «Программирование», то можно найти много интересных разработок. Но. «Их» Fortran, Lisp, Pascal, C, Ada (намеренно перечисляю «старые» языки программирования) живы и здравствуют, а вот «наши» Эпсилон, Эль-76 и другие забыты. На сегодняшний день в первой сотне рейтинга языков программирования — только Рефал, да и тот на весьма скромном месте.
Есть отечественные фирмы, занимающиеся разработкой компиляторов, но это компиляторы — для уже существующих языков (чаще всего это C++). Создавая компиляторы, они не создают языков! Из этого ряда выбивается фирма «1C», но это вообще отдельная тема. Никто не рискнул разработать свой язык и компилятор к нему. Исключение из этого правила в виде языков Kotlin, КуМир и Пифагор — небольшое утешение. Конечно, ситуация с новыми языками иная, чем 20-50 лет назад. Теперь языки «продвигают» (Java, C#), и для этого нужны солидные бюджеты.
Есть ряд энтузиастов, придумывающих новые языки программирования и разрабатывающих компиляторы. Это замечательно, но они это делают в свободное время, а несвободное время посвящено зарабатыванию хлеба. Такое хобби ещё никого не прокормило.
Новыя языки в нашем отечестве появляются, как минимум, ежегодно. Но нет ни одного, который бы имел хоть какой-то успех. Большое количество новых, но не развитых и никому не нужных языков не меняют положения дел. Было бы полезнее объединть усилия, сосредоточиться на одном языке. Пора количество созданных и невостребованных языков перевести в качество одного единственного. Для этого нужно организоваться, но что этому мешает? Вероятно, амбиции разработчиков и непонимание того, что в одиночку невозможно вывести свой язык на конкурентноспособный уровень.
Смотри так же:
Опубликовано: 2012.09.25, последняя правка: 2015.01.23 06:25
Учебный язык программирования
Уче́бный язык программи́рования — язык программирования, предназначенный для обучения. В качестве таковых разрабатывались такие языки как BASIC [1] и Паскаль [2] . Из разработанного для обучения языка ABC вырос Python [3] . Популярным языком, разработанным специально для образования является LOGO [4] . Специально для российских школ разработана языковая среда КуМир [5] . Набирает популярность созданный в Массачусетском технологическом институте язык визуального программирования Scratch и тому подобные среды программирования [6] .
Содержание
Требования к учебному языку программирования
Учебный язык должен обеспечивать простоту, ясность и удобочитаемость конструкций. Излишняя гибкость, «вседозволенность» синтаксиса может затруднить понимание программ. С этим связаны преимущества использования в образовательном процессе языков семейства Pascal перед Си-подобными языками. [7] [8]
При выборе языка программирования не играют роль такие факторы, как его новизна, эффективность реализации (в виде компилятора или интерпретатора). Фактор распространённости имеет как психологическое значение (влияя на мотивацию учащихся), так и практическое (востребованность получаемых знаний без необходимости переучивания) [9] .
Учебный язык программирования должен обеспечивать плавный переход от псевдокода к собственно программированию. Полезным в обучении может быть возможность использования национальной лексики для ключевых слов и идентификаторов [7] .
Альтернативой относительно трудоёмким для изучения комплексным языкам программирования общего назначения могут составить простые миниязыки, в которых, для наглядности, имеется графический исполнитель, вроде черепашки в Лого — первом и одном из самых известных таких языков. [10]
Языки разработанные для российской школы
Для преподавания элементов программирования в рамках курсов информатики было разработан ряд учебных языков программирования с русскими ключевыми словами. В группе академика А. П. Ершова был выработан подход с изучением двух языков программирования — более простого, предназначенного в основном для управления графическим исполнителем, и более продвинутого универсального. В качестве такой пары были разработаны языки Робик и Рапира. [11] Основными российскими образовательными языками являются:
- Робик (включает ряд графических исполнителей: Муравей, Маляр и др.)
- Рапира (предназначен для изучения после Робика)
- Школьный алгоритмический язык и его реализация Е-практикум
- КуМир (современный диалект школьного алгоритмического языка, включает графические исполнители Чертёжник и Робот)
Для начального обучения программированию могут также использоваться простые языки управления графическими исполнителями, такими как Кукарача в системе Роботландия или Кенгурёнок Ру [11] .
Бейсик
BASIC, англ. Beginner’s All-purpose Symbolic Instruction Code — стал в начале 60-х первым, получившем распространение языком программирования для обучения начинающих. Однако он получил резкую критику за несоответствие принципам структурного программирования и лёгкость создания спагетти-кода. Известно высказывание Эдсгера Дейкстры — «Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации». Под влиянием этой критики создатели Бейсика Джон Кемени и Томас Курц в 1975 расширили язык структурными средствами и отказались от практики использования GOTO. В 80-х годах они создали обновлённый вариант языка, названный True BASIC (англ.) русск. [12] . Современные распространённые диалекты Бейсика (QBasic, Visual Basic) имеют microsoftовское подтверждение, однако и они имеют мало общего с прародителем, являясь вполне современными структурными языками программирования [11] . Специально для целей обучения созданы следующие диалекты Бейсика.
- BASIC-256[13] довольно близкий к «классическому» бейсик [14] , созданный в ответ на статью Дэвида Брина «Почему Джонни не умеет программировать» [15] .
- Microsoft Small Basic[16] — своего рода Visual Basic .NET «для самых маленьких».
В школьное образование также внедряется «Visual Basic для Linux» Gambas [17] , Доступна бесплатная образовательная экспресс-версия Visual Basic .NET [18] .
Языки программирования в школе
Специфика обучения программированию в отечественных школах
Обучение программированию на уроках информатики в отечественных школах трудно назвать эффективным. Чаще всего дети заканчивают средние общеобразовательные учреждения с навыками, непригодными для практического применения. Причины этого следовало бы искать в образовательной реформе, проводившейся в середине 1980-х гг., когда в стране внедрялась программа преподавания информатики. Связаны они, как и многие изъяны отечественного образования, с чрезмерной зарегулированностью и инертностью составления учебных программ для обучения в школах: спущенные «сверху» концепции, пусть и прогрессивные для своего времени, надолго остаются руководством к действию, тогда как технологии, особенно информационные, меняются стремительно.
Рисунок 1. Урок программирования в 1980-х гг. Автор24 — интернет-биржа студенческих работ
Несмотря на то, что преподаватель информатики может «по своему вкусу» в широких пределах выбирать используемый на уроках материал (в том числе и для уроков программирования), на ЕГЭ перечень языков, по которым выпускники могут продемонстрировать свои знания, жестко регламентирован. В него входят:
Попробуй обратиться за помощью к преподавателям
- алгоритмический учебный язык;
- Паскаль (и его производные);
- Бейсик;
- Си.
Языки программирования применительно к учебному процессу
Паскаль
К достоинствам Паскаль можно отнести следующие:
- он действительно был создан Никлаусом Виртом для учебных целей (правда, было это в 1970 г. и с тех пор многое изменилось);
- существуют версии этого языка (TurboPascal, FreePascal), которые легко установить на персональный компьютер, причем эти программы находятся в свободном доступе, что немаловажно в условиях школы, где использование пиратского ПО недопустимо не только по юридическим, но и по этическим причинам.
Удобство оболочек TurboPascal, FreePascal заключается в также в том, что все действия по написанию, отладке, компиляции и запуску программы можно выполонять не выходя из единой программы. С другой стороны, следует учитывать, что консольный интерфейс (среда DOS), в котором работают эти версии Паскаля, устарел и мало похож на современные инструменты разработки. Альтернативой с полноценным графическим интерфейсом является пакет Lazarus, позволяющий программировать в среде, похожей на промышленную систему Delphi (правда, и ее трудно назвать соответствующей современным реалиям).
Задай вопрос специалистам и получи
ответ уже через 15 минут!
Язык Си
Си — универсальный язык, всегда востребованный на рынке. Однако преподаватели информатики чаще всего не владеют им. Они весьма консервативны и предпочитают давать материал, который, во-первых, сами изучили достаточно хорошо в педагогических вузах, где последствия засилья Паскаля также ощущаются, и который, во-вторых, не противоречит спускаемым сверху рекомендациям.
Программирование на Си в рамках школьного курса информатики сдерживает, помимо отсутствия специалистов, и то, что трудно подобрать подходящие для школьников инструменты. Несмотря на то, что существуют пригодные для написания программ на Си инструменты разработки (Eclipse, IntelliJ, Net Beans, Visual Studio), они сами по себе являются довольно сложными для освоения.
Следует учитывать, что редактор Sublime и среда разработки Visual Studio являются коммерческими продуктами, хотя и могут предоставляться бесплатно для персонального использования и в образовательных целях.
Выходом может стать сочетание простых редакторов кода (Notepad++, Sublime, Visual Code, Atom) и свободных компиляторов. Для Windows, например, существует свободно распространяемый пакет CygWin, включающий простые консольные инструменты для Си (компилятор, библиотеки и т.п.).
Рисунок 2. Редактор Notepad++. Автор24 — интернет-биржа студенческих работ
Бейсик
Несмотря на то, что время сверхпопулярности Бейсика давно прошло, он вполне может использоваться в качестве учебного языка программирования. Существует пакет FreeBasic, содержащий много примеров, и поддерживаемый в актуальном состоянии сообществом энтузиастов даже в наши дни (конец 2010-х гг.).
Язык КуМир
В некоторых школах на уроках программирования используется язык КуМир, ведущий свое происхождение от алгоритмического языка, разработанного еще в 1980-х гг. по методике основоположника отечественной школьной информатики академика А.П. Ершова. Этот язык переживает сейчас второе рождение. Пример программы:
Рисунок 3. Оболочка для разработки на языке КуМир. Автор24 — интернет-биржа студенческих работ
В 2019 г. НИИ системных исследований РАН запланировал развитие КуМир в качестве учебного языка.
Перспективы преподавания программирования в школе
Паскаль и Бейсик давно перестали быть языками, на которых пишут программы в сфере реального производства.
В будущем государственным органам для успешного воспитания передовых навыков программирования у школьников, следовало бы обратить внимание на следующие моменты:
- высокая динамика развития информационных технологий; пересматривать учебные программы по информатике следует, как минимум, ежегодно, в том числе особенно тщательно — в части, касающейся преподаваемых языков программирования;
- отказ от устаревших языков программирования;
- внедрение преподавания современных популярных языков (Python, JavaScript) для всех учащихся и более сложных (Swift, Go, C#, Java) для тех, кто планирует связать будущую профессиональную деятельность с информационными технологиями;
- обучение не только программированию, но и смежным технологиям: подключению необходимых библиотек, работе с системами управления версиями, устройству современных IDE и т.п.
Так и не нашли ответ
на свой вопрос?
Просто напиши с чем тебе
нужна помощь
Топ 7 языков программирования 2020
За последнее десятилетие множество языков программирования вышло в свет. Однако не все они одинаково хорошо прижились в мире разработки ПО. А некоторые, что неудивительно, и вовсе были быстро забыты. Итак, на пороге нового года хочется знать, что же лучше изучить, и где копать. Этот топ 7 языков программирования 2020 не стоит рассматривать как истину в последней инстанции. Это квинтэссенция различных рейтингов, результатов опросов и личного опыта. Что ж, приступим.
1. Java
Несмотря на наличие более молодых и амбициозных товарищей по цеху, Java все еще держит позиции. Кроме того, что на нем можно писать что угодно, он является одним из самых высокооплачиваемых языков программирования. При желании на Java можно создать и настольное приложение, и игру, и мобильное приложение. Согласно рейтингу TIOBE в ноябре 2019 года Java держал первые позиции.
- кроссплатформенность;
- множество фреймворков на любой вкус и цвет;
- относительная простота изучения.
- не слишком производителен, несмотря на все ухищрения JIT-компилятора;
- фреймворки достаточно громоздки и сложны.
2. JavaScript
Крайне трудно представить себе web-приложение или сайт без JavaScript. На сегодняшний день это самый популярный язык по опросу разработчиков Stack Overflow.
- огромнейшее сообщество, множество учебных пособий;
- можно запустить на любом компьютере, был бы браузер;
- тоже достаточно просто в освоении.
- крайне легко сделать ошибку из-за отсутствия проверки при компиляции и типов;
- код можно обфусцировать, но не скрыть.
3. Python
Продолжающий набирать обороты язык программирования. На змеином языке можно написать всё, что пожелает душа. Бонусом к тому, он полностью бесплатный и обладает множеством библиотек. Также сегодня Python часто преподается в учебных заведениях. И, как вишенка на торте, нейронные сети, ИИ, робототехника – для всего этого у Python есть библиотеки. Единственное, что крайне непривычно первое время – синтаксис и полное безразличие к всеми любимой точке с запятой.
- высокая скорость обработки;
- множество библиотек;
- доступность фактически на любой ОС.
- отсутствие привычных в ООП модификаторов доступа;
- непривычный синтаксис.
Плюсы по-прежнему являются той базой, которая служит начинающим программистам. Да, отстрелить себе пару пальцев или целую ногу на С++ проще простого. Однако это действительно очень мощный язык программирования, позволяющий создать любой программный продукт. Кроме того, если вы действительно хорошо знаете этот язык, у вас есть все шансы найти себя в Google или Facebook.
- большое сообщество;
- возможность создавать производительные и отказоустойчивые приложения;
- совместимость с железом.
- колоссальная легкость в отстреливании себе конечностей (сложность в изучении);
- множество сложных синтаксических конструкций.
Все еще достаточно молодой язык, продолжающий наращивать сообщество. По сути своей он построен на C и C++, однако более мягок к разработчикам. На нем так же можно писать фактически всё. А с недавних пор и кроссплатформенные приложения. Синтаксис чем-то напоминает Java, потому, зная один из этих языков, вы сможете относительно безболезненно изучить второй.
- простота в изучении;
- широкое сообщество и куча онлайн курсов;
- кроссплатформенность.
- слишком много синтаксического сахара порождает множество говнокодеров;
- достаточно просто дизассемблируется, то есть ваше приложение легко можно разобрать на запчасти и угнать.
6. PHP
Конечно, существует просто огромное количество шуток про PHP разработчиков. Но при этом количество сайтов, написанных с использованием PHP все еще велико. Сам язык продолжает развиваться и не теряет популярности.
- ходит легенда, что он прост в изучении;
- достаточно большое сообщество;
- множество учебных материалов.
- язык крайне узконаправлен;
- некоторые особенности при преобразованиях типов, формата 333 == ‘333foo’. (И не говорите, что это нормально!)
7. Swift
Еще один молодой язык. Если вы желаете разрабатывать приложения для Apple, Swift как раз то, что нужно. Это достаточно функциональный и практичный язык.
- простота в поддержке;
- бережное использование памяти.
- узкий профиль – основное направление на Apple.
Пара слов о выборе
Собственно, на этом и завершается наш топ языков на 2020 год. В принципе, эти языки будут пользоваться наибольшей популярностью еще не один год. Однако при выборе все же советую ориентироваться на свой вкус или на вкус организации, куда бы вы хотели попасть. Но это уже немного другая история. Главное, не забывайте, что язык — это в первую очередь инструмент. И не пытайтесь менять лампочку при помощи молотка.
Не забудьте поставить лайк и подписаться на канал. Впереди вас ожидает еще много интересного! Кроме того, рекомендую прочитать статью: ТОП-10 навыков, необходимых программисту для работы . А также подписывайтесь на мою группу ВКонтакте, Telegram и YouTube-канал . Там еще больше полезного и интересного для программистов.
Какой язык программирования нужно изучать первым?
Меня часто спрашивают: «Какой язык программирования нужно знать?» Этот вопрос неверный. Профессиональному программисту одного языка программирования точно не хватит. Их надо знать несколько. Поэтому правильный вопрос: «С какого языка начать?» На этот вопрос ответить очень легко, потому что в качестве языка для начинающих сейчас остался только один.
Лет тридцать назад в качестве языка для начинающих фигурировало несколько языков:
- Фортран (я сам с него начинал)
- Бейсик (любимый язык Билла Гейтса)
- Паскаль (любимый язык студентов, в нем мало правил и нет исключений)
Кроме того, в разное время для новичков рекомендовались такие экзотические языки как: Пролог, Лисп и Ада.
Что же мы имеем сейчас? Несмотря на то, что были разработаны сотни языков программирования, есть устойчивая тенденция к сокращению числа используемых языков. Случился естественный отбор. Выжили те языки, которые максимально приближены к используемым технологиям. Более того, как только уходит технология, то вместе с ней и пропадает интерес к языку. Например, как только пропал интерес к экспертным системам, так тут же пропал интерес и к языку Пролог. И наоборот, сейчас в качестве основной технологии автоматизации бухучета является программный комплекс 1С. Поэтому программисты для 1С весьма востребованы.
Сейчас есть несколько популярных технологий и для каждой технологии есть всего два-три языка, которыми пользуется большинство. Чуть позже мы их рассмотрим, но сначала ответим на главный вопрос: с какого же языка нужно начать?
Это вопрос серьезный, потому что изучение языка — весьма трудоемкое дело. Обидно, если усилия будут потрачены впустую. Гораздо лучше так спланировать процесс обучения программированию, чтобы одновременно и стать востребованным специалистом, и быть уверенным в том, что знания не устареют через несколько лет.
Я уже писал о рейтинге языков программирования. В разных рейтингах лидеры разные, но в первой пятерке неизменно оказываются: Java, C, Python, C++, C#.
С какого же начать? Выбор очевиден — это язык Си. Почему?
1. Си — это универсальный язык
Язык Си создавался практиками. Их не очень интересовало, как красиво и правильно выстроить модель языка. Их интересовал только результат. Поэтому на языке Си можно написать все, что угодно. Как следствие, в языке Си много исключений и нестыковок. Именно поэтому университетский профессор Никлаус Вирт решил разработать язык Паскаль, в котором нет никаких исключений и все очень логично.
Паскаль — этот отличный язык. Но только в теории. А на практике программисту приходится сталкиваться с такими задачами, что предусмотреть все нельзя. Поэтому в язык Си добавлялись все новые и новые возможности. Сейчас на языке Си можно закодить все: от программ для встроенных систем до софта для суперкомпьютеров.
Таким, образом, если вы знаете язык Си, то ваши возможности как программиста ничем не ограничены. Практически для всех платформ существуют компиляторы языка Си. Садись и работай.
2. На языке Си написаны большинство операционных систем
Сам язык Си был разработан для операционной системы UNIX. Позднее на языке Си были написаны операционные системы Windows, Linux и Mac OS.
На ядре UNIX работает почти весь Интернет. Веб-серверы также написаны на языке C.
Все это говорит о том, что знание языка Си в ближайшем будущем точно не устареет. Если вы знаете Си, то всегда сможете найти работу системного программиста.
3. На языке Си написаны большинство популярных языков программирования
Это очень интересная история. Много раз язык Си объявляли «устаревшим», а поэтому на базе него пытались создать что-то более грандиозное.
Другой университетский профессор — Бьёрн Страуструп написал язык C++. Но по факту получилось, что он только добавил в к языку Си так называемое объектно-ориентированное программирование (ООП). Заменить язык Си ему не удалось. Эти два языка стали развиваться параллельно.
Другую попытку сделал Брэд Кокс, который создал язык Objective-C. Этот язык используется в качестве основного языка программирования в корпорации Apple.
Следующей попыткой заменить Си стала компания Sun Microsystems. Она поставила задачу сделать язык программирования, похожий на C++, но при этом этот язык должен был стать универсальным. Так появился язык Java. Он предназначен для работы на виртуальной Java-машине. Главный недостаток этого языка в том, что он существенно медленнее языка Си.
В ответ на технологию Java компания Microsoft запустила свою собственную технологию .NET и разработала для нее язык C#.
Как видите, все эти языки и находятся сейчас в топе рейтингов языков программирования.
Но они все используют ядро чистого Си. Поэтому как только вы выучите Си, то вы уже наполовину выучили C++, C#, Objective-C и Java.
Также на языке Си написаны популярные языки PHP, Javascript и Python. То есть лучший старт для изучения всех популярных языков — это сначала выучить язык Си.
4. Для языка Си существует множество материалов
В силу популярности языка Си для него написаны горы документации: книги, статьи, обучающие курсы, исходные тексты.
Для языка Си написаны множество библиотек, редакторов, компиляторов, отладчиков, профайлеров.
Вы можете с легкостью найти исходные тексты с примерами.
Все это значит, что никаких проблем с изучением Си у вас не будет. Что нельзя сказать о новых и модных языках.
5. Какие еще языки нужно знать программисту?
Как я сказал вначале, современное программирование крутится вокруг определенных технологий. Рассмотрим наиболее популярные.
Если вы пишете прикладные программы, то с большой вероятностью вам нужно будет получать информации из базы данных. Поэтому вам нужно знать язык запросов SQL.
Если вы пишете для Интернета, то вам будут нужны знания языков разметки, а также серверных и клиентских языков.
Языки разметки: HTML, XML, CSS.
Серверные языки: PHP, Java, C#, Python.
Клиентские языки: Javascript, VBScript, ActionScript (хотя последние два уже устаревают).
Для разработки мобильных приложений используются: HTML5, Java, Swift.