Меню
Код
Код
#статьи
  • 685

Библиотеки в программировании: для чего нужны и какими бывают

Карл Саган сказал: «Если вы хотите испечь яблочный пирог c нуля, вам сначала надо создать Вселенную». У программистов для этого есть библиотеки.

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

Библиотека (англ. library) — это набор готовых функций, классов и объектов для решения каких-то задач.

Евгений Кучерявый

Пишет о программировании, в свободное время создает игры. Мечтает открыть свою студию и выпускать ламповые RPG.


Зачем программистам нужны библиотеки

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

Например, подключив библиотеку Requests в программу на Python, можно с помощью пары строк кода отправить запрос какому-нибудь серверу:

#Подключение библиотеки для отправки запросов
import requests
 
url = "Адрес сервера"
 
#Отправляем запрос и помещаем ответ в переменную response
response = requests.get(url)
#Парсим данные из формата JSON в словарь
data = response.json()

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

Чтение или запись файла можно выполнить с помощью пары команд на C#, подключив библиотеку System.IO:

//Считываем текст из файла и помещаем его в переменную text
string text = File.ReadAllText("file.txt");
 
//Сохраняем новый текст в файл file.txt
File.WriteAllText("file.txt", "Some text");

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

А с помощью библиотеки Three.JS можно отрисовывать 3D-графику в браузере:

Пример анимации на JavaScript. Источник

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

Какие библиотеки бывают

Каждая библиотека предоставляет возможности для решения каких-то конкретных задач:

  • выполнения математических операций;
  • работы с графикой;
  • работы с файлами;
  • работы с сетью;
  • шифрования и так далее.

Они могут быть встроены в язык или добавляться отдельно.

Кто создаёт новые библиотеки

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

Библиотеки бывают открытыми (англ. FOS, Free and Open Source — бесплатные и с открытым исходным кодом) и коммерческими:

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

Также многие пишут собственные библиотеки и используют их в своих проектах.

Как библиотеки добавляются в программу

По способу подключения к основной программе библиотеки можно разделить на два типа:

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

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

Можно ли обойтись без библиотек

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

Без библиотек не обойтись — очень важно быстро и регулярно выпускать продукт, чтобы он был конкурентоспособен. Кроме того, библиотеки гораздо безопаснее написанного с нуля кода, потому что над ними трудится много людей, а ещё больше — тестирует при использовании.

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

Почему нужно уметь работать с библиотеками

Практически весь софт создаётся с использованием библиотек. Если вы не умеете с ними работать, то, скорее всего, просто не сможете найти работу. Даже если вы способны написать всё самостоятельно, компании будет невыгодно вас нанимать: писать без библиотек некачественно, медленно и дорого.

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

Где учиться программированию?


У Skillbox — более 40 крутых курсов по программированию. Разработка на Java, PHP, C#, Python и других языках, Data Science, разработка игр на Unity, кибербезопасность, разработка мобильных приложений…

Начать учиться можно сразу, а платить за учёбу — позже. Обучение онлайн, в удобном для вас режиме. А ещё мы помогаем с трудоустройством.

Приходите!

Понравилась статья?
Да