Автор Тема: Программирование по-русски  (Прочитано 80057 раз)

Оффлайн trs

  • Давно тут
  • **
  • Сообщений: 284
Re: Программирование по-русски
« Ответ #225 : 28.05.2023 05:46:51 »
Оргкомитет (в котором присутствовали представители аж трёх российских дистрибутивов Линукса), почему-то счёл доклад не соответствующим тематике конференции." (с) БудДен.
Печально.

В целом ИМХО это хорошая новость: маски сбросили и теперь понятно, кто есть кто. Жаль, конечно, что мало кто об этом знает, и что всплыло оно не лет 10 назад - время не вернуть.

Вот более подходящая конференция под вашу тему:
Ежегодная конференция разработчиков свободных программ
https://www.basealt.ru/conference/ezhegodnaja-konferencija-razrabotchikov-svobodnykh-programm

Когда удастся выступить с докладом БудДена, тогда и появятся основания для "подходящая". В организаторах Базальт СПО, как и там, где отказали. И тематика не про безопасность, вполне есть формальные основания для отказа, в отличие от.

У меня "статистика" пока такая - после зимнего доклада за 2 недели произошло примерно 0 заходов на страницу Рефала (1-2 заходят и так).
Когда на Opennet в подходящей теме тот же докладчик вскользь упомянул своё выступление - примерно 20 заходов за 2 недели.

Так что тут ещё вопрос, кому это всё на руку, и есть ли смысл играть в свои ворота за другую команду.
« Последнее редактирование: 28.05.2023 05:48:46 от trs »

Оффлайн antsiest

  • Начинающий
  • *
  • Сообщений: 22
Re: Программирование по-русски
« Ответ #226 : 29.05.2023 09:54:43 »
У меня "статистика" пока такая - после зимнего доклада за 2 недели произошло примерно 0 заходов на страницу Рефала (1-2 заходят и так).
Когда на Opennet в подходящей теме тот же докладчик вскользь упомянул своё выступление - примерно 20 заходов за 2 недели.
Посмотрел https://youtu.be/wafn0z91Xx4?t=12327  - про грамматику функций.
Есть вопрос "А для чего?".
Программирование - мышление категориями, а не литературное понимание.

Оффлайн trs

  • Давно тут
  • **
  • Сообщений: 284
Re: Программирование по-русски
« Ответ #227 : 30.05.2023 07:18:53 »
Программирование - мышление категориями, а не литературное понимание.

Действительно, в 2к23 программирование - это мышление категориями "git clone"  и "make install". В случае непредвиденной ситуации - отправиться на bugzilla и создать issue.

А в дремучем 1995 Allen I. Holub учил вот чему:

Цитата: Enough Rope to Shoot Yourself in the Foot
22. Программа без комментариев ничего не стоит.

Программа, на написание которой затрачен год, может использоваться в течение 10 лет. Вам придется
затратить на сопровождение гораздо больше денег, чем вы выделили на первоначальную разработку,
а программа без комментариев несопровождаема. "Блестящий" программист, который втрое быстрее,
чем другие, пишет короткий, элегантный, но некомментированный текст программы, вам обойдется
дорого. Какому-то менее талантливому программисту придется затратить в 10 раз больше времени,
чем нужно, устраняя неизбежные ошибки.

Программисты, которые не могут писать по-английски (или на том языке, на котором говорят в
стране, где предполагается осуществлять сопровождение), изготовляют часовые бомбы, а не
компьютерные программы. Так как хорошая документация столь необходима для процесса
сопровождения, то важно, чтобы программисты были способны ее написать. По этой причине
начинающие программисты, имеющие диплом по филологии, истории или другой гуманитарной
дисциплине, часто являются более предпочтительными, чем люди с дипломами по естественным
наукам (математике, физике и т.п.). Специалисты по естественным наукам редко знают как писать, а
большинство из них также не знают как программировать; они обучены тому, как запрограммировать
алгоритм, а не как написать пригодную для сопровождения компьютерную программу.

К счастью, писать можно легко научиться. Конечно, если вы придерживаетесь правила "Сделай
сначала комментарии", то вам придется писать все свои комментарии до начала программирования.

