<commit_before>---
layout: post
title:  "Dependency."
date:   2017-04-10 08:43:54
comments: true
categories: programming oop software-engineering
tags:
    - programming
    - oop
    - software-engineering
summary: "What does the concept of dependency mean in programming? Is it important in modern development process?
          Has the concept of dependency a different meaning when we speak about procedural programming, object
          oriented programming or functional programming? In this post I will try to sum up all the knowledge
          I gained during my life as a software developer."
social-share: true
social-title: "Dependency."
social-tags: "programming, oop, softwareengineering"
medium-link: "https://medium.com/@riccardo_cardin/dependency-ffc118404f0"
dzone-link: "https://dzone.com/articles/dependency"
---

What does the concept of dependency mean in programming? Is it important in modern development process?
Has the concept of dependency a different meaning when we speak about procedural programming, object
oriented programming or functional programming? In this post I will try to sum up all the knowledge
I gained during my life as a software developer.

#### The very beginning
First of all we need to have clear in mind the concept of dependency in every day language. _Merriam-Webster_
gives the following definition of dependency:

> The quality or state of being influenced or determined by or subject to another.

Clarifying. Sometimes we simply need to return to our roots for deeply understand a concept. So, a
component that is dependent on another is influenced by this one. What does this mean? If a component
changes internally, its implementation, or externally, its interface, it is probable that all dependent
components should change accordingly.

We have just derived that _dependency between two components is a measure of the probability that
changes to one component could affect also the other_. The stronger the dependency between the
components, the higher the above probability.

**Coupling**<br/>
Coupling between components measures exactly their degree of dependency. Tightly-coupled components
have a higher probability to change together; loosely-coupled components have a lower probability.

In software engineering we have a *mantra*, that was taught us from the very beginning:
<commit_msg>Add Dev.to link to "Dependency."<commit_after>---
layout: post
title:  "Dependency."
date:   2017-04-10 08:43:54
comments: true
categories: programming oop software-engineering
tags:
    - programming
    - oop
    - software-engineering
summary: "What does the concept of dependency mean in programming? Is it important in modern development process?
          Has the concept of dependency a different meaning when we speak about procedural programming, object
          oriented programming or functional programming? In this post I will try to sum up all the knowledge
          I gained during my life as a software developer."
social-share: true
social-title: "Dependency."
social-tags: "programming, oop, softwareengineering"
medium-link: "https://medium.com/@riccardo_cardin/dependency-ffc118404f0"
dzone-link: "https://dzone.com/articles/dependency"
dev-link: "https://dev.to/riccardo_cardin/dependency"
---

What does the concept of dependency mean in programming? Is it important in modern development process?
Has the concept of dependency a different meaning when we speak about procedural programming, object
oriented programming or functional programming? In this post I will try to sum up all the knowledge
I gained during my life as a software developer.

#### The very beginning
First of all we need to have clear in mind the concept of dependency in every day language. _Merriam-Webster_
gives the following definition of dependency:

> The quality or state of being influenced or determined by or subject to another.

Clarifying. Sometimes we simply need to return to our roots for deeply understand a concept. So, a
component that is dependent on another is influenced by this one. What does this mean? If a component
changes internally, its implementation, or externally, its interface, it is probable that all dependent
components should change accordingly.

We have just derived that _dependency between two components is a measure of the probability that
changes to one component could affect also the other_. The stronger the dependency between the
components, the higher the above probability.

**Coupling**<br/>
Coupling between components measures exactly their degree of dependency. Tightly-coupled components
have a higher probability to change together; loosely-coupled components have a lower probability.

In software engineering we have a *mantra*, that was taught us from the very beginning:

{'fraction_non_alphanumeric': 0.05017771273259461, 'fraction_numerical': 0.008781099728204057, 'mean_word_length': 4.569266589057043, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 7, 'https://': 5, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4926516', 'n_tokens_mistral': 1143, 'n_tokens_neox': 1079, 'n_words': 640}