Manuel Rodriguez
2018-12-28 08:35:43 UTC
If somebody is trying to program a computer or a smartphone he has the
choice between many programming languages. The latest example of a well
working language is Golang which was introduced in 2009 and provides some
new features. In contrast to C++ and Python, the Go language looks very
modern and future ready. The reason is, that the language was designed
from scratch and provides a lot of libraries which makes it suitable
for developers who wants to create their first apps. Go was developed
similar to C++ for practical usage.
If the mainstream ecosystem is working great, why the world needs
Forth? It's a good question. On the first look, Forth can't be compared
with modern programming languages and it's hard to do simple things. In
go, it is very easy to create a GUI, a webbrowser or a primenumber
generator, while Forth lacks in everything. It has no garbage collector,
no GUI libraries, and no nothing at all. Understanding Forth is only
possible if the expectation of the developer will change. The strength of
Forth is, that no standard is there. Instead the developer has to invent
everything from scratch. If he want's to program with object-oriented
style nobody will hold him back. If he want's to allocate lots of
memory, he is welcome. The reason why Forth is working better than
managed languages like C++ is, that only with Forth the programmer
has control over his computer. He isn't forced to follow anybody. That
means, there is no compiler which is used by everybody, and there is no
collection of libraries which allows him to write the first gui app in
under a minute. The missing features in Forth are the main strength of the
language. If the language comes without guidelines and without predefined
functions, the developer is in charge to deliver the missing parts.
Forth is a programming language not invented yet. It's very similar to
the book “Linux from scratch” which is not an operating system but
a guideline how to create an operating system. Forth can be seen as
a true metalanguage. Even the well known Forth primitives like swap,
dup and mod are not standardized, which means they have to be invented
in each Forth system by it's own.
Mainstream computer languages like Java or Python can be seen as the
answer to a problem. Java, for example answers the question of how to
program platform independent code. The programmer has to read the manual,
understands the concepts behind Java and follows the community. Forth is
working the other way around. It doesn't provide knowledge, Forth asks
for knowledge. In mainstream programming languages, the newbie gets a
shiny compiler for running the sourcecode. In Forth, the newbie has to
write the compiler as his first project. That is the reason, why Forth
is loved by computer professionals. It gives them the opportunity to
learn, to make mistakes and to bring technology forward. My prediction
is simple: in 20 years, all the mainstream languages are gone. C# will
become obsolete and nobody will remember the PHP scripting language,
but Forth will become the industry standard.
* How to get started *
The Forth language makes it hard for newbies to get started. .The reason
is, that Forth doesn't provide sourcecode and the available Forth Virtual
machines can't be recommended anymore. But if nothing is there, what
should the newbie learn? What are the do's and dont's? The reason why
Forth is nearly invisible has to do with, that it's a virtual machine. A
VM is a game similar to a cardgame. The rules of the Forth game can be
written down in a single sheet of paper. But for playing the game right,
this description is not sufficient. What the beginner needs are additional
information about Forth. I can't recommend a single book. The inventor
is Chuck Moore and he has written some books about Forth, but they are
not the best starting point. What i recommend is to use a search engine
like google and search in the existing fulltext of all publications.
Here is my recommended Google search string, it contains of some keywords
which reduce the internet to Forth related information. At the end of
the string, the user can put his own topic of interesting for example he
can add “Forth CPU” if he is interested in Forth in Hardware, or he
can add “benchmark” if he is interested in a performance comparison
with a classical programming language.
["Rochester Forth Conference" OR "Journal of Forth Application and
Research" OR "Forth assembly" OR "Forth programming" OR "ACM SIGFORTH"
OR "Forth Dimensions" OR "euroForth" OR "figForth" OR "euroFORML" OR
“FORML Conference” OR “SVFIG” OR site:forth.org OR site:forth.com]
filetype:pdf
Forth itself can't described in a book or in software. But the
literature around Forth can be collected and searched by a fulltext
search engine. That means, the amount of blogs, pdf papers and books
about Forth is forming the corpus. And what is available in the corpus
is similar to Forth. Something in the collection is wrong or outdated,
but this is normal in every community. If we are searching for information
about robotics, we will notice the same problem. What is special in the
Forth corpus is, that the total amount of information is limited. It is
very common, that Google doesn't find a single result for a keyword. That
means, the information is simply not there, it was not written down. Let
us take a detailed look into the keyword list. They are about academic
journals like the “Journal of Forth Applications”, it contains the
famous forth.org website and also the Forth Dimension journal. I would
guess, that most of available Forth literature will be found with that
searchstring. Some Forth related information are only available as printed
books, some are out of print and no longer available. So it's important
to write new Forth tutorials from scratch to add the missing information.
choice between many programming languages. The latest example of a well
working language is Golang which was introduced in 2009 and provides some
new features. In contrast to C++ and Python, the Go language looks very
modern and future ready. The reason is, that the language was designed
from scratch and provides a lot of libraries which makes it suitable
for developers who wants to create their first apps. Go was developed
similar to C++ for practical usage.
If the mainstream ecosystem is working great, why the world needs
Forth? It's a good question. On the first look, Forth can't be compared
with modern programming languages and it's hard to do simple things. In
go, it is very easy to create a GUI, a webbrowser or a primenumber
generator, while Forth lacks in everything. It has no garbage collector,
no GUI libraries, and no nothing at all. Understanding Forth is only
possible if the expectation of the developer will change. The strength of
Forth is, that no standard is there. Instead the developer has to invent
everything from scratch. If he want's to program with object-oriented
style nobody will hold him back. If he want's to allocate lots of
memory, he is welcome. The reason why Forth is working better than
managed languages like C++ is, that only with Forth the programmer
has control over his computer. He isn't forced to follow anybody. That
means, there is no compiler which is used by everybody, and there is no
collection of libraries which allows him to write the first gui app in
under a minute. The missing features in Forth are the main strength of the
language. If the language comes without guidelines and without predefined
functions, the developer is in charge to deliver the missing parts.
Forth is a programming language not invented yet. It's very similar to
the book “Linux from scratch” which is not an operating system but
a guideline how to create an operating system. Forth can be seen as
a true metalanguage. Even the well known Forth primitives like swap,
dup and mod are not standardized, which means they have to be invented
in each Forth system by it's own.
Mainstream computer languages like Java or Python can be seen as the
answer to a problem. Java, for example answers the question of how to
program platform independent code. The programmer has to read the manual,
understands the concepts behind Java and follows the community. Forth is
working the other way around. It doesn't provide knowledge, Forth asks
for knowledge. In mainstream programming languages, the newbie gets a
shiny compiler for running the sourcecode. In Forth, the newbie has to
write the compiler as his first project. That is the reason, why Forth
is loved by computer professionals. It gives them the opportunity to
learn, to make mistakes and to bring technology forward. My prediction
is simple: in 20 years, all the mainstream languages are gone. C# will
become obsolete and nobody will remember the PHP scripting language,
but Forth will become the industry standard.
* How to get started *
The Forth language makes it hard for newbies to get started. .The reason
is, that Forth doesn't provide sourcecode and the available Forth Virtual
machines can't be recommended anymore. But if nothing is there, what
should the newbie learn? What are the do's and dont's? The reason why
Forth is nearly invisible has to do with, that it's a virtual machine. A
VM is a game similar to a cardgame. The rules of the Forth game can be
written down in a single sheet of paper. But for playing the game right,
this description is not sufficient. What the beginner needs are additional
information about Forth. I can't recommend a single book. The inventor
is Chuck Moore and he has written some books about Forth, but they are
not the best starting point. What i recommend is to use a search engine
like google and search in the existing fulltext of all publications.
Here is my recommended Google search string, it contains of some keywords
which reduce the internet to Forth related information. At the end of
the string, the user can put his own topic of interesting for example he
can add “Forth CPU” if he is interested in Forth in Hardware, or he
can add “benchmark” if he is interested in a performance comparison
with a classical programming language.
["Rochester Forth Conference" OR "Journal of Forth Application and
Research" OR "Forth assembly" OR "Forth programming" OR "ACM SIGFORTH"
OR "Forth Dimensions" OR "euroForth" OR "figForth" OR "euroFORML" OR
“FORML Conference” OR “SVFIG” OR site:forth.org OR site:forth.com]
filetype:pdf
Forth itself can't described in a book or in software. But the
literature around Forth can be collected and searched by a fulltext
search engine. That means, the amount of blogs, pdf papers and books
about Forth is forming the corpus. And what is available in the corpus
is similar to Forth. Something in the collection is wrong or outdated,
but this is normal in every community. If we are searching for information
about robotics, we will notice the same problem. What is special in the
Forth corpus is, that the total amount of information is limited. It is
very common, that Google doesn't find a single result for a keyword. That
means, the information is simply not there, it was not written down. Let
us take a detailed look into the keyword list. They are about academic
journals like the “Journal of Forth Applications”, it contains the
famous forth.org website and also the Forth Dimension journal. I would
guess, that most of available Forth literature will be found with that
searchstring. Some Forth related information are only available as printed
books, some are out of print and no longer available. So it's important
to write new Forth tutorials from scratch to add the missing information.