Talk:Software framework

Cleanup required
Marking this for cleanup because it's almost unreadable--and I'm a software engineer! —Preceding unsigned comment added by Minority Report (talk • contribs) 10:55, 19 November 2004
 * still terrible. Trav (talk) 14:04, 31 March 2008 (UTC)


 * https://en.wikipedia.org/wiki/Software_framework MilkWeed4daQueen (talk) 01:43, 23 February 2024 (UTC)

What is the intended reading audience for this article as it appears in Wikipedia?

Completely agreed. This article borders on being completely meaningless because it does very little to define before it attempts to discuss its merits or application as a concept. Poor! (11 April 2013) 132.183.13.16 (talk) 19:14, 11 April 2013 (UTC)Professional information scientist132.183.13.16 (talk) 19:14, 11 April 2013 (UTC)

Software framework and Application framework
I've thought that Application Framework is a Software Framework, designed and developed for a particular Application. Software framework is broader in a sense that include third party frameworks. I could be wrong.

Reading the two articales Application framework and Software framework, it is not clear what is the difference between the two. If those are the same, or simular it should be stated, or may be merged. Ervinn 17:52, 30 August 2006 (UTC)

Somewhere I found the following distinction between framework and library: Some piece of pre-packaged code is a library if it is designed to be called by your code; it is a framework if it is designed to call your code. Is that an acceptable distinction? If so, it might go into the article, which doesn't seem to make any distinction at the moment. M palmer45 (talk) 20:42, 3 April 2008 (UTC)

Software framework taxonomy
I've been looking a bit at the various software framework articles, trying to make sense of them. I'm not the first, but I'd like to work on making some sense of these concepts for readers. There is a lot of duplication between the various framework pages, and it would be nice if these could be unified somewhat.

I've started by merging Framework with this page (well, the software bits anyways), and I'd like to continue by using the

I would like to propose a taxonomy that I'd like to start referencing in the various software framework articles. This is what I've found so far from my initial searching.


 * Framework
 * Software framework
 * Multimedia framework
 * Middleware
 * Application framework
 * Web application framework - See also Application server
 * Content management framework - See also Content management systems

Each inner point is a specialty that may be built on upper layers, with the exception of a Software framework. For example, DirectX (a Multimedia framework) is based on .net (a software framework), and Plone (a CMS) is based on Zope, an application server with an associated Web application framework.

Some of these pages may warrant "List of..." and "Comparison of..." pages.

I'd like to start by creating categories for these frameworks, and maybe one of those section headers. I'll probably start this in the next day or two if no one beats me to it.

I'd also like to ensure that all Wikipedians work together on this, so I will try to post links to this discussion on talk pages on other talk pages. Ian Bailey 05:10, 11 April 2007 (UTC)

There is a difference between a CMS and a CMF. A framework will help one create a system that suits the user's needs. A system is the end product. The difference is in flexibility and ease of use. CakePHP is a CMF, Mambo is a CMS. The best way to organize the list is to put the two on the same level in the hierarchy. A CMF is not better than a CMS nor should one be a 'container' of the other. -- Flyingmeteor 19:48, 22 October 2007 (UTC)

Question: I see two different aspects of a framework: the *conceptual* design of the components and how they interact, ithu athu onnlu illange and the actual software that supports this conceptual design. In my opinion they are different, since there can be multiple implementations of the same framework. It seems that the term "software framework" currently refers to both. Are there actually conventional terms to refer to the different concepts, or do different people just have different ideas about what to call it? —Preceding unsigned comment added by 128.105.167.39 (talk) 18:14, 8 January 2008 (UTC)


 * The taxonomy looks good, but expect some overlap. It's ok for media to be seen a subset of software, and for software to be seen as a subset of media.  Mathiastck (talk) 18:48, 16 January 2008 (UTC)
 * Ajax framework is another one. --Abdull (talk) 20:16, 2 February 2008 (UTC)

Revisions to intro paragraph and definition
I replaced this:


 * A software framework is a reusable design for a software system (or subsystem). This is expressed as a set of abstract classes and the way their instances collaborate for a specific type of software.

With a version of the first few sentences of this:


 * 

Which is infinitely easier to understand.

Trav (talk) 14:11, 31 March 2008 (UTC)

Hi Travb. Your concern about the old definition is warranted. I've replaced it with a definition that is agreed to by the academic community and cited two of their experts (Ralph Johnson and Dirk Riehle). It is important to describe both the similarities to and differences from code libraries, and the new intro paragraph does this too. I have good intentions of making more cleanups on this article. I'm fairly expert in this area myself -- I have a phd in software engineering from CMU and wrote my dissertation on a new technique to specify software frameworks. Regards, George. Georgefairbanks (talk) 00:48, 28 May 2008 (UTC)

The first paragraph as it stands now is still a mess! A software framework is not an abstraction, it is a set of software libraries and perhaps accompanying tools implementing an abstraction. As it stands the text is inconsistent about this. The specific properties mentioned (such as IoC) are not necessary properties of frameworks in general. Rp (talk) 10:15, 26 May 2011 (UTC)

