Re: Why forth is not popular



Hi Ureir,

Ureir wrote:
[snip]
> You find Forth "simple" because you are used to it, and are familiar with
> all concept hiding behind each word.
> Someone familiar with the C language will find it simple also.
I am familiar with both Forth and C, and I find Forth simpler than C.
though this has more to do with the complete toolchain than just the
syntax.

> The answer will always be the same: you will juge the one you're the most
> familiar with as the simplest.
Yes, clearly...

[snip]

> >> Do you think it is possible in comp.lang.forth for people to discuss the
> >> very real and substantive facts behind this issue?
> > Yes, but it becomes difficult if you dismiss my observations as a
> > "conspiracy theory" ;)
> >
> > <RANT>
> > Let me re-state my opinion : Forth's place in mainstream computing is
> > largely decided by commercial pressures. The particular qualities that
> > make Forth special do not fit well into most companies.
> > This is because most companies use a pyramid-style command structure,
> > to they will naturally prefer programming environments that work the
> > same way.
>
> I can't agree with you.
> Yes, company use of a given language is dictated by commercial needs, and
> therefore, under the law of commercial offers/demand market, which leads
> company to use languages, such as C, which have many developers available,
> many tools available (compilers, debuggers, code analysers, document
> generators, and so on...)
I agree with the point you make, but I don't think it invalidates my
original point.
Both are factors.

> > If you look at C/C++ usage, you divide the work up into groups, each
> > with a team leader, the team leaders report to the next level up etc.
>
> This is not linked with C/C++ usage, but linked to complexity of application
> to be developped...
>
> I [sniped] the rest of your message, because I don't have time enough to
> conterpart your arguments one by one, but I will try a general
> demonstration.
>
> Your main argument is to tell that C/C++ make mandatory of organizing
> development in teams, and teams make mandatory to introduce methods and
> quality measures, to ensure software quality.
No - you are confusing cause and effect. Nothing about C/C++ mandates a
particular organisational structure, but there are many C/C++ features
that assist a heirarchical organisation.

> As I said above, it is not due to the language used. It is due to the
> constant need, in company developments, to do better and faster on new
> project that what was done on earlier projects, in order to stay competitive
> on the market.
Really? This is not my observation. "Staying competitive", "faster time
to market" etc are certainly the _intention_ of the higher levels of
management, but the motivation of the lower levels tends to be much
more ego-centric.
I started programming in C in the early 90's when the supply of Forth
contracts dwindled.
After a few years I had to edit the contracts that I chose to mention
in my CV to avoid embarassing questions. Because Forth contracts were
generally 3 or 4 times shorter the equivalent C contracts I found I was
being quizzed about why I had left so many projects early.
These days I tend to prototype in Forth, then port to C/C++/ "whatever
the customer wants". I find that this gives me a 2x speed increase, so
I get plenty of praise for getting the job done so quickly, and
everybody is happy...

> One of the way to achieve this, one of the most used, is to
> make a given project to be developped by more people, to reduce development
> time.
Large teams are very good for their managers.
What manager given the choice between a 6 month project with 3 people
or an 12 month project with 6 people would choose the smaller project?
Especially if the bigger project required GBP30k of emulators,
debuggers, compilers etc.
This is human nature. Who would mention to the higher levels that the
smaller team could complete the project quicker, at the expense of
their own career?

> Therefore, a project that was developped yesterday by a team of 1 or 2
> people, is developped today by a team of 3-4 people, and will be developped
> tomorrow by a team of 10 people. (Remember that the project definition grows
> with time also)

> All this is not linked to the development language, but to constant
> evolution of software products.
Sometimes evolution follows a blind alley ;)
Constant evolution of software products is essential for their vendors.
What salesman tries to sell his companies latest product by saying that
it achieves little more than its predecessor? Again, human nature, in a
commercial environment will not neceesarily produce technically better
products.

> Then methodology and software quality will be needed in order to ensure
> coherency and maintainability of the final project, whatever the development
> language is.
Yes. But what methodology? The one supported by the current product
range, of course...

[snip]

> Rock solid software, yes.
> Any language fan can also cite you an exemple of rock solid software
> developed in few months by few people. Now just imagine that your customer
> wants you to make the same project, twice complex, with same planning.
> You'll have to make it with a team of 4 persons instead of two, and without
> a minimum of methodology, it will be less simple, less reliable, and could
> quickly become a headache to maintain.
This is not my experience. If its the same project with extra features,
you are already half way there. This is code re-use. Why would the
original ( simple ) code not be usable?

> It will no longer be fun to do! (Indeed, company will not spend any money to
> ensure that their developer are happy to program ;)
Companies really should make sure that their employees are happy. That
way they will be more productive and less likely to leave.

