Как изучить программирование (ООП/ФП) за 7 дней ?

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

Мой личный опыт

Когда я начал немного программировать на Перфоленте/Перфо, моё понимание языков программирования сильно изменилось. Я почувствовал себя как англоязычный программист, пишущий код на родном языке.

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

Раньше сложные понятия функционального программирования давались мне тяжело, но теперь всё стало проще. Лямбда-функции, замыкания, каррирование и т.д. — всё это я теперь понимаю по-другому. Особенно когда объясняю ребёнку.

Например, лямбда-функция — это просто формула из задачника по математике. Ребёнок понял это сразу! И мы пошли дальше, не останавливаясь.

По-моему, главный эффект даёт отказ от псевдонимов и алиасов. Я долго отучался давать названия, из которых сразу понятно, что это за сущность, а не «имена, которые означают...».

Второй эффект — это «сокращение контекста». Контекстное окно человека ограничено 3–5 вещами, которые он в состоянии держать в голове и обдумывать. «Псевдонимы/алиасы» съедают это контекстное окно. Поэтому избавление от прокладок в виде «print — это печать» и замена их на простые «вывести_в_консоль», «вывести_в_файл» и т.п. сильно облегчают понимание логики кода.

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

Чем 100 раз прочитать лучше один раз увидеть, как это выглядит? Вот пара скриншотов:

Пример кода на Перфолента.NET
Пример кода на Перфолента.NET
Внешний вид Среды Разработки и пример кода на Перфо.NET
Внешний вид Среды Разработки и пример кода на Перфо.NET

Преимущества изучения программирования с помощью Перфоленты.NET

Изучение основ программирования с помощью языка Перфолента.NET даёт ряд важных преимуществ:

  • Оптимальная нагрузка при обучении. Для качественного усвоения материала 80% изучаемого должно опираться на уже имеющиеся знания, а 20% — быть новым. Это позволяет естественно связывать новую информацию с уже известной.
  • Русский язык ключевых слов. Нет необходимости учить английский: можно сосредоточиться на основных понятиях и концепциях.
  • Совместимость с синтаксисом 1С. Это упрощает переход для тех, кто уже знаком с 1С.
  • Простая и легковесная среда разработки (IDE). Установка и старт занимают минимум времени: поставил, открыл пример, скомпилировал. Это обеспечивает быстрый старт в изучении программирования.
  • Доступность для большинства пользователей. Язык изначально разработан для Windows 7/10/11, что делает его доступным для 99% пользователей.

Качество реализации языка Перфолента.NET

  • Язык профессионально реализован на платформе .NET. Он позволяет изучить ООП/Функциональное программирование, в том числе: параллельное программирование, лямбда-функции, замыкание, каррирование и т.п.
  • Развивается уже 12 лет: имеет устоявшийся синтаксис, полноценную документацию, официальный сайт и активное профессиональное сообщество.
  • Существует интерпретатор Перфо (2000 строк на Перфолента.NET) — лёгкая реализация языка Scheme/Lisp, предназначенная для изучения функционального программирования.
  • Отработана технология написания консольных приложений, пригодных для использования в бизнесе.
  • Перфолента поддерживает модульное тестирование.
  • Имеется более сотни примеров проектов:- заготовка «Тотал Командер» для консольного режима;- игры (Тетрис, Змейка);- простые веб-серверы;- примеры для блокчейна и др.

Недостатки и ограничения Перфолента.NET

  • Оконные приложения в бета-версии. Разработка оконных приложений с помощью визуального редактора (как в Visual C++/Visual Basic) пока находится в бета-версии. Однако для начального изучения программирования это не критично: важнее быстро освоить базовые концепции и парадигмы.
  • «Зачем учить Перфоленту, если есть Си/Python/Паскаль?» Аргумент «лучше сразу учить популярные языки» не всегда оправдан. Человеческий мозг ограничен в объёме одновременно удерживаемой информации (обычно не более 3–5 элементов). Перфолента.NET предлагает необходимый и достаточный минимум для изучения основ ООП и функционального программирования — без погружения в второстепенные детали (установка и настройка IDE, языка, библиотек и т.п.). Освоив базовые концепции на Перфоленте (без англоязычных терминов), обучаемый легче перейдёт к Си++, Python, Haskell и сложным IDE.
  • «Перфолента — домашняя поделка?» Перфолента.NET основана на промышленном стандарте — платформе .NET, как и сотни других языков. Её архитектура и концепции соответствуют .NET со всеми его преимуществами и недостатками.
  • Нет версии для Linux. Однако возможна реализация Перфо на Linux хотя бы для переноса скриптов.

Как его можно использовать?

  1. Ну, во-первых, изучить что-то принципиально новое.
  2. Для профессиональных программистов: освоение Перфоленты — это как целый день управлять мышкой левой рукой, совершенно другой взгляд на обычные алгоритмы и код.
  3. Для непрограммистов: возможность быстро понять основы программирования и написания простых алгоритмов без установки тяжёлых IDE и изучения объёмной документации, понять, вообще надо это вам или нет.
  4. Позаниматься с ребёнком информатикой, вместо обычного морально устаревшего языка Кумир.
  5. Прокачать собственные навыки.

Существующие аналоги

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

1. OneScript — независимая кроссплатформенная реализация виртуальной машины для выполнения скриптов на языке 1С:Предприятие. Позволяет писать программы на языке 1С без использования платформы 1С:Предприятие.

Сайт проекта:

Код написан на языке С# и распространяется под лицензией MPL-2.0. Поддерживается работа в Linux, Windows и macOS.

2. «Гонец» — язык программирования, который представляет собой смесь языков 1С, Javascript и Go. Он позволяет создавать высокопроизводительные веб-приложения и микросервисы с низкими требованиями к системным ресурсам.

Сайт: https://covrom.github.io/gonec/

Возможные темы для стартапов

Учитывая аудиторию VC, от себя добавлю возможные темы для стартапов:

1. Это преподавание информатики в школе, и частных лицеях (и для непрофильных специалистов). Существующий Кумир - морально устарел лет 20 назад, но под него есть большое количество методической литературы для учителей, и учебники для школников.

2. Написание самого учебника по программированию в 3- х вариантах

  • для школьников, на замену языку Кумир
  • для гуманитариев которые просто хотят понять основы ООП, функционального программирования
  • для ООП/ФП для программистов 1С

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

3. Встраивание в российские проекты типа МойОфис - наличие там достаточно специфического языка lua понятно с точки зрения разработчиков, но странно для пользователей, аналог Visual Basic всё таки смотрелся более органично.

Полезные ссылки:

P.S. Не надо ёрничать и в сотый раз писать тут выдуманные смешные примеры кода на русском языке на выдуманных языках программирования, это набило всем уже оскомину. Все проекты сделаны вполне профессионально. OneScript - постоянно используется в бизнесе, Перфолента/Перфо - имеет тоже потенциал в определенных нишах, как минимум в образовании. Ну и для профессиональных программистов попробовать до конца новогодних каникул поработать мышкой левой рукой - Попробовать функциональное программирование на Перфо возможно имеет смысл.

Начать дискуссию