Каждая платформа, для которой вы пишете код, — это улица с двусторонним движением.

Платформы должны заслужить вашу лояльность

Существует ряд возможных платформ, для которых мы можем писать код. Как правило, они делятся на три широкие категории: веб, мобильные и настольные. До того, как Интернет стал преобладающим, настольные компьютеры были основной целью приложений.

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

Современная мобильная и веб-разработка очень сложны. Хотя то, что мы получаем взамен, невероятно ценно, эта сложность не всегда необходима. В частности, в Интернете необходимо иметь дело с каскадными таблицами стилей, а разработка мобильных приложений имеет свой собственный набор сложностей, таких как подписание приложений, развертывание, постоянное развитие API и инструментов и т. д.

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

Рабочий стол может оставаться полезной и ценной платформой для разработки.

CSS: ловушка современного Интернета

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

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

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

Это означает, что веб-разработчики всегда имеют дело с гипотезами: что, если пользователь выберет браузер ABC? А если они на сенсорном экране? Что, если они лежат на боку в постели, смотрят в свой телефон и не знают, как правильно настроить параметры ориентации?

Ленивая система рендеринга дизайна, которую использует CSS, означает, что все остается неопределенным до тех пор, пока последняя часть головоломки не встанет на место. Это не лучший рецепт для развития.

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

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

Интернет как инструмент разработчика, без веб-интерфейса пользователя

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

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

Более сложным примером может быть использование Интернета для создания всего приложения, которое может работать вне Интернета. Конечно, использование одного языка программирования для генерации другого не является чем-то новым. Хотя это может показаться сложным, это позволяет избежать проблемы ленивого рендеринга дизайна, присущей CSS и веб-технологиям. Вы можете построить более конкретно управляемый процесс с заранее выбранными частями головоломки.

Мои проекты

Я работал над «орбитальными заметками» и «орбитальной клавиатурой», которые на момент написания этой статьи доступны на моем сайте gitlab pages:

https://derekmc.gitlab.io

Orbital notes — это веб-инструмент для редактирования html, css и javascript. Он идеально подходит для такого рода «разработчика приложений с веб-стеком», а не для «веб-разработчика», обладающего видением ума.

Орбитальная клавиатура — это один из проектов, который я сделал с использованием орбитальных заметок, работая в основном с моего мобильного телефона, но также и с хромбука и более полнофункционального ноутбука. Клавиатура Orbit — это аккордовая клавиатура, которую можно легко использовать как на сенсорном экране, так и на цифровой клавиатуре Bluetooth. Вы можете ввести множество возможных настроек и комбинаций.

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

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