What is a Generic Specification in Web Programming? - specifications

What is a 'generic specification' with regards to web programming, specifically for PHP or JavaScript/jQuery?

A software specification is a text describing the developing goals and features of a software project. This text is usually written during planning phase, before any code is being written for the project. It often contains information about the software and frameworks that is being used, the software architecture, database schemas and other design decisions.
A generic specification in particular is a software specification that does not go much in detail about the implementation, and is rather an early concept of the project.

Related

What does a "framework" actually mean?

Can anybody tell me in SIMPLE words, what does it mean when we say "I want to build a framework for blah..blah"
From Software Framework on Wikipedia:
In computer programming, a software framework is an abstraction in which software providing generic functionality can be selectively changed by user code, thus providing application specific software. A software framework is a universal, reusable software platform used to develop applications, products and solutions. Software frameworks include support programs, compilers, code libraries, an application programming interface (API) and tool sets that bring together all the different components to enable development of a project or solution.
Thank you

Is there a visual modeling tool / language or style which supports Scala profile?

[Similarly sounding question currently active on SO is " Is there a visual modeling language or style for the functional programming paradigm? " which is different then this question because another is focusing only on Functional programming paradigm and my question is looking for a modeling tool which supports combination of Object Oriented Paradigm (which independently has many well established visual modeling UML tools) and Functional Programming Paradigm together.
Is there a visual modeling tool / language or style which supports Scala profile (provides and includes all Scala language artifacts) or can say that it supports the object oriented programming paradigm and the functional programming paradigm, together.
For an Enterprise scale Scala project, with what modeling tool - the business analyst prepare Visual Models or any other type of model(s) for Logical (conceptual) view and Development view?
The logical view is concerned with the functionality that the system provides to the end-users.
The development view illustrates a system from a programmer's perspective and is concerned with software management.
In certain circles of software development, formal modeling is a requirement, no matter how bureaucratic you consider this to be. There are several levels of involvement from different teams on the conclusion of a project and many of the people involved have no idea about the code. They don't need to have, it'd be a major hassle if that was asked of them. The formal modeling is there to assure that they'll get a better view of how things work so that they can perform their roles in the development.
(This paragraph is taken from: https://stackoverflow.com/users/166802/codnik)
Unfortunately there doesn't seem to be one available.
I have a PhD student friend who is working on formalising modelling techniques, however he is not building a PoC.

Meaning of "Runtime Environment" and of "Software framework"?

I have heard of several things, quoted from Wikipedia:
"Java Runtime Environment",
A JVM is distributed along with a set
of standard class libraries that
implement the Java application
programming interface (API).
Appropriate APIs bundled together form
the Java Runtime Environment (JRE).
"Adobe Integrated Runtime"
Adobe Integrated Runtime, also known
as Adobe AIR, is a cross-platform
runtime environment developed by Adobe
Systems for building Rich Internet
Applications (RIA) using Adobe Flash,
Adobe Flex, HTML, and Ajax, that can
be run as desktop applications.
".NET Framework"
The .NET Framework (pronounced dot
net) is a software framework for
Microsoft Windows operating systems.
It includes a large library, and it
supports several programming languages
which allows language interoperability
(each language can use code written in
other languages). The .NET library is
available to all the programming
languages that .NET supports.
As described above, if I understand correctly, the first two seem to be related to "runtime environment", but there is no related Wikipedia to explain what "runtime environment" is.
The third is said to be a "Software framework", which has a Wikipedia article as:
a software framework is an abstraction
in which common code providing generic
functionality can be selectively
overridden or specialized by user
code, thus providing specific
functionality. Frameworks are a
special case of software libraries in
that they are reusable abstractions of
code wrapped in a well-defined
Application programming interface
(API), yet they contain some key
distinguishing features that separate
them from normal libraries.
So my questions are:
Are "Runtime Environment" and
"Software framework" the same
thing? If not, how do they differ,
and do they belong to some common
category?
Are they all programming
libraries/APIs that can be used by
programmers to develop their own
software?
The three examples are often
required when installing some
software. Do they belong to the
concept of virtual machine? If
not, what category do they belong
to? How is that category different
from virtual machine?
Thanks and regards!
PS: I don't know if this post is more suitable for superuser or for stackoverflow, as the three examples are often required when installing some software, and they are also seem to be providing API for software developers.
No. A runtime environment basically is a virtual machine that runs on top of a machine - provides machine abstraction. It is generally lower level than a library. A framework can contain a runtime environment, but is generally tied to a library.
Java, AIR and .NET (in this case the Common Language Runtime) has each its own runtime in a certain byte code that runs on top of the operating system. It allows the code to be quite portable without recompilation to do it this way.
Libraries and APIs are used for making new programs. A runtime environment is where the programs run.
A runtime environment does coincide with the concept of a virtual machine, albeit not as complex as VMWare or otherwise. They both share the goal of abstracting the underlying systems to a point that other software can run on it.
Are "Runtime Environment" and "Software framework" the same thing? If not, how do they differ, and do they belong to some common category?
No, not really. The "runtime environment" is typically referring to the core technology that actually executes the code itself. In Java, this would be the JVM - in .NET, the CLR. The "framework" typically refers to the suite of libraries that are distributed by default.
Are they all programming libraries/APIs that can be used by programmers to develop their own software?
This is more of the "framework" - the "Framework" provides the APIs available by default.
The three examples are often required when installing some software. Do they belong to the concept of virtual machine? If not, what category do they belong to? How is that category different from virtual machine?
A Virtual Machine is a form of "runtime environment" - this is what Java and C# uses for their runtime environment.
The confusion arises since you typically install both things together - as a runtime environment is of little use without some basic libraries (the framework), and a framework does nothing without a runtime environment (since the latter is required to execute code based on the framework).

What is meant by "application framework"? [duplicate]

This question already has answers here:
Closed 12 years ago.
Possible Duplicates:
What is a framework? What does it do? Why do we need a framework
What is the difference between a class library and a framework
Although I referred to various sources, I still can't understand the proper definition. What is meant by "application framework"?
Here's a simpler answer:
Application frameworks make writing applications easier.
Creating applications is hard. Applications have to provide input and output which they get through operating system semantics. Modern applications are usually GUI based and a GUI app is orders of magnitude more complex than a non-GUI app.
It's that simple. The framework takes all the complexities of interfacing with the operating system and simplifies them for you. It handles all the nitty-gritty details for you. Obviously certain frameworks do a better job at it than others.
There is one drawback to using an application framework that rarely seems to be discussed (presumably because we are all smiling about the amount of work we didn't have to do). In order to provide a simplified view of the operating environment, a framework has to box you into a certain 'style'. If your app is sufficiently different from the usual form of app, you are likely to end up frustrated in the framework as it will make doing what you want very difficult. This is partly because you now have to do all the things that the framework was hiding from you and partly because the framework is probably a closed system.
Frameworks are a special case of software libraries in that they are
reusable abstractions of code wrapped
in a well-defined Application
programming interface (API), yet they
contain some key distinguishing
features that separate them from
normal libraries.
An application framework consists of a framework used by software developers to implement the standard structure of an application for a specific development environment
Wikipedia answers, as you might expect, that an application framework is a framework for developing applications.
An application typically provides a user interface. "Application framework" can be used loosely to refer to user-interface frameworks that provide little more than a collection of low-level user-interface controls -- like MFC, Swing, Qt and the like.
However, it is useful to distinguish these from more powerful frameworks like the Eclipse Rich-Client Platform and the Netbeans Platform, which provide a higher-level framework -- built atop those low-level toolkits -- on which to develop applications.
I personally use "application platform" only for these latter platforms, and refer to the low-level APIs as "user-interface toolkits."

What is the difference between a language and a framework?

Can someone give me a clear, concise definition of the difference between a programming language and a framework? I have scoured the web and been unable to find an adequate definition.
For extra credit, is it possible for a language and a framework to become so inextricably linked that there IS no difference, or is there such a clear line between them that this isn't possible?
A language is syntax, grammar, semantics (and perhaps a core library) that implementers are required to support. A framework is a cohesive set of library code that together simplifies programming in any given language.
An application framework is the organizational structure of any application's code, including choices for conventions in files/folders, classes/functions, etc.
An application framework product is any tool that helps generate the framework for an application.
An application design pattern is any conceptual approach for organizing code at the application level.
An software language is a language-based tool that can be used to build applications, utilities, libraries, frameworks, etc.
A library is any extension in functionality to the native compiled functionality of a language.
A standard library is a library packaged with the language product itself.
An external library is a library outside of the language product itself and is either called remotely or installed locally.
A code-generator is any tool that dynamically generates permanent runtime code based on the developer's input.
Regarding the clear line between language and framework, i suppose you can count DSLs (Domain Specific Languages) as constructs that are both a Language and a Framework ( as it is a Framework in the original Language it is build upon).
Lisp is the only language i can think of now that may blur such distinction:
"The name LISP derives from "LISt Processing". Linked lists are one of Lisp languages' major data structures, and Lisp source code is itself made up of lists. As a result, Lisp programs can manipulate source code as a data structure, giving rise to the macro systems that allow programmers to create new syntax or even new domain-specific languages embedded in Lisp."
http://en.wikipedia.org/wiki/Lisp_(programming_language)
I hope i can explain using an example.
Dot net is a framework which consists of large libraries and supports many
programming languages.. C# is a programming language through which you can give
instruction to a machine mainly computer.. Now if your source code is in C#
you can use Dot net framework libraries and the source code which is written in other
languages..
At my point, a programming language looks like bunch of stuff (syntax,grammar, semantics etc.) which people are already combine them into one more convenient, more useful, easier to use, and more enjoyable - a framework, and I love to have a framework before start making a program.
I know some programming languages like C, PHP, ASP, Python, Java, and some frameworks like Yii, Zend, Pygame, Struts. All I see is there can be many frameworks built from a programming language, but a framework is built from only on programming language.
A programming language is a specified, standardized method of communication between the programmer and computer (in modern languages, technically it's between programmer and compiler, which "interprets" your code into simpler instructions the computer can work with). It is a pure abstraction that specifies its structure, syntax and semantics; implementations of the language are generally considered part of the environment in which the programmer develops, and incorporate the compiler and any virtual machine implementation.
A framework is a standardized set of pre-written code libraries designed to be used and reused by developers, and is again tied more to the environment. An environment is the intersection of the language, framework, virtual machine or runtime (an abstraction layer in which managed or interpreted code is translated from a machine-independent form into native code) and machine (the hardware layer on which native instructions are executed).