> You reasonment remind me those people, used to develop in assembly language,
> who were refusing to use any compiler of any language, just because it was
> so "simple" and efficient to write it directly in assembly.
I can see the comparison here, and I think it is valid. People
generally don't like change, even if it will ultimately lead to some
improvement.
The difference is that when you have tried both approaches you can make
a judgement about which is best. I have used assembler C and Forth and
I find that I prefer to have a very fast compilation/test turnround
time, incremental compilation, and an interpreter.
I also prefer to keep every part of the development environment and
program as simple as possible. This is what Forth means to me.

> > Sometimes I have wondered whether Forth is a blessing or a curse. I
> > still find it difficult to watch the huge waste of time and energy
> > expended in many companies.
> > But then I play with colorForth just because its elegant and beautiful,
> > and I reflect on the many programs that I have written in poly/chip/ANS
> > Forth over the years, and I do indeed "thank Allah" for Forth ;)
>
> Well, you have the luck to use your preferred language at work, at least
> every year or two...
> Personally, I don't. I use the C language at work, and it really is not my
> preferred one. But curiously, as I know every one of his drawbacks, I am
> perhaps more efficient at work than if I used one of my preferred
> languages...
Yes - people are better motivated when they are doing what they want!

> Now, back for the original question: why is'nt Forth popular?
> To answer it, I will revert the question: why are C (and its derivatives),
> Java, PHP, ... so popular? Why were Pascal and BASIC popular at their time?
> It's not a question of language characteristics, it's a question of
> audiance.
> C became popular because it was available on each and every Unix and
> Unix-like platforms, which makes a big audience.
> Java became popular because it allow to program platform-independant,
> client-side applications available on each and every web browser, which
> makes a bigger audience.
> PHP became popular because it allow the same thing on server side, which
> make the same audience.
> Pascal was popular (at least here, in France), because educational system
> used it as the main educational programming language, which made a big
> audience in future developer community.
> BASIC was popular because it was available as the educational language on
> any home computer in 80's, so it allow many people to learn programming at
> home.
Yes, this is an excellent description of some of the many factors
affecting language popularity.

> Forth was popular, at this time, because it was available on many home
> computers too, and more powerful than BASIC, but more difficult to learn and
> understand too. (For many people, it is more natural to write, and therefore
> more easy to understand and learn, a command like PRINT (A*x)+B; than
> something like A x * B + . Here, and only here, the language characteristics
> count: when two programming languages have the same audience.)
Yes RPN is not familiar to most people, and can put people off.

> Forth is no longer popular, just because C won the audience war on the
> market of industrial development on small platforms (i.e. embedded systems,
> now), which was the main audience of Forth.
> Perhaps also because, as Forth's VM oblige it to be not a fully compiled
> language on many platform, C was the most efficient one.
SwiftX and VFX Forths natively compile, so this arguament no longer
applies.

To sum up, I agree with most of what you are saying. My observations
about human nature in a commercial environment are not mutually
exclusive to yours.
We are talking about a very complex system of very complex components -
people at work. There can be no black and white theories.

Regards

Howerd 8^)

.



Relevant Pages

  • Re: Is VB.NET Stable??
    ... Says .Net is becoming more popular ... I urge you all to leave this language and move to PHP ... -- The .NET framework changes little each time. ... an app for PC and MAC on the same programming platform. ...
    (microsoft.public.dotnet.languages.vb)
  • Re: Wheel-reinvention with Python
    ... >>> they're used by the rest of the industry. ... programming strategy the projects uses, ... I see no difference to special-purpose language then. ... > just an development environment) and VB as "popular" languages. ...
    (comp.lang.python)
  • Re: College Software Texts Found To Teach Insecure Coding
    ... C Primer Plus, Third Edition (SAMS) ... Introduction to Java Programming, 7th Edition (Pearson Prentice ... In order to be on the above list, the language needs to satisfy two ... It has to be popular enough for somebody to justify *writing* a ...
    (comp.lang.ada)
  • Re: What is the most popular language used by programmers?
    ... >> What is the most popular language used by programmers? ... >What is the programming language programmers like best. ... >What is the programming language that the most programmers know. ... >What is the programming language that the most programmers work with. ...
    (comp.programming)
  • Re: Conservative Deadheads? Veteran Deadheads? NRA Member/Hunting Deadheads?
    ... living a life of political incorrectness: shooting, hunting, fishing, ... I personally can't understand the highly popular idea (popular with ... I also don't understand Ron Unz's obsession about English. ... I don't care what language people speak in their homes. ...
    (rec.music.gdead)