2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Язык разработки
Сообщение16.09.2025, 19:19 
Непростая тема, надо сказать. Короче, есть идея о новом языке. Постараюсь донести максимально интересно и доступно.

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

1 Общие сведения
Давайте возьмём для примера какой-нибудь язык программирования (псевдо-кодовый) и модифицируем его под "свои нужды". В этом и состоит основная идея нового языка - эксплуатация какого-либо известного языка с добавлением символов неопределённости.

Символы неопределённости:
- ellipsis, многоточие (...) - это основной символ, который мы будем рассматривать,
- question mark (?),
- можно ещё подумать над символом из регулярных выражений (*) - это возможность для добавления синтаксического сахара,
- в определённых языках разработки могут применяться символы "и т.д.", "etc.", "далее - хз", "и другие" и другие. (Внимание! В этом пункте было немного юмора.)

Теперь очень важно до вас донести понятие цепочки символов, которое изучается в теории языков [программирования]. Имя переменной, имя функции - это цепочки символов. Например, есть переменная "abcdef". Мы можем добавить символ неопределённости, получим "abc...f", тогда переменные "abcdef", "abcolutf" будут удовлетворять условиям языка разработки.

Мы можем рассматривать перечисление (enum) как цепочку символов, которая может содержать символ неопределённости.
Было:
Код:
enum class Day {Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday}


Стало:
Код:
enum class Day {Monday, Tuesday, Wednesday, ..., Sunday}


Мы можем взять класс и обрезать его.

Было:
Код:
class Time {
private:
    int hours;
    int minutes;
    int seconds;

public:
    Time(int h, int m, int s);  // объявляем конструктор

    // Объявляем три функции для чтения полей:
    int GetHours() const;
    int GetMinutes() const;
    int GetSeconds() const;
};


Стало:
Код:
class Time {
private:
    int hours;
    ...
    int seconds;

public:
    Time(int h, int m, int s);  // объявляем конструктор

    // Объявляем три функции для чтения полей:
    int GetHours() const;
    int GetMinutes() const;
    ...
};


Мы можем взять параметры функции и обрезать их.

Было:
Код:
Time(int h, int m, int s, int ms);


Стало:
Код:
Time(int h, int m, ...);


Или ещё жёстче:
Код:
Time(...);


А ещё можно умолчать, например, тип данных. Вот так:
Код:
... str = "Some string";


Можно также рассмотреть набор символов - это символы, порядок которых не имеет значения. В этом случае символ неопределённости автоматически отправляется в конец.
Было:
Код:
abcdef


Стало:
Код:
abcf...


2 Мотивация
Нафиг этот язык вообще нужен?

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

Язык разработки не предназначен для работы с компилятором. Он необходим для общения разработчиков между собой.

Но! Это было хитростью - сформировать язык разработки над языком программирования. Теперь можно программировать сколь угодно точно, но при этом иногда не столь точно выражать свои мысли.

3 Есть ли аналоги?
Это нормальный вопрос. Аналоги есть - и это комментарии, которые можно делать практически в любом языке программирования. Комментарии не предназначены для исполнения процессором, но нужны для разработчиков. По сути язык разработки - это упорядочивание правил комментирования в ЯП. Но надо это понимать в узком смысле, когда мы рассматриваем именно языки программирования, а не что-нибудь другое.
Я вижу язык разработки как нечто бОльшее. Просто с языками программирования намного проще.

Я бы добавил язык разработки, например, в САПР типа Автокад/Компас. Ну это те, с которыми я хорошо знаком. Представьте себе, если бы в чертеже детали или сборочной единицы был бы комментарий типа "Эту деталь я разработал по кривому техзаданию от заказчика X, дата 16.09.2025".

4 Практическая реализация
Если рассмотреть комментарии в ЯП как некий особый язык, то мы натолкнёмся на определённые правила типа "комментируй так, а не так". Эти правила замечательны... Инновация заключается в том, чтобы вместо свободного комментирования ввести правила некоего нового языка - языка разработки - и мягко интегрировать этот язык в существующий язык.

Выделим в правилах комментирования следующие пункты, которые я поддерживаю, но предлагаю так или иначе реформировать:

- Список "to do". Если класс, функция, список параметров функции или иная цепочка символов завершены, то не должно быть символа незавершённости - многоточия (...). Если вы уверены, что надо что-то дописать в коде, поставьте это многоточие. Таким образом места недоработки можно будет легче отыскать.

- Комментирование debug-строчек. Пометьте строчки или участки кода как debug, чтобы потом не забыть их раздебажить.

P.S. Я может забыл описать какие-то нюансы и аспекты применения языка разработки, но, мне кажется, пора закруглиться, чтобы не усложнять освоение информации.

-- 16.09.2025, 20:16 --

Я наверное упустил упомянуть следующее для стопудового донесения смысла. Есть два варианта:
1. Если есть символ незавершённости (неопределённости) - ... - это сигнал "тут незакончено, надо дорабатывать".
2. Если нет символа - "я тут всё сделал, не надо сюда совать свой нос".

Это очень важные сигналы между разработчиками.

Есть ещё другие типы сигналов, я о них умолчал, но на этапе осознания нового языка [разработки] это неважно.

 
 
 
 Re: Язык разработки
Сообщение16.09.2025, 20:21 
Таким образом, зрелые библиотеки, функции, классы будут содержать малое количество многоточий, а те, которые написаны на скорую руку, должны быть испещрены многоточиями. Это делает общение разработчиков более прозрачным. Более того, IDE получает дополнительную легко интерпретируемую информацию для помощи разработчику.

 
 
 
 Re: Язык разработки
Сообщение16.09.2025, 20:43 
Аватара пользователя
Возможно, стоит ввести многоточечное многоточие, где количество точек будет пропорционально неуверенности разработчика? А тонкости использования спец-маркеров типа "мля!", "чзфгн!?", и пр. я бы оставил для чистовой отработки.

 
 
 
 Re: Язык разработки
Сообщение16.09.2025, 20:44 
Утундрий
Всё верно, вы отлично вошли в тему!

 
 
 
 Re: Язык разработки
Сообщение17.09.2025, 00:18 
Mihaylo вместо синтаксического сахара предлагаю синтаксический мефедрон - с ним разработка языка разработки языка пойдёт гораздо веселее (а выглядят они одинаково).

 
 
 
 Re: Язык разработки
Сообщение17.09.2025, 18:11 
На самом деле язык для общения между разработчиками нужен. Я просто придумал первый символ - символ неопределённости/незаконченности/неуверенности. Также интересен и другой символ - символ завершённости. Пусть это будет восклицательный знак "!".

Всеми этими символами помечаются какие-то участки разработки - последовательности инструкций, списки параметров функции, члены класса, даже отдельные имена переменных и функций. Если ты закончил участок кода, поставь знак "!". Если не закончил, то оставь пока дефолтный знак "...".
Эти символы не принимаются компилятором в исполнение. Это просто специальные комментарии. Среда разработки (IDE) может помогать находить недоработанные участки - это как бы дополнительный побочный эффект.

Цель - перейти от свободного комментирования к более удобному языку разработчиков.

Помимо программной разработки можно применять язык в конструкторской разработке, в проектной разработке. Там могут быть другие изображения символов, более подходящие представлениям данных.

 
 
 
 Re: Язык разработки
Сообщение17.09.2025, 20:50 
Аватара пользователя
Mihaylo в сообщении #1702168 писал(а):
Также интересен и другой символ - символ завершённости. Пусть это будет восклицательный знак "!".
А так же символ ультимативной уверенности "Мамой клянус, да!"

 
 
 
 Re: Язык разработки
Сообщение17.09.2025, 20:59 
Mihaylo в сообщении #1702168 писал(а):
Я просто придумал первый символ - символ неопределённости/незаконченности/неуверенности. Также интересен и другой символ - символ завершённости. Пусть это будет восклицательный знак "!".


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

 
 
 
 Re: Язык разработки
Сообщение17.09.2025, 22:01 
Mihaylo Можете погуглить.
Частичное применение (Partial Application), замыкание (Closure), частичная аппликация (partial application),
функции высшего порядка (Higher-order function).

-- 17.09.2025, 22:06 --

Mihaylo в сообщении #1702069 писал(а):
Таким образом, зрелые библиотеки, функции, классы будут содержать малое количество многоточий, а те, которые написаны на скорую руку, должны быть испещрены многоточиями. Это делает общение разработчиков более прозрачным. Более того, IDE получает дополнительную легко интерпретируемую информацию для помощи разработчику.
...

 
 
 
 Re: Язык разработки
Сообщение18.09.2025, 17:28 
Аватара пользователя

(Более перспективно)

Mihaylo в сообщении #1702063 писал(а):
Я бы добавил язык разработки, например, в САПР типа Автокад/Компас. Ну это те, с которыми я хорошо знаком. Представьте себе, если бы в чертеже детали или сборочной единицы был бы комментарий типа "Эту деталь я разработал по кривому техзаданию от заказчика X, дата 16.09.2025".
Стартап Leo AI запустила команда исследователей из Кембриджа. Они разработали технологию, которая умеет превращать обычный эскиз или текстовую подсказку в полноценную 3D‑модель. Платформа - не просто еще один инструмент для инженеров и дизайнеров, "это настоящий “механический” GPT”. Пользователю сервиса достаточно нарисовать грубую форму детали или описать ее словами - Leo AI буквально за несколько минут создает детальную цифровую модель, готовую для дальнейшей работы. То, что раньше требовало долгой ручной работы в сложных CAD‑системах, теперь доступно мгновенно. Платформой пользуются в Scania, HP, Siemens и Mobileye. С помощью Leo AI было создано более 475 тыс. концептуальных проектов - от сложных автомобильных деталей до высокотехнологичных электронных компонентов.

 
 
 
 Re: Язык разработки
Сообщение18.09.2025, 17:44 
b4b5 в сообщении #1702194 писал(а):
Частичное применение (Partial Application), замыкание (Closure), частичная аппликация (partial application),
функции высшего порядка (Higher-order function).

Я понял, это нечто рядом, да.

Язык разработки - это не язык программирования. Хотя, если проигнорировать символы неопределённости и прочие, то при определённых условиях язык разработки может выродиться в язык программирования, и тогда текст может быть принят компилятором. Эта возможность языка разработки - быть надъязыком программирования может быть важной, а может быть и не обязательной. Но самое всё-таки главное - это то, что язык разработки предназначен для обмена информацией между разработчиками. Сейчас эту нишу занимают свободные комментарии, документация, доски задач и т.п.

 
 
 
 Re: Язык разработки
Сообщение19.09.2025, 00:28 
Пригодиться может, питон, *args и **kwargs инструменты для работы с переменным количеством аргументов.

 
 
 [ Сообщений: 12 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group