In software, what’s the difference between a Framework, a Library, an Environment etc?

410 viewsOtherTechnology

I understand what a language is, stuff like Python, Java, Javascript, Swift etc. And I understand what an IDE is, it’s basically an advanced text editor tailored to helping you with writing code.

But I’m lost after that. I’ve heard that react is a framework? Is that because it’s kind of an add-on to JavaScript? If so, how is that different to a package or a Library? Or is a framework a type of library? Where do things like Spring, or Gradle or Flutter fit into this as well? Until recently, I thought Flutter was a language, but now I’m learning that the language might be Dart?

I’ve finished a full degree in Computer Science, and have been in Software Development for over a year now, but this has become no less clear to me.

In: Technology

10 Answers

Anonymous 0 Comments

A library is a well tested, optimized or otherwise superior piece of code that your program runs to perform limited actions. For example you might want to use a library to render text, because you don’t care about the myriad of intricacies relating to font files and optimized rendering, but you still want nice crisp text in your application.

A framework is a complete set of interconnected libraries that sort of “takes over” your program, and your program is simply sitting on top of it and driving it. An example would be Qt. It has functions for everything in a modern GUI, rendering of GUI widgets, handling of input methods, management of multiple screens, showing of file dialogues, printing, showing webpages etc. The list goes on and on. You don’y need to use Qt as a framework since you can just use the features you like as a library, but it is very convenient. Qt is also cross platform so you know your program will work without changes to your code on many platforms.

An environment is basically a running instance of an OS. Each program is launched inside an environment. The environment holds variables that the program can read to figure out how it is supposed to run.

You are viewing 1 out of 10 answers, click here to view all answers.