За каждым коммерческим проектом стоит большое количество работы: кода, анализа, менеджмента, кофе..
Мобильное/веб/десктоп/.. приложение, (как правило) несет под собой некоторый framework(s) под капотом (как говорят девелоперы), а также значительное количество библиотек.
В первую очередь выбирается язык на которой будет написана та или иная часть проекта. Это может быть один язык для Front End части (Web Application),предположим, Javascript, и совершенно другой для Back End части (Server) - Java, Python и т.д.
Данный выбор языка и фреймворка в дальнейшем может быть основан на:
Ведь заказчик не хочет вечно платить сторонней компании за разработку.
Но не всегда требования заказчика можно удовлетворить с помощью возможностей определенного языка :(
В этот момент начинается продажа людей, которые есть на данный момент и готовы справиться с поставленной задачей
Выбор также основывается на технических требованиях, которым должен удовлетворять конечный продукт.
Возможность интеграции с облачными сервисами, иметь возможность работы оффлайн, способность обрабатывать большие данные, ... многое-многое другое
Иногда требования бывают стандартными, как для интернет магазина...
Порой нужно больше ресерча на построение ракеты для полета на марс, тем более не факт, что это будет именно марс)
Но все эти решение так или иначе должны удовлетворять требованиям заказчика, в частности, скорости выполнения работ и их качества.
Качество и скорость выполнения работ связана с использованием фреймворков и библиотек.
Пострадает ли качество без использования фреймворков и библиотек?
Не факт.
НО 100% пострадает скорость поставок функциональности конечного продукта!
ПОЧЕМУ?!
ЧТО же такое есть в этих библиотеках и фреймворках!?
JAVASCRIPT
function summ (a,b) {
return a + b;
}
summ(5,6); RESULT - 11
PYTHON
def sum_two_numbers(a, b):
return a + b
sum_two_numbers(1,2) - RESULT 3
Самый простой кусок когда, который может быть понятен даже школьнику начальных классов...
Но программы в большинстве состоят из намного более трудного для понимания кода. И этого кода с каждым днем все больше (как и функциональности).
Заказчики не всегда приходят с инновационными проектами, когда нужен новый подход в программировании. Как правило части проектов бывают схожи в некоторой части функционала.
К примеру предидущая функция поиска суммы 2 чисел.
Возможно также понадобиться поиск факториала, либо нахождение максимально длинного имени среди списка всех клиентов.. т.е. нахождение клиента в базе данных по какому-либо признаку...
Такой функциональности оочень много.
Разработчики со временем поняли, что ходить с флешками друг к другу за КОДОМ не очень удобно. И придумали оформлять общую часть КОДА в библиотеки (наборы функциональности)
Допустим, часто употребляемая библиотека для работы с математическими операциями Math для Javascript. Либо библиотека Google Analytics.
Все эти библиотеки помогают использовать уже написанную функциональность и сфокусироваться в большей степени на решении бизнес задач.
Итого:
import Math;
Math.summ(5,6) RESULT - 11
Даже при такой простой функциональности кода намного меньше
Прирост производительности гарантирован. Главное знать нужные библиотеки.
Некоторые из библиотек имеют схожее поведение. Иногда одинаковое.
Решение на стороне разработчиков.
Но библиотеки однозначно обеспечивают понятность кода, единый подход для написания определенной функциональности.
Библиотека должна быть совместима с языком написания проекта, а также с фреймворком...
Но что же такое framework?
Framework также представляет готовую функциональность для написания приложения, которая очень сильно упрощает реализацию проекта.
Тогда в чем разница библиотек и фреймворков?
Для каждого языка существует огромный набор фреймворков, популярных и нет. Но есть основные на которых строится индустрия программирования - проверенные гиганты, которые всегда развиваются.
Так как каждая библиотека и фреймворк это тоже продукты со своими разработчиками.
Примеры фреймворков Javascript
Text