Эти проекты будут мотивировать вас экспериментировать и создавать новые проекты с открытым исходным кодом.

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

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

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

Webview: разумное использование API для конкретных платформ

Что делать, если вам нужно превратить веб-приложение в настольное приложение, создав гибридное приложение? Большинство разработчиков обычно выбирают Electron, поскольку он позволяет встраивать веб-приложение в нативное окно и создавать гибридные приложения, подобные нативным, с бэкендом на основе Node. Electron отображает веб-контент на всех поддерживаемых платформах через экземпляр Chromium, поэтому вы непреднамеренно отправляете целый браузер с каждым выпускаемым приложением Electron. Я объяснил эту проблему в следующей истории:



Программисты экспериментировали со встроенными API-интерфейсами операционной системы, чтобы заменить экземпляр Chromium и предложить легкий и эффективный способ создания гибридных настольных приложений. Webview позволяет встроить гибридное веб-приложение в собственное окно без встраивания экземпляра браузера в комплект приложения. Он использует встроенный API GTKWebkit для конкретной платформы в GNU/Linux, среду выполнения Webview2 в Windows и API Cocoa Webkit в macOS.

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

Lite/Lite-XL: аппаратная альтернатива VS Code

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

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

Редактор кода Lite — это минималистичная современная кроссплатформенная программа, написанная на C и Lua. Это не гибридное приложение, которое отображает поддельные нативные элементы — оно рисует нативную графику на вашем экране с помощью графической библиотеки SDL. Lite-XL — активно поддерживаемая версия Lite с дополнительными встроенными функциями. Архитектура программы Lite/Lite-XL хорошо спроектирована с помощью основного модуля и отдельных функций редактора, управляемых плагинами.

ОС Serenity: можно построить что угодно с меньшим количеством проектов зависимостей

Каковы самые сложные и трудоемкие программные проекты для разработки? Создание пригодной для использования полнофункциональной операционной системы с нуля, несомненно, является сложной задачей. Если вы начнете разрабатывать операционную систему, вам придется написать ядро ​​с языком низкого уровня, API-интерфейсы ядра, графическую библиотеку и все приложения общего назначения с предпочтительным языком. Если вы начинаете разработку веб-браузера с нуля, вам, возможно, придется изучить все стандартные спецификации веб-API перед надлежащей реализацией.

Проект Serenity OS реализует ядро ​​x86, базовые библиотеки и приложения общего назначения. Теперь команда Serenity OS инициировала самостоятельный компилятор под названием Jakt, который преобразует исходные коды в C++. Они разработали каждый компонент операционной системы с нуля, включая движок JavaScript и веб-браузер.

Большинство проектов разработки программного обеспечения выбирают зависимости в качестве основы. Например, Android использует ядро ​​Linux. Большинство популярных браузеров используют исходный код Chromium. Тем временем проект Serenity OS показал нам возможность создания всего с нуля!

Zx: даже простой синтаксис языка может привести к большим инновациям

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

touch main.cpp

Bash рассматривает все как команду, потому что это командный язык — вот почему вы не можете добавлять пробелы вокруг знака равенства, чтобы сделать ваш код красивым. Написание сложных скриптов или вызов API операционной системы в Bash требует обходных путей, поэтому большинство разработчиков склонны использовать Python или JavaScript в качестве альтернативы Bash для таких сценариев.

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

Например, он позволяет запустить процесс, даже не используя синтаксис вызова функции JavaScript:

await $`touch main.cpp`

Реализация zx использует помеченные литералы шаблонов для вызова функции без использования круглых скобок.

TanStack Query: решение проблемы, с которой сталкивается каждый веб-разработчик

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

В результате большинство разработчиков React обычно используют API браузера Fetch или библиотеку Axios для выполнения вызовов RESTful API. Как только они решат оптимизировать и улучшить сетевые вызовы, им, возможно, придется написать код для дедупликации запросов, внедрить кэширование, добавить анимацию загрузки и разработать улучшения удобства использования, связанные с сетью (например, активация обновления данных на вкладке браузера). Библиотека TanStack Query предлагает полнофункциональное решение для управления состоянием данных сервера в веб-приложениях.

TanStack Query предлагает хуки для реализации кэширования, разбиения на страницы, бесконечной загрузки, предварительной выборки и т. д. в приложениях React. TanStack Query предлагает API-интерфейсы библиотек для React, Solid и Vue (скоро появится поддержка Svelte и Angular), а его исходный код показывает нам, как спроектировать библиотеку JavaScript для нескольких библиотек внешнего интерфейса. Он использует основную логику в базовом пакете, не зависящем от внешней библиотеки, и предлагает отдельные пакеты, специфичные для внешней библиотеки.

Заключение

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

Иногда миллионы разработчиков уже сегодня начинают использовать ваш проект в качестве эксперимента. Например, несколько лет назад TanStack Query был однофайловым пакетом, но сегодня на нем работают миллионы приложений React!

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

Спасибо за прочтение.