I'm going to learn Forth by reading Starting FORTH by Leo Brodie.
does anyone want to join me?


Why learn code at all? Not even kidding, I literally know nothing other than how to make dank myspace themes by editing pre-existing html.

I guess Yumi-sama used code to make this site, too, but what else could you do?


I don't know Forth but I do know HTML5, CSS3, JavaScript, Python, Java, C++, shell scripting, LaTeX, etc. Why did you choose Forth? And as for >>2, there is plenty of cool stuff you can do with programming.


Ooh, I do! I have an MSP430 that I want to use with my programs, but idk how hard that will be.


For one it's very useful. For someone who wouldn't normally learn how to do this sort of thing, learning a language they might use, like bash or excel macros, helps demonstrate that. Secondly I enjoy it, so I want to get into a career doing some aspect of it; be it freelance or for some other company.

I chose Forth because I plan on essentially self studying the equivalent of a CS degree. I know the basics of a number of languages but I haven't used most of them in years. Learning a simple language like Forth is supposed to be should get me back into regularly programming.

A quick glance at the wikipedia page for that chip leads me to believe you might need to purchase a compiler for it; i'm not quite sure if that's true, look into it more before buying!


2 here
Like what cool stuff? How useful is it? Like, here's what I know code can do:
>run video games
>play videos
>do word-processing (process words?)
>Make websites
>sort data
I know there are like a million other things it can do, but I legit have no idea what those things would be. I had some friends who learned a few coding languages, but I never really asked what they were doing with them? Does that make sense? It's like, no shit it's useful, but... what do you do with it?

Imagine you didn't know what hands were and someone asked, hey man you want some hands? and then you ask what they're for. Like you know that people with hands can do some kind of sign-language or can brew coffee, but you don't know what else they're for. That's me rn. Like, tell me you can cook spaghetti or dribble a basketball or scratch your back, or something.


1. here. I guess when you get right down to it, programming is listing instructions to a computer. I don't know what your browsing habits are, but if you've seen any flash animations with interactive elements, that interactivity is done with programming. Every cool post on dwitter (not to be confused with twitter) is done with programming.
Something that you could which might be immediatly useful to you are excel sheet formulas. While not really a programming language (although macros might be, i haven't used those personally so I wouldn't know), it shares enough aspects to be able to do beginner exercises, which usually start out with using the programming language as a calculator.
A couple examples that I thought up for what you can do with programming:
with TI basic you can make a program that does the quadradic formula given 3 inputs, which can speed up your projectile motion homework

with javascript you could make a script on a web page that lets you fill out a form to help you construct dank myspace themes by showing you the theme after you hit a button and changed the inputs in the form

with awk you can number each paragraph in an ebook


See that makes it a lot clearer. Those animations on dwitter, numbering pages, doing math without doing math (if I ever needed math)--those applications all seem useful and/or artistic. Just from the uses you listed I can think of a bunch of uses of those things (linking to text in an ebook for easy reference, making animations for a presentation/animu, &c.).


Programming is more than just instructions. That sounds like you're describing procedural programming.


at some level a program that you write sends instructions to the computer, no matter how complicated you make it.


Yes, it includes instructions, but it's more than just instructions. There are other programming paradigms and concepts that are more than just imperative or procedural instructions.


sure but any higher level programming paradigms are translated into line by line imperative machine language.

anyway how had every one been doing on the book so far? I'm at page 48 and it looks like I'll get to the conditional words next chapter. I think I'll probably find some challenges outside of this book's exercises once I get to the looping words.

oh yeah here's a link to the book for free, it's the ninth one from the top http://forth.org/tutorials.html
I probably should have put that in the opening post


It's great that you're learning a programming language, but Forth is a terrible choice. Try Python or something instead.


I think I've said this before in the thread, 13., but I know part of some programming languages already. I'd at least like too see why forth is terrible ( if it really is), first hand.

here's some words I found while watching https://youtube.com/watch?v=mvrE2ZGe-rs the words [code]see[/code] and [code]words[/code], which show the source of a word ( it might be in assembly though) and which shows the list of words in the dictionary respectivly


What makes English a better language than Esperanto? Well, people who like Esperanto say it's the best language ever, and they get into technical details about the language. Here's the thing: the most important part of a language is the people who use it. I know a guy who says dvorak keyboards are better than qwerty ones, but most keyboards (and people who use them) are qwerty.