Если у кого возникнет желание это оспорить - пусть он сначала покажет _свой_ Гитхап.
« Последнее редактирование: 30.05.2023 07:22:45 от trs »

Оффлайн DVI

  • Начинающий
  • *
  • Сообщений: 1
    • Email
Re: Программирование по-русски
« Ответ #228 : 30.05.2023 22:27:47 »
Есть вопрос "А для чего?".
Программа - это и текст тоже. А внимание к языку и формулировкам может навести на интересные возможности. Например, на Рефале-М может быть написан и такой код:
начало =
    <при бавлено 1 к 5>
    <у бавлено 3 из 8>;

бавлено {
    при ?икс к ?игрек = <?икс + ?игрек>;
    у ?икс из ?игрек = <?игрек - ?икс>;
}

при;
у;
к;
из;

Думаю, что группировка (с опорой на гибкость языка) родственных преобразований в одной функции может оказаться весьма неплохим стилистическим решением. Например, если нужно, в зависимости от ситуации, "прикрепить ... к ...", "открепить ... от ...", "закрепить ... в ...", "расщепить ... на ...".
« Последнее редактирование: 30.05.2023 22:36:38 от DVI »

Оффлайн DVI

  • Начинающий
  • *
  • Сообщений: 1
    • Email
Re: Программирование по-русски
« Ответ #229 : 30.05.2023 22:53:22 »
Есть вопрос "А для чего?".
Ещё пример - с превосходной степенью прилагательного:
начало =
    <больший из 3 10>
    <наи больший из 2 7 11 4 9 4 8 17>;

больший {
    наи из ?икс ?игрек .прочие =
<наи больший из <больший из ?икс ?игрек> .прочие>;
    из ?икс ?игрек = <выборбольшего <Compare ?икс ?игрек> ?икс ?игрек>;
    .приставка из ?икс = ?икс;
}
наи;
из;
выборбольшего {
    "+" ?икс ?игрек = ?икс;
    "-" ?икс ?игрек = ?игрек;
    "0" ?икс ?игрек = ?икс;
}
Ещё пример о сравнении, но с использованием функции Mu для работы с разными отношениями:
начало =
    <наи меньший из 2 7 11 4 9 4 8 17>
    <наи больший из 2 7 11 4 9 4 8 17>;

наи {
    .отношение из ?икс ?игрек .прочие =
<наи .отношение из <Mu .отношение из ?икс ?игрек> .прочие>;
    .отношение из ?икс = ?икс;
}
больший {
    из ?икс ?игрек = <выбор <Compare ?икс ?игрек> ?икс ?игрек>;
}
меньший {
    из ?икс ?игрек = <выбор <Compare ?икс ?игрек> ?игрек ?икс>;
}
из;
выбор {
    "+" ?икс ?игрек = ?икс;
    "-" ?икс ?игрек = ?игрек;
    "0" ?икс ?игрек = ?икс;
}
« Последнее редактирование: 31.05.2023 06:24:17 от DVI »

Оффлайн DVI

  • Начинающий
  • *
  • Сообщений: 1
    • Email
Re: Программирование по-русски
« Ответ #230 : 31.05.2023 08:54:10 »
Лучше даже так:
начало =
    <наи- меньший из 2 7 11 4 9 4 8 17>
    <наи- больший из 2 7 11 4 9 4 8 17>
    <наи- больший из "Приветствую Вас!">
    <наи- длиннейший из () (1 "45" 3 "абв") "123" 10>;

наи- {
    ?отношение из !икс !игрек .прочие =
<наи- ?отношение из <Mu ?отношение из !икс !игрек> .прочие>;
    ?отношение из !икс = !икс;
}
больший {
    из ?икс ?игрек = <выбор <Compare ?икс ?игрек> ?икс ?игрек>;
}
меньший {
    из ?икс ?игрек = <выбор <Compare ?икс ?игрек> ?игрек ?икс>;
}
из;
выбор {
    "+" !икс !игрек = !икс;
    "-" !икс !игрек = !игрек;
    "0" !икс !игрек = !икс;
}
длиннейший {
    из !икс !игрек = <выбор <Compare <длина !икс> <длина !игрек>> !икс !игрек>;
}
длина {
    ?символ = 1;
    (.внутренность) = <длина .внутренность>;
    = 0;
    !терм .прочее = <<длина !терм> + <длина .прочее>>;
}
« Последнее редактирование: 02.06.2023 14:07:53 от DVI »

Оффлайн DVI

  • Начинающий
  • *
  • Сообщений: 1
    • Email
Re: Программирование по-русски
« Ответ #231 : 03.10.2023 06:37:27 »
Выступление А.П. Немытых в Переславле-Залесском с новой версией транслятора Refal-5, поддерживающей юникод.

Некоторые отличия от Рефал-машины:
  • Это транслятор и отладчик, а не интерпретатор.
  • Не допускается использовать имена функций в качестве символов, так что код в предыдущем примере рассматривается как принципиально ошибочный.
  • Никаких сокращений для удобства набора без переключения раскладки клавиатуры.
  • В именах функций решено использовать только те символы, которые традиционно используются в математике (латинские, греческие, математические символы, верхние и нижние индексы, но не кириллицу).

Последнее решение объяснимо, если нацеливаться на обучение Рефалу вместе с математикой. Но люди, программируя, именуют функции и словами. Пример - классическая функция определения палиндрома на Рефале. Поэтому стоило бы включить и кириллицу.

Какие символы допускаются в идентификаторе, определяется функциями isFirstIdChar, isIdChar, ri_isIdentifierOrPreWord в файле alpha.c. Для добавления кириллицы мне потребовалось добавить в соответствующие места этих функций вызов функции ri_isCyrillic.

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

Напрягает сочетание двух вещей:
  • Дата версии интерпретатора = дате последней компиляции
  • Copyright (уже не существующей? пока что не существующей?) компании Refal Systems Inc.
Если транслятор перешёл в общественное достояние, то следовало бы указать это явно.
« Последнее редактирование: 03.10.2023 12:59:24 от DVI »

Оффлайн flint1975

  • Завсегдатай
  • *
  • Сообщений: 1 425
    • Email
Re: Программирование по-русски
« Ответ #232 : 25.12.2023 11:35:39 »
22. Программа без комментариев ничего не стоит.

Если у кого возникнет желание это оспорить - пусть он сначала покажет _свой_ Гитхап.
У меня нет гитхаба, и на си я пишу только мелкие поделки для решения сиюминутных одноразовых утилитарных задач, но:
1. В основном пишу на 1С
2. Иногда сопровождаю код прошивок некоторых устройств, который приходится реинжинирить от китайцев (там жесть)
3. Встречал прошивки написанные настолько логично (был исходный код) что комментариев не требовалось это примерно на 3-5 тыс. строк.
4. Для узкоспециализированных областей - комментарии нужны больше для описания предмета, нежели для алгоритма.

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

Оффлайн GrishaDm

  • Давно тут
  • **
  • Сообщений: 332
Re: Программирование по-русски
« Ответ #233 : 25.12.2023 12:19:12 »
Основной тезис: сказанное ранее про комментарии - не абсолютно, но в целом верно! Чаще требуется технологическое описание алгоритма, а не комментарии по его реализации, а вот этого никто не желает делать, кроме как в курсовых студенческих работах или диссертациях.
А что, комментарии обязательно должны быть именно в коде? Вы проект делали хоть раз? Обычно пишешь софт, а к нему идёт документация - там всё - обучение, описание всех файлов, алгоритмы с расшифровкой всех используемых параметров, и т. п.

Оффлайн Pureproft

  • Давно тут
  • **
  • Сообщений: 329
    • Email
Re: Программирование по-русски
« Ответ #234 : 25.12.2023 13:00:06 »
1. В основном пишу на 1С
Любопытно, какие впечатления от https://oscript.io/ ?
Рассвет наступит неизбежно!

Оффлайн trs

  • Давно тут
  • **
  • Сообщений: 284
Re: Программирование по-русски
« Ответ #235 : 25.12.2023 15:43:48 »
Чаще требуется технологическое описание алгоритма, а не комментарии по его реализации, а вот этого никто не желает делать, кроме как в курсовых студенческих работах или диссертациях.

В "Верёвке достаточной длины..." (откуда цитата, в ответ на "программирование - мышление категориями, а не литературное понимание") комментариям повещена отдельная глава, и как раз к такому выводу и приводит читателя автор. Реализация обычно понятна из кода, а вот картина в целом - нередко напоминает детектив, особенно для непривыкших реверсить машкод.

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

Проект - это не просто сделать (обратите внимание на совершенное время глагола), а что бы он прожил хотя бы лет 10. И что бы не возникала ситуация, когда в документации одно, а код 5 лет как убежал вперёд. Потому придумали doxygen, QDoc, Javadoc и подобные инструменты - они автоматически генерируют документацию из специальным образом оформленных комментариев.

И будьте любезны, не поленитесь показать для примера парочку таких "обычных" проектов (знаю-знаю, свои под NDA, потому сгодятся чужие). MSDN я и сам видел, но писали его не люди с форума, и даже там не все параметры расшифрованы.

А то обычно почему-то вот так:
Цитировать
The window hierarchy

TODO

Last edited Sat 29 Mar 2014 03:59:04 PM UTC
Это - один из ключевых для Linux проектов, XCB. Любой эксперт объяснит, что X11 рулит, а модно-молодёжный Wayland должен умереть. Вот только факты вещь упрямая...

Оффлайн gosts 87

  • Завсегдатай
  • *
  • Сообщений: 2 724
  • Дмитрий/Dmitry/德米特里/दिमित्री
Re: Программирование по-русски
« Ответ #236 : 25.12.2023 18:34:00 »
код прошивок некоторых устройств, который приходится реинжинирить от китайцев (там жесть)
Спутниковых ресиверов? :-)
модно-молодёжный Wayland должен умереть.
Я бы не сказал, но чтобы под Wayland программа, которая изначально была написана под X-ы заработала, может уйти много времени и работы "напильником"...

Оффлайн flint1975

  • Завсегдатай
  • *
  • Сообщений: 1 425
    • Email
Re: Программирование по-русски
« Ответ #237 : 26.12.2023 18:51:41 »
Любопытно, какие впечатления от https://oscript.io/ ?
Прикольно! идея хорошая, почитал - да для решения одноразовых уникальных задач самое оно, учитывая что язык 1с - очень быстр в написании кода, за счет унифицированных структур данных.
Было бы интересно это еще и компилить :)
Однако, для тех целей, для которых это сделали (не вспоминать/ не учить cmd/shell/bash) мне не требуется, обычно я их очень быстро вспоминаю.
Для продакшна - пока сыровато, и отсутствие компилятора не позволяет отправить клиенту программку выполняющую определенные действия без установки скриптового движка. Но очень порадовало, что это появилось, и применение найти можно. Сам думал над чем-то подобным лет 12 назад.

Спутниковых ресиверов?
нет, с другом реверсили zigbee модули китайские.

Оффлайн flint1975

  • Завсегдатай
  • *
  • Сообщений: 1 425
    • Email
Re: Программирование по-русски
« Ответ #238 : 26.12.2023 19:11:13 »
А что, комментарии обязательно должны быть именно в коде? Вы проект делали хоть раз? Обычно пишешь софт, а к нему идёт документация - там всё - обучение, описание всех файлов, алгоритмы с расшифровкой всех используемых параметров, и т. п.
Вы выдаете желаемое за действительное.
Особенно если код закрытый и в команде программистов присутствует парочка параноиков. Сроки разработки - наше все ;), а уж соответствие документации коду - дело 10-е. А еще если архитектор проекта - не понимает половины технологических нюансов - количество совещаний и согласований вырастает кратно.

Для тех, кто не понял - это был шутливый сарказм - я пару раз с таким сталкивался - ну на фиг. 

Оффлайн Pureproft

  • Давно тут
  • **
  • Сообщений: 329
    • Email
Re: Программирование по-русски
« Ответ #239 : 27.12.2023 06:23:45 »
Было бы интересно это еще и компилить :)
На эту тему нужно читать про версию 2
https://t.me/oscript_library
Рассвет наступит неизбежно!