Самый первый язык программирования. Первые языки программирования

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

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

К первооткрывателям среди языков программирования относится Фортран - это сокращённое сочетание 2 слов: Formula и Translation . Создан уже в середине 50-х. До сих пор язык используется благодаря лёгкости и простоте написания, а также развитой системе библиотек для Фортран. Чаще используется для научных и инженерных подсчётов, а также активно применяется в физичке и остальных науках, связанных с математикой.

Узконаправленные языки

Из-за увеличения сфер использования ЭВМ появились и другие языки для отдельных разработок в новых сферах:

  • экономическое направление оставалось незанятым до появления Кобол;
  • Снобол - обрабатывает алгоритмы, связанные с текстами;
  • Лисп. Работает на основании алгоритмов для отработки символов. Активно используется для формирования искусственного интеллекта.

Уже в 1968 г. был впервые запущен конкурс, в котором главным местом являлось звание лучшего языка программирования для начала карьерного пути. Данные планировалось использовать для обучения специалистов. Победу одержал Алгол-68 , но он остался малоизвестным, о популярности и речь не идёт.

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

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

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

Создание языка C

Развитие возможностей вычислительного оборудования привело к необходимости написания ёмких программ для управления ЭВМ . Это место по праву занял язык Си, который стал активно использоваться в 70-х годах. Явным достоинством языка является его универсальность. Он превосходит Паскаль благодаря наличию вложенных возможностей сотрудничества с разными машинными командами и подходящими частями памяти.

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

Пролог и Ада

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

Только в 80-х годах был разработан язык Ада . Он расширяет классическое понимание и свойства языков того периода. Ада могла решать задачи в режиме реального времени и моделировать независимые решения.

Классификация

Сегодня разработаны классификации языков по уровню работы, это распределение самое распространённое. Выделяют 3 основных уровня:

  1. Низкий. Сюда относятся различные машинные языки или разновидности с символическим кодирование типа Ассемблера и Автокода . За основу взяты операторы машинных команд, только разработаны с привязкой к мнемоническому коду. Операндами являются уже не точные адреса, а символьное обозначение имён. Все модели разработаны для отдельных разновидностей ПК , они являются машинно-зависимыми. В подобных языках отмечается сильная зависимость языка от внутренних особенностей системы;
  2. Высокий. Языки встречаются куда чаще, они более удобны в использовании. К ним причисляются: Алгол, С, Пролог, Паскаль, Бейсик, Фортран и другие . Перечисленные языки не имеют жёсткой зависимости от машины, ведь они основываются на возможностях системы операндов, которые подобны для классовых алгоритмов. Недостатками высокого уровня являются большая ресурсоёмкость и медленное исполнение;
  3. Сверхвысокий. Представителей языков крайне мало, только APL и Алгол-68 . Их считают сверхвысокого уровня из-за разработки сверхмощных операторов.

Согласно другой классификации языки делятся на:

  • символьные - Пролог, Лисп и Снобол;
  • вычислительные - Паскаль, С, Алгол, Бейсик, Фортран.

Направления развития

Информатика в современном мире развивается в 3 ключевых направлениях:

  1. Процедурное появилось в период активнейшего развития компьютеров и других вычислительных устройств, с тем пор широко используется. В процедурных направлениях присутствуют выраженные описания действий, необходимых к выполнению. Для получения результата всегда проводится определённая процедура, которую составляют различные последовательности манипуляций. Процедурные языки дополнительно разделяются на:
    • Структурные. В них используется один оператор для записи цельных алгоритмом: циклов, функцию, ветвлений и остального. Более известны: Паскаль, Ада и С.
    • Операционные. Применяют несколько различных действий. Среди самых известных разновидностей: Фокал, Фортран и Бейсик .
  2. Непроцедурные. Языки программирования имеют декларативную структуру, появление которой приходится на 70-е года. Активнее всего начали развиваться в 80-х годах после появления проекта формирования 5 поколения ЭВМ. Основная задача - создание возможностей для построения высокоинтеллектуальных машин. Они также разделяются на:
    • Функциональные. Программа выполняет исчисление определённой функции, которая берёт за основу другие относительно простые алгоритмы и более простые задачи. В основе функционального направления используется основной элемент - рекурсия. Она подразумевает расчёт значений функции с помощью задействования её в других элементах. В языке отсутствуют циклы и методика присваивания значений.
    • Логические. Программа вовсе не требует описание действий, её основу составляют соотношения данных и их значения. Только после расчёта можно получать ответы на вопросы. После перебирания известных параметров выводится ответ. В программе отсутствует метод или порядок обнаружения ответа, он неявным образом устанавливается языком. Ярким представителем является Пролог. Из направления полностью устранено алгоритмическое мышление, только статические отношения между объектами, а вся динамика сокрыта от разработчика и сводится к перебору данных.
  3. Объектно-ориентированные языки , все они являются разновидностью высокого уровня программирования. Подобные языки не нуждаются в описании чёткой последовательности манипуляций для получения результата задачи, но отдельные компоненты процедурного направления присутствуют. Пользователям значительно проще работать с такими языками, так как они обладают доступным и богатым интерфейсом. Лучшим примером подобного направления с визуальным общением является Object Pascal.

