Re: What languages do you regularly use besides forth?
- From: Elizabeth D Rather <econklin@xxxxxxxxx>
- Date: Tue, 11 Jul 2006 00:15:51 -1000
John Passaniti wrote:
Elizabeth D Rather wrote:That kind of excessive specialization destroys judgement.
Does speaking only English most of your life "destroy judgement"? It sure plays hob with your ability to speak in other languages, but if speaking other languages isn't a requirement for you, how is it harmful?
...
Surprisingly (to me at least), there is a Wikipedia page that talks about this:
http://en.wikipedia.org/wiki/Sapir-Whorf_and_programming_languages
If I were in the general market as a programmer it would be a limitation, sure, but I'm not. I've had a wonderful career of which the last 30+ years have been in developing software systems using Forth. The projects have been very varied, all interesting, and virtually all highly successful.
But here's my question, which is obviously rhetorical: In the last 30+ years, how many of the projects that you've worked on would have benefited from a knowledge of other programming languages and their paradigms? I'm not talking necessarily about other procedural, imperative languages because in terms of programming, the kind of thought process you apply when using Forth is likely the same you would use with other procedural, imperative languages (at least it is for me). I'm talking more about programming languages that present very different models for computation. For example, languages like Prolog, APL, Lisp, Mathmatica, CLU, Max, etc.
Just as we tend to respond to questions about which chip or which Forth is best by asking what one intends to use it for, the answer to this depends a lot on what kind of programming one is doing. FORTH, Inc. has tended to specialize in embedded-type applications, and although some have required extensive trig (e.g. motion control), they don't tend to be computationally intensive in the sense that Mathematica, for example, is. We have implemented some inference engines and other AI-type tools, and studied other approaches to learn algorithms. This didn't require actually developing a programming capability in, say, Prolog or Lisp, however.
It's often said here in comp.lang.forth that you can make Forth whatever you want it to be. If your application would benefit from constraint-based logic model of Prolog, or the array-based model for APL, or the data-flow model of Max, you could add such facilities to Forth. And sure, you can do that. But if you don't know the underlying models these languages use, how would you even know that you would want to add those models to Forth?
It isn't necessary to learn to program in a language to study algorithmic approaches to problems of interest.
The point being, that not all languages are alike. Each language (especially those that introduce novel models for computation) increases your vocabulary. Learning different languages isn't so much about figuring out their syntax, or how to run the compiler, or what crazy IDE the language may be chained to. Learning different languages is more about seeing a potentially different way to solve a problem.
But wrestling with syntax, compilers, and IDEs is ferocious overhead when what you're really interested in is a conceptual approach.
You yourself talked about this kind of thing a while back. You talked about a database system someone wrote that was slow. They couldn't speed it up because they were bound to thinking in terms of the system. Some insight in a different representation of the problem resulted in a Forth solution that was much faster. Generalizing that, your ability to look at the problem from a different perspective is really what resulted in faster database lookups, not Forth directly. So one would expect that if you could look at a problem from more perspectives than you do now, you might have additional insights in other models. And regardless of if you chose a language that directly used that model, or if you added support for that model in Forth, the result is the same.
Well, this has been the big advantage of working as a company rather than as a lone individual. Over the years we've employed many very bright, capable programmers and engineers who have brought in a lot of fresh insights and approaches. I'm a big advocate of taking a fresh look at design issues. But the original question involved learning other programming languages, and on that rather narrow issue, I have not found it necessary. And some really extraordinarily creative and capable programmers I've ever worked with have never programmed in anything but Forth.
I guess this is a long-winded way of expressing the old adage, "if all you have is a hammer, everything looks like a nail." Some of that is probably diminished by your experience, but can you really say you wouldn't have benefited from seeing how other programmers using other languages would look at problems?
Well, we have on any number of occasions taken over projects that were started in other languages, or had prior versions in other languages, and frequently get design documents written assuming other languages. I find the influence of language assumptions on design to be more inhibiting than liberating. That's true of Forth, too. A problem solution needs to be centered on the problem, and then implemented. Focusing too soon on the implementation is rarely a good idea.
Cheers,
Elizabeth
--
==================================================
Elizabeth D. Rather (US & Canada) 800-55-FORTH
FORTH Inc. +1 310-491-3356
5155 W. Rosecrans Ave. #1018 Fax: +1 310-978-9454
Hawthorne, CA 90250
http://www.forth.com
"Forth-based products and Services for real-time
applications since 1973."
==================================================
.
- References:
- What languages do you regularly use besides forth?
- From: casioculture
- Re: What languages do you regularly use besides forth?
- From: Elizabeth D Rather
- Re: What languages do you regularly use besides forth?
- From: John Doty
- Re: What languages do you regularly use besides forth?
- From: Elizabeth D Rather
- Re: What languages do you regularly use besides forth?
- From: John Passaniti
- What languages do you regularly use besides forth?
- Prev by Date: Re: Optional word sets (priority of implimentation)
- Next by Date: Re: Open hardware microprocessor specification RFC
- Previous by thread: Re: What languages do you regularly use besides forth?
- Next by thread: Re: What languages do you regularly use besides forth?
- Index(es):
Relevant Pages
|