|
Заблокирован
|
|
Обсудим идеи как можно радикально облегчить и упростить программирование?13.09.2016, 21:20. Показов 4293. Ответов 94
Метки нет (Все метки)
Обсудим идеи как можно облегчить и упростить программирование?
Программирование с автоматически генерируемыми "IF...THEN...ELSE"
Есть ли языки без функций и "IF...THEN...ELSE"? Не для кого не секрет что не смотря на то, что на заре развития инструментов программирования говорилось, что скоро языки программирования настолько приблизятся к языкам естественного общения, что программировать сможет даже домохозяйка это не произошло. Писать большие программы все так же мучительно и долго. Хотя уже более 50 лет инструментарий развивается. Мне кажется что сложность программирования объясняется выбранной формой представления программы. Из-за которой большую часть времени программист разбирается в тысячах "IF..THEN..ELSE" и сотнях функций. Даже в программе, написанной на объектно-ориентированном языке А можно ли придумать какую-то форму представления программы, в которой бы не надо этого было делать? Ну или хотя бы чтобы часть "IF..THEN..ELSE" и функций среда разработки генерировала сама. Какие это могут быть формы? Ну типа тоже текст, но более близкий к языку естественного общения. Ну или графического представление. Человек нарисовал световым пером на планшете картинку - а система распознала её и сгенерировала код. Или программировать просто разговаривая с компьютером на человеческом разговорном языке. Ты говоришь компу - а он тебя понимает и генерит код. Вообщем давайте подумаем вместе: что не дает в разы упростить и ускорить процесс программирования и снизить на порядки число багов? Я думаю что форма представления программ будет меняться.
Уже давно назрела необходимость. Потому что сложность программ и решаемых ими задач растет. Поэтому нужно искать более адекватное, чем PLAIN-текст , представление программы (средства её обзора), её логики, структуры и смысла. Так и средства разработки и контроля изменений Просто мы продолжаем даже на высоких уровнях абстракции использовать всю ту же модель: "If...Then...else" Может пора придумать что-то ещё? Я думаю, что представление программы в виде "чисто PLAIN-текст и больше ничего кроме текста" скоро уйдет
, так как оно уже тормозит прогресс: сложные задачи решать очень сложно с таким преставлением.Потому что оно не очень наглядно и удобно. А ведь сложность задач постоянно растет.
0
|
|
| 13.09.2016, 21:20 | |
|
Ответы с готовыми решениями:
94
Работа с 2 формами. Можно как то облегчить?
Как можно упростить код? |
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||||
| 16.09.2016, 05:07 | |||||||
|
А дедушка Ленин ошибся. Развитие робототехники ликвилирует кухарок и прочих работников ручного труда как класс. Кстати именно из за этой ошибки Ленина кибернетику и робототехнику в СССР и крестили лженаукой. Добавлено через 1 минуту Добавлено через 3 минуты Добавлено через 1 минуту Добавлено через 2 часа 10 минут Добавлено через 2 минуты
0
|
|||||||
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,912
|
||
| 16.09.2016, 10:44 | ||
|
IF Свет == Зелёный THEN можно_идти ELSE ... Чтобы понять логику работы этого IF, мне не нужно знать, как вычисляется значение переменной Свет (от каких других ифов оно зависит).
0
|
||
|
Заблокирован
|
||||||||
| 16.09.2016, 11:15 [ТС] | ||||||||
|
Когда компилятор ищет метод который нужно вызывать учитывая возможность перегрузки и иерархии он именно ифы выполняет. А в качестве "переменных" в "условных выражениях" использует имена типов Добавлено через 1 минуту Просто люди часто используют ООП и прочие фишки С++ не задумываясь Не по теме: (большинство людей вообще не любят задумываться о чем-либо - от этого голова болит) Добавлено через 2 минуты Когда большинство связей и зависимостей скрыты, неявны и программисту приходится прилагать большие усилия, чтобы их разглядеть Добавлено через 1 минуту Вот поэтому и "НЕ делаются" ... Добавлено через 4 минуты Франкенштейн. И до конца понять как она работает не смогут даже её создатели Добавлено через 11 минут А в коде есть IF-ы. А Вы говорите "не зависит" И потом, Вы рассматриваете самые простейшие, ВЫРОЖДЕННЫЕ, случаи. Это не хорошо. Это примерно как в физике. Там рассматривают тела как материальные точки. В вырожденном случае это можно делать. Но этим не исчерпываются все расчеты. Иногда тело нельзя принимать за материальную точку. А если так: IF (Н*Z)>(R+T) THEN ... И вычисления переменных H, Z, R, T "размазаны" по коду и содержать IF-ы? Получается что результат IF-а зависит от того, как вычислялись другие IF-ы. И кроме того, нужно ещё проверить, что мы вообще корректно попали в эту точку программы. Не о понимании, а об ИСПРАВЛЕНИИ/ВНЕСЕНИИ ИЗМЕНЕНИЙ в код. Что трудно внести изменение не порушив всю логику если программа достаточно сложная. Добавлено через 6 минут Это как в схемотехнике. Чтобы понять работу устройства по схеме "вобщем" нужны одни усилия. Относительно небольшие. Потому что от многих вещей можно абстрагироваться (например от того, как размещены компоненты на плате и как проведены дорожки). А когда тебе нужно спроектировать устройство - ты должен продумать малейшие нюансы, учесть все влияющие связи.
0
|
||||||||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||
| 16.09.2016, 12:53 | ||||
|
Добавлено через 1 минуту Добавлено через 39 секунд
1
|
||||
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,912
|
|||
| 16.09.2016, 13:45 | |||
Бизнес-логика заключается в том, что можно идти на зелёный свет. Когда я правлю эту логику, мне не нужно думать о том, как переключается светофор. Переключением светофора занимается другой модуль.
0
|
|||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 16.09.2016, 13:51 | ||
|
0
|
||
|
Заблокирован
|
||
| 16.09.2016, 14:18 [ТС] | ||
|
Никто не делает универсальный модуль на все случаи жизни, когда кофемолка сможет выполнять функции утюга или мясорубки
0
|
||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 16.09.2016, 15:07 | ||
|
0
|
||
|
Заблокирован
|
|
| 16.09.2016, 15:42 [ТС] | |
|
С другой стороны, управлять огромным числом маленьких кубиков также сложно, как малым числом больших
0
|
|
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||||||||
| 17.09.2016, 03:49 | |||||||||||
|
Добавлено через 1 минуту При этом такие промежуточные сборки кубиов имеют качественно новые свойства - их можно один раз настроить и связать с другими кубиками, а дальше они уже управляются сами. Добавлено через 8 часов 41 минуту Добавлено через 21 минуту
1
|
|||||||||||
|
Заблокирован
|
|
| 17.09.2016, 15:53 [ТС] | |
|
Fulcrum_013, Shamil1, Короче в программировании все проблемы решены и расти дальше некуда.
Я правильно понял посыл ваших месседжей? Что все и так уже хорошо (так хорошо, что лучше и не надо) и "от добра добра не ищут"
0
|
|
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 17.09.2016, 18:38 | ||
|
0
|
||
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,912
|
||
| 17.09.2016, 19:51 | ||
|
0
|
||
|
Заблокирован
|
|
| 18.09.2016, 09:36 | |
|
Ну я в теме участия принимать не буду - просто вот "система условия", кто хочет чтобы его код работал и на химических компьютерах-молекулах должен писать условные операторы так, а выбор за вами - будете вы переписывать свой код или делать его универсальным сразу. https://www.cyberforum.ru/blog... g3707.html .
И таки да - сделал на спор с студентами, об экономии средств на разработку ПО не подумал, так-то да экономия средств на разработке ПО в перспективе на будущее - реальна, только не для меня - сделал на спор.
0
|
|
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|
| 18.09.2016, 19:30 | |
|
0
|
|
|
Заблокирован
|
||
| 18.09.2016, 20:24 [ТС] | ||
|
Fulcrum_013, Shamil1, Просто Вы рассматриваете простые структуры данных и алгоритмические языки (а-ля Паскаль) к которым относится с++ и многие другие.
А если бы структуры данных были сложные, то "замучаетесь пыль глотать"(с) при каждом изменении этой структуры данных и правил её построения. Например если Вам нужно распарсить какой-нибудь необычный нестандартный REGEX, а его правила построения поменялись. Или Вы пишите компилятор языка, а его грамматика (контекстно-зависимая) поменялась. Замучаетесь if-Ы править каждый раз. 100% понасажаете ошибок Добавлено через 1 минуту Добавлено через 1 минуту Hretgir, Я не очень понял о чем Вы. Поясните
0
|
||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 18.09.2016, 20:25 | ||
|
0
|
||
|
Заблокирован
|
|||
| 18.09.2016, 20:31 [ТС] | |||
|
Спасибо конечно, кэп. Но к чему это Вы сказали? Да являются. И что? Приведу аналогию из строительства. Стеновые-блоки, из которых сейчас 17-ти этажки строят за месяц, вручную же из кирпичиков не собирают. Это делают специальные механизмы. Добавлено через 3 минуты Вы слышали что-нибудь о контекстной зависимости? Иерархии Хомского? О том, что 2+2 может равняться и 6 и 8? "Не так", в смысле, порой нельзя разрезать структуру на отдельные "кирпичики" и отлаживать их по отдельности. Это примерно как если у человека отрезать ногу или руку - то каждую отдельную часть невозможно "отладить" без остальных. Потому что все органы и конечности человека работают в тесной связке
0
|
|||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||
| 18.09.2016, 20:55 | ||||
|
Добавлено через 44 секунды
0
|
||||
|
Заблокирован
|
|||
| 18.09.2016, 21:48 [ТС] | |||
|
Можно отлично уметь двигать руками, ногами головой. Но при этом не уметь бегать и лазить по деревьям. Изучая каждую отдельную часть человека в отдельности НИКОГДА не поймешь, что такое человек Добавлено через 2 минуты Fulcrum_013, Про "контекстную зависимость", "нестандартный REGEX" и написание компилятора языка с постоянно меняющейся грамматикой Вы специально <<не заметили>>? Выборочно отвечаете? Добавлено через 1 минуту Термин "синергетика" Вам о чем нибудь говорит? Когда две сущности объединяются и в результате появляется третья сущность в которой присутствуют свойства, которых не было в исходных сущностях и, возможно, отсутствуют исходные свойства первоначальных сущностей Добавлено через 11 минут Или вот ещё идея (это я сейчас совсем про другое (но в рамках темы) - оно не как не связано с тем, что говорилось выше) Все мы пользуемся программами сравнения (визуализации отличий) исходников. Чаще всего в связке с системой контроля версий. Бывает нужно посмотреть чем рабочая версия отличается от версии к примеру месячной давности. Таких программ достаточно много (Windiff, Araxis Merge, Beyound Compare и прочие) Программа "компаратор исходников" нужна. Не не просто тупого сравнения текста двух файлов и визуализации отличий в тексте(что и делают упомянутые выше программы), а сравнения СЕМАНТИКИ двух исходников и визуализации семантических отличий. Т.е. "компаратор" должен как мининимум понимать семантику языков программирования, исходники на котором он сравнивает Приведу конкретный пример. Вы переименовали функцию, которая у Вас в исходниках вызывается раз 150, с TlRof на Lsyrt. Что покажет обычный diff viewer? Выделит красным все 150 мест где находятся вызовы. А что покажет semantic diff viewer? Покажет всего одну строчку: Функция TlRof была переименована на Lsyrt. Согласитесь, что когда нужно знать не точные места где что изменилось, а смысл изменений, чтобы понять насколько они существенны, semantic diff viewer рулит больше, чем просто diff viewer. Ведь в случае просто диф. вьювера Вам придется просмотреть все 150 изменений, проанализировать их, чтобы понять, что в исходнике всего лишь переименовали функцию В сложных случаях таких подсвеченных красным строк может быть десятки тысяч. И это в то время как семантически исходник НЕ ИЗМЕНИЛСЯ
0
|
|||
| 18.09.2016, 21:48 | |
|
Можно ли как-то упростить код Как можно это упростить? Как можно упростить код? Как можно упростить процесс? как можно упростить код? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программа опроса у.з. расходомера 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
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|