• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

What exactly do "framework" and "engine" mean?

 
Ranch Hand
Posts: 243
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Struts is a model-view-controller framework.
Axis is a SOAP engine.
Ant is a Java-based build tool.
Why is Ant a tool and not a framework or an engine?
 
High Plains Drifter
Posts: 7289
Netbeans IDE VI Editor
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Let's move this to General Computing to give it its due.
 
author and iconoclast
Posts: 24207
46
Mac OS X Eclipse IDE Chrome
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Genrally "frameworks" are fairly generic things you build applications on top of, like the Struts framework; "engines" are components that do some nontrivial computational task, and which you embed into an application, like a text formatting engine; and "tools" are standalone applications you use in the software development process, like Ant.
 
Rick Portugal
Ranch Hand
Posts: 243
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Is the difference between a tool and an engine the fact that a tool is used by a human and an engine is used by a computer system? So you wouldn't call Axis a SOAP tool because it isn't used by a human user? Would it be wrong to call Ant a build engine because it is used by a human?
Are frameworks in the Java world typically abstract classes? Is that what makes them frameworks? I am not familiar with Struts. Is that how you would use Struts? By extending Struts' classes?
 
Ernest Friedman-Hill
author and iconoclast
Posts: 24207
46
Mac OS X Eclipse IDE Chrome
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Originally posted by Rick Portugal:
Is the difference between a tool and an engine the fact that a tool is used by a human and an engine is used by a computer system? So you wouldn't call Axis a SOAP tool because it isn't used by a human user? Would it be wrong to call Ant a build engine because it is used by a human?


Yes, quite right, on both counts.


Are frameworks in the Java world typically abstract classes? Is that what makes them frameworks?


Often, yes.
 
Sheriff
Posts: 7001
6
Eclipse IDE Python C++ Debian Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
The important thing about a "framework" is that it is incomplete, and can do nothing on its own. You need to add your own code to it, build some sort of application using it, to get anything done. Thus, for example: Struts, JavaMail, Hibernate, JSP etc. may be considered as frameworks.
A "tool", on the other hand, is usable directly. You may need to configure it, but you don't need to write code. Example tools might be Ant, XDoclet, Tomcat etc.
There is a "gray area" between "tool" and "application". A tool might be considerd as an apppplication you use to get your job done.
"Engine" is the most vague term of the bunch. I have seen it used to describe both tools and frameworks. I have a feeling that it is often used to try and imply some sort of internal (hidden?) complexity or power. So for example Jess is described as an "engine" although to my mind it looks more like a framework. I guess if you wanted to you could describe Struts as a "web site engine". Sounds a bit pompous, somehow.
reply
    Bookmark Topic Watch Topic
  • New Topic