DroidScript
DroidScript
инструменты для мобильной разработки

Можно ли обойтись без изучения программирования при разработке мобильных приложений?

Статьи  
24.09.2019

Разработчики Thunkable X (и похожих платформ) уверяют, что это возможно. Нет программирования - нет сложностей для пользователей, считают они. Но тогда как же создаются приложения?

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

Действительно, было бы странно видеть программное обеспечение, в описании которого происходит перечисление проблем и багов. Но в конце руководства по использованию приборов часто указывают возможные проблемы и способы их устранения, а в документации по программному обеспечению эти рекомендации часто можно получить только от других пользователей, если они захотят поделиться своим опытом. В результате ничего не подозревающие пользователи соединяют блоки друг с другом, а затем днями пытаются понять, и чего это приложение работает с ошибками или даёт сбой? А как они это cмогут понять, если в документации, обучающих материалах и видеоуроках им демонстрируют только соединение блоков. Из этого следует любопытный вывод:

В блочных средах разработки мобильные приложений создаются путём соединения блоков методом тыка

В Thunkable X используется интерпретатор, а это значит, что если два блока можно соединить друг с другом, то с точки зрения синтаксиcа ошибок нет. В очень редких случаях среда разработки отображает сообщение об ошибках, например, при вставке в блок специфичного символа Юникода. Что же касается ошибок в логике работы программы, то в web и мобильной разработке используется максимально дружественный к пользователю подход, который состоит в том, что незачем напрягать пользователя сообщениями о проблемах. Приложения должны оставаться на плаву до самого конца и часто о проблемах пользователь узнаёт только тогда, когда приложение падает или зависает.

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

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

Без знания основ программирования пользователь сможет создать приложение только при наличии примера. После изучения сотни примеров он сможет какие-то блоки соединять правильно, а кто-то особенно одарённый сможет понять и логику их работы, но у большинства качественно улучшить свои навыки не получится, потому что от них специально скрывается необходимая информация. Это вызывает удивление. Если разработчики хотят, чтобы неспециалисты использовали их продукт, то необходимо не скрывать информацию, а максимально понятным образом объяснить то, как с их творением практичнее работать. Но для этого придётся дать информацию из области текстового программирования, что противоречит фундаментальной концепции визуальной разработки - никакого текстового программирования!

Почему так просто программировать при помощи блоков по сравнению с текстовым программированием? Потому что при этом никакого программирования и не происходит. На языке C++ будет также легко программировать, если из курса убрать разделы по типам данных, преобразованию типов, ссылок и прочему. Простота визуального программирования состоит не в том, что оно по определению проще текстового, а в том, что при этом даётся минимум информации по основам программирования.

Мне не известны исследования, на основе которых разработчики решили за пользователей, что им нужно знать, а что не нужно, но хочется задать пользователям вопрос: вы предпочтёте не утруждать себя изучением основ программирования и постоянно получать ошибки и краши ваших приложений или вы готовы затратить некоторое время и усилия на изучение основ программирования в контексте используемой платформы? Ответ очевиден, но где взять информацию по этим основам? Можно порекомендовать начать изучение какого-нибудь языка программирования, но это сомнительный совет. Представьте, пользователь хочет создать чат, простую игру или навигатор по магазинам в округе, а ему предлагают учиться программировать на Python. Это похоже на то, как человеку, который хочет сыграть на гитаре песню с использованием трёх дворовых аккордов, сказать, сначала, милок, пару лет поучись игре на фортепиано и сольфеджио в детской музыкальной школе.

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

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

Статьи  
© 2016-2018 Александр Страшко