Only Forth definitions
Some Forth definitions I've found (most recent addition first):
Minimization is the art of Zen. Complexity is cheaper than it used to be, but it will always contain hidden costs. Forth as a practice is the pursuit of simplicity. 256 kB of code space is hardly simple. 32kB of code is very large for Forth, including the application. Forth is a language for building your own application specific language. This makes Forth harder for pointy headed bosses because this new language is only familiar to the programmer who wrote it. So, there needs to be more discipline within the group to craft a holistic system. That's different from everyone coding modules in C or whatever and integrating afterwards.
Forth is different; in Forth you don't transform the problem into a form which fits the language; instead, you transform the language into a form that fits the solution domain.
Forth is a very productive tool and a great language for building languages. (...) Forth is an artisan language where simplicity of form is the foundation. Minimization of complexity is the game, a game that pays dividends. It just takes time for those dividends to show up.
Forth is an extraordinary computer language developed originally for the control of radio telescopes, by an American named Charles Moore. Forth is neither an interpreter nor a compiler, but combines the best features of both to produce a super-fast, high level language, incorporating the facilities offered by an interactive interpreter and the speed of execution close to that of machine-code.
Forth is a very special computer language - a kind of smart macro assembler. Even if the programming is on high level you always program directly upon an addressable part of the memory. The visible stack orientation is the simple way to handle data. Postfix notation makes brackets and operator priorities unnecessary. There is no black box parser limiting what is allowed and possible. The programmer decide virtually everything about the procedures, input, output and memory. And this makes it very easy to extend the system with new data types with postfix algebra.
Forth is an all-adaptable programming language usable by skillful programmers who understand the Forth programming language, the hardware, and the data they are using, and are capable of properly controlling all three. Many other programming languages are available for other people, but adaptations of Forth will never be one of them. Obviously, Forth cannot be the right language for everyone.
Forth is a tool for evolutionary programming.
What is Forth?
There are probably more definitions than stars are in the sky. Let's say that Forth is an unusual but useful programming language with a strong philosophic background. If you learn Forth well, it will help you in you everyday life too and even in your understanding of the Universe as a whole. You see, I told you there were too many definitions.
(...)
I have always found Forth new and refreshing, and regret not using it more time. It could have helped me with my life (really).
Newcomers to Forth are sometimes dismayed by its primitiveness. It's like buying a car and receiving a crate of parts with the instructions, “Some assembly required.” By design, Forth is more a mechanism for being extended into the new structures and functions required to solve a problem, than a language in the conventional sense.
Forth is an unusual computer language that has probably been applied to more varied projects than any other. It is the obvious choice when the project is exceptionally demanding in terms of completion schedule, speed of execution, compactness of code, or any combination of the above.
It has also been called “...one of the best-kept secrets in the computing world.” This is no exaggeration: large corporations have purchased professional Forth development systems from vendors such as Laboratory Microsystems, Inc., Forth, Inc. or MicroProcessor Engineering, Ltd. and sworn them to secrecy.
Some speculate (unkindly) that corporate giants prefer to hide their shame at using Forth; but I believe they are actually concealing a secret weapon from their rivals. Whenever Forth has competed directly with a more conventional language like C it has won hands down, producing smaller, faster, more reliable code in far less time. I have searched for examples with the opposite outcome but have been unable to find a single instance.
As you might know, Forth is the only programming language developed by a computer user, and is made to get the computer to work as easy as possible, with a minimum of effort, which results in high productivity.
Forth is language and an operating system. But that's not all: it's also the embodiment of a philosophy. The philosophy is not generally described as something a part from Forth. It did not precede Forth, nor is it described anywhere apart from discussions of Forth, nor does it even have a name, other than “Forth.”
The Forth language is its own operating system and text editor. It is interactive, extensible (including user-defined data types), structured, and recursive. Code is so compact that the entire system (mostly written in Forth) usually fits in 6K bytes, running stand-alone with no other software required, or as a task in a conventional operating system. One person can understand the entire Forth system, change any part of it, or even write a new version from scratch. Runtime efficiencies are as little as 30% slower than straight machine code, and even less if the system's built-in assembler is used. When the assembler is not used, programs can be almost completely transportable between machines. Any large Forth program is really a special-purpose, applicaction-oriented language, greatly facilitating maintenance and modification.
Forth is a programming environment for creating application-oriented languages. (That last sentence may be the most succinct description of Forth that you'll find.)
- Forth is one of the few environments which is totally comprehensible by one person.
- Forth has no inherent keywords — programming is done by extending the language to your application. Thus, it can become what ever you need it to be. Forth can compile itself into a new compiler!
- Forth has a "low floor; high ceiling" approach to abstraction — that is, it can be both low level, high level and anywhere in-between.
- You can get an application to run in a miniscule amount of RAM.
- You can try things out interactively in real time as you build your system. The compiling functionality is an exposed part of the language like everything else.
- It can be used to debug itself!
- It is fast.
Forth is an unusual language in that it is stack based. Although this is its greatest strength it is also a source of confusion when first learning the language.
Forth is a computer language and a school of thought. Forth is a very different way of programming computers. You may have never heard of it, but it has a small core of serious users and supporters — in fact, some of the smartest people in the computer business. The reasons for Forth's decline are not technical, but human. Many aspects of early Forth are obsolete, but the essence of Forth is as solid as ever. Forth is basically a simple but powerful natural language syntax that is completely extensible. It doesn't hit an abstraction wall the way other languages do.
Forth is a programming language originally designed for real-time control of telescopes. As programmers saw its power and versatility, a grass roots effort emerged to mold the language over the next three decades into the ANSI-standard Forth of today.
Forth has been described as a room without walls. Some programmers thrive on Forth's unparalleled freedom, while others are uncomfortable with it. As with most things in life, more freedom comes with more responsibility. If you love programming and continually strive for good programming practice, check out Forth. Forth is the only computer language that lets you be you.
Forth is a programming amplifier. In the right hands, Forth is typically 3 to 10 times more productive than C. Sounds impossible? The key is to view Forth as a tool, not just a language. In other languages, you use a one-size-fits-all megatool to solve problems in your application domain. Forth is a tool for building tools. You build tools that fit your application domain, so you get tools that address your problems better and with far less complexity.
By the same token, bad Forth can be really bad. You need the discipline to manage Forth usage within your organization. This includes things like documentation, test benches, library code, testing, and code reviews.
Forth is more a programming style and philosophy than a programming language. Good Forth-like programming can be done in any language (like C/C++), although other languages can't match Forth's simplicity, flexibility, and extensibility.
Forth is a language for building languages. Out of the box, it's generally not as rich as other languages. But it is extensible in a way the other languages aren't. Can you think of a language construct that would fit your application domain like a glove? Implement it in Forth. Come up with a bunch of these and you have your own language that's a lot more powerful than a generic Forth. Careful use of abstraction and information hiding lets you build up a high level language that fits what you do.
Forth is often spoken of as a language because that is its most visible aspect. However, Forth is more than a conventional programming language in that all the capabilities normally associated with a large portfolio of separate programs (compilers, editors, assemblers, etc.) are included within its range. It is also less than a conventional programming language in its deliberate lack of complex syntax characteristic of most high-level languages.
Forth is both an extensible language and an interactive program development methodology. Originally developed for small embedded control mini- and micro-computers, Forth seems to have been implemented on every major processor manufactured. It has been used in a wide variety of applications, including spreadsheets, expert systems, multi-user databases, and distributed real time control systems.
One principle that guided the evolution of Forth and continues to guide its application, is blunty: Keep It Simple. A simple solution has elegance. It is the result of exacting effort to understand the real problem and is recognized by its compelling sense of rightness. I stress this point because it contradicts the conventional view that power increases with complexity. Simplicity provides confidence, reliability, compactnes, and speed.
(...)
Forth provides a natural means of communication between man and the smart machines he is surronding himself with. This requires that it share characteristics of human languages, including compactness, versatility, and extensibility. I cannot imagine a better language for writing programs, expressing algorithms, or understanding computers.
In a sense, Forth is not a language but rather a programming methodology for writing an application language for the task in hand. You write the bulk of your program in terms of the job’s requirements, not the compiler’s edicts. Forth supports whatever operations and syntax you need.
Forth is a complete programming language with some unique features. In fact, it is probably unlike any other language you have ever used. Please don't let its "strangeness" cause you to immediately reject it — once you get used to it, you may find that you can use Forth to write working programs faster than you ever dreamed possible.
Forth is often described as an assembler, compiler, operating system, editor, and command language all rolled into one. In addition, most of the Forth system is written in Forth.