LINUX.ORG.RU

Графическое представление структур данных (включая работу с ними)?

 


2

3

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

Но есть еще одна область, где визуальное представление востребовано - это структуры данных. Мы рисуем диаграмки из квадратиков и стрелочек на презентациях когда объясняем сложные структуры данных коллегам и студентам, смотрим на диаграмки в статьях про структуры данных и т.д. (спасибо @Siborgium - это он меня натолкнул на мысль;-)).

Есть два предельных случая.

  1. Программа минимум - хотелось бы иметь утилиту, способную построить в рантайм диаграмму отображающую существующую в программе структуру данных. Например для отладки. Наверное это должно быть что то вроде valgrind, но которая заданной точке трассы исполнения рисует объекты (квадратики) соединенные стрелочками (пойнтерами). Хотя возможна же косвенная адресация, когда используется не пойнтер а индекс в массиве… Но для отладки это было бы круто, мы делали такое для питона - выглядит феерично и местами очень наглядно. Соответственно вопрос - есть ли сейчаc такие утилиты? Я бы такую хотел (для плюсов).

  2. Программа максимум - именно программирование. То есть мы берем структуру данных (точнее ее фрагмент) и мышкой перебрасываем стрелочки. Что то подобное я делаю на доске когда объясняю студентам что такое список. Утилита в которой это делается запоминает историю переброса стрелочек и генерит на основе этой истории код какого то метода (например list::insert). Историю можно промотать туда/сюда и отредактировать. Наверное неплохо иметь возможность делать текстовые вставки в историю. Это чисто императивный стиль программирования. Не знаю кто как, а я когда велосипедю сложные структуры данных такую картинку в голове/на доске/на бумажке держу.

Пока что п.2 это чисто фантазии, в ближайшие полгода у меня до такого точно руки не дойдут, да и не очень пока понятно насколько оно вообще надо/удобно.

@hobbit, @abcq, @provaton зацените;-)

★★★★

Последнее исправление: AntonI (всего исправлений: 2)

Ответ на: комментарий от AntonI

А ну так это RnD всякое тут код это скорее способ получить итоговый артефакт, ответ на вопрос можно ли так и если можно то с какими ограничениями фундаментальными. Довольно прикольно на самом деле, завидую.

pon4ik ★★★★★
()
Ответ на: комментарий от peregrine

Если можно, то почему бы и нет, вопрос чего дешевле - писать и поддерживать скрипт или руками доку править. Во многих областях скрипт написать просто не реально.

pon4ik ★★★★★
()
Ответ на: комментарий от peregrine

Аааа, я понял к чему ты подводишь, издалека зашёл чего сказать.

pon4ik ★★★★★
()
Ответ на: комментарий от peregrine

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

pon4ik ★★★★★
()
Ответ на: комментарий от AntonI

Боюсь мой задний фон не позволит мне даже предметную область и суть решаемых задач за адекватное время понять, не то, что разработку решений производить.

pon4ik ★★★★★
()
Ответ на: комментарий от pon4ik

Тут вот какое дело - если что-то что уже есть делается или что-то очевидное, то подход с архитектурой на бумажке нормальный. Но когда делается что-то новое и не очевидное, сам факт того что оно в теории будет работать под вопросом. Тогда берутся быстрые в плане разработки инструменты (Python, Matlab, nodejs) и лепится прототип на коленке, который покажет, что теоретически оно будет работать. А дальше уже всё переписывается как положено. Сложность в том, что из-за роста проработанности сферы IT, такие исследовательские проекты сами по себе становятся всё более трудными (на примере бигдаты хорошо видно, то что было по сложности в 90 году крутой теорией достойной книги в 2010 стало дипломом бакалавра, а сейчас тянет максимум на курсач, скоро вообще лабой станет) и наступил момент, когда надо думать, как упростить работу с ними.

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 2)
Ответ на: комментарий от pon4ik

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

Я про книжку по поводу программирования. Я нашел в итоге товарища, но он тоже весь страшно занятой (и я тоже щас занятой), пока неясно что получится. Товарищ правда упирался долго (типа на эту тему надо пятитомник писать уже какой по счету), но нехотя условно согласился.

AntonI ★★★★
() автор топика
Ответ на: комментарий от pon4ik

Но я всегда относился к доке, как к более высокоуровневому языку программирования.

+100500. И вообще это все средства выражения того что у тебя в голове сложилось. Чем старше становлюсь, тем дольше я думаю и потом быстрее делаю. Так что скорее речь идет об инструменте для думания.

AntonI ★★★★
() автор топика
Ответ на: комментарий от peregrine

Согласен, но для нового как раз и есть rnd + poc с научными статьями на выходе или хотя бы просто со статьями, т.к. результатом конкретно этих процессов является не готовый продукт, а подход[ы] которые помогут построить продукт или целое семейство продуктов.

Если не придираться к терминологии, то те же яйки только в профиль - код можно выкинуть, главное что бы требования/мотивация и ключевые архитектурные моменты были сохранены в виде который читать проще чем код на колене.

pon4ik ★★★★★
()
Ответ на: комментарий от pon4ik

Я вот сейчас RND и POC занимаюсь. Без кода статья не пишется, потому как в зависимости от результатов всё с ног на голову становится. Там где думал нейросети нужны - деревья по факту требуются, там где думал деревья - регрессия и так далее.

peregrine ★★★★★
()
Ответ на: комментарий от peregrine

Ноги то растут из того, что чем более разработано направление, тем сложнее в нём найти нишу. Взять для примера те же процессы принятые в IRTF и IETF. Если в 80ых этим могла заниматься кучка упоротых студентов, то теперь есть протоколы на тему того как писать протоколы для написания протоколов. Это нормально, что исследования в разработанной области становятся всё дороже имхо.

pon4ik ★★★★★
()
Ответ на: комментарий от peregrine

Сложность в том, что из-за роста проработанности сферы IT, такие исследовательские проекты сами по себе становятся всё более трудными

Э… тут можно много букв написать. Это чем то похоже на спорт. С одной стороны, то что ты знаешь что кто то это уже до тебя сделал делает задачу гораздо проще психологически. С другой стороны все таки прогресс не стоит на месте - новые методики, проработанность темы и пр. Когда уже знаешь как решают подобные задачи, рука набита - че там делать то! Взял и сделал;-)

наступил момент, когда надо думать, как упростить работу с ними.

Ну вылижут всякие теории-утилиты-подходы-интерфейсы и будет все «просто» как в CFD например. Правда я не занимаюсь бигдатой, но из того что я слышал там другие сложности - народ свои данные бережет.

AntonI ★★★★
() автор топика
Ответ на: комментарий от peregrine

Ну и я про это же. Но извлечь из кода статью не выйдет в чистом виде. Лучшее что придуманно на данный момент это вещи типа jupyter notebooks для черновика.

pon4ik ★★★★★
()
Последнее исправление: pon4ik (всего исправлений: 1)
Ответ на: комментарий от AntonI

Когда уже знаешь как решают подобные задачи, рука набита - че там делать то! Взял и сделал;-)

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

Правда я не занимаюсь бигдатой, но из того что я слышал там другие сложности - народ свои данные бережет.

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

peregrine ★★★★★
()
Ответ на: комментарий от hobbit

я подозреваю, что скор тебе срезали за что-то другое.

Нет. Я могу найти то сообщение и показать тебе.

Я на первых встречных не бросаюсь. Есть в общем всего 3 тролля которых с ходу могу послать (он помнят как гнали чушь на меня в принципе как и Антони)

У Антони просто подгорает и он не может никогда признаться когда не прав или что-то не понимает.

Я признаю, что бывает ошибаюсь и что иногда не правильно применяю понятия.

С Антони пытаюсь вести нормальные беседы на темы, которые мне интересны и в которых разбираюсь. Вот пример: Задачка на подумать (диагональный сдвиг по Z-кривой Мортона) (комментарий)

В агрессии меня вообще мало можно уличить (только к троллям, которые давно когда-то налажались в отношении меня и не признают что были не правы).

То что он всегда пытается всё привести к агрессии, я не виноват.

HIS
()
Ответ на: комментарий от peregrine

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

ну так это не проблема, это вызов! «Мы знаем что эта задача не имеет решения - мы хотим знать как ее решать» (с) К.Хунта

многие люди не понимают, что настоящую длину пиписьки, например, для производства презервативов им на форуме не напишут.

насколько все же физика проще и приятнее… ;-)

AntonI ★★★★
() автор топика
Ответ на: комментарий от HIS

У Антони просто подгорает и он не может никогда признаться когда не прав или что-то не понимает.

Перечислите пожалуйста случаи когда я «облажался» в отношении Вас.

AntonI ★★★★
() автор топика
Ответ на: комментарий от AntonI

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

HIS
()
Ответ на: комментарий от HIS

Ищите, вперед. Вы мало того что агрессивны и некомпетентны, так еще и врете. Вы там утверждали, что «в физических расчетах принудительное округление НИКОГДА не используется» - я Вам сразу набросал методов где оно необходимо. Более того, а 20 с гаком лет я не написал ни одного кода для физических расчетов где принудительное округление не использовалось бы. Так что Вы неправы.

Еще примеры?

AntonI ★★★★
() автор топика
Ответ на: комментарий от AntonI

Не нужно меня обвинять во Лжи, сядете в лужу. Тему позже найду.

И я признаю, что иногда ошибаюсь в отличии от ВАС я признаю что ошибаюсь.

Всё мне этот флейс с ВАМИ не интересен.

А про алгоритмы в ВАШУ тему я прийду и научу ВАС как нужно делать оптимизацию в вычислениях (если захотиТЕ).

HIS
()
Ответ на: комментарий от HIS

И я признаю, что иногда ошибаюсь

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

А про алгоритмы в ВАШУ тему я прийду и научу ВАС как нужно делать оптимизацию в вычислениях (если захотиТЕ).

Не надо приходить в мои темы, особенно по поводу оптимизации в вычислениях - иначе мне таки придется обратиться к модераторам. Вы кажется обещали создать свою тему про резонанс и амортизаторы, вот там и резвитесь.

AntonI ★★★★
() автор топика
Ответ на: комментарий от HIS

Вы же кажется уже попрощались? Я знаю что Вы тролль, можете не подписываться.

AntonI ★★★★
() автор топика
Ответ на: комментарий от hobbit

Как-то так. Видишь он просто не даёт возможности к нормальному с ним общению. Даже если его тыкать носом в доказательства всё равно он будет всё выворачивать наизнанку.

HIS
()
Ответ на: комментарий от HIS

Часто Вы о себе так самокритично в третьем лице высказываетесь?

Еще раз (последний), для не понимающих по русски с первого раза - НЕ НАДО ПИСАТЬ В МОИ ТЕМЫ. Вообще. Свою создайте и там обсуждайте свою тяжкую жисть и жесткости этого мира который Вас не понимает.

Еще один Ваш коммент тут - я пишу в спецтопик. По другому Вы увы не понимаете.

AntonI ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.