Programming languages are the same way. If you pick an obscure language, you are resigning yourself to solitude. If you learn Java or Python, you can go to hackathons and work on projects with other people. I know plenty of people who know these languages. I network with people and work on group projects. But Forth? I don't know a single person who knows Forth. Not only is that socially limiting, it also means there is less support, documentation, libraries, etc. There are plenty of things for Python or Java, for example.

Go ahead and learn Forth if you want, I'm just saying that a language is more than syntax and a type system. A language needs an ecosystem, a community, and hirability.


certainly those are valid concern and the forth community ( which I haven't looked into yet but probably exists) is not as large as other languages; however a community and job opportunities are not the only reasons to learn a programming language. not only can it be fun to program in a language that differs from the standard ones but you can learn practices that you might not have thought about while using a different one.


Okay, then tell me about Forth. What kinds of IDEs/compilers/other tools are used for it? How do you install it? What platforms is it available for?

What about the language itself? Is it statically or dynamically typed, and is it strong or weak typing? Is it compiled or interpreted? What kinds of things have been made in Forth? What paradigm(s) does it belong to? What are some sites for documentation or discussion about forth? Is it a garbage-collected language?

Is it a general purpose language, or is it better-geared for certain things? What kinds of libraries or frameworks are available for it?

Can you write a fizzbuzz program in Forth to demonstrate some basic syntax and control structures and such?


Language bro here, I may know nothing about programming, but all of what this man says is valid and important in languages. For instance, plenty of people learn English, Spanish, Arabic &c. because they can communicate with a lot of people, cooperate on projects, read great works, &c.

However, the only non-native speakers who learn, let's say Hungarian do so because of work (in/with Hungary), proximity (to Hungary), or romance (with a Hungarian). That being said, it's probably the single most aesthetically interesting and diverse language I know of. It's jut that, no one has the 1000+ hours of study and practice required to become functionally proficient in something that will not help them AT ALL in life, when they could instead learn something "practical." Then again, maybe it will become popular later, but... you should just learn something else until that day comes, because learning Forth IF AND ONLY IF it's useful AFTER learning another language will be easier and more practical.
Just my two bits.


Okay, then tell me about Forth. What kinds of IDEs/compilers/other tools are used for it?

Any text editor will do to write in it; of course you could also try out some paid forth developing tools (like the ones made by Forth Inc.) but I'm not sure why you would do that to start out.
The most common compilers for individuals are the free ones, gforth and pforth are the ones I know of, while companies working on embedded systems might use paid for compilers.
How do you install it?

sudo apt-get install gforth
What platforms is it available for?

In addition to the regular OSs, FORTH has wide support for embedded systems.
What about the language itself? Is it statically or dynamically typed, and is it strong or weak typing?

Is it compiled or interpreted?

Either one, although it's commonly compiled.
What kinds of things have been made in Forth?

NASA used Forth for space applications. The bestselling video game from 1986 was written in Forth. Open Firmware
What paradigm(s) does it belong to?

Procedural, stack-oriented, reflective, concatenative
What are some sites for documentation or discussion about forth?

There's supposedly #forth@irc.freenode.net which I haven't checked myself
Forth Inc. a list of links
the newsgroup comp.lang.forth
The website of the disbanded FIG (Forth Interest Group)
Is it a garbage-collected language?

Is it a general purpose language, or is it better-geared for certain things?

General purpose, considered a high level language, but well suited for embedded systems.
What kinds of libraries or frameworks are available for it?

Check out FLAG. One example library being the scientific one.

Can you write a fizzbuzz program in Forth to demonstrate some basic syntax and control structures and such?

I didn't look into styling conventions yet but this is what I've come up with without looking up someone else's answer first. It could definatly be improved.
: fizzprint dup dup 3 mod swap 5 mod + 0= if ." fizzbuzz "
else dup 3 mod 0= if ." fizz "
else dup 5 mod 0= if ." buzz "
else dup . then then then drop ;
: fizzcount 101 1 do cr i fizzprint loop cr ;

thanks for the comment, 17.; however it's not like I'm sticking just to Forth now and forever. I'm simply using it as an exercise to get back into learning and programming after not doing it for a while.


oops i meant 18., not 17.