Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What's the difference between an "engine" and a "framework"? [closed]

I've heard these terms used seemingly interchangeably, so I'm a little unclear. Please cite examples.

like image 579
Pup Avatar asked Feb 21 '11 17:02

Pup


People also ask

Should I use an engine or a framework?

Unlike Game Engines Game Frameworks make you code a lot. But it's a very good idea to use Game Framework if you want to practice coding. And if you're experienced enough, you can bring together different tools and libraries (or create your own ones) and make something like Game Engine, from Game Framework.

Is unity a framework or engine?

Unity is a 2D/3D engine and framework that gives you a system for designing game or app scenes for 2D, 2.5D and 3D.

What is considered a framework?

In general, a framework is a real or conceptual structure intended to serve as a support or guide for the building of something that expands the structure into something useful.

What is an engine in coding?

In computer programming, an engine is a program that performs a core or essential function for other programs. Engines are used in operating systems, subsystems or application programs to coordinate the overall operation of other programs.


1 Answers

These terms, and others, do seem very similar. They're named from a conceptual standpoint, and so could be defined as follows:

  • A "framework" is a "foundation" or "support structure" around which you build your actual application. The .NET Framework includes not only a foundation (the CLR) but a series of libraries that provide standardized functionality that you would otherwise have to implement yourself. Other frameworks or foundations provide more specific areas of support, such as in UI, data storage, client-server interaction, etc. Frameworks provide a relatively static, generic structure on and in which you build something specific and unique.
  • An "engine" is a self-contained, but externally-controllable, piece of code that encapsulates powerful logic designed to perform a specific type of work. Engines exist to do "heavy lifting", where you instruct it to perform some complex, abstract task, and it handles the specifics in a relatively efficient manner without further external guidance. SQL implementations, and other services that perform searching, are typically called "engines". There are also physics engines, graphics engines, etc., which all have in common the idea that you tell it "do this" in some generic manner, and it handles the details.
like image 103
KeithS Avatar answered Oct 04 '22 10:10

KeithS