Форум Академгородка, Новосибирск > Записки из дневника снов web-программиста или о визуальных конструкторах
Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Записки из дневника снов web-программиста или о визуальных конструкторах
Форум Академгородка, Новосибирск > Компьютеры и сети > Программирование > WEB-программирование
Astronom
Третий раз за месяц вижу во сне себя занимающимся программированием, блин, и это не шутка.))))))
А поговорить хочу, собственно говоря, не о каких-либо конкретных методах или приемах, применяемых в веб-программировании, а занятии программировании как таковом, а точнее, о его эффективности.
Как известно, основным критерием оценки качества работы программиста является скорость написания рабочего кода. (темп отладки кода отнесем в данном случае туда же, к скорости написания кода, в данном случае это будет некая абстрактная скорость написания кода, совсем не механическая, печатания по клавиатуре smile.gif ).
Так вот, на скорость написания кода влияет оч много факторов, начиная от температуры кофе в чашке у программиста и состояния погоды за окном и до выбора конкретной среды разработки приложения и применяемых методов и функций.
Непоследнюю роль в иерархии определяющих скорость факторов играет степень абстракции кода, так называемая высокоуровневность, которая на интуитивном уровне понятна всем, более менее разбирающимся в программировании, а конкретно в php может выражаться примерно следующем:

менее абстрактный подход
Код
<?php
$a1=1;
$a2=2;
$a3=3;
$a4=4;
$a5=5;
...
$an=N;
$summ=$a1+$a2+$a3+$a4+...+$an;
echo $summ;
?>


более абстрактный подход
Код
<?php
for($i=0;$i<=N;$i++)
{
$summ+=$i;
}
echo $summ;
?>


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

... Это был конструктор програм, очень удобный, каких еще не видел ни один программист, в нем можно было лихо щелчком мыши создать переменные, которые имели вид разноцветных шариков, причем тип переменной определял цвет; циклы, условия, цифровые скобочки выражались в виде коробочек, полупрозрачных, вложенных в друг друга, где было видно все их содержимое, причем глубина сложности и вложенности была сколь угодно сложной, но это не вызывало сложностей при понимании, также, как и не вызывает сложностей при охвате воображением конструкция из десяти вложенных матрешек, блоки условий, циклы обьединялись в виде хитроумных трубочек, клапаны и переключатели на которых были привязаны тоненькими ниточками к переменным, от которых зависело их состояние.
Запросы к базам данных были представлены в виде армированных указателей, красиво поблескивающих при наведении на них курсором, разноцветные треугольнички соответствовали полям внутри базы, а цветные шарики - переменным php, и никаких гребаных SELECT FROM WHERE LIMIT ORDER BY DESC JOIN LEFT и прочего, лишь тоненькие и аккуратные веревочки взаимосвязей между переменными.
Черт подери, было много еще чего удивительного и интересного, но часть забылось сразу после пробуждения... помню что функция вывода из массива представлялась в виде то ли сита, то ли мясорубки, а php-скрипты соединялись между собой полыми трубками-каналами, по которым текли данные запросов GET и POST. Да, и еще, можно было замедлить выполнение скрипта и посмотреть в виде наглядной анимации как протекает его выполнение в виде анимаций переменных, циклов, расбухания и сжатия массивов и перетекания разноцветных жидкостей между скриптами и формами)) Ну прямо как в компьютерных игрушках или флешевых развлекухах.
Все было настолько просто, легко и увлекательно, что такое программирование бы смог освоить даже ребенок.

Может быть и правда, постепенно уходит в прошлое эпоха написания тысячестрочных скриптов, регулярных выражений, запросов к базам, проверок условий и прочей каки, может быть, будущее действительно за удобными, понятными, по-настощему объектно-ориентированными конструкторами сайтов/баз данных/приложений и прочего, и прочего.
Конечно, программирование сложно сравнивать с написанием музыки, но, временами создавая треки в FLstudio и прочих различных секвенсорах, можно убедиться, что поистине явный прирост скорости и качества, удобства и эффективности в музыкальном творчестве дает использованием midi-клавиатуры, когда есть возможность играть мелодии вручную, снабжая их естественными полифониями, громкостями, акцентами и оттенками, которые имитируя мышкой ползунки параметров можно имитировать несравнимо медленнее и топорнее.
Программирование это тоже творчество (если кто сомневается, я готов поставить кругленькую сумму на это в споре smile.gif ), а посему инструментарий для этого творчества должен быть максимально удобным, а главное - простым, понятным и естественным.
Посему, хочу обсудить следующую тему - какие конструкторы приложений (в том числе и для web) на сегодняшний день самые визуально-наглядные и удобные? Какими вы пользуетесь и почему? И если не пользуетесь, то тоже - почему?

П.с. А все-таки, приятный был сон) Как же клево орудовать мышкой, а не писать конструкции вида
Код
<?php $update=mysql_query("UPDATE booking SET fio='$fio', phone='$phone',
        data=CAST(CONCAT(CAST(YEAR(DATE_ADD(NOW(), INTERVAL '$date' DAY)) AS CHAR), '-', CAST(MONTH(DATE_ADD(NOW(), INTERVAL '$date' DAY)) AS CHAR),
        '-', CAST(DAYOFMONTH(DATE_ADD(NOW(), INTERVAL '$date' DAY)) AS CHAR)) AS DATETIME), timer='$time', ip='$ip', place='$place' WHERE booking_id='$booking_id'");?>

Пойду досыпать, может что путное к утру напишу))
Adrelisa
Когда главное удобство и скорость написания программы - то по себе знаю, что ориентироваться по цветам намного удобнее, не вчитываясь в код.
Но в случаях, когда нужно написать максимально эффективный код по скорости и производительности, скорее всего у меня возникнет чувство потери контроля над происходящим smile.gif это уже дело привычки и недоверия.

Хотя.. допустим, именно разработка такого конструктора безусловно вызывает интерес smile.gif
Astronom
Собственно, такие суперконструкторы, а я уверен, что написать такое сможет только настоящий гений программирования, а точнее, их дружная команда из множества человек, смогли бы повысить в разы эффективность и скорость разработки приложений.
Ведь,:
1. Подобная платформа разработки может быть языконезависимой, оперируя синтаксическими оболочками компилятор (или интерпретатор) такой программы смог бы легко обернуть его в желаемые языковые конструкции того или иного языка.
2. Избавить начинающих неопытных программистов от нелепых и неудачных конструкций, быдлокода, когда ты решаешь стандартные задачи совершенно неочевидными а порой и нелепыми методами.
3. Упростить и ускорить написание кода, вставлять часто повторяющиеся конструкции, делать правильную разметку кода, который, собственно, можно было бы потом на выходе дополнительно редактировать руками или просто познакомиться с тем, как выглядет сложная конструкция, которую ты не знаешь как написать, но теперь уже не требуется несколько недель раздумывания над этим, так как огромное количество задач, встречающихся в программированиии - типовые, стандартные, а следовательно, их можно задокументировать и внести в базу решений.
4. Собственно, нет лучшего понимания программы, чем наглядное отображение как, что почему и зачем взаимодействует.
Опять же, банальный пример, в случая вывода об ошибке (Cannot modify header information - headers already sent) не придется 10 минут выяснять, является ли она порождением неправильно выбранного текстового редактора, следствием поставленного пробела перед <?php ?> или же проблема непосредственно в функции header()
В общем, плюсов множество, это лишь первое, что пришло в голову.
Adrelisa
ye.gif
Если честно, мне даже трудно представить, какой уровень абстракции повлечет визуальный 2/3/x-мерный конструктор.
Безусловно, многие бы задачи можно было просто и быстро решить (где действительно без визуального представления тяжело). Правда не будет уже опыта обычного ООП, но может, оно и к лучшему, сейчас ведь тоже не обятельно уметь писать на ассемблере.

Наверное, это уже дальше от естественного языка и ближе.. к мыслям/образам? Кажется мне, при усложнении такого конструктора, от него уже будет требоватся некая доля искусственного интелекта. Но это только мысли вслух smile.gif
Minoru
Цитата(Astronom @ 06.05.2011, 6:11) *
Пойду досыпать

И мне тоже отсыпь.
Как-то сомнительно, конечно, что развитие информационных технологий пойдет именно в этом направлении, но кто заранее знает.
Astronom
Цитата(Adrelisa @ 06.05.2011, 21:21) *
ye.gif
Если честно, мне даже трудно представить, какой уровень абстракции повлечет визуальный 2/3/x-мерный конструктор.
Безусловно, многие бы задачи можно было просто и быстро решить (где действительно без визуального представления тяжело). Правда не будет уже опыта обычного ООП, но может, оно и к лучшему, сейчас ведь тоже не обятельно уметь писать на ассемблере.

Наверное, это уже дальше от естественного языка и ближе.. к мыслям/образам? Кажется мне, при усложнении такого конструктора, от него уже будет требоватся некая доля искусственного интелекта. Но это только мысли вслух smile.gif

Видные умы человечества лет тридцать а то и больше программировали с использованием перфокарт, потом переключились на программирование ячеек памяти и процессорных комманд, потом последовали функции, простые и удобные, и сложные, то тоже удобные, потом появилось ООП, еще одна степень абстракции.
Все, о чем я писал - это лишь еще одна степень абстракции, более приближенная к реалиям нашей жизни, удаленная от компьютерного интерфейса и математики.
Никто не программирует направление и параметры градиента в фотошопе, никто не пишет свои обработчики текста в MS Word, потому что существует GUI, которому свойственна наглядность и удобность. Программистским разработкам в определенной мере не хватает такого революционного технологического переворота.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Русская версия IP.Board © 2001-2024 IPS, Inc.