Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.forth > #25587 > unrolled thread
| Started by | visualforth@rocketmail.com |
|---|---|
| First post | 2013-09-09 05:16 -0700 |
| Last post | 2013-09-21 10:02 +0100 |
| Articles | 20 on this page of 140 — 28 participants |
Back to article view | Back to comp.lang.forth
Forth for education visualforth@rocketmail.com - 2013-09-09 05:16 -0700
Re: Forth for education Matthias Koch <matthias.koch@hot.uni-hannover.de> - 2013-09-09 14:59 +0200
Re: Forth for education "Rod Pemberton" <dont_use_email@nohavenotit.com> - 2013-09-10 04:30 -0400
Re: Forth for education "Elizabeth D. Rather" <erather@forth.com> - 2013-09-10 08:00 -1000
Re: Forth for education hughaguilar96@yahoo.com - 2013-09-10 21:32 -0700
Re: Forth for education "Rod Pemberton" <dont_use_email@nohavenotit.com> - 2013-09-11 06:22 -0400
Re: Forth for education "Alex McDonald" <blog@rivadpm.com> - 2013-09-11 11:52 +0100
Re: Forth for education Matthias Koch <matthias.koch@hot.uni-hannover.de> - 2013-09-11 14:40 +0200
Re: Forth for education "Rod Pemberton" <dont_use_email@nohavenotit.com> - 2013-09-12 08:10 -0400
Re: Forth for education "Alex McDonald" <blog@rivadpm.com> - 2013-09-12 14:20 +0100
Re: Forth for education "Rod Pemberton" <dont_use_email@nohavenotit.com> - 2013-09-14 22:47 -0400
Re: Forth for education "Elizabeth D. Rather" <erather@forth.com> - 2013-09-14 17:47 -1000
Re: Forth for education stephenXXX@mpeforth.com (Stephen Pelc) - 2013-09-15 17:17 +0000
Re: Forth for education "Alex McDonald" <blog@rivadpm.com> - 2013-09-15 18:52 +0100
Re: Forth for education "Elizabeth D. Rather" <erather@forth.com> - 2013-09-15 08:11 -1000
Re: Forth for education "Alex McDonald" <blog@rivadpm.com> - 2013-09-15 19:49 +0100
Re: Forth for education "Elizabeth D. Rather" <erather@forth.com> - 2013-09-15 09:11 -1000
Re: Forth for education hughaguilar96@yahoo.com - 2013-09-15 20:38 -0700
Re: Forth for education "Rod Pemberton" <dont_use_email@nohavenotit.com> - 2013-09-17 17:21 -0400
Re: Forth for education Spam@ControlQ.com - 2013-09-17 18:01 -0400
Re: Forth for education "Elizabeth D. Rather" <erather@forth.com> - 2013-09-17 14:31 -1000
Re: Forth for education hughaguilar96@yahoo.com - 2013-09-17 22:20 -0700
Re: Forth for education hughaguilar96@yahoo.com - 2013-09-17 22:23 -0700
Re: Forth for education Bernd Paysan <bernd.paysan@gmx.de> - 2013-09-18 21:56 +0200
Re: Forth for education Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-09-18 02:57 -0500
Re: Forth for education "Rod Pemberton" <dont_use_email@nohavenotit.com> - 2013-09-18 09:41 -0400
Re: Forth for education "Alex McDonald" <blog@rivadpm.com> - 2013-09-18 15:35 +0100
Re: Forth for education "Rod Pemberton" <dont_use_email@nohavenotit.com> - 2013-09-18 21:02 -0400
Re: Forth for education "Elizabeth D. Rather" <erather@forth.com> - 2013-09-18 15:42 -1000
Re: Forth for education "Rod Pemberton" <dont_use_email@nohavenotit.com> - 2013-09-20 15:48 -0400
Re: Forth for education "Elizabeth D. Rather" <erather@forth.com> - 2013-09-20 11:26 -1000
Re: Forth for education "Rod Pemberton" <dont_use_email@nohavenotit.com> - 2013-09-20 20:35 -0400
Re: Forth for education "Alex McDonald" <blog@rivadpm.com> - 2013-09-19 13:45 +0100
Re: Forth for education "Rod Pemberton" <dont_use_email@nohavenotit.com> - 2013-09-20 16:18 -0400
Re: Forth for education Alex McDonald <blog@rivadpm.com> - 2013-09-20 14:06 -0700
Re: Forth for education rickman <gnuarm@gmail.com> - 2013-09-20 17:08 -0400
Re: Forth for education "Elizabeth D. Rather" <erather@forth.com> - 2013-09-20 12:00 -1000
Re: Forth for education "Rod Pemberton" <dont_use_email@nohavenotit.com> - 2013-09-20 20:10 -0400
Re: Forth for education hughaguilar96@yahoo.com - 2013-09-20 23:23 -0700
Re: Forth for education "Rod Pemberton" <dont_use_email@nohavenotit.com> - 2013-09-21 13:09 -0400
Re: Forth for education Mark Wills <markrobertwills@yahoo.co.uk> - 2013-09-23 01:55 -0700
Re: Forth for education Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-09-23 11:40 -0500
Re: Forth for education albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-09-23 17:45 +0000
Re: Forth for education anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-09-23 18:47 +0000
Re: Forth for education albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-09-24 17:00 +0000
Re: Forth for education Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-09-23 14:51 -0500
Re: Forth for education albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-09-24 16:50 +0000
Re: Forth for education Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-09-24 12:02 -0500
Re: Forth for education Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-09-21 05:21 -0500
Re: Forth for education "Rod Pemberton" <dont_use_email@nohavenotit.com> - 2013-09-21 14:15 -0400
Re: Forth for education "Elizabeth D. Rather" <erather@forth.com> - 2013-09-21 08:52 -1000
Re: Forth for education Paul Rubin <no.email@nospam.invalid> - 2013-09-21 14:23 -0700
Re: Forth for education Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-09-22 04:53 -0500
Re: Forth for education hughaguilar96@yahoo.com - 2013-09-22 19:00 -0700
Re: Forth for education Whammo <sidciavic@gmail.com> - 2013-09-22 21:22 -0700
Re: Forth for education "Elizabeth D. Rather" <erather@forth.com> - 2013-09-23 08:13 -1000
Re: Forth for education "Rod Pemberton" <dont_use_email@nohavenotit.com> - 2013-09-25 04:25 -0400
Re: Forth for education visualforth@rocketmail.com - 2013-09-24 21:38 -0700
Re: Forth for education Rob Sciuk <rob@controlq.com> - 2013-09-23 12:07 -0400
Re: Forth for education Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-09-23 11:50 -0500
Re: Forth for education "Rod Pemberton" <dont_use_email@nohavenotit.com> - 2013-09-25 03:58 -0400
Re: Forth for education rickman <gnuarm@gmail.com> - 2013-09-26 09:32 -0400
Re: Forth for education hughaguilar96@yahoo.com - 2013-09-27 19:35 -0700
Re: Forth for education "Rod Pemberton" <dont_use_email@nohavenotit.com> - 2013-09-28 01:08 -0400
Re: Forth for education "Rod Pemberton" <dont_use_email@nohavenotit.com> - 2013-09-28 01:09 -0400
Re: Forth for education "Rod Pemberton" <dont_use_email@nohavenotit.com> - 2013-09-25 03:21 -0400
Re: Forth for education Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-09-25 04:00 -0500
Re: Forth for education Brad Eckert <hwfwguy@gmail.com> - 2013-09-25 09:26 -0700
Re: Forth for education visualforth@rocketmail.com - 2013-09-25 15:14 -0700
Re: Forth for education Doug Hoffman <glidedog@gmail.com> - 2013-09-26 07:51 -0400
Re: Forth for education visualforth@rocketmail.com - 2013-09-26 23:36 -0700
Re: Forth for education rickman <gnuarm@gmail.com> - 2013-09-21 14:40 -0400
Re: Forth for education Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-09-21 04:46 -0500
Re: Forth for education Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-09-18 11:41 -0500
Re: Forth for education Gerry Jackson <gerry@jackson9000.fsnet.co.uk> - 2013-09-18 22:08 +0100
Re: Forth for education "Rod Pemberton" <dont_use_email@nohavenotit.com> - 2013-09-18 21:10 -0400
Re: Forth for education "Elizabeth D. Rather" <erather@forth.com> - 2013-09-18 16:20 -1000
Re: Forth for education "Rod Pemberton" <dont_use_email@nohavenotit.com> - 2013-09-20 16:39 -0400
Re: Forth for education Gerry Jackson <gerry@jackson9000.fsnet.co.uk> - 2013-09-19 12:47 +0100
Re: Forth for education Spam@ControlQ.com - 2013-09-19 11:30 -0400
Re: Forth for education Gerry Jackson <gerry@jackson9000.fsnet.co.uk> - 2013-09-19 16:48 +0100
Re: Forth for education "Rod Pemberton" <dont_use_email@nohavenotit.com> - 2013-09-20 16:51 -0400
Re: Forth for education Gerry Jackson <gerry@jackson9000.fsnet.co.uk> - 2013-09-20 23:17 +0100
Re: Forth for education rickman <gnuarm@gmail.com> - 2013-09-21 15:19 -0400
Re: Forth for education "Rod Pemberton" <dont_use_email@nohavenotit.com> - 2013-09-25 03:31 -0400
Re: Forth for education hughaguilar96@yahoo.com - 2013-09-18 21:12 -0700
Re: Forth for education Mark Wills <markrobertwills@yahoo.co.uk> - 2013-09-19 01:02 -0700
Re: Forth for education rickman <gnuarm@gmail.com> - 2013-09-21 15:26 -0400
Re: Forth for education "Rod Pemberton" <dont_use_email@nohavenotit.com> - 2013-09-20 17:09 -0400
Re: Forth for education anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-09-19 11:28 +0000
Re: Forth for education Paul Rubin <no.email@nospam.invalid> - 2013-09-18 18:30 -0700
Re: Forth for education "WJ" <w_a_x_man@yahoo.com> - 2013-09-19 22:51 +0000
Re: Forth for education rickman <gnuarm@gmail.com> - 2013-09-15 14:06 -0400
Re: Forth for education Brad Eckert <hwfwguy@gmail.com> - 2013-09-15 19:56 -0700
Re: Forth for education "Elizabeth D. Rather" <erather@forth.com> - 2013-09-12 08:03 -1000
Re: Forth for education "Elizabeth D. Rather" <erather@forth.com> - 2013-09-11 08:59 -1000
Re: Forth for education albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-09-12 10:48 +0000
Re: Forth for education Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-09-12 08:17 -0500
Re: Forth for education "WJ" <w_a_x_man@yahoo.com> - 2013-09-13 12:48 +0000
Re: Forth for education Mark Wills <markrobertwills@yahoo.co.uk> - 2013-09-13 06:33 -0700
Re: Forth for education m.a.m.hendrix@tue.nl - 2013-09-13 07:25 -0700
Re: Forth for education visualforth@rocketmail.com - 2013-09-13 21:20 -0700
Re: Forth for education "WJ" <w_a_x_man@yahoo.com> - 2013-09-15 09:04 +0000
Re: Forth for education mhx@iae.nl - 2013-09-15 02:57 -0700
Forth is not interactive "WJ" <w_a_x_man@yahoo.com> - 2013-09-20 03:32 +0000
Re: Forth is not interactive rickman <gnuarm@gmail.com> - 2013-09-20 01:20 -0400
Re: Forth is not interactive Whammo <sidciavic@gmail.com> - 2013-09-19 23:41 -0700
Re: Forth is not interactive "Elizabeth D. Rather" <erather@forth.com> - 2013-09-19 21:45 -1000
Re: Forth is not interactive "Rod Pemberton" <dont_use_email@nohavenotit.com> - 2013-09-20 04:09 -0400
Re: Forth is not interactive "Elizabeth D. Rather" <erather@forth.com> - 2013-09-19 22:21 -1000
WJ, aka William James [was Re: Forth is not interactive] "Alex McDonald" <blog@rivadpm.com> - 2013-09-20 10:55 +0100
Re: WJ, aka William James [was Re: Forth is not interactive] Mark Wills <markrobertwills@yahoo.co.uk> - 2013-09-20 06:17 -0700
Re: WJ, aka William James [was Re: Forth is not interactive] rickman <gnuarm@gmail.com> - 2013-09-20 13:19 -0400
Re: WJ, aka William James [was Re: Forth is not interactive] "Alex McDonald" <blog@rivadpm.com> - 2013-09-20 19:45 +0100
Re: WJ, aka William James [was Re: Forth is not interactive] rickman <gnuarm@gmail.com> - 2013-09-20 14:53 -0400
Re: Forth is not interactive Mark Wills <markrobertwills@yahoo.co.uk> - 2013-09-20 01:20 -0700
Re: Forth is not interactive Howerd <howerdo@yahoo.co.uk> - 2013-09-20 02:35 -0700
Re: Forth is not interactive Howerd <howerdo@yahoo.co.uk> - 2013-09-20 02:39 -0700
Re: Forth is not interactive mhx@iae.nl - 2013-09-21 04:05 -0700
Re: Forth is not interactive albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-09-21 12:43 +0000
Re: Forth for education stephenXXX@mpeforth.com (Stephen Pelc) - 2013-09-12 14:04 +0000
Re: Forth for education "Ed" <invalid@invalid.com> - 2013-09-15 18:00 +1000
Re: Forth for education voidvolker@gmail.com - 2013-09-14 10:41 -0700
Re: Forth for education "Elizabeth D. Rather" <erather@forth.com> - 2013-09-14 10:53 -1000
Re: Forth for education "WJ" <w_a_x_man@yahoo.com> - 2013-09-19 22:33 +0000
Re: Forth for education visualforth@rocketmail.com - 2013-09-19 17:17 -0700
Re: Forth for education "Rod Pemberton" <dont_use_email@nohavenotit.com> - 2013-09-20 17:44 -0400
Re: Forth for education "Alex McDonald" <blog@rivadpm.com> - 2013-09-20 23:58 +0100
Re: Forth for education "Rod Pemberton" <dont_use_email@nohavenotit.com> - 2013-09-20 19:49 -0400
Re: Forth for education "Alex McDonald" <blog@rivadpm.com> - 2013-09-21 20:33 +0100
Re: Forth for education "Rod Pemberton" <dont_use_email@nohavenotit.com> - 2013-09-25 03:49 -0400
Re: Forth for education "Alex McDonald" <blog@rivadpm.com> - 2013-09-25 09:42 +0100
Re: Forth for education rickman <gnuarm@gmail.com> - 2013-09-26 09:39 -0400
Re: Forth for education Doug Hoffman <glidedog@gmail.com> - 2013-09-26 10:40 -0400
Re: Forth for education "Elizabeth D. Rather" <erather@forth.com> - 2013-09-26 08:51 -1000
Re: Forth for education rickman <gnuarm@gmail.com> - 2013-09-20 22:50 -0400
Re: Forth for education "Rod Pemberton" <dont_use_email@nohavenotit.com> - 2013-09-21 14:27 -0400
Re: Forth for education rickman <gnuarm@gmail.com> - 2013-09-21 15:33 -0400
Re: Forth for education "Rod Pemberton" <dont_use_email@nohavenotit.com> - 2013-09-25 03:37 -0400
Re: Forth for education Paul E Bennett <Paul_E.Bennett@topmail.co.uk> - 2013-09-21 10:02 +0100
Page 6 of 7 — ← Prev page 1 2 3 4 5 [6] 7 Next page →
| From | m.a.m.hendrix@tue.nl |
|---|---|
| Date | 2013-09-13 07:25 -0700 |
| Message-ID | <a233f49f-1b5e-4d07-a37f-570816167622@googlegroups.com> |
| In reply to | #25652 |
On Friday, September 13, 2013 2:48:15 PM UTC+2, WJ wrote:
> Ruby: require 'pp' pp [ " 119 136 153 light slate gray ", " 119 136 153 LightSlateGray " ].map{|s| s.strip.split(" ", 4)} ==> [["119", "136", "153", "light slate gray"], ["119", "136", "153", "LightSlateGray"]] See how easy that was? In a stone-age language like Forth it would be much more difficult and would take much longer. If your time is worth anything and you are not a masochist, you don't use Forth.
[I am not going to break your lines for you.]
No, what you show is not easy, compared with
how this problem is handled in Forth. Thank you for
pointing it out. We appreciate your
tongue-in-cheek style.
-marcel
[toc] | [prev] | [next] | [standalone]
| From | visualforth@rocketmail.com |
|---|---|
| Date | 2013-09-13 21:20 -0700 |
| Message-ID | <7f65d5bf-be1e-482d-96b4-58abed047d4a@googlegroups.com> |
| In reply to | #25652 |
On Friday, September 13, 2013 8:48:15 AM UTC-4, WJ wrote: > Forth is a very low-level language, so it makes learning much > slower and greatly reduces programmer productivity. I have a different experience. I started programming in 1972 with FORTRAN and BASIC, three years later 6502 machine language, inventing my own virtual machine which worked pretty and fast. Then I discovered Forth, and Forth made programming really easy. The only time I found something better was Visual Basic because of its ability for HMI/GUI programming, but VB was boring after a while with all this repeatedly typing and missing functions. So I waited for a Visual Forth - but there was no Visual Forth - until I wrote visualFORTH by myself four years ago. Since then I am doing all my PC programming with visualFORTH. By the way, I made a living twenty five years self employed developing embedded systems using Forth for my projects. Which programming language would have made my life easier? Is there any other programming language for real life applications which is as easy to use as Forth, writing nearly plain text programs which somebody else can easily read and understand without programming experience? > The only > people who try to use it to write applications are people like > Hugh who are incapable of grasping a high-level language. I am not a Windows programmer. I am incapable of grasping Windows programming. But with visualFORTH developing programs for Windows is a snap. Forth works as an amplifier for my programming skills. May be it is good to remember that everybody in this world is different - different opinions, different kinds of thinking, different skills and different approaches to solve problems. I am sure you are a great designer and you have a good life with your skills. I always could solve the problems for my customers, and Forth always was a great help. Some customers which have been used to program by themselves, discovered that they could solve their problems better with Forth. One customer successfully used Forth to graphical analyze DNA with the Human Genome project, and his boss, who was my first customer, won the Nobel Prize in Medicine some years ago.
[toc] | [prev] | [next] | [standalone]
| From | "WJ" <w_a_x_man@yahoo.com> |
|---|---|
| Date | 2013-09-15 09:04 +0000 |
| Message-ID | <l13t7g$sp2$1@dont-email.me> |
| In reply to | #25652 |
WJ wrote:
> hughaguilar96@yahoo.com wrote:
>
> > When Dirk said "specific problems," this was confusing.
> > Forth's advantage over languages such as C is interactive
> > development, which is a good thing no matter what problem it
> > is that you are solving.
> >
> > Interactive development is what Dirk really needs for
> > education, as students learn best when they get immediate
> > feedback.
>
> I broke your lines for you. Anyone who knows anything whatsoever
> about usenet knows that he must limit the length of his lines.
>
> Your statement indicates another kind of abysmal ignorance.
> You seem to know nothing whatsoever about any high-level
> languages.
>
> Many, many high-level languages are interactive (i.e., have a
> REPL).
>
> Examples: Scheme, Racket, Bigloo, Ruby, Julia, OCaml, Haskell,
> NewLisp, Common Lisp, TCL, Perl, Arc, Clojure, Factor, F#, J,
> Lua, BASIC, etc.
>
> You don't know how to program in any high-level language, so
> your opinion about what would be a good language for beginners
> is worthless.
>
> Forth is a very low-level language, so it makes learning much
> slower and greatly reduces programmer productivity. The only
> people who try to use it to write applications are people like
> Hugh who are incapable of grasping a high-level language.
>
> It's pointless to listen to Forth-worshippers who are
> comfortable only with stone-age tools.
>
>
> Ruby:
>
> require 'pp'
> pp [
> " 119 136 153 light slate gray ",
> " 119 136 153 LightSlateGray "
> ].map{|s| s.strip.split(" ", 4)}
>
> ==>
>
> [["119", "136", "153", "light slate gray"],
> ["119", "136", "153", "LightSlateGray"]]
>
>
> See how easy that was? In a stone-age language like Forth
> it would be much more difficult and would take much longer.
> If your time is worth anything and you are not a masochist,
> you don't use Forth.
choices =
["small","large"],
["vanilla","ultra chocolate"],
["cone","cup"],
["to go","eat in"]
puts choices.first.product(*choices.drop(1)).map{|ary|
ary.join(" ").capitalize}
==>
Small vanilla cone to go
Small vanilla cone eat in
Small vanilla cup to go
Small vanilla cup eat in
Small ultra chocolate cone to go
Small ultra chocolate cone eat in
Small ultra chocolate cup to go
Small ultra chocolate cup eat in
Large vanilla cone to go
Large vanilla cone eat in
Large vanilla cup to go
Large vanilla cup eat in
Large ultra chocolate cone to go
Large ultra chocolate cone eat in
Large ultra chocolate cup to go
Large ultra chocolate cup eat in
[toc] | [prev] | [next] | [standalone]
| From | mhx@iae.nl |
|---|---|
| Date | 2013-09-15 02:57 -0700 |
| Message-ID | <22f53616-fc70-44fb-b4a0-ecef8df39ce8@googlegroups.com> |
| In reply to | #25673 |
On Sunday, September 15, 2013 11:04:50 AM UTC+2, WJ wrote:
> WJ wrote:
> choices =
> ["small","large"],
> ["vanilla","ultra chocolate"],
> ["cone","cup"],
> ["to go","eat in"]
>
> puts choices.first.product(*choices.drop(1)).map{|ary|
> ary.join(" ").capitalize}
[..]
: choices #16 0 DO CR
I %1000 AND IF ." Small " ELSE ." Large " ENDIF
I %0100 AND IF ." vanilla " ELSE ." ultra chocolate " ENDIF
I %0010 AND IF ." cone " ELSE ." cup " ENDIF
I %0001 AND IF ." to go." ELSE ." eat in." ENDIF
LOOP ; choices
\ Alternative, using a library ...
\ : ITERS 0 POSTPONE LITERAL ]] ?DO [[ ; IMMEDIATE
\ : SELECT ]] I AND IF [[ '|' PARSE POSTPONE SLITERAL
\ ]] ELSE [[ '|' PARSE POSTPONE SLITERAL
\ ]] ENDIF TYPE [[ ; IMMEDIATE
\ : END ]] LOOP [[ ; IMMEDIATE
: mchoices
#16 ITERS CR
%1000 select Small |Large |
%0100 select vanilla |ultra chocolate |
%0010 select cone |cup |
%0001 select to go.|eat in.|
END ; mchoices
Large ultra chocolate cup eat in.
Large ultra chocolate cup to go.
Large ultra chocolate cone eat in.
Large ultra chocolate cone to go.
Large vanilla cup eat in.
Large vanilla cup to go.
Large vanilla cone eat in.
Large vanilla cone to go.
Small ultra chocolate cup eat in.
Small ultra chocolate cup to go.
Small ultra chocolate cone eat in.
Small ultra chocolate cone to go.
Small vanilla cup eat in.
Small vanilla cup to go.
Small vanilla cone eat in.
Small vanilla cone to go. ok
-marcel
[toc] | [prev] | [next] | [standalone]
| From | "WJ" <w_a_x_man@yahoo.com> |
|---|---|
| Date | 2013-09-20 03:32 +0000 |
| Subject | Forth is not interactive |
| Message-ID | <l1gfkc$kv4$1@dont-email.me> |
| In reply to | #25616 |
hughaguilar96@yahoo.com wrote:
> Interactive development is what
> Dirk really needs for education,
> as students learn best when they get immediate feedback.
: crap 5 0 do i . loop ; ok
crap 0 1 2 3 4 ok
5 0 do i . loop
*the terminal*:3: Interpreting a compile-only word
5 0 do i . loop
^^
Backtrace:
$1054808 throw
: dung 8 if ." Forth is dung." then ; ok
dung Forth is dung. ok
8 if ." Forth is dung." then
*the terminal*:6: Interpreting a compile-only word
8 if ." Forth is dung." then
^^
Backtrace:
$1054808 throw
Forth is an ultra-primitive stone-age joke.
It is the worst impediment to programmer productivity imaginable.
Ruby is a high-level interactive language.
irb(main):001:0> 5.times{ puts "Forth is crap." }
Forth is crap.
Forth is crap.
Forth is crap.
Forth is crap.
Forth is crap.
=> 5
irb(main):002:0> if 8; puts "Forth is dung." end
Forth is dung.
=> nil
You don't have to define any functions in order to test
your ideas.
irb(main):003:0> 1.upto(5){|n| puts "Forth is" + " crappy" * n }
Forth is crappy
Forth is crappy crappy
Forth is crappy crappy crappy
Forth is crappy crappy crappy crappy
Forth is crappy crappy crappy crappy crappy
=> 1
irb(main):006:0> %w(ridiculous pitiful dumb inferior).
irb(main):007:0* each_cons(2){|x| printf "Forth is %s and %s.\n", *x}
Forth is ridiculous and pitiful.
Forth is pitiful and dumb.
Forth is dumb and inferior.
=> nil
And, of course, Forth is not even very good at multiplying numbers.
: fac dup 2 < if drop 1 else dup 1 - recurse * then ;
5 fac . 120 ok
20 fac . -2102132736 ok
Ruby:
def fac n
if n < 2
1
else
n * fac(n-1)
end
end
==>nil
fac 5
==>120
fac 20
==>2432902008176640000
fac 30
==>265252859812191058636308480000000
fac 40
==>815915283247897734345611269596115894272000000000
fac 50
==>30414093201713378043612608166064768844377641568960512000000000000
When it comes to string-handling, Forth is abysmally primitive.
You may as well be using assembly language.
Ruby, being high-level, sophisticated, and modern, makes it easy.
Let's say that you want to replace in a string the first number
that is at least three digits long.
s = "2. Of 37 candidates, 666 were habitual liars."
==>"2. Of 37 candidates, 666 were habitual liars."
s[ /\d{3,}/ ] = "1984"
==>"1984"
s
==>"2. Of 37 candidates, 1984 were habitual liars."
forth_qualities = %w(good weird powerful ugly crude primitive) -
["a smart choice", "powerful", "good"]
==>["weird", "ugly", "crude", "primitive"]
forth_qualities
==>["weird", "ugly", "crude", "primitive"]
Forth doesn't even have a sort command.
Let's sort some languages based on their ratings
(on a scale of 1 to 1000).
[[:Ruby,999],[:Python,500],[:Forth,-2],[:Julia,800]].
sort_by{|k,v| v}
==>[[:Forth, -2], [:Python, 500], [:Julia, 800], [:Ruby, 999]]
Count the number of times each number occurs in a list, and
sort by that count.
[7,2,6,8,2,9,3,7,5,9,2,3].group_by{|n| n}.map{|k,v| [k,v.size]}.
sort_by{|k,v| [v,k]}
==>[[5, 1], [6, 1], [8, 1], [3, 2], [7, 2], [9, 2], [2, 3]]
Standard Forth has no arrays, no lists, no structured variables,
no hash tables.
If you are programming a computer that has more than 8 kilobytes
of RAM, you don't use Forth.
[toc] | [prev] | [next] | [standalone]
| From | rickman <gnuarm@gmail.com> |
|---|---|
| Date | 2013-09-20 01:20 -0400 |
| Subject | Re: Forth is not interactive |
| Message-ID | <l1glu6$c7m$1@dont-email.me> |
| In reply to | #25828 |
On 9/19/2013 11:32 PM, WJ wrote: > > Forth is an ultra-primitive stone-age joke. But doesn't everyone love a good joke? -- Rick
[toc] | [prev] | [next] | [standalone]
| From | Whammo <sidciavic@gmail.com> |
|---|---|
| Date | 2013-09-19 23:41 -0700 |
| Subject | Re: Forth is not interactive |
| Message-ID | <a8261cb2-1719-4d2f-a6bd-9b818e00548e@googlegroups.com> |
| In reply to | #25828 |
Forth is whatever one wants it to be. So, Forth is a philosophy. Some Forths ARE machine language. If you don't 'get' Forth, that's okay, there's no sense in being butt-hurt about it. > Standard Forth has no arrays, no lists, no structured variables, > > no hash tables. > > > > If you are programming a computer that has more than 8 kilobytes > > of RAM, you don't use Forth.
[toc] | [prev] | [next] | [standalone]
| From | "Elizabeth D. Rather" <erather@forth.com> |
|---|---|
| Date | 2013-09-19 21:45 -1000 |
| Subject | Re: Forth is not interactive |
| Message-ID | <q9udnf8FGIWLYKbPnZ2dnUVZ_q6dnZ2d@supernews.com> |
| In reply to | #25830 |
On 9/19/13 8:41 PM, Whammo wrote: > Forth is whatever one wants it to be. > So, Forth is a philosophy. > Some Forths ARE machine language. > If you don't 'get' Forth, that's okay, > there's no sense in being butt-hurt about it. > >> Standard Forth has no arrays, no lists, no structured variables, >> no hash tables. >> >> If you are programming a computer that has more than 8 kilobytes >> of RAM, you don't use Forth. Strange, I don't seem to be able to find the original post containing this rant, although I've heard similar things before. They usually come from someone who's read a poorly-written article about Forth or heard misinformed people talking, and never bothered learning any actual facts. But most folks with that experience that just ignore the subject: one who goes to the trouble of finding a newsgroup of advocates and then posts all sorts of ignorant and inflammatory claptrap is a special subset: a troll. Cheers, Elizabeth -- ================================================== Elizabeth D. Rather (US & Canada) 800-55-FORTH FORTH Inc. +1 310.999.6784 5959 West Century Blvd. Suite 700 Los Angeles, CA 90045 http://www.forth.com "Forth-based products and Services for real-time applications since 1973." ==================================================
[toc] | [prev] | [next] | [standalone]
| From | "Rod Pemberton" <dont_use_email@nohavenotit.com> |
|---|---|
| Date | 2013-09-20 04:09 -0400 |
| Subject | Re: Forth is not interactive |
| Message-ID | <op.w3paauz40e5s1z@localhost> |
| In reply to | #25831 |
On Fri, 20 Sep 2013 03:45:24 -0400, Elizabeth D. Rather <erather@forth.com> wrote: > [snip] > Strange, I don't seem to be able to find the original post containing > this rant, although I've heard similar things before. Hugh's post to which WJ replied is in the "Forth for education" thread https://groups.google.com/d/msg/comp.lang.forth/5SAR2WfAKUU/mrzp3ji1M50J msg-id 0d34c96e-d56b-4d85-85f3-7379a3a1eb72@googlegroups.com WJ's reply changed the topic to "Forth is not interactive" https://groups.google.com/d/msg/comp.lang.forth/5SAR2WfAKUU/FGQTa6tY58oJ msg-id l1gfkc$kv4$1@dont-email.me "Forth is not interactive" is technically a topic change thread under the "Forth for education thread", but it may be displayed as an entirely separate thread in a modern newsreader. Rod Pemberton
[toc] | [prev] | [next] | [standalone]
| From | "Elizabeth D. Rather" <erather@forth.com> |
|---|---|
| Date | 2013-09-19 22:21 -1000 |
| Subject | Re: Forth is not interactive |
| Message-ID | <eridnacEzIkImKHPnZ2dnUVZ_g2dnZ2d@supernews.com> |
| In reply to | #25832 |
On 9/19/13 10:09 PM, Rod Pemberton wrote: > On Fri, 20 Sep 2013 03:45:24 -0400, Elizabeth D. Rather > <erather@forth.com> wrote: > >> [snip] >> Strange, I don't seem to be able to find the original post containing >> this rant, although I've heard similar things before. > > Hugh's post to which WJ replied is in the "Forth for education" thread > https://groups.google.com/d/msg/comp.lang.forth/5SAR2WfAKUU/mrzp3ji1M50J > msg-id 0d34c96e-d56b-4d85-85f3-7379a3a1eb72@googlegroups.com > > WJ's reply changed the topic to "Forth is not interactive" > https://groups.google.com/d/msg/comp.lang.forth/5SAR2WfAKUU/FGQTa6tY58oJ > msg-id l1gfkc$kv4$1@dont-email.me > > "Forth is not interactive" is technically a topic change thread under > the "Forth for education thread", but it may be displayed as an entirely > separate thread in a modern newsreader. Thank you, I guess. Having now read it in all its ignorant, trollish glory, I stand by my original assessment. Cheers, Elizabeth -- ================================================== Elizabeth D. Rather (US & Canada) 800-55-FORTH FORTH Inc. +1 310.999.6784 5959 West Century Blvd. Suite 700 Los Angeles, CA 90045 http://www.forth.com "Forth-based products and Services for real-time applications since 1973." ==================================================
[toc] | [prev] | [next] | [standalone]
| From | "Alex McDonald" <blog@rivadpm.com> |
|---|---|
| Date | 2013-09-20 10:55 +0100 |
| Subject | WJ, aka William James [was Re: Forth is not interactive] |
| Message-ID | <l1h62c$k22$1@dont-email.me> |
| In reply to | #25834 |
on 20/09/2013 09:21:36, "Elizabeth D. Rather" wrote: > On 9/19/13 10:09 PM, Rod Pemberton wrote: >> On Fri, 20 Sep 2013 03:45:24 -0400, Elizabeth D. Rather >> <erather@forth.com> wrote: >> >>> [snip] >>> Strange, I don't seem to be able to find the original post containing >>> this rant, although I've heard similar things before. >> >> Hugh's post to which WJ replied is in the "Forth for education" thread >> https://groups.google.com/d/msg/comp.lang.forth/5SAR2WfAKUU/mrzp3ji1M50J >> msg-id 0d34c96e-d56b-4d85-85f3-7379a3a1eb72@googlegroups.com >> >> WJ's reply changed the topic to "Forth is not interactive" >> https://groups.google.com/d/msg/comp.lang.forth/5SAR2WfAKUU/FGQTa6tY58oJ >> msg-id l1gfkc$kv4$1@dont-email.me >> >> "Forth is not interactive" is technically a topic change thread under >> the "Forth for education thread", but it may be displayed as an entirely >> separate thread in a modern newsreader. > > Thank you, I guess. Having now read it in all its ignorant, trollish > glory, I stand by my original assessment. > > Cheers, > Elizabeth > William James aka WJ aka w_a_x_man has been trolling comp.lang.* for the best part of a decade. He used to reserve his silly "can you do this???" posts (mainly coded in Ruby as he has the hots for it) to comp.lang.perl.misc, comp.lang.lisp and so on. Oddly, he was very negative about Common Lisp (referring to it as Commune Lisp) but seems to have added Scheme, OCaml, Racket and other assorted Lisp-y languages to his Ruby rubbing fetish. Over the last few years he's added clf to his shit list. It's unfortunate, since WJ is doing other interesting & useful languages no favours with his stupid posts. His nutty advocacy of Ruby has even led to the crowning achievement of being considered a troll on comp.lang.ruby. That takes some doing. A comment from a number of years ago on the perl list: | If I was to learn another language, I'd be significantly less inclined | to consider Ruby now after that troll has poisoned this group for | some time. How true.
[toc] | [prev] | [next] | [standalone]
| From | Mark Wills <markrobertwills@yahoo.co.uk> |
|---|---|
| Date | 2013-09-20 06:17 -0700 |
| Subject | Re: WJ, aka William James [was Re: Forth is not interactive] |
| Message-ID | <a8c21879-5b28-4667-a298-f954fa4f26ba@googlegroups.com> |
| In reply to | #25840 |
So, factoring and distilling Alex's post re WJ down to metal, as is our want in the Forth world: He's a cock-end.
[toc] | [prev] | [next] | [standalone]
| From | rickman <gnuarm@gmail.com> |
|---|---|
| Date | 2013-09-20 13:19 -0400 |
| Subject | Re: WJ, aka William James [was Re: Forth is not interactive] |
| Message-ID | <l1i03g$815$1@dont-email.me> |
| In reply to | #25840 |
On 9/20/2013 5:55 AM, Alex McDonald wrote: > > A comment from a number of years ago on the perl list: > > | If I was to learn another language, I'd be significantly less inclined > | to consider Ruby now after that troll has poisoned this group for > | some time. > > How true. Except that it is not the troll that causes the problem. It is the other members who respond to the troll. -- Rick
[toc] | [prev] | [next] | [standalone]
| From | "Alex McDonald" <blog@rivadpm.com> |
|---|---|
| Date | 2013-09-20 19:45 +0100 |
| Subject | Re: WJ, aka William James [was Re: Forth is not interactive] |
| Message-ID | <l1i53l$7g9$1@dont-email.me> |
| In reply to | #25848 |
on 20/09/2013 18:19:43, rickman wrote: > On 9/20/2013 5:55 AM, Alex McDonald wrote: >> >> A comment from a number of years ago on the perl list: >> >> | If I was to learn another language, I'd be significantly less inclined >> | to consider Ruby now after that troll has poisoned this group for >> | some time. >> >> How true. > > Except that it is not the troll that causes the problem. It is the > other members who respond to the troll. > Many years ago, I got caught in a elevator between the 17th and 18th floor of a hotel. The electricity had briefly failed, and the elevator had done what every good elevator should do; it jammed on the brakes, and kept them on. It's a pretty unpleasant and scary event in a fast moving elevator. In the lift was a woman about half my age, who started screaming, and kept on screaming for some time. I thought she was having a panic attack, and tried speaking to her to calm her down. When we were released by the fire services 10 or 15 minutes later, I was spoken to by her boyfriend. He was pretty angry with me. He said that she thought I was going to assault her, screamed in fear, and my talking to her spooked her even more. He said I shouldn't have spoken to her and then she'd have been ok. Apparently I was to blame.
[toc] | [prev] | [next] | [standalone]
| From | rickman <gnuarm@gmail.com> |
|---|---|
| Date | 2013-09-20 14:53 -0400 |
| Subject | Re: WJ, aka William James [was Re: Forth is not interactive] |
| Message-ID | <l1i5ja$9qc$1@dont-email.me> |
| In reply to | #25849 |
On 9/20/2013 2:45 PM, Alex McDonald wrote: > on 20/09/2013 18:19:43, rickman wrote: >> On 9/20/2013 5:55 AM, Alex McDonald wrote: >>> >>> A comment from a number of years ago on the perl list: >>> >>> | If I was to learn another language, I'd be significantly less inclined >>> | to consider Ruby now after that troll has poisoned this group for >>> | some time. >>> >>> How true. >> >> Except that it is not the troll that causes the problem. It is the >> other members who respond to the troll. >> > > Many years ago, I got caught in a elevator between the 17th and 18th > floor of a hotel. The electricity had briefly failed, and the elevator > had done what every good elevator should do; it jammed on the brakes, and > kept them on. It's a pretty unpleasant and scary event in a fast moving > elevator. > > In the lift was a woman about half my age, who started screaming, and > kept on screaming for some time. I thought she was having a panic attack, > and tried speaking to her to calm her down. > > When we were released by the fire services 10 or 15 minutes later, I was > spoken to by her boyfriend. He was pretty angry with me. He said that she > thought I was going to assault her, screamed in fear, and my talking to > her spooked her even more. > > He said I shouldn't have spoken to her and then she'd have been ok. > Apparently I was to blame. If a troll falls in the woods... -- Rick
[toc] | [prev] | [next] | [standalone]
| From | Mark Wills <markrobertwills@yahoo.co.uk> |
|---|---|
| Date | 2013-09-20 01:20 -0700 |
| Subject | Re: Forth is not interactive |
| Message-ID | <278f2e0c-eda2-4783-bf8d-928de373d70a@googlegroups.com> |
| In reply to | #25831 |
On Friday, September 20, 2013 8:45:24 AM UTC+1, Elizabeth D. Rather wrote: > But most folks with that experience that just ignore the subject: one > who goes to the trouble of finding a newsgroup of advocates and then > posts all sorts of ignorant and inflammatory claptrap is a special > subset: a troll. Fully agree.
[toc] | [prev] | [next] | [standalone]
| From | Howerd <howerdo@yahoo.co.uk> |
|---|---|
| Date | 2013-09-20 02:35 -0700 |
| Subject | Re: Forth is not interactive |
| Message-ID | <9ef8c1e7-dd12-4f04-a730-c6d922634e44@googlegroups.com> |
| In reply to | #25828 |
On Friday, September 20, 2013 4:32:29 AM UTC+1, WJ wrote:
> hughag....96.@yahoo.com wrote:
>
>
>
> > Interactive development is what
>
> > Dirk really needs for education,
>
> > as students learn best when they get immediate feedback.
>
>
>
> : crap 5 0 do i . loop ; ok
>
> crap 0 1 2 3 4 ok
>
> 5 0 do i . loop
>
> *the terminal*:3: Interpreting a compile-only word
>
> 5 0 do i . loop
>
> ^^
>
> Backtrace:
>
> $1054808 throw
>
>
>
> : dung 8 if ." Forth is dung." then ; ok
>
> dung Forth is dung. ok
>
> 8 if ." Forth is dung." then
>
> *the terminal*:6: Interpreting a compile-only word
>
> 8 if ." Forth is dung." then
>
> ^^
>
> Backtrace:
>
> $1054808 throw
>
>
>
>
>
> Forth is an ultra-primitive stone-age joke.
>
> It is the worst impediment to programmer productivity imaginable.
>
>
>
> Ruby is a high-level interactive language.
>
>
>
> irb(main):001:0> 5.times{ puts "Forth is crap." }
>
> Forth is crap.
>
> Forth is crap.
>
> Forth is crap.
>
> Forth is crap.
>
> Forth is crap.
>
> => 5
>
>
>
> irb(main):002:0> if 8; puts "Forth is dung." end
>
> Forth is dung.
>
> => nil
>
>
>
>
>
> You don't have to define any functions in order to test
>
> your ideas.
>
>
>
> irb(main):003:0> 1.upto(5){|n| puts "Forth is" + " crappy" * n }
>
> Forth is crappy
>
> Forth is crappy crappy
>
> Forth is crappy crappy crappy
>
> Forth is crappy crappy crappy crappy
>
> Forth is crappy crappy crappy crappy crappy
>
> => 1
>
>
>
>
>
> irb(main):006:0> %w(ridiculous pitiful dumb inferior).
>
> irb(main):007:0* each_cons(2){|x| printf "Forth is %s and %s.\n", *x}
>
> Forth is ridiculous and pitiful.
>
> Forth is pitiful and dumb.
>
> Forth is dumb and inferior.
>
> => nil
>
>
>
> And, of course, Forth is not even very good at multiplying numbers.
>
>
>
> : fac dup 2 < if drop 1 else dup 1 - recurse * then ;
>
> 5 fac . 120 ok
>
> 20 fac . -2102132736 ok
>
>
>
> Ruby:
>
>
>
> def fac n
>
> if n < 2
>
> 1
>
> else
>
> n * fac(n-1)
>
> end
>
> end
>
> ==>nil
>
> fac 5
>
> ==>120
>
> fac 20
>
> ==>2432902008176640000
>
> fac 30
>
> ==>265252859812191058636308480000000
>
> fac 40
>
> ==>815915283247897734345611269596115894272000000000
>
> fac 50
>
> ==>30414093201713378043612608166064768844377641568960512000000000000
>
>
>
> When it comes to string-handling, Forth is abysmally primitive.
>
> You may as well be using assembly language.
>
>
>
> Ruby, being high-level, sophisticated, and modern, makes it easy.
>
>
>
> Let's say that you want to replace in a string the first number
>
> that is at least three digits long.
>
>
>
> s = "2. Of 37 candidates, 666 were habitual liars."
>
> ==>"2. Of 37 candidates, 666 were habitual liars."
>
> s[ /\d{3,}/ ] = "1984"
>
> ==>"1984"
>
> s
>
> ==>"2. Of 37 candidates, 1984 were habitual liars."
>
>
>
>
>
> forth_qualities = %w(good weird powerful ugly crude primitive) -
>
> ["a smart choice", "powerful", "good"]
>
> ==>["weird", "ugly", "crude", "primitive"]
>
> forth_qualities
>
> ==>["weird", "ugly", "crude", "primitive"]
>
>
>
>
>
> Forth doesn't even have a sort command.
>
> Let's sort some languages based on their ratings
>
> (on a scale of 1 to 1000).
>
>
>
> [[:Ruby,999],[:Python,500],[:Forth,-2],[:Julia,800]].
>
> sort_by{|k,v| v}
>
> ==>[[:Forth, -2], [:Python, 500], [:Julia, 800], [:Ruby, 999]]
>
>
>
>
>
> Count the number of times each number occurs in a list, and
>
> sort by that count.
>
>
>
> [7,2,6,8,2,9,3,7,5,9,2,3].group_by{|n| n}.map{|k,v| [k,v.size]}.
>
> sort_by{|k,v| [v,k]}
>
> ==>[[5, 1], [6, 1], [8, 1], [3, 2], [7, 2], [9, 2], [2, 3]]
>
>
>
>
>
> Standard Forth has no arrays, no lists, no structured variables,
>
> no hash tables.
>
>
>
> If you are programming a computer that has more than 8 kilobytes
>
> of RAM, you don't use Forth.
Hi WJ,
> Standard Forth has no arrays, no lists, no structured variables,
> no hash tables.
You will always find something that standard language X does not have.
I have a lot of source files for useful functions that I developed over the years, and I try to publish them if I think they might be useful.
So far I have not found a need for general purpose arrays, lists and
structured variables, because I find it better to tailor a solution
exactly for the problem in hand. I know that this is heresy in many circles,
and I apologise if this causes offence. YYMV, of course.
> If you are programming a computer that has more than 8 kilobytes
> of RAM, you don't use Forth.
I don't agree.
A few weeks ago I flew to Taiwan to fix a very tricky bug. I only had a week or so to prepare, so I developed an RS485 protocol display and logging program specifically for this problem.
When I was on site I was able to extend the program to catch the bug, which was not exactly what I had expected it to be.
The program was based on many previous, very similar programs, so the development time of a few days is based on prior code.
I know that similar programs can and are written in a variety of modern languages - mostly C++ and C# in the fields I work in.
But the difference in development and debug times that I can achieve using Forth means that I can get the job done. YMMV...
When I got back to Germany I used the captured packets to develop a simulator for the buggy module - this took a few weeks. When another bug was reported I could run the simulator to find it, which is very convenient since we have now moved back to the UK, and the hardware is still in Munich.
Again, I know that people write simulators in C# etc, but AFAIK not in a few weeks.
These utility apps are all written in SwiftForth, and previously, I have used MSP430 SwiftX, because I grew up on polyForth and chipForth. ( Sorry Stephen - VFX is excellent, but old habits die hard :-)
The MSP430 chip that I programmed has 20K RAM, the rest of the programs run on laptops with Giga bytes of RAM.
I actually bought my own copies of both SwiftForth and SwiftX this year, rather than use my customers versions, because I want to be up to date, and to say "thank you" to Forth, Inc. for supporting Forth and producing excellent products. I consider this money well spent.
This is my experience of using Forth. Since accidentally coming across Forth in ~1978 I had a wonderful time enjoying my work, often receiving surprised kudos from people I work with and ***getting the job done***.
I'm sure that there are applications where other languages are appropriate.
For real time control, analysis, rapid turnaround debugging and development, I have found Forth to be extremely useful - on both micros and PCs.
I find your idea that Forth is only suitable for low-end micros is, to use a popular UK phrase - utter bollocks. ( This is not a swear word by the way ;-)
You seem to define the usefulness of a language solely in terms of the conciseness of its programs defined using features provided in the language. This does fit in with my experience - YMMV of course.
Is there room in your world view for a language that some people find useful, even if you do not?
Best regards,
Howerd
[toc] | [prev] | [next] | [standalone]
| From | Howerd <howerdo@yahoo.co.uk> |
|---|---|
| Date | 2013-09-20 02:39 -0700 |
| Subject | Re: Forth is not interactive |
| Message-ID | <931290f7-762b-47c0-a277-688ce483992c@googlegroups.com> |
| In reply to | #25838 |
On Friday, September 20, 2013 10:35:21 AM UTC+1, Howerd wrote:
> On Friday, September 20, 2013 4:32:29 AM UTC+1, WJ wrote:
>
> > hughag....96.@yahoo.com wrote:
>
> >
>
> >
>
> >
>
> > > Interactive development is what
>
> >
>
> > > Dirk really needs for education,
>
> >
>
> > > as students learn best when they get immediate feedback.
>
> >
>
> >
>
> >
>
> > : crap 5 0 do i . loop ; ok
>
> >
>
> > crap 0 1 2 3 4 ok
>
> >
>
> > 5 0 do i . loop
>
> >
>
> > *the terminal*:3: Interpreting a compile-only word
>
> >
>
> > 5 0 do i . loop
>
> >
>
> > ^^
>
> >
>
> > Backtrace:
>
> >
>
> > $1054808 throw
>
> >
>
> >
>
> >
>
> > : dung 8 if ." Forth is dung." then ; ok
>
> >
>
> > dung Forth is dung. ok
>
> >
>
> > 8 if ." Forth is dung." then
>
> >
>
> > *the terminal*:6: Interpreting a compile-only word
>
> >
>
> > 8 if ." Forth is dung." then
>
> >
>
> > ^^
>
> >
>
> > Backtrace:
>
> >
>
> > $1054808 throw
>
> >
>
> >
>
> >
>
> >
>
> >
>
> > Forth is an ultra-primitive stone-age joke.
>
> >
>
> > It is the worst impediment to programmer productivity imaginable.
>
> >
>
> >
>
> >
>
> > Ruby is a high-level interactive language.
>
> >
>
> >
>
> >
>
> > irb(main):001:0> 5.times{ puts "Forth is crap." }
>
> >
>
> > Forth is crap.
>
> >
>
> > Forth is crap.
>
> >
>
> > Forth is crap.
>
> >
>
> > Forth is crap.
>
> >
>
> > Forth is crap.
>
> >
>
> > => 5
>
> >
>
> >
>
> >
>
> > irb(main):002:0> if 8; puts "Forth is dung." end
>
> >
>
> > Forth is dung.
>
> >
>
> > => nil
>
> >
>
> >
>
> >
>
> >
>
> >
>
> > You don't have to define any functions in order to test
>
> >
>
> > your ideas.
>
> >
>
> >
>
> >
>
> > irb(main):003:0> 1.upto(5){|n| puts "Forth is" + " crappy" * n }
>
> >
>
> > Forth is crappy
>
> >
>
> > Forth is crappy crappy
>
> >
>
> > Forth is crappy crappy crappy
>
> >
>
> > Forth is crappy crappy crappy crappy
>
> >
>
> > Forth is crappy crappy crappy crappy crappy
>
> >
>
> > => 1
>
> >
>
> >
>
> >
>
> >
>
> >
>
> > irb(main):006:0> %w(ridiculous pitiful dumb inferior).
>
> >
>
> > irb(main):007:0* each_cons(2){|x| printf "Forth is %s and %s.\n", *x}
>
> >
>
> > Forth is ridiculous and pitiful.
>
> >
>
> > Forth is pitiful and dumb.
>
> >
>
> > Forth is dumb and inferior.
>
> >
>
> > => nil
>
> >
>
> >
>
> >
>
> > And, of course, Forth is not even very good at multiplying numbers.
>
> >
>
> >
>
> >
>
> > : fac dup 2 < if drop 1 else dup 1 - recurse * then ;
>
> >
>
> > 5 fac . 120 ok
>
> >
>
> > 20 fac . -2102132736 ok
>
> >
>
> >
>
> >
>
> > Ruby:
>
> >
>
> >
>
> >
>
> > def fac n
>
> >
>
> > if n < 2
>
> >
>
> > 1
>
> >
>
> > else
>
> >
>
> > n * fac(n-1)
>
> >
>
> > end
>
> >
>
> > end
>
> >
>
> > ==>nil
>
> >
>
> > fac 5
>
> >
>
> > ==>120
>
> >
>
> > fac 20
>
> >
>
> > ==>2432902008176640000
>
> >
>
> > fac 30
>
> >
>
> > ==>265252859812191058636308480000000
>
> >
>
> > fac 40
>
> >
>
> > ==>815915283247897734345611269596115894272000000000
>
> >
>
> > fac 50
>
> >
>
> > ==>30414093201713378043612608166064768844377641568960512000000000000
>
> >
>
> >
>
> >
>
> > When it comes to string-handling, Forth is abysmally primitive.
>
> >
>
> > You may as well be using assembly language.
>
> >
>
> >
>
> >
>
> > Ruby, being high-level, sophisticated, and modern, makes it easy.
>
> >
>
> >
>
> >
>
> > Let's say that you want to replace in a string the first number
>
> >
>
> > that is at least three digits long.
>
> >
>
> >
>
> >
>
> > s = "2. Of 37 candidates, 666 were habitual liars."
>
> >
>
> > ==>"2. Of 37 candidates, 666 were habitual liars."
>
> >
>
> > s[ /\d{3,}/ ] = "1984"
>
> >
>
> > ==>"1984"
>
> >
>
> > s
>
> >
>
> > ==>"2. Of 37 candidates, 1984 were habitual liars."
>
> >
>
> >
>
> >
>
> >
>
> >
>
> > forth_qualities = %w(good weird powerful ugly crude primitive) -
>
> >
>
> > ["a smart choice", "powerful", "good"]
>
> >
>
> > ==>["weird", "ugly", "crude", "primitive"]
>
> >
>
> > forth_qualities
>
> >
>
> > ==>["weird", "ugly", "crude", "primitive"]
>
> >
>
> >
>
> >
>
> >
>
> >
>
> > Forth doesn't even have a sort command.
>
> >
>
> > Let's sort some languages based on their ratings
>
> >
>
> > (on a scale of 1 to 1000).
>
> >
>
> >
>
> >
>
> > [[:Ruby,999],[:Python,500],[:Forth,-2],[:Julia,800]].
>
> >
>
> > sort_by{|k,v| v}
>
> >
>
> > ==>[[:Forth, -2], [:Python, 500], [:Julia, 800], [:Ruby, 999]]
>
> >
>
> >
>
> >
>
> >
>
> >
>
> > Count the number of times each number occurs in a list, and
>
> >
>
> > sort by that count.
>
> >
>
> >
>
> >
>
> > [7,2,6,8,2,9,3,7,5,9,2,3].group_by{|n| n}.map{|k,v| [k,v.size]}.
>
> >
>
> > sort_by{|k,v| [v,k]}
>
> >
>
> > ==>[[5, 1], [6, 1], [8, 1], [3, 2], [7, 2], [9, 2], [2, 3]]
>
> >
>
> >
>
> >
>
> >
>
> >
>
> > Standard Forth has no arrays, no lists, no structured variables,
>
> >
>
> > no hash tables.
>
> >
>
> >
>
> >
>
> > If you are programming a computer that has more than 8 kilobytes
>
> >
>
> > of RAM, you don't use Forth.
>
>
>
> Hi WJ,
>
>
>
> > Standard Forth has no arrays, no lists, no structured variables,
>
> > no hash tables.
>
> You will always find something that standard language X does not have.
>
> I have a lot of source files for useful functions that I developed over the years, and I try to publish them if I think they might be useful.
>
> So far I have not found a need for general purpose arrays, lists and
>
> structured variables, because I find it better to tailor a solution
>
> exactly for the problem in hand. I know that this is heresy in many circles,
>
> and I apologise if this causes offence. YYMV, of course.
>
>
>
>
>
> > If you are programming a computer that has more than 8 kilobytes
>
> > of RAM, you don't use Forth.
>
> I don't agree.
>
> A few weeks ago I flew to Taiwan to fix a very tricky bug. I only had a week or so to prepare, so I developed an RS485 protocol display and logging program specifically for this problem.
>
> When I was on site I was able to extend the program to catch the bug, which was not exactly what I had expected it to be.
>
>
>
> The program was based on many previous, very similar programs, so the development time of a few days is based on prior code.
>
> I know that similar programs can and are written in a variety of modern languages - mostly C++ and C# in the fields I work in.
>
> But the difference in development and debug times that I can achieve using Forth means that I can get the job done. YMMV...
>
>
>
> When I got back to Germany I used the captured packets to develop a simulator for the buggy module - this took a few weeks. When another bug was reported I could run the simulator to find it, which is very convenient since we have now moved back to the UK, and the hardware is still in Munich.
>
> Again, I know that people write simulators in C# etc, but AFAIK not in a few weeks.
>
>
>
> These utility apps are all written in SwiftForth, and previously, I have used MSP430 SwiftX, because I grew up on polyForth and chipForth. ( Sorry Stephen - VFX is excellent, but old habits die hard :-)
>
> The MSP430 chip that I programmed has 20K RAM, the rest of the programs run on laptops with Giga bytes of RAM.
>
>
>
> I actually bought my own copies of both SwiftForth and SwiftX this year, rather than use my customers versions, because I want to be up to date, and to say "thank you" to Forth, Inc. for supporting Forth and producing excellent products. I consider this money well spent.
>
>
>
> This is my experience of using Forth. Since accidentally coming across Forth in ~1978 I had a wonderful time enjoying my work, often receiving surprised kudos from people I work with and ***getting the job done***.
>
>
>
> I'm sure that there are applications where other languages are appropriate.
>
> For real time control, analysis, rapid turnaround debugging and development, I have found Forth to be extremely useful - on both micros and PCs.
>
>
>
> I find your idea that Forth is only suitable for low-end micros is, to use a popular UK phrase - utter bollocks. ( This is not a swear word by the way ;-)
>
>
>
> You seem to define the usefulness of a language solely in terms of the conciseness of its programs defined using features provided in the language. This does fit in with my experience - YMMV of course.
>
>
>
> Is there room in your world view for a language that some people find useful, even if you do not?
>
>
>
> Best regards,
>
> Howerd
Hi WJ,
I am so sorry - I thought Google groups was chopping my lines for me.
I don't usually write such long sentences...
Best regards,
Howerd
[toc] | [prev] | [next] | [standalone]
| From | mhx@iae.nl |
|---|---|
| Date | 2013-09-21 04:05 -0700 |
| Subject | Re: Forth is not interactive |
| Message-ID | <7e497709-d8b8-4290-bbf4-4617d74629f9@googlegroups.com> |
| In reply to | #25828 |
On Friday, September 20, 2013 5:32:29 AM UTC+2, WJ wrote: [..] > And, of course, Forth is not even very good at multiplying numbers. > > : fac dup 2 < if drop 1 else dup 1 - recurse * then ; > 5 fac . 120 ok > 20 fac . -2102132736 ok That is strange. FORTH> : fac dup 2 < if drop 1 else dup 1 - recurse * then ; FORTH> 20 fac H. $21C3677C82B40000 ok FORTH> 21 fac H. $C5077D36B8C40000 20 fac . should have worked. FORTH> let. fac[50]:3.041409320171337804361260816606476884437764156896051200000000e+0064 ok FORTH> let. fac[140000]:4.673935432543473019144637737870778182251001762061692231930394e+659659 ok -marcel
[toc] | [prev] | [next] | [standalone]
| From | albert@spenarnc.xs4all.nl (Albert van der Horst) |
|---|---|
| Date | 2013-09-21 12:43 +0000 |
| Subject | Re: Forth is not interactive |
| Message-ID | <523d9480$0$26890$e4fe514c@dreader37.news.xs4all.nl> |
| In reply to | #25828 |
In article <l1gfkc$kv4$1@dont-email.me>, WJ <w_a_x_man@yahoo.com> wrote:
>hughaguilar96@yahoo.com wrote:
>
>> Interactive development is what
>> Dirk really needs for education,
>> as students learn best when they get immediate feedback.
>
>: crap 5 0 do i . loop ; ok
>crap 0 1 2 3 4 ok
>5 0 do i . loop
>*the terminal*:3: Interpreting a compile-only word
>5 0 do i . loop
> ^^
>Backtrace:
>$1054808 throw
Some Forthers didn't feel the need.
I don't want the kitchen sink in my Forth.
I wanted this one as a loadable extension.
Adding interpreted control structures is pretty easy:
AMDX86 ciforth 5.0
ciforth lab $Revision: 5.78 $ (c) Albert van der Horst
COPYRIGHT (c) 2000-2009 Albert van der Horst, THE NETHERLANDS
LICENSE
This program is free software; you can redistribute it and/or
modify it under the terms of version 2 of the GNU General
Public License as published by the Free Software Foundation.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public
License along with this program; if not, write to the
Free Software Foundation, Inc.,
59 Temple Place, Suite 330, Boston, MA 02111, USA.
FORTH : ISN'T UNIQUE
SUPER-QUAD : (WARNING) NOT PRESENT, THOUGH WANTED
FARDUMP : (WARNING) NOT PRESENT, THOUGH WANTED
TASK : ISN'T UNIQUE
OK
: crap 5 0 DO I . LOOP ;
OK
crap
0 1 2 3 4 OK
5 0 DO I . LOOP
5 0 DO ? ciforth ERROR # 17 : COMPILATION ONLY, USE IN DEFINITION
WANT -scripting-
OK
5 0 DO I . LOOP
0 1 2 3 4 OK
LOCATE -scripting-
SCR # 126
0 ( NEW-IF -scripting- ) \ AvdH B2sep21
1 : NEW-IF ; \ Get rid!
2 WANT T] WANT :2
3 :2 IF T] POSTPONE IF ; IMMEDIATE
4 :2 DO T] POSTPONE DO ; IMMEDIATE
5 :2 ?DO T] POSTPONE ?DO ; IMMEDIATE
6 :2 BEGIN T] POSTPONE BEGIN ; IMMEDIATE
7 :2 THEN POSTPONE THEN POSTPONE T[ ; IMMEDIATE
8 :2 LOOP POSTPONE LOOP POSTPONE T[ ; IMMEDIATE
9 :2 +LOOP POSTPONE +LOOP POSTPONE T[ ; IMMEDIATE
10 :2 REPEAT POSTPONE REPEAT POSTPONE T[ ; IMMEDIATE
11 :2 UNTIL POSTPONE UNTIL POSTPONE T[ ; IMMEDIATE
12 :2 AGAIN POSTPONE AGAIN POSTPONE T[ ; IMMEDIATE
13
14 \ Last scripting block!
15 CREATE -scripting- OK
--
Albert van der Horst, UTRECHT,THE NETHERLANDS
Economic growth -- being exponential -- ultimately falters.
albert@spe&ar&c.xs4all.nl &=n http://home.hccnet.nl/a.w.m.van.der.horst
[toc] | [prev] | [next] | [standalone]
Page 6 of 7 — ← Prev page 1 2 3 4 5 [6] 7 Next page →
Back to top | Article view | comp.lang.forth
csiph-web