Как изучить программирование за 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 и изучения объёмной документации, понять, вообще надо это вам или нет.
- Позаниматься с ребёнком информатикой, вместо обычного морально устаревшего языка Кумир.
- Прокачать собственные навыки.
Полезные ссылки:
- Документация по языку Перфолента.NET: https://perfolenta.net/cat.asp?cat=docs
- Документация по языку Перфо.NET: https://perfolenta.net/subcat.asp?cat=docs&subcat=perfo-programming-lang...
- https://t.me/perfolenta — достаточно активное сообщество в Телеграмм.
Комментарии
На Эль-76 программировать не пробовали? Очень хороший был для своего времени язык.
Половину прикладных задач бизнеса можно решить на Visual Basic .Net.
Порог вхождения, конечно, не "за время праздников", но не сильно больше.
у него есть современная среда разработки ? Описания, примеры ? Чтобы взять, скачать и сделать домашку с ребёнком ?
Ну в свое время был признан бесперспективным со всеми вытекающими...
В джаваскрипт тоже можно на русском.
Только непонятен сакральный смысл перевода ключевых слов.
Над попробовать самому написать код на нём. Совершенно иной опыт программирования, понимания кода, алгоритмов.
Алгоритмы неизменны. От замены if на "если" тоже толку не просматривается.
Давайте уж yoptascript)
Это оне совсем про алгоритмы, а про реализацию алгоритмов в функциональном или объектно-ориентированном стиле.
Реализация примерно одинакова.
Вот совершенно иной опыт программирования, понимания кода и алгоритмов
В повседневной работе необязательно использовать LISP / Scheme / Racket.
Но выполнение всех упражнений из книги Structure and Interpretation of Computer Programs один раз и навсегда прочищает мозги от... в общем, как пурген. Подсказка: в последней главе научат создавать свой язык программирования, с домино и пионерками.
Я видел в комментариях упоминание языка Адина, поддерживаю его. Это хороший пример русскоязычного языка программирования (простите за тавтологию).
Перефразирую название популярной книги о языке Haskell: "Изучайте Адина во имя добра!" Пожалуйста.
Чтобы раскладку после почти каждого слова не переключать.
Сейчас раскладка переключается только на комменты, с этим точно нет проблемм.
Если имена функций и переменных называть по-русски, а ключевые слова оставить английскими.
Например
Это можно делать в почти всех современных языках программирования. Глупо в корпоративном проекте для себя писать prodagi или nalog. Хотя некоторые пишут, их логику понять невозможно. Названия переменных на своём языке для внутренних проектов -позволяет быстро вникать в логику программы или сценария, и сократить количество ошибок. А ошибки в бизнес-логике или бухгалтерии часто выливаются в прямые потери денег, штрафы или внутреннюю неэффективность.
Хуже, когда пишут sales или tax. Тогда вообще в голове постоянно словарь держишь. Или вот предельный случай из всемирно известной системы SAP:
сходил, помыл глаза чтобы развидеть.Даже алгоритмический язык по которому учились в школе (русскоязычный) был куда лаконичнее.
Зачем вот это вот всё:
ВыводСтроки
КонецЦикла
КонецЕсли
ИмпортИмен
....
Это чтобы как у Толстого было? Велико, могуче, и предложение по длине в книге рекордов Гиннеса?
ЗЫ. Почему в цикле не "до" а "по"? по 50 прибавлять? А если до 50 но прибавлять по 2 надо?
Написано-же
"Совместимость с синтаксисом 1С."
> Написано-же
"Совместимость с синтаксисом 1С."
А зачем? Чо даёт эта совместимость?
ничего, так исторически сложилось т.к. разработчик программист 1С. По факту даёт лучшее понимание кода и алгоритмов. Особенно о в учебных целях.
На первом фото аргументы функции указаны в скобках, на втором - через пробел.
На первом фото - язык программирования Перфолента, компилятор, аналог C#
На фтором фото - язык Перфо, интерпретатор, аналог Sheme/Lisp
поэтому и разный синтаксис.
Вы не читали статью ?
ДочиталДоЭтихКлючевыхСловИПонялЧтоДальшеНормальныйПрограммистЗакроетЭтотБредКакСтрашныйСон.
Почему не
импорт Модуль1.*
для К=1 до 50 по 2
если К % 2 == 0 то ... иначе начало
....
конец // к если
конец // к для
нафигаДелатьРазныеКлючевыеСловаДляВсего?
Это вообще-то фактически С# на русском. Вы похоже прост оне писали много кода и вам не приходилось разбирать свой же код написанный 1 -6 месяцев назад.
В C# нет "конец" там просто закрывающая фигурная скобка. Я на шарпе писал более 10 лет, это вы тут пургу несете. Причем фигурные скобки там универсальны для блоков кода - любых (и циклы, и условия и пр). Мой приведенный пример псевдо-кода, это практически паскаль.
Если программист не умеет переключаться на другой язык - то просто он не программист.
"Некоторые говорят, что проблема окончаний в русском языке в коде — это проблема. Но на практике это не так важно, и по факту на это не обращаешь внимание."
каким образом это относится к избыточным ключевым словам? Зачем КонецЕсли и КонецЦикла, если в любом языке программирования достаточно просто "конец" - потому что из контекста понятно конец какой это конструкции?
Зачем ВыводСтроки? А если у вас число? будет еще и ВыводЧисла? ВыводОбъекта? реально?? а почему не как в нормальных языках - "вывод" ?
по мнет атк пишешь 1 раз, а читаешь потом 100 раз, да ещё через месяц - это не избыточность это подробность - такая подробность отменяет необходимость написания части комментариев. Ну по моему опыту. При реальной работе с кодом 1-2,5 часов вообще не мешает.
Значит вам надо привыкать читать чужой код. Уже лет 30 читаю код, на десятке языков, и никаких проблем не возникает. В т.ч. с простыми фигурными скобками вместо паскалевских begin / end. А в питоне - так вообще это отсутствует как часть синтаксиса языка.
Вот в Кумире все было лаконичнее. Если То Иначе Все. )
здесь тоже так можно описать - называется процедурное программирование, но в Кумире нет ООП, функционального программирования, нет учебного языка Перфо который содержит ВСЕГО 1000-2000 строк кода? Где можно всё на пальцах посмотреть и поменять, попробовать сделать свою версию языка Перфо немного о другому!
Ну так Кумир это +- переведенный паскаль. )
я те как программист говорю - шняга полная!
особенно тот факт, что все ИИ знают все языки кроме этого, поэтому новичку в программировании лучше учить тот язык, по которому любой ИИ может всё подробно объяснить и подсказать
это язык не для написание кода в продакшен, это для того чтобы прокачать свой мозг и скилы. На алгоритмы и код после смотришь по другому, особенно на нейминг.
Неа.
Смотришь на проблему бизнеса, а потом думаешь, как ее решить в рамках заданного стека.
Для прокачки мозга тоже помогает, согласен.
Мозг в школе хорошо прокачивается, а программить лучше на Паскале для начала. С Паскаля ИИ поможет перейти на любой другой.
Так что изобретатели твоего языка не учли реальность 2025 года
Еще лет 15 назад я бы сказал что паскаль портит детям головы. Потому как дальше концепция указателей сложно воспринимаема. Но сейчас +- пофиг. ))
учил в институте - нулевая польза. А тут сразу опробовал ООП и функциональное программирование. Попробовал написать алгоритм с использованием ООП а потом переписать его же в функциональном стиле ... и всё это без безумных IDE ктороые тормозят и собирают проект 30-60 с.
Значит не учил.
Последний раз видел такие цифры в ВизуалСтудио лет 20 назад... тот же Делфи в те времена на проектах менее 5000 строк кода до таких цифр вообще никогда не доходил. Сейчас такой проблемы либо нет, либо она крайне специфична для конкретного языка/ИДЕ.
в далёком 1979 году, на первом курсе нас учили программированию на идеальной трёх-адресной вычислительной машине.
и всё было складно и понятно, и в голове отложилось. Патамушта раньше всё было лучше! А ещё лучше было ещё раньше!
А чтоб писать в OPкодах достаточно было калькулятора и тетрадки. Там вообще богомерзких букв не было.
А ну и трава была выше и девки краше. 
В 70-ых был КОБОЛ вначале на родном, потом на русском. Русский КОБОЛ - был копией родного, поэтому работал безупречно. Новый, неотлаженный на миллионах применений язык - загубленная молодость. Не только из-за грехов языка, сколько из-за творческого фальстарта: новичок уверен, что он научился программировать, а на самом деле к пониманию профессии еще не приступал. В школах, в гуманитарных ВУЗах, в мединститутах для ознакомления с принципами - прекрасно.
Это не проблема перевода языка Кобол на русский, это проблема просто не актуального языка Кобол, он и на английском мало кому нужен. Багов даже бетта версиях почти нет, во всяком случает 99,999% ошибок жто шибки программиста-новичка, а не баги компилятора.
КОБОЛ для финансов, больших массивов данных. И прочее. Но как только вставал вопрос о языке программирования для инженерных и технических задач, то КОБОЛ был не у дел. И для этих целей был разработан ФОРТРАН. Идеальный язык для этих зада́ч. Высокая производительность, прямая запись мат. формул, большая библиотека.
Так что не все так однозначно.
Перспективный чат детектед! Сим повелеваю - внести запись в реестр самых обсуждаемых за последние 4 часа.
Есть язык программирования Адина: https://docs.racket-lang.org/russian-lang/
Исходники на https://gitflic.ru/project/kalimehtar/russian-lang
Компилируется под WIndows и Linux (включая Эльбрус). Есть переносимый графический интерфейс пользователя (один код для всех поддерживаемых ОС).
Код выглядит так:
Более подробный пример: https://gitflic.ru/project/kalimehtar/russian-lang/blob?file=1%2Fпример%2Fшаблонизатор.1&branch=master
Жму руку, коллега. Искренне благодарю, я только сейчас узнал об этом языке.
Спасибо за ссылку, очень интересно, но сайт с документацией не открывается :(
Страницы