Существуют языки для написания сценариев, известными являются Rexx, Tcl, Perl и Python , а также языки оболочек систем Unix. В них разрабатывается индивидуальный стиль написания кода, который отличается от известного принципа системного уровня программирования. Они не используются для создания приложений на нижнем уровне, скорее для комбинирования различных компонентов из разных языков, из которых составляется набор отдельных функций.

Активнее всего стали развиваться по мере распространения интернета, от чего стали широко применяться языки сценариев. Для создания сценариев чаще всего применяется Perl , а для Web-части пользуется популярностью JavaScript .

Каспера Бейера «A Brief Totally Accurate History Of Programming Languages».

1800

Жозеф Мари Жаккар учит ткацкий станок читать перфокарты и таким образом создает первое многопоточное устройство обработки данных. Его изобретение было воспринято в штыки ткачами шелка, которые предвидели рождение Skynet.

1842

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

1936

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

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

1957

Джон Бэкус создает FORTRAN, первый язык, который использовали настоящие программисты.

1959

Грейс Хоппер изобретает первый язык программирования, ориентированный на промышленное производство, и называет его “общий бизнес-ориентированный язык” (“common business-oriented language”), кратко - COBOL.

1964

Джон Джордж Кемени и Томас Курц решили, что программирование - слишком сложное занятие, а потому нужно вернуться к основам. Они называют свой язык программирования BASIC.

1970

Никлаус Вирт разрабатывает Pascal. Это один из нескольких языков, в создании которых принял участи е Вирт: ему нравилось создавать языки.

Он также сформулировал Закон Вирта , делающий бессмысленным закон Мура , поскольку разработчики будут п и сать такие раздутые программы, что за ними даже мейнфреймы не угонятся. Позже это будет доказано путем изобретения Electron.js.

1972

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

Поскольку у него еще оставалось пару часов, он со своими приятелями в Bell Labs решил создать пример программы для демонстрации языка С. Так они создали операционную систему под названием Unix.

1980

Алан Кёртис Кэй изобретает объектно-ориентированное программирование и называет его Smalltalk. В Smalltalk все является объектом, даже объект это объект.

1987

Ларри Уолл со своим опытом работы в религиозной сфере становится проповедником, а сво е й доктриной делает Perl.

1983

Жан Давид Ишбиа заметил, что программа Ады Лавлейс никогда так и не запускалась, и решил создать язык и назвать его в ее честь (Ada). Но язык тоже не запускается.

1986

Брэд Кокс и Том Лав решили сделать нечитаемую версию С, основанную на Smalltalk. Они назвали ее Objective-C, но никто не в силах понять ее синтаксис.

1983

Бьёрн Страуструп отправляется назад в будущее и замечает, что язык С требует слишком мало времени для компиляции. Он добавляет к языку каждую фичу, какую только может придумать, и называет его С++.

Программисты по всему миру соглашаются с этим, поскольку у них появляется гениальное оправдание для просмотра видео с котиками и чтения xkcd на работе.

1991

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

1993

