tags:

views:

775

answers:

8

When I was still a young developer, I started to focus on the many available programming languages. But in 1980 to 1990 there weren't many freely available compilers. So I started with several BASIC dialects for home computers, Pascal and C on my PC, I did an exam in COBOL and dabbled a bit in Assembly and a few other languages. And at one point I took a short look at Forth.

That's over 20 years ago and I've learned a lot ever since. I know that Forth is still used these days. It's still a good programming language but since I focus mostly on Windows development, I just wonder if knowing Forth could be helpful for future projects of mine.

So, would it be practical for an experienced developer to learn more about Forth?

A: 

No.

Fragsworth
-1: *as is* this answer is useless.
MaD70
-1 for not supporting the answer with a valid reason.
Vijay Mathew
+1  A: 

There are currently 49,620 jobs listed on dice.com.

  • 8982 contain the keyword Java
  • 4389 contain the keyword C#
  • 90 contain the keyword Forth

If your goal in rediscovering Forth is to earn money, it's probably not a wise investment.

Eric J.
By this reasoning neurosurgeons would be among the poorest people on Earth. It's a question of demand *and* supply.
Pascal Cuoq
+11  A: 

The standard answer for "should I learn [insert esoteric language with a paradigm I haven't tried before here]?" is:

  • learning new paradigms is always worth it because you can learn how those paradigms apply on your standard languages and expand your horizons. So in this sense it is surely practical
  • don't count on it being directly translatable to money in your salary, ever. So in this sense it's not practical.

Anyway,instead of Forth you might better try Factor, another (more modern) stack based language.

Vinko Vrsalovic
Definitely looks more interesting. Not doing this for the money, though. Just want to expand my knowledge to become a generalist.
Workshop Alex
@Vinko: I tried to learn Factor once, ad what put me off was the IDE and (mostly) hte fact that, like Smalltalk and Common Lisp, it has a huge VM instead of a small runtime library. I don't want to replace my OS.(That said, I use Common Lisp a lot -- being suck to a vm/image is a nuisance, but I ca live with it).
Jay
+4  A: 

give factor a look. it's a stack-based ("concatenative") language, much like forth, but it's borrowed some features from modern languages, and has an excellent standard library. it can generate cross-platform binaries, so you should comfortably be able to use it for windows programming.

Martin DeMello
+4  A: 

With the disclaimer that I've never actually used Forth, my understanding is that one of its most useful features/properties is that it is extremely simple to port to new architectures -- think embedded architectures, new microcontrollers here.

If you were in some sort of computer design research position, it might be useful for you to learn Forth and develop libraries to assist in your research, then implement Forth on whatever new architectures you are researching/designing.

In the book Masterminds of Programming, Charles Moore claims that Forth would be the perfect language to use in something like "smart dust" - (nano)computers with 64 words each of RAM and ROM, that need to communicate and cooperate together to solve problems (p71, if anyone else has the book).

Any time you learn a new language, you can learn new paradigms to gain insight in other languages. In that respect, it might be useful to learn Forth, but I personally don't see much of a benefit (generally speaking), although that might be the Blub principle in effect :)

Mark Rushakoff
+3  A: 

Forth type TIL's are the foundations for many virtual machine architectures. Understanding how Forth works can be done in a couple of days and is very good for understanding computer systems at a fairly low level (if that floats your boat).

If you want to know why its very easy to build a basic forth system lower than the bios then go ahead, just don't think there is a massive demand for it work wise.

As an aside Forth was originally written to control telescopes, my friend has just completed a masters in radio astronomy and his answer to my question about programming (on the telescopes) was "Forth, what's that?"

However I wouldn't spend much more that (though in the past I have :-)

Preet Sangha
+6  A: 

As a Forth compiler author, I can say it is worth the investment in learning. Be aware though that knowing a bit of Forth will not turn you into a programming guru, but it WILL enhance your vision on programming (low and high level). Also, it will make you more disciplined. Assembly language taught me a lot and so did Forth.

Check out my Forth compiler for the .NET platform at www.dataman.ro/dforth.

vbocan
+100 (if I could) Wow I read your original back in 2002 - I seem to recall that was one of the first 3rd party languages on the CLR : http://www.codeproject.com/KB/net-languages/dforthnet.aspx I stand back in awe!
Preet Sangha
+1  A: 

Definitely, learn a languages following different paradigms; it stretches your mind. You'll have more mental tools to solve future problems, even if working in plain ol' C or Java. Especially an obscure language that >90% of your colleagues haven't heard of, making you stand out as someone willing to take on challanges like learning specialized, offbeat or antique technology. They'll volunteer you to replace the tubes in the company radio in no time! 8P

However, Forth is quite obscure and awkward. Good luck finding an interpreter or whatever they call it. (I wrote my own back in college.)

Try instead writing Postscript by hand. Advantages:

  • Postscript is stack-based with mostly the same operators as Forth and most stack-based languages
  • is currently in use (an abbreviated form is inside PDFs)
  • follows standards (company, not ISO/ANSI/IEEE)
  • provides the delight of graphical output.

A text editor and any postscript viewer will suffice to begin experimenting. Debugging can be tough, but there are ways to work in Ghostscript.

DarenW