Как изучить программирование (ООП/ФП) за 7 дней ?
Перфолента.NET — это на удивление профессионально выглядящий язык программирования на платформе .NET, который поддерживает объектно-ориентированное и функциональное программирование, и на котором написан даже написан другой язык, функциональный язык программирования — Перфо.NET (интерпретатор).
Мой личный опыт
Когда я начал немного программировать на Перфоленте/Перфо, моё понимание языков программирования сильно изменилось. Я почувствовал себя как англоязычный программист, пишущий код на родном языке.
Это был очень интересный опыт. Я стал больше внимания уделять смыслу слов и терминов, стал строже относиться к названиям.
Раньше сложные понятия функционального программирования давались мне тяжело, но теперь всё стало проще. Лямбда-функции, замыкания, каррирование и т.д. — всё это я теперь понимаю по-другому. Особенно когда объясняю ребёнку.
Например, лямбда-функция — это просто формула из задачника по математике. Ребёнок понял это сразу! И мы пошли дальше, не останавливаясь.
По-моему, главный эффект даёт отказ от псевдонимов и алиасов. Я долго отучался давать названия, из которых сразу понятно, что это за сущность, а не «имена, которые означают...».
Второй эффект — это «сокращение контекста». Контекстное окно человека ограничено 3–5 вещами, которые он в состоянии держать в голове и обдумывать. «Псевдонимы/алиасы» съедают это контекстное окно. Поэтому избавление от прокладок в виде «print — это печать» и замена их на простые «вывести_в_консоль», «вывести_в_файл» и т.п. сильно облегчают понимание логики кода.
Некоторые говорят, что проблема окончаний в русском языке в коде — это проблема. Но на практике это не так важно, и по факту на это не обращаешь внимание.
Чем 100 раз прочитать лучше один раз увидеть, как это выглядит? Вот пара скриншотов:
Преимущества изучения программирования с помощью Перфоленты.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 хотя бы для переноса скриптов.
Как его можно использовать?
- Ну, во-первых, изучить что-то принципиально новое.
- Для профессиональных программистов: освоение Перфоленты — это как целый день управлять мышкой левой рукой, совершенно другой взгляд на обычные алгоритмы и код.
- Для непрограммистов: возможность быстро понять основы программирования и написания простых алгоритмов без установки тяжёлых IDE и изучения объёмной документации, понять, вообще надо это вам или нет.
- Позаниматься с ребёнком информатикой, вместо обычного морально устаревшего языка Кумир.
- Прокачать собственные навыки.
Существующие аналоги
Под аналогами я понимаю профессионально выполненные, возможно нишевые реализации, которые можно использовать в работе (не обязательно в продакшене на веб сервере со 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 всё таки смотрелся более органично.
Полезные ссылки:
Документация по языку Перфолента.NETДокументация по языку Перфо.NET
- https://t.me/perfolenta — достаточно активное сообщество в Телеграмм.
P.S. Не надо ёрничать и в сотый раз писать тут выдуманные смешные примеры кода на русском языке на выдуманных языках программирования, это набило всем уже оскомину. Все проекты сделаны вполне профессионально. OneScript - постоянно используется в бизнесе, Перфолента/Перфо - имеет тоже потенциал в определенных нишах, как минимум в образовании. Ну и для профессиональных программистов попробовать до конца новогодних каникул поработать мышкой левой рукой - Попробовать функциональное программирование на Перфо возможно имеет смысл.