Форум программистов, компьютерный форум, киберфорум
ООП и паттерны
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.89/35: Рейтинг темы: голосов - 35, средняя оценка - 4.89
821 / 580 / 75
Регистрация: 20.09.2014
Сообщений: 3,825

ЯП, IDE и подходы к программированию в будущем

18.08.2020, 18:47. Показов 8382. Ответов 69
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Фактически эта тема - продолжение моей же темы, созданной ранее: О более новых парадигмах программирования, чем ООП

В общем я с момента создания той темы освоил еще несколько новых для себя ЯП, немного прокачался в алгебре, компьютерной науке, машинном обучении, системной инженерии и т.п. Мое видение программирования будущего становится все более отчётливым.

Итак, что я хочу придумать? По сути, новый ЯП, но тут надо сразу оговориться, что ЯП следует понимать не в узком смысле (привычные правила текстового синтаксиса языка), а в более широком смысле. То есть это должен быть программный продукт, в котором ЯП и IDE сплетаются воедино. Более близко мою идею выражают UML-редакторы. Итак, фактически я хочу, чтобы разработчик создавал модель ПО, а не программу (исходный код). Имея готовую модель ПО, легко можно автоматизировать формирование исходного кода и бинарного кода. Модель ПО - это представление кода, наиболее приспособленное к восприятию человеком. То есть фактически я предлагаю, наконец-то, при разработке ЯП не искать баланс между простотой понимания кода человеком и простотой перевода кода в машинный код, понятный компьютеру. Я считаю, что следует бросить все силы на простоту работы разработчика с кодом. Итак, первая идея - вместо кода разработчик создает модель ПО.

Модель ПО должна достаточно точно выражать поведение программы. Но тут надо оговориться, что это не всегда правда. Иногда можно поступиться с этим, и это должно решаться разработчиком. Тут есть несколько хороших идей у меня.

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

Ещё при разработке модели ПО разработчик должен иметь возможность быстро обнаруживать (видеть) существенные для него элементы, неважные элементы должны скрываться, а важные выделяться. Здесь у меня тоже имеется некоторое понимание (смутное пока представление).

Так вот. Я хочу какое-то накопление идей в этой теме. Есть ли какие-то интересные уже реализованные идеи на этот счет?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.08.2020, 18:47
Ответы с готовыми решениями:

obj\Debug\IDE.o||In function `Z11OpenProjectv':| C:\tsserver\Projects\cpp\codeblocks\MyComp\IDE\IDE\IDE.cpp|2 36|undefined reference to `GetOpenFileNam
obj\Debug\IDE.o||In function `Z11OpenProjectv':| C:\tsserver\Projects\cpp\codeblocks\MyComp\IDE\IDE\IDE.cpp|236|undefined reference to...

каким образом пожна подключить на мать с 2 IDE выходами и 2 SATA 3 жестких диска IDE и 2 CD-ROM IDE?
Доброго вам времени суток Можете подсказать каким образом пожна подключить на мать с 2 IDE выходами и 2 SATA 3 жестких диска IDE и 2...

Новая мать не видит ide ЖД и ide привод, проблема в Sata - Ide контроллере?
на оч старом компе решил заменить мать, ОЗУ, проц, видео. идешный HDD и привод оставил, купил 2 контроллера SATA to IDE марки Gembird,...

69
 Аватар для vantfiles
1018 / 1921 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
20.08.2020, 14:31
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Mikhaylo Посмотреть сообщение
текст удобнее
Возьмем три языка - С, Lisp, Prolog - и попробуем представить их в виде "прямоугольничков со стрелочками".

В С мы получим блоксхемы, в которых стрелки будут отражать последовательность выполнения.
В Lisp мы получим что-то типа диаграмм потоков данных.
Пролог вызывает вопрос - как представить логическое программирование в графическом виде? Я - не представляю.

PS:

"экраны имеют слишком мало пикселов, чтобы показать целиком и с достаточным разрешением сколько-нибудь подробную схему программы"

Возражу автору - а зачем нам вообще может понадобиться вся эта "простыня". Иерархическая схема решает в данном случае все.
0
821 / 580 / 75
Регистрация: 20.09.2014
Сообщений: 3,825
20.08.2020, 14:49  [ТС]
Цитата Сообщение от vantfiles Посмотреть сообщение
В С мы получим блоксхемы, в которых стрелки будут отражать последовательность выполнения.
В Lisp мы получим что-то типа диаграмм потоков данных.
Пролог вызывает вопрос - как представить логическое программирование в графическом виде? Я - не представляю.
На все можно придумать квадратики со стрелками.) Lisp - это функциональная парадигма, скриншоты этой парадигмы приводили... Пролог, у него там логические отношения - вот тебе стрелка, осталось только понять, что там представляет квадратик - предикат?..
0
Модератор
Эксперт функциональных языков программирования
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,912
21.08.2020, 10:52
Когда-то давно я пользовался Database Diagrams. Таблицы, ключи, связи стрелочками - мне нравилось... пока эти диаграммы умещались на двух экранах. Как результат, я давно перестал ими пользоваться. Неудобно. 100500 прямоугольников, лес стрелок и сложно найти то, что нужно.

ИМХО графические языки программирования бесперспективны. Проще читать код, чем картинки разглядывать. Даже для GUI удобнее редактировать разметку, чем пользоваться графическими редакторами (дизайнерами форм).
0
 Аватар для vantfiles
1018 / 1921 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
21.08.2020, 14:42
Цитата Сообщение от Shamil1 Посмотреть сообщение
Даже для GUI удобнее редактировать разметку
Вы координаты элементов интерфейса на форме в голове рассчитываете?
0
Модератор
Эксперт функциональных языков программирования
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,912
21.08.2020, 15:13
Цитата Сообщение от vantfiles Посмотреть сообщение
Вы координаты элементов интерфейса на форме в голове рассчитываете?
Обычно плохо использовать фиксированные координаты элементов. Ведь размер окна и разрешение экрана обычно неизвестны. Позиция элементов обычно задётся с помощью margin, padding, floating, docking и т.п.
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
21.08.2020, 17:09
Цитата Сообщение от Shamil1 Посмотреть сообщение
Даже для GUI удобнее редактировать разметку, чем пользоваться графическими редакторами (дизайнерами форм).
Наоборот, раскидывать элементы визуально проще и удобней, чем ковыряться в портянках разметки и стилей.
0
Модератор
Эксперт функциональных языков программирования
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,912
21.08.2020, 19:27
Цитата Сообщение от korvin_ Посмотреть сообщение
Наоборот, раскидывать элементы визуально проще и удобней, чем ковыряться в портянках разметки и стилей.
Даже когда положение (и даже наличие) элементов на форме зависит от размера экрана?

Посмотрите, например, разметку этого форума. Много там элементов, для которых заданы фиксированные размеры и/или координаты?
Когда Вы перемещаете некий элемент в дизайнере, как Ваш графический редактор догадается, Вы хотите переместить его на конкретное место (с конкретными координатами) или просто хотите, чтобы он отображался после некого другого элемента?

з.ы. Можно сделать голосовалку "пользуетесь ли Вы графическими редакторами для редактирования html/xaml экранных форм?"
0
 Аватар для vantfiles
1018 / 1921 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
21.08.2020, 20:09
Цитата Сообщение от Shamil1 Посмотреть сообщение
как Ваш графический редактор догадается, Вы хотите переместить его на конкретное место (с конкретными координатами) или просто хотите, чтобы он отображался после некого другого элемента
Через опции, разумеется. Причем можно накидать элементов, потом выделить все - и указать к примеру привязку к левому краю.

Добавлено через 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
Цитата Сообщение от vantfiles Посмотреть сообщение
Особенно весело будет менять в исходнике выравнивание части элементам формы, если вдруг окажется, что надо.
Это легко сделать. Либо в стиле поменять, либо новый стиль добавить (не трогая разметку). В крайнем случае, поменять/добавить класс контекстной заменой.
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
22.08.2020, 11:39
Цитата Сообщение от Shamil1 Посмотреть сообщение
Даже когда положение (и даже наличие) элементов на форме зависит от размера экрана?
Да.

Если под разные размеры нужна разная разметка, то создаются разные разметки (например, приложения для iPhone/iPad в XCode). Это лучше и удобней, чем раскиданные по одному файлу разметки условные конструкции, а ля каша из #ifdef в Сишном коде, вместо которой гораздо лучше был бы вынос платформозависимого кода в отдельные файлы, как это сделано, например, в Plan 9 C и Go.



Если речь резиновость, то layout-менеджеры прекрасно и удобно раскидываются и в визуальном дизайнере (например Swing UI designer в IDEA, да и, думаю в любом другом дизайнере всё с этим ОК), не нужно мудохаться с разными CSS-параметрами, подбирая нужную их комбинацию, чтобы div был расположен как тебе нужно. Это отдельная боль.

Цитата Сообщение от Shamil1 Посмотреть сообщение
Посмотрите, например, разметку этого форума.
Она убого работает на смартфонах: всё мелко, приходится масштабировать, чтобы попасть по нужной ссылке раздела/меню, при этом значительная часть контента уезжает за экран. В нативных приложениях UI гораздо удобней.

Как раз этот форум и многие другие веб-сайты наглядно показывают, что адаптивная вёрстка — плохой подход, и нужно делать отдельные разметки под разные типы экранов/устройств.

Цитата Сообщение от Shamil1 Посмотреть сообщение
Когда Вы перемещаете некий элемент в дизайнере, как Ваш графический редактор догадается, Вы хотите переместить его на конкретное место (с конкретными координатами) или просто хотите, чтобы он отображался после некого другого элемента?
Ну попробуй Swing UI Designer в IDEA.

Цитата Сообщение от Shamil1 Посмотреть сообщение
Можно сделать голосовалку "пользуетесь ли Вы графическими редакторами для редактирования html/xaml экранных форм?"
Не надо HTML сюда подмешивать, HTML создан для разметки документов, для него нет нормальных визуальных редакторов (были попытки, но провалилсь), потому что он совершенно не подходит для UI: одни сплошные div, да span, о смысле которых визуальному редактору пришлось бы только гадать, в отличие от специализированных разметок для UI.
0
 Аватар для vantfiles
1018 / 1921 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
22.08.2020, 12:08
Цитата Сообщение от Mikhaylo Посмотреть сообщение
В визио работал как в графической чертилке. Может проще карандашом на бумаге?
Карандаш с бумагой не выдаст вам потом схему в виде xml-файла, не сумеет запустить внешнее приложение для его обработки.

Я говорю о конкретной реализации в данном случае - и мне кажется лучше взять за основу Visio, чем с нуля учить самописную IDE рисовать квадратики со стрелочками.
0
 Аватар для vantfiles
1018 / 1921 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
23.08.2020, 15:56
Понятно, что текстовое представление универсально.
Однако есть как минимум три примера, где графическое выигрывает у текстового:

Функциональные схемы САУ (системы автоматического управления)
Диаграммы состояний конечных автоматов
SCADA-системы
0
821 / 580 / 75
Регистрация: 20.09.2014
Сообщений: 3,825
23.08.2020, 16:06  [ТС]
А я уверен, что текст выигрывает лишь в популярности, но нисколько в удобстве.
0
Модератор
 Аватар для Curry
5168 / 3530 / 536
Регистрация: 01.06.2013
Сообщений: 7,683
Записей в блоге: 9
24.08.2020, 07:42
Цитата Сообщение от Mikhaylo Посмотреть сообщение
То есть фактически я предлагаю, наконец-то, при разработке ЯП не искать баланс между простотой понимания кода человеком и простотой перевода кода в машинный код
Современные ЯП для человека, а не машины. Что бы человеку было удобно, повышалась производительность труда. А компьютер, он железный, у него голова не болит.
В эпоху первых компьютеров, когда машино-час стоил дороже человека часа, писали на ассемблерах и примитивных языках что бы сократить время компиляции, и, вообще, сложные языки в те компьютеры бы не влезли. А сейчас вышеупомянутый баланс искать не надо.

Цитата Сообщение от Mikhaylo Посмотреть сообщение
Во-вторых, сегодняшние экраны имеют слишком мало пикселов, чтобы показать целиком и с достаточным разрешением сколько-нибудь подробную схему программы.
Графические языки пытаются внедрить с момента появления дисплеев. Безрезультатно.
Слишком рыхлое представление программы получается. Текстовое представление компактнее.
А увеличение кол-ва пикселей что бы дало? Если увеличить их плотность на мм, то программист глаза посадит. А если превратить экран в сферу что бы программист висел внутри и крутил башкой как сова ... что то меня такое программирование не впечатляет.
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
 Аватар для vantfiles
1018 / 1921 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
24.08.2020, 13:11
Цитата Сообщение от Shamil1 Посмотреть сообщение
схема связей между классами
не прослеживаю связь с GPL, да, это пример неудачного использования визуализации.

Добавлено через 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
Эксперт .NET
 Аватар для Usaga
14745 / 9519 / 1364
Регистрация: 21.01.2016
Сообщений: 35,914
24.08.2020, 13:38
Цитата Сообщение от Mikhaylo Посмотреть сообщение
А я уверен, что текст выигрывает лишь в популярности, но нисколько в удобстве.
А популярности без каких-то серьёзных преимуществ не бывает.
1
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
24.08.2020, 14:56
Цитата Сообщение от Shamil1 Посмотреть сообщение
Да и несколько тысяч классов на одной диаграмме тоже бессмысленно отображать.
На одной и не нужно, нужны разноуровневые отображения. =/

Цитата Сообщение от Mikhaylo Посмотреть сообщение
Вы разве не испытываете лес текста?
Нет.

Цитата Сообщение от Mikhaylo Посмотреть сообщение
P.S. Я пытаюсь сформулировать отображение различных уровней абстракции, чтобы регулировать число стрелок на диаграмме в зависимости от задачи.
Попытайся лучше сформулировать как выглядел бы diff двух коммитов.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
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|
//================================================================================================= #include "IDE.hpp"...

C:\tsserver\Projects\cpp\codeblocks\MyComp\IDE\IDE\IDE.cpp|3 9|undefined reference to `GetStockObject@4'|
C:\tsserver\Projects\cpp\codeblocks\MyComp\IDE\IDE\IDE.cpp|39|undefined reference to `GetStockObject@4'|

Подскажите пожалуйста IDE для линукса (например, для кали-линукса) для новичка для обучения программированию на си++
Сейчас обучаюсь стандарту си++ 2011. Подскажите новичку, чего выбрать? Есть небольшой опыт работы в qt, в линуксе ничего еще не умею делать.

Версионность: подходы, решения.
Существуют разные подходы к учету версий создаваемого ПО. У какого какие преимущества? А самое главное, как правильней организовать эту...

2-ух, 3-ёх уровневый подходы к проектировнаию БД
Что такое 2-ух, 3-ёх уровневый подходы к проектировнаию БД? Добавлено через 4 часа 58 минут Извиняюсь, неужели ни кто не знает ответ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Программа опроса у.з. расходомера 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 ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru