|
821 / 580 / 75
Регистрация: 20.09.2014
Сообщений: 3,825
|
|
ЯП, IDE и подходы к программированию в будущем18.08.2020, 18:47. Показов 8382. Ответов 69
Метки нет (Все метки)
Фактически эта тема - продолжение моей же темы, созданной ранее: О более новых парадигмах программирования, чем ООП
В общем я с момента создания той темы освоил еще несколько новых для себя ЯП, немного прокачался в алгебре, компьютерной науке, машинном обучении, системной инженерии и т.п. Мое видение программирования будущего становится все более отчётливым. Итак, что я хочу придумать? По сути, новый ЯП, но тут надо сразу оговориться, что ЯП следует понимать не в узком смысле (привычные правила текстового синтаксиса языка), а в более широком смысле. То есть это должен быть программный продукт, в котором ЯП и IDE сплетаются воедино. Более близко мою идею выражают UML-редакторы. Итак, фактически я хочу, чтобы разработчик создавал модель ПО, а не программу (исходный код). Имея готовую модель ПО, легко можно автоматизировать формирование исходного кода и бинарного кода. Модель ПО - это представление кода, наиболее приспособленное к восприятию человеком. То есть фактически я предлагаю, наконец-то, при разработке ЯП не искать баланс между простотой понимания кода человеком и простотой перевода кода в машинный код, понятный компьютеру. Я считаю, что следует бросить все силы на простоту работы разработчика с кодом. Итак, первая идея - вместо кода разработчик создает модель ПО. Модель ПО должна достаточно точно выражать поведение программы. Но тут надо оговориться, что это не всегда правда. Иногда можно поступиться с этим, и это должно решаться разработчиком. Тут есть несколько хороших идей у меня. Частный случай представления модели ПО - набор последовательно выполняемых инструкций, записанных сверху вниз текстовым языком, не лишён смысла! Обозначать переменные, функции с помощью набора букв латинского алфавита без использования пробелов - это тоже допускается. Но всегда следует думать о более привычных человеку представлениях! Я хочу использовать в качестве элементов синтаксиса языка гораздо более широкий диапазон способов передачи данных (текст и графические примитивы - прямоугольники, окружности, стрелки и т.п., а также положение, размер, цвет, форма, толщина текста и графических примитивов). Ещё при разработке модели ПО разработчик должен иметь возможность быстро обнаруживать (видеть) существенные для него элементы, неважные элементы должны скрываться, а важные выделяться. Здесь у меня тоже имеется некоторое понимание (смутное пока представление). Так вот. Я хочу какое-то накопление идей в этой теме. Есть ли какие-то интересные уже реализованные идеи на этот счет?
0
|
|
| 18.08.2020, 18:47 | |
|
Ответы с готовыми решениями:
69
obj\Debug\IDE.o||In function `Z11OpenProjectv':| C:\tsserver\Projects\cpp\codeblocks\MyComp\IDE\IDE\IDE.cpp|2 36|undefined reference to `GetOpenFileNam каким образом пожна подключить на мать с 2 IDE выходами и 2 SATA 3 жестких диска IDE и 2 CD-ROM IDE? Новая мать не видит ide ЖД и ide привод, проблема в Sata - Ide контроллере? |
|
|
||
| 20.08.2020, 14:31 | ||
|
В С мы получим блоксхемы, в которых стрелки будут отражать последовательность выполнения. В Lisp мы получим что-то типа диаграмм потоков данных. Пролог вызывает вопрос - как представить логическое программирование в графическом виде? Я - не представляю. PS: "экраны имеют слишком мало пикселов, чтобы показать целиком и с достаточным разрешением сколько-нибудь подробную схему программы" Возражу автору - а зачем нам вообще может понадобиться вся эта "простыня". Иерархическая схема решает в данном случае все.
0
|
||
|
821 / 580 / 75
Регистрация: 20.09.2014
Сообщений: 3,825
|
||
| 20.08.2020, 14:49 [ТС] | ||
|
0
|
||
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,912
|
|
| 21.08.2020, 10:52 | |
|
Когда-то давно я пользовался Database Diagrams. Таблицы, ключи, связи стрелочками - мне нравилось... пока эти диаграммы умещались на двух экранах. Как результат, я давно перестал ими пользоваться. Неудобно. 100500 прямоугольников, лес стрелок и сложно найти то, что нужно.
ИМХО графические языки программирования бесперспективны. Проще читать код, чем картинки разглядывать. Даже для GUI удобнее редактировать разметку, чем пользоваться графическими редакторами (дизайнерами форм).
0
|
|
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,912
|
||
| 21.08.2020, 15:13 | ||
|
0
|
||
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
||
| 21.08.2020, 17:09 | ||
|
0
|
||
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,912
|
||
| 21.08.2020, 19:27 | ||
|
Посмотрите, например, разметку этого форума. Много там элементов, для которых заданы фиксированные размеры и/или координаты? Когда Вы перемещаете некий элемент в дизайнере, как Ваш графический редактор догадается, Вы хотите переместить его на конкретное место (с конкретными координатами) или просто хотите, чтобы он отображался после некого другого элемента? з.ы. Можно сделать голосовалку "пользуетесь ли Вы графическими редакторами для редактирования html/xaml экранных форм?"
0
|
||
|
|
||
| 21.08.2020, 20:09 | ||
|
Добавлено через 3 минуты Особенно весело будет менять в исходнике выравнивание части элементам формы, если вдруг окажется, что надо. Добавлено через 2 минуты Mikhaylo, по теме, если захотите поиграться с чем-то реальным, рекомендую взять за основу Visio -- на его основе весьма популярно делать предметно-ориентированные редакторы всяких там схем, а потом собирать из них какой-нибудь код.
0
|
||
|
821 / 580 / 75
Регистрация: 20.09.2014
Сообщений: 3,825
|
|
| 21.08.2020, 21:38 [ТС] | |
|
В визио работал как в графической чертилке. Может проще карандашом на бумаге?
0
|
|
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,912
|
||
| 22.08.2020, 02:17 | ||
|
0
|
||
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
|||||
| 22.08.2020, 11:39 | |||||
|
Если под разные размеры нужна разная разметка, то создаются разные разметки (например, приложения для iPhone/iPad в XCode). Это лучше и удобней, чем раскиданные по одному файлу разметки условные конструкции, а ля каша из #ifdef в Сишном коде, вместо которой гораздо лучше был бы вынос платформозависимого кода в отдельные файлы, как это сделано, например, в Plan 9 C и Go. Если речь резиновость, то layout-менеджеры прекрасно и удобно раскидываются и в визуальном дизайнере (например Swing UI designer в IDEA, да и, думаю в любом другом дизайнере всё с этим ОК), не нужно мудохаться с разными CSS-параметрами, подбирая нужную их комбинацию, чтобы div был расположен как тебе нужно. Это отдельная боль. Как раз этот форум и многие другие веб-сайты наглядно показывают, что адаптивная вёрстка — плохой подход, и нужно делать отдельные разметки под разные типы экранов/устройств.
0
|
|||||
|
|
||
| 22.08.2020, 12:08 | ||
|
Я говорю о конкретной реализации в данном случае - и мне кажется лучше взять за основу Visio, чем с нуля учить самописную IDE рисовать квадратики со стрелочками.
0
|
||
|
|
|
| 23.08.2020, 15:56 | |
|
Понятно, что текстовое представление универсально.
Однако есть как минимум три примера, где графическое выигрывает у текстового: Функциональные схемы САУ (системы автоматического управления) Диаграммы состояний конечных автоматов SCADA-системы
0
|
|
|
821 / 580 / 75
Регистрация: 20.09.2014
Сообщений: 3,825
|
|
| 23.08.2020, 16:06 [ТС] | |
|
А я уверен, что текст выигрывает лишь в популярности, но нисколько в удобстве.
0
|
|
|
Модератор
|
|||
| 24.08.2020, 07:42 | |||
|
В эпоху первых компьютеров, когда машино-час стоил дороже человека часа, писали на ассемблерах и примитивных языках что бы сократить время компиляции, и, вообще, сложные языки в те компьютеры бы не влезли. А сейчас вышеупомянутый баланс искать не надо. Слишком рыхлое представление программы получается. Текстовое представление компактнее. А увеличение кол-ва пикселей что бы дало? Если увеличить их плотность на мм, то программист глаза посадит. А если превратить экран в сферу что бы программист висел внутри и крутил башкой как сова ... что то меня такое программирование не впечатляет.
1
|
|||
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,912
|
|
| 24.08.2020, 11:46 | |
|
имхо Даже просто (детальная) схема связей между классами бесполезна. У меня у некоторых свойств/методов 100+ использований по проекту. Если их все отобразить графически, то это не будет наглядно (лес стрелок).
Добавлено через 5 минут Да и несколько тысяч классов на одной диаграмме тоже бессмысленно отображать.
0
|
|
|
821 / 580 / 75
Регистрация: 20.09.2014
Сообщений: 3,825
|
|
| 24.08.2020, 12:13 [ТС] | |
|
Вы разве не испытываете лес текста?
P.S. Я пытаюсь сформулировать отображение различных уровней абстракции, чтобы регулировать число стрелок на диаграмме в зависимости от задачи.
0
|
|
|
|
||
| 24.08.2020, 13:11 | ||
|
Добавлено через 2 минуты GPL -- Graphical Progrgamming Language или VPL -- Visual Progrgamming Language, а то еще возникнет путаница... Добавлено через 20 минут Есть другой пример, фирма, в которой я работал, разрабатывала БД для крупной корпорации. Количество таблиц в какой-то момент перевалило за 1000 и несмотря на попытки декомпозиции, в какой-то момент группа разработчиков перестала контролировать всю эту массу. Поступили просто - не поленились, отрисовали полную схему, арендовали плоттер A0 - и распечатали ее. Как результат - оказалось, что часть таблиц сдублирована. Разумеется, внесли коррективы, а схему стали регулярно обновлять и распечатывать. Добавлено через 32 минуты PS: из известных мне примеров VPL рекомендую посмотреть HiAsm. https://ru.wikipedia.org/wiki/HiAsm "HiAsm является практическим примером реализации подхода модель-ориентированной архитектуры, также называемого «разработкой от модели». Значимость данного подхода состоит в абстрагировании от платформ и архитектур поставщиков аппаратного и системного программного (математического) обеспечения." Home, sweet home: https://hiasm.com/
1
|
||
|
14745 / 9519 / 1364
Регистрация: 21.01.2016
Сообщений: 35,914
|
|
| 24.08.2020, 13:38 | |
|
1
|
|
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
||||
| 24.08.2020, 14:56 | ||||
|
0
|
||||
| 24.08.2020, 14:56 | |
|
C:\tsserver\Projects\cpp\codeblocks\MyComp\IDE\IDE\IDE.cpp|1 5|error: 'InitApplication' was not declared in this scope| C:\tsserver\Projects\cpp\codeblocks\MyComp\IDE\IDE\IDE.cpp|3 9|undefined reference to `GetStockObject@4'| Подскажите пожалуйста IDE для линукса (например, для кали-линукса) для новичка для обучения программированию на си++ Версионность: подходы, решения. 2-ух, 3-ёх уровневый подходы к проектировнаию БД Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|