Web development?
Why is a software framework related only to web development? It´s what one understands from the introduction:

"The idea is that all of the tedious, low-level details of creating a web application are already in a reusable package. For a web developer, this means you can spend your time worrying about specific problems related to your application, and not the actual building of the code behind it."

I thought a software framework was independent of the application (web, desktop, etc.) for example MFC is a software framework not intended for web development.

Deleting the "web" word in that paragraph.

Avargasm (talk) 20:17, 2 April 2008 (UTC)

Framework VS Library
I believe it is important not to use the word framework about whatever. Alot of re-usable code for web development isnt a framework simple snippets or some of them libraries. The word should be used with care. I believe it is good to start a topic about "Frameworks compared to libraries" so that it can be established that a framework - in my opinion and others - is bigger than just a file or 2. API's are framworks. I believe there is no such thing as CSS frameworks for instance. In software development i believe there are more frameworks than in web development, but the distinction is important to help avoid the confusion that all these discussions are about. --wmasterj (talk) 22:26, 22 August 2008 (UTC) rr —Preceding unsigned comment added by 61.109.169.125 (talk) 05:47, 26 February 2009 (UTC)

nmb

Microsoft calls .Net a framework. I think that is wrong. Microsoft is really bad about the terminology they use, so much so as to seem arrogant. Sam Tomato (talk) 18:08, 25 May 2015 (UTC)

So when you say "re-usable code for web development" I assume you are primarily referring to .Net and I agree that ".Net Framework" is wrong. Sam Tomato (talk) 18:10, 25 May 2015 (UTC)

The difference between a library and a framework is that a framework implements inversion of control (the Hollywood Principle - Don't call us, we'll call you). When using a library you have to write code to call its components, but when using a framework it has components which call the code that you write. This is achieved by using the Template Method Pattern where an abstract class containing default behaviour is provided by the framework and a subclass provides custom behaviour. — Preceding unsigned comment added by Tonymarston (talk • contribs) 10:39, 11 June 2020 (UTC)

Callback as synonym for Hollywood_Principle
I noticed on the entry for Callback (computer programming); there is no mention of frameworks there. and on this page, Callback is not identified as being the functions used by the Hollywood_Principle. (that use may be specific to Microsoft culture). http://social.msdn.microsoft.com/Forums/en/clr/thread/7711d8de-68e8-4644-b10b-252f55528bed Wikipaddn (talk) 03:15, 22 February 2011 (UTC)

Linkers
The text "unless the software is a compiler-object linker" doesn't make sense to me. Is it possible the author meant "uses a" instead of "is a"? And does "wholly controlled" mean independent? SandStone (talk) 19:25, 4 February 2015 (UTC)

A framework is a frame
I assume that a framework is a frame. I think that that should be stated explicitly and the definition should be built upon that. A framework is something that other software is built upon and that holds the software together. Sam Tomato (talk) 18:08, 25 May 2015 (UTC)


 * with respect, i think your assumption is not correct. The word frame in the software development context most commonly refers to a graphic component used in a UI definition, or is used when describing the time frame applicable to an objects existance in a system or other such abstract "discussions". I will happily agree with your contention if you could please expand a bit on what you mean?
 * When you say "holds the software together" i think you mean "provides a structure into which application specific code is inserted" ... or something like that, yes? Just 'cause "software" is such a general term generally meaning "application" and a framework does not define an application, it just participates in its realization.
 * humm that this talk was last used in 2015 is a bit telling &mdash; vulcan_ (talk · contribs) 04:25, 3 December 2017 (UTC)
 * Telling of what? ZFT (talk) 05:17, 7 May 2023 (UTC)

Definition of Framework
It's clear that there really is no steadfast definition of software framework and the authors here are trying to create one as though this article is the source of academic truth. There are no citations that support the actual definition being proposed. For example, it declares that a framework must have "Inversion of Control". Based on what? The citation is an article that defines "inversion of control" but doesn't really cite a source as to where that even is a requirement other than in the author's own mind.

What is the origin of the term? What was the first framework? Does ANSI, ISO, or any other standards body define the term? A framework is a conceptual or physical structure. That term can be applied to software in a lot of ways. There's no real benefit to trying to create a strict definition of what can be called a software framework. If it provides some sort of structure for developing software, it can be called a software framework. — Preceding unsigned comment added by 24.118.147.229 (talk) 12:33, 17 April 2018 (UTC)


 * I agree it's not appropriate for a Wikipedia article to just try to make up its own definition of the term. There is one already in Schmidt's paper, which in turn is citing another publication from 1988 also giving a definition of the term. I don't see why we can't just take those, at least as a reputable starting point. Psequeirag (talk) 02:27, 22 March 2020 (UTC)

Java/OOP specific language
This articles contains very java/OOP specific language (use of "method" over "function," references to design patterns). This may confuse readers or cause them to think that a framework is an inherently object oriented concept. ABuzzedWhaler (talk) 17:18, 3 December 2021 (UTC)