Роберту Иерузалимски с друзьями решили, что им нужен локальный, бразильский язык сценариев. В о время локализации была сделана ошибка, которая заставила индексы начинать отсчет с 1 вместо 0. Язык назвал и Lua.

1994

Расмус Лердорф создает движок шаблонов для собственных CGI-сценариев своей домашней страницы и выпускает его дот-файлы в интернет.

Мир решает повсеместно использовать эти дот-файлы, а Расмус в неистовстве добавляет в них некоторые дополнительные привязки к базам данных и называет результат РНР.

1995

Юкихиро Мацумото был не слишком счастлив и заметил, что другие программисты тоже несчастны. Он создает Ruby, чтобы сделать их счастливыми. После создания Ruby “Мац” счастлив, сообщество Ruby счастливо, все счастливы.

1995

Брендан Эйх берет выходной, чтобы разработать язык, с помощью которого будет управляться каждый веб-браузер в мире и в конечном итоге Skynet. Сначала он пошел в Netscape и сказал, что язык называется LiveScript, но за время ревью кода приобрела популярность Java, поэтому было решено использовать фигурные скобки и переименовать язык в JavaScript.

Оказалось, что Java это торговая марка, что могло привести к проблемам, поэтому JavaScript позже был переименован в , но его все равно называют по-старому.

1996

Джеймс Гослинг изобретает Java, первый по-настоящему слишком многословный объектно-ориентированный язык программирования, где шаблоны проектирования превалируют над прагматизмом.

2001

Андерс Хейлсберг заново изобретает Java и называет этот язык C#, потому что программирование на C кажется более крутым, чем на Java. Новая версия Java всем нравится, поскольку совершенно не похожа на Java.

2005

Давид Хейнемейер Ханссон создает веб-фреймворк, позже названный Ruby on Rails. Люди забывают, что это были две разные вещи.

2006

Джон Резиг пишет вспомогательную библиотеку для JavaScript. Все считают, что это язык, и делают себе карьеру на копипасте кода jQuery из интернета.

2009

Кен Томпсон и Роб Пайк решают создать язык, похожий на С, но более «товарный», с большим количеством инструментов для обеспечения безопасности и с Гоферами (Гофер - грызун, персонаж историй про Винни-Пуха, — прим. перев.) в качестве талисманов.

Они называют этот язык Go, решают сделать его код открытым и начинают продавать брендовые наколенники и шлемы с Гофером.

2010

Грэйдон Хор тоже хочет создать язык, подобный С. Он называет его Rust. Все требуют, чтобы каждый кусочек их программ немедленно переписывался на Rust. Грэйдону хочется чего-то более блестящего и он начинает работать над Swift для Apple.

2012

Андерс Хейлсберг хочет писать С# в веб-браузерах. Он создает TypeScript, который по сути является JavaScript с большим количеством Java.

2013

Джереми Ашкенас хочет быть таким же счастливым, как Ruby-разработчики, поэтому создает CoffeeScript, который транслируется в JavaScript, но выглядит скорее как Ruby. Джереми так и не стал таким же по-настоящему счастливым, как Матц и Ruby-разработчики.

2014

Крис Латнер создает Swift, главная цель которого – не быть Objective-C. В конечном итоге этот язык напоминает Java.

Одной из самых революционных идей, приведших к созданию , была высказанная в 20-х годах 19 века Ч.Бэббиджем мысль о предварительной записи порядка действий машины – . С этого момента начинается история языков программирования .

Революционным моментом в истории языков программирования стало появление системы кодирования машинных команд с помощью специальных символов, предложенной Джоном Моучли, сотрудником Пенсильванского университета. Система кодирования, предложенная Моучли, увлекла одну из сотрудниц его компании – Грейс Мюррей Хоппер, которая посвятила всю свою жизнь компьютерам и программированию.

При работе на компьютере "Марк-1" Г. Хоппер и ее группе пришлось столкнуться со многими проблемами. В частности, они придумали подпрограммы.

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

В конце 40-х годов, до прихода Г. Хоппер в фирму Джона Моучли, последний создал систему под названием "Short Code", которая являлась примитивным языком программирования высокого уровня. В ней программист записывал решаемую задачу в виде математических формул, а затем, используя специальную таблицу, переводил символ за символом, преобразовывал эти формулы в двухлитерные коды. В дальнейшем специальная программа компьютера превращала эти коды в двоичный машинный код. Система, разработанная Дж. Моучли, была по существу одним из первых примитивных интерпретаторов.

Уже в 1951 г. Хоппер создала первый в мире компилятор и ею же был введен сам этот термин. Компилятор Хоппер осуществлял функцию объединения команд и в ходе трансляции производил организацию подпрограмм, выделение , преобразование команд высокого уровня (в то время псевдокодов) в машинные команды.

Середина 50-х годов характеризуется стремительным прогрессом в истории языков программирования. Роль программирования в машинных командах стала уменьшаться. Начали появляться языки программирования нового типа, выступающие в роли посредника между машинами и программистами. Первым и одним из наиболее распространенных был Фортран, разработанный группой программистов фирмы IBM в 1954 г. (первая версия).

В середине 60-х годов сотрудники математического факультета Дартмутского колледжа Томас Курц и Джон Кемени создали специализированный язык программирования, который состоял из простых слов английского языка. Новый язык назвали BASIC.

В начале 60-х годов все существующие языки программирования высокого уровня можно было пересчитать по пальцам, однако впоследствии их число достигло трех тысяч. Разумеется, подавляющая часть языков не получила в истории языков программирования сколько-нибудь широкого распространения; в практической деятельности используется не более двух десятков. Разработчики ориентировали языки программирования на разные классы задач, в той или иной мере привязывали их к конкретным архитектурам ЭВМ, реализовывали личные вкусы и идеи. В 60-е годы в истории языков программирования были предприняты попытки преодолеть эту "разноголосицу" путем создания универсального языка программирования. Первым детищем этого направления стал PL/I (Programm Language One), 1967 г. Затем на эту роль претендовал АЛГОЛ-68 (1968 г.). Предполагалось, что подобные языки будут развиваться и усовершенствоваться и вытеснят все остальные. Однако ни одна из этих попыток на сегодняшний день не увенчалась успехом. Всеохватность языка приводила к неоправданной, с точки зрения программиста, сложности конструкций, неэффективности компиляторов.

В конце 50-х годов в истории языков программирования явился Алгол (ALGOL, от ALGOrithmic Language – алгоритмический язык). Алгол предназначен для записи , которые строятся в виде последовательности процедур, применяемых для решения поставленных задач.

Развитие идеи Алгола о структуризации разработки алгоритмов нашло в истории языков программирования наивысшее отражение при создании в начале 70-х годов языка Паскаль швейцарским ученым Никлаусом Виртом. Язык Паскаль первоначально разрабатывался как учебный, и, действительно, сейчас он является одним из основных языков обучения программированию в школах и вузах.

Период с конца 60-х и до начала 80-х годов характеризуется в истории языков программирования бурным ростом числа различных языков, сопровождавшим, как это ни парадоксально, кризис программного обеспечения. Этот кризис особо остро переживало военное ведомство США. В январе 1975 г. Пентагон решил навести порядок в хаосе трансляторов и учредит комитет, которому было предписано разработать один универсальный язык. Победивший язык окрестили АДА.

Большой отпечаток в истории языков программирования наложил язык Си (первая версия – 1972 г.), являющийся очень популярным в среде разработчиков систем программного обеспечения (включая ). Си сочетает в себе черты как языка высокого уровня, так и машинно-ориентированного языка, допуская программиста ко всем машинным ресурсам, чего не обеспечивают такие языки, как Бейсик и Паскаль.

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

Принципиально иное направление в истории языков программирования связано с методологиями (иногда говорят "парадигмами") непроцедурного программирования. К ним можно отнести объектно-ориентированное и декларативное программирование. Объектно-ориентированный язык создает окружение в виде множества независимых объектов. Каждый объект ведет себя подобно отдельному компьютеру, их можно использовать для решения задач как "черные ящики", не вникая во внутренние механизмы их функционирования. Из языков объектного программирования, популярных среди профессионалов, следует назвать прежде всего Си++, для более широкого круга программистов предпочтительны среды типа Delphi и Visual Basic.

Планкалкюль (Plankalkül) - первый в мире язык программирования высокого уровня, разработанный немецким инженером Конрадом Цузе между
1942 и 1946 годами для его компьютера «Z4» (компьютер на снимке ниже, фото взято из «Википедии»).

Шла Вторая Мировая Война, Цузе работал в отрыве от учёных других стран, совершенно самостоятельно. За это время он создал не только язык программирования,
но и написал на нём 49 страниц программ для оценки шахматных позиций. Полностью его работа была опубликована много позже, в 1972.

Рискну рассказать об этом языке программирования, в качестве археологического изыскания. Тем более, что на русском языке об этом языке сказано очень мало.

Только в 1957 году (работы были начаты в 1954) появился Фортран - язык, который большинство считает первым языком высокого уровня.

«Z4» был электро-механическим, поэтому компилятора или интерпретатора Планкалкюля не существовало, но в 2000 году в Свободном
универсистете Берлина (Freie Universität Berlin) был создан интерпретатор его
диалекта (запускается в виде Ява-аплета в браузере).

Диалект, который реализуется, назван Plankalkül-2000 и отличается от оригинала различными упрощениями.
Например, упрощена форма записи, Цузе использовал двухмерную запись -
первой строкой записывалось само выражение, а ниже некоторые его аргументы (тип переменной, индексы и так далее). Кроме того, были упрощены и значки самих операций,
приведены к более привычному нам с вами виду.

Язык довольно богатый, на мой взгляд, для сороковых годов-то: есть условные конструкции, два вида циклов (аналог while и for), есть массивы и кортежи,
можно описывать и вызывать подпрограммы (но рекурсии нет).

Все переменные делятся на четыре вида.

  • «Variablen» (В ходные переменные) - это входные переменные подпрограмм, доступны только для чтения начинаются с буквы «V» и номера.
  • «Zwischenwert» (З начения промежуточные), доступны для чтения и записи, предназначены для хранения промежуточных вычисляемых значения, начинаются с «Z» и номера.
  • «Resultatwerte» (Р езультат) - в этих переменных возвращается результат вычисления, начинаются с «R» и номера.
  • «Indizes» (И ндексы) - переменные цикла (аналога for), начинаются с «i», дальше может быть номер, номер необходим для организации вложенных циклов.
Доступны три типа переменных. Несмотря на то, что «Z4» умел оперировать числами с плавающей точкой, интерпретатор этого не умеет.
  • Для целого неотрицательного указывается размерность в битах. Есть две формы записи «0» - один бит, «n.0» - «n» бит, например, 8.0 - один байт (8 бит).
  • Кортеж указывается в скобках, например (3.0, 4.0) - это две переменные в три и четыре бита, кортеж должен иметь более одного элемента.
  • Массив записывается через точку, к примеру: 4.5.0 - массив из четырёх элементов по пять бит в каждом, 32.(0, 8.0, 16.0) - 32 кортежа, в каждом из которых три переменных: один бит, восемь и
    шестнадцать.
Планкалкюль явно можно сильно упростить по синтаксису, но современный диалект почти в точности копирует ту запись, которую использовал Цузе, я полагаю, что такой синтаксис родился из-за
необходимости «отлаживать» программу на бумаге. Впрочем, язык настролько прост, что я его выучил целиком минут за 15 и даже написал на нём парочку программ в нескольких вариантах.

Одна из них вычисляет указанное (по порядку) число Фибоначчи :
P0 FactEvgenyStepanischev (V0[:4.0]) => (R0[:10.0]) (0, 1) => (Z0[:10.0], Z1[:10.0]) W1 (V0[:4.0]) [ i > 0 -> (Z0[:10.0] + Z1[:10.0], Z1[:10.0] - Z0[:10.0]) => (Z1[:10.0], Z0[:10.0]) ] Z1[:10.0] => R0[:10.0] END
Запускать следует так: открываете страницу с интерпретатором , копируете в окно мою программу, нажимаете «Compile», открывается отдельное
окно с Ява-аплетом (требует, чтобы на компьютере была установлена Ява), в открывшемся окне мышкой побитно набираете начальное значение V0 (нажимать надо на зелёные кружки́),
потом в окне браузера нажимаете «Run», в красной строчке (R0) увидите получившееся значение.


Подпрограммы в языке начинаются с символа «P» и уникального номера, дальше идёт имя, по которому её можно будет вызвать, у меня подпрограмма называется «FactEvgenyStepanischev», заканчивается
подпрограмма ключевым словом «END» (в оригинальном Планкалкюле его не было).

У подпрограммы описываются принимаемые и возвращаемые значения, у меня используется одна переменная на вход, размерностью 4 бита и одна на выход, размерность в 10. Первой строкой
присваиваются значения «ноль» и «один» промежуточным переменным Z0 и Z1. Тип переменных приходится указывать при каждом их использовании, преобразовать переменную в другой
тип нельзя.

Ниже идёт цикл «for» (W1), поскольку номер переменной цикла я не указал (указывается в первых квадратных скобках, которые тут опущены), используется переменная цикла «i», без номера.
В круглых скобках указывается количество повторений, а в последующих квадратных - тело цикла. Подробности можно
найти в описании .

Операция «стрелка» („->“) - условная конструкция, часть справа будет выполнена, если выражение слева истинно. В диалекте работают только самые простые выражения, например
цикл туда подставить можно, но кнопка «Run» в аплете у меня не появилась, поэтому я ограничился присваиванием внутри цикла.

Я тут использовал комплексное присваивание, которое хорошо знакомо тем, кто использует Перл, Пайтон или ПХП, но работает оно иначе - присваивания выполняются
последовательно, слева направо, поэтому я не могу ограничиться «(Z0[:10.0] + Z1[:10.0], Z1[:10.0]) => (Z1[:10.0], Z0[:10.0])», результат будет не тот, который ожидается.

В конце я присваиваю промежуточное значение результирующему значению подпрограммы.

Кроме этого в языке почти ничего и нет. Обращение к элементам массива, вызов функции и цикл «while» описывать отдельно смысла не имеет, они выглядят достаточно естественно в рамках этого синтаксиса.
Все операции, поддерживаемые языком (их немного - логические операции, битовые операции и четыре арифметические действия) выглядят привычно.

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

Схема выбора

Бывают вопросы, которые задают так часто, что, для ответа на них создают целые схемы. Вот, например, одна из них, посвящённая выбору первого языка программирования.

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

  • Рынок труда.
  • Долгосрочные перспективы языка.
  • Сложность изучения языка.
  • Что именно вы сможете создать в процессе изучения, и, показав окружающим, поддержать мотивацию.

Популярность и востребованность

JavaScript

JavaScript, чтобы не путать с Java, — это Язык программирования, который был разработан в 90-х годах Бренданом Эйхом, ранее принадлежащим Netscape Communications, а теперь и Mozilla Foundation. JavaScript является одной из фундаментальных технологий, на которых основано веб-сообщество, как мы его знаем. Не обманывайте себя, хотя JavaScript существует и вне браузера, но в основном в контексте подключенных приложений и сервисов.

Сам язык является динамичным и дает программистам гибкость в использовании стилей объектно-ориентированного программирования (поскольку сам язык в основном ориентирован на объекты), а также функциональные и императивные. Он извлекает большую часть своего синтаксиса из C, и если вы планируете делать какие-либо разработки для Интернета любым способом, изучение JavaScript должно быть в вашем списке.

К счастью, JavaScript относительно прост в освоении, уже сейчас в вашем браузере для вас, чтобы играть, и хотя это было на некоторое время, он быстро набирает популярность. Многие из вас, кто его назначил, отметили, что ваш удар по доллару при изучении JavaScript огромен, потому что вы можете сразу использовать его для создания вещей для Интернета, что вполне может быть тем, чему многие люди учатся программировать.

Python

Также могу посоветовать Python.

Несмотря на ряд проблем исторически присущих Python, он продолжает оставаться лидирующим инструментом в ряде ниш:

Впечатляет, не правда ли? Что же касается крупных и популярных проектов, написанных на Python то это такие монстры как:

Так же на нашем сайте вы можете найти .