Успешный Непрограммист, 5GL, Visual, 0 Исходный код или аналогичные инструменты? - PullRequest
6 голосов
/ 02 февраля 2010

Может ли кто-нибудь привести пример успешного непрограммиста, 5GL (не то, чтобы я был уверен, что это такое!), Визуального кода, 0 исходного кода или аналогичных инструментов, которые бизнес-пользователи или аналитики могут использовать для создания приложений?
Я не верю, что есть, и я хотел бы оказаться неправым.

В компании, в которой я работаю, мы разработали собственный MVC, который мы используем для разработки веб-приложений. По сути, это сокращенный конечный автомат, написанный на XML (а-ля Spring WebFlow ) для контроллера, и простой механизм на основе шаблонов для представления. Некоторые из преимуществ:

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

Текущая тенденция в компании (или, по крайней мере, на уровне управления) состоит в том, чтобы попытаться создать инструменты для платформы, которые требуют нулевого исходного кода, являются визуальными и т. Д. Это хорошо влияет на клиентов (или, по крайней мере, на уровне управления). ) с тех пор:

  • они могут быть убеждены, что таким образом им не понадобятся программисты или, по крайней мере, они смогут нанимать программистов конца цикла, которые стоят намного дешевле, чем типичные программисты.
  • Похоже, что это связано с уменьшенным риском, поскольку инструмент ограничивает разработчика или пользователя (просто не используйте слово программатор!) В том, что он может сделать, так что меньше шансов, что он может внести ошибку
  • Похоже, что это упрощает всю проблему, так как кажется, что в ней нет программирования (общеизвестно сложно). Поскольку приложения загружаются динамически, сложности жизненного цикла J2EE меньше, чем обычно, связанные с компиляцией, упаковкой, развертыванием и т. Д.

Я лично скептически отношусь к тому, что чего-то подобного можно достичь. Решение, которое мы имеем сегодня, имеет ряд проблем:

  • Разработчики пишут код JavaScript для обогащения страниц (можно решить с помощью разработки виджетов). Хотя и на стороне клиента, он все еще является кодом, который может стать очень сложным и привести к некоторым трудным ошибкам.
  • Уже есть визуальный инструмент, но разработчики предпочитают редактировать XML, так как он быстрее и проще. Для сравнения, я полагаю, что не многие используют плагин Eclipse Spring WebFlow для редактирования потока XML.
  • Существует очень плохое повторное использование в решении (основано на копировании-вставке XML). Это сдерживает производительность и некоторые другие аспекты, такие как развитие деловых знаний.
  • Были многочисленные проблемы с производительностью и другие проблемы, связанные с неправильным использованием инструментов. Независимо от того, насколько уменьшено игровое поле, всегда есть место для ошибки.
  • Хотя платформа, вероятно, более производительная, чем Struts, я сомневаюсь, что она более производительна, чем современные веб-платформы RAD, такие как RoR или Grails.
  • Многословность

Исторически в этом направлении были многочисленные неудачи. Идея программ, написанных непрограммистами, стара, но AFAIK никогда не был успешным. На определенном уровне все, кроме силы исходного кода, становится незаменимым. Сегодня много говорят о DSL , но не как о чем-то, что должны писать непрограммисты, больше как о чем-то, что они могут читать.

Мне кажется, что направление, в котором движется компания в этом отношении, является тупиковым. Что ты думаешь?

РЕДАКТИРОВАТЬ: Стоит отметить (и вот откуда приходит некоторое вдохновение), что многие крупные игроки экспериментируют в этом направлении. См. Microsoft Popfly, Сайты Google, iRise , множество решений Mashup и т. Д.

Ответы [ 5 ]

9 голосов
/ 02 февраля 2010

Да, это тупик. Проблема проста: независимо от того, насколько просто вы делаете выражение решения, вам все равно придется анализировать и понимать проблему, которую нужно решить. Это примерно 80-90% от того, как (большинство хороших) программистов тратят свое время, и именно эта часть требует реальных навыков и мышления. Да, после того, как вы решили, что делать, нужно научиться делать это (на выбранном вами языке программирования). В большинстве случаев это небольшая часть проблемы и наименее открыта для таких вещей, как смещение графика, перерасход средств или полный сбой.

Наиболее серьезные проблемы в программных проектах возникают на гораздо более ранней стадии, в той части, где вы просто пытаетесь выяснить, что должна делать система, что пользователи должны / должны / могут делать, что, какие проблемы будут возникать в системе. (и не буду) пытаться решить и так далее. Это трудные проблемы, и изменение среды для выражения решения каким-либо иным способом, кроме того, что исходный код будет делать точно ничего , чтобы помочь любой из этих трудных проблем.

Для более полного трактата по этому вопросу вы можете прочитать Без серебряной пули - сущность и случайность в разработке программного обеспечения Фредерика Брукса (Включено в 20 th Anniversary Издание Мифический человеко-месяц ). Вся статья посвящена, по сути, этому вопросу: сколько усилий, связанных с разработкой программного обеспечения, является существенным и сколько является случайным результатом инструментов, сред, языков программирования и т. Д., Которые мы используем. Он пришел к выводу, что нет технологии , которая дала бы разумную надежду на повышение производительности на один порядок.

4 голосов
/ 02 февраля 2010

Не ставить под сомнение решение использовать 5GL и т. Д., Но программирование сложно .

Джон Скит - Программирование сложное
Код ужаса - программирование сложно

5GL уже давно считаются тупиками.

2 голосов
/ 02 февраля 2010

Я имею в виду семейство продуктов, в которые входят Ms Access, Excel, Clarion для DOS и т. Д. Где можно создавать приложения с исходным кодом 0 и без программистов. Не то чтобы они были способны на AI качество операций, но они могут делать очень полезные приложения.

1 голос
/ 16 февраля 2010

Всегда будут «настоящие» языки для выполнения работы, но мы можем перетаскивать рабочий процесс.

Я использую Apple Automator , который позволяет пользователям объединяться в цепочки "Действия », предоставляемые различными приложениями в их системах.

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

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

Подробнее> http://www.macosxautomation.com/automator/

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

Мне бы хотелось узнать, могут ли iHook или Platypus (сборщики osx-оболочек для скриптов оболочки) позволитьразрабатывать плагины на python ....

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

До тех пор, пока не будет существенной поддержки, не будет доступно много "действий", но быстрая проверка моей системы просто показала мне дополнительные 30, которые я не знал, что у меня было.

PS.Было еще одно приложение для OS-preX под названием «Filter Tops», которое имело гораздо более ограниченный набор плагинов.

0 голосов
/ 15 февраля 2010

Как насчет Dabble DB ?

Конечно, точно так же, как MS Access и другие непрограммистские платформы программирования, у него есть некоторые необходимые ограничения, чтобы пользователь не застревал сам ... как отметил Джон программирование сложно . Но это дает пользователю много возможностей, и кажется, что большинство приложений, которые хотят создавать непрограммисты, в любом случае являются приложениями типа базы данных.

...