Библиотеки в программировании: для чего нужны и какими бывают
Карл Саган сказал: «Если вы хотите испечь яблочный пирог c нуля, вам сначала надо создать Вселенную». У программистов для этого есть библиотеки.
vlada_maestro / shutterstock
Современные программы слишком сложные, чтобы создавать их с нуля, поэтому разработчики используют библиотеки — так код пишется гораздо быстрее.
Библиотека (англ. library) — это набор готовых функций, классов и объектов для решения каких-то задач.
Зачем программистам нужны библиотеки
Мы не пытаемся изобретать велосипед каждый раз, когда нужно поехать в булочную, — просто берём готовый и едем на нём. То же самое и в коде. Программист должен думать о реализации бизнес-логики, а не о том, как работает оборудование или по какому протоколу передаются данные.
Например, подключив библиотеку Requests в программу на Python, можно с помощью пары строк кода отправить запрос какому-нибудь серверу:
Разработчику нужно, чтобы программа отправила запрос, — это он и пишет, не задумываясь о том, что под капотом библиотеки тысячи строк кода.
Чтение или запись файла можно выполнить с помощью пары команд на C#, подключив библиотеку System.IO:
При этом не нужно думать о преобразовании текста в байты, работе с файловой системой, потоках и прочем.
А с помощью библиотеки Three.JS можно отрисовывать 3D-графику в браузере:
Программист создаёт или берёт готовые объекты, добавляет свет, шейдеры, прописывает анимацию — и всё, сцена готова. Даже не возьмусь описывать, насколько сложно будет делать это с нуля.
Какие библиотеки бывают
Каждая библиотека предоставляет возможности для решения каких-то конкретных задач:
- выполнения математических операций;
- работы с графикой;
- работы с файлами;
- работы с сетью;
- шифрования и так далее.
Они могут быть встроены в язык или добавляться отдельно.
Кто создаёт новые библиотеки
Для популярных языков программирования уже написано очень много библиотек. Но чем их больше, тем быстрее появляются новые разработчики и тем быстрее создаются новые библиотеки — этот процесс бесконечен.
Библиотеки бывают открытыми (англ. FOS, Free and Open Source — бесплатные и с открытым исходным кодом) и коммерческими:
- Открытые создаются сообществом программистов — здесь каждый может предложить исправления, написать новые функции или сообщить об ошибках.
- Коммерческие разрабатываются компаниями, в которых есть штат программистов и тестировщиков.
Также многие пишут собственные библиотеки и используют их в своих проектах.
Как библиотеки добавляются в программу
По способу подключения к основной программе библиотеки можно разделить на два типа:
- Динамические — это файл с машинным кодом, который подключается во время исполнения. Его в любой момент можно заменить на другие. В этом одновременно и плюс — динамическую библиотеку можно обновить почти без труда, и минус — требуется ровно столько же усилий, чтобы заменить ее на что-нибудь вредоносное.
- Статические — это исходный код на языке программы или объектный модуль, который упаковывается в саму программу. Такую библиотеку очень сложно подменить, поэтому, чтобы обновить её, придётся заново компилировать всю программу.
В интерпретируемых языках всё работает примерно так же. Отличие в том, что вместо машинного кода обычно используется байт-код — он выполняется не процессором, а виртуальной машиной вроде JVM.
Можно ли обойтись без библиотек
Новичкам не терпится сразу в бой, поэтому не хочется тратить время ещё и на библиотеки. Но писать проект без них можно только в учебных целях — чтобы понять, как реализуются какие-то функции.
Без библиотек не обойтись — очень важно быстро и регулярно выпускать продукт, чтобы он был конкурентоспособен. Кроме того, библиотеки гораздо безопаснее написанного с нуля кода, потому что над ними трудится много людей, а ещё больше — тестирует при использовании.
Представьте, например, насколько уязвимыми стали бы приложения, если бы каждый разработчик самостоятельно писал функции для шифрования, которые обеспечивают безопасность.
Почему нужно уметь работать с библиотеками
Практически весь софт создаётся с использованием библиотек. Если вы не умеете с ними работать, то, скорее всего, просто не сможете найти работу. Даже если вы способны написать всё самостоятельно, компании будет невыгодно вас нанимать: писать без библиотек некачественно, медленно и дорого.
Поэтому мы учим наших студентов не только возможностям языка, но и популярным и востребованным современным инструментам.