Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

STATEless Forths

349 views
Skip to first unread message

Brad Eckert

unread,
Oct 3, 2012, 4:15:59 PM10/3/12
to
Can anyone provide links to descriptions of Forths that use search order instead of STATE to control compilation? AFAIK cmforth did this, but I don't have any info on it.

For example, DUP would exist in two different wordlists. One version would handle interpretation semantics and the other would handle compilation semantics. Colon simply changes the search order.

I've seen embedded Forths (not supporting vocabularies) that work like this. Maybe there would be two search orders and they get selected by : and ;. Has this been tried?

Why stop at two search orders? One could create a user defined search order FOO that sets up the search order (and word to handle numbers) when executed.

That other bit, the number handler, would be NOOP when interpreting, LITERAL when compiling, etc.

-Brad

Alex McDonald

unread,
Oct 3, 2012, 6:32:26 PM10/3/12
to
Rather than search orders, my compiler uses "smart compile". The XT in interpret mode is executed; in compilation mode, it is used to find a compilation token to compile the XT. The advantages are that parsing words like TO S" can be POSTPONEd. Each word effectively has two actions; the default for the vast majority is to compile the XT. For others, there is a separation of the actions by COMPILATION> ;

: parse" ( -- addr len )
'"' parse ;

: (p") ( -- buff )
parse" buf-allot dup>r place r> ;

: ", ( a1 n1 -- ) \ compile a1,n1 at here (counted)
here over 2+ allot place ;

: s" ( -<string">- -- a1 n1 )
(p") count \ interpret action
compilation> \ compile action
drop parse" postpone sliteral ;

: ," ( -<string">- ) \ compile counted parsed string at here
parse" ",
compilation>
drop postpone s" postpone ", ;

: c" ( -<string">- -- a1 )
(p")
compilation>
drop here ," postpone literal ;

Hugh Aguilar

unread,
Oct 3, 2012, 8:56:30 PM10/3/12
to
On Oct 3, 1:16 pm, Brad Eckert <hwfw...@gmail.com> wrote:
> Can anyone provide links to descriptions of Forths that use search order instead of STATE to control compilation? AFAIK cmforth did this, but I don't have any info on it.
>
> For example, DUP would exist in two different wordlists. One version would handle interpretation semantics and the other would handle compilation semantics. Colon simply changes the search order.

My MFX was like this. It was a cross-compiler that had a SYSTEM, HOST
and TARG mode. Only TARG was like this, but that is what 95% of your
code was written in.

MFX is proprietary to Testra, but last I heard they gave it away for
free (it isn't good for anything except developing for the MiniForth
processor, which you have to buy from them).

I've repeatedly said that this is the way to go, but Anton Ertl says
that it has already been tried and is a failure. To a large extent,
this is why I abandoned Forth-200x and began working on Straight Forth
--- you can avoid all of those state-smart problems that plague ANS-
Forth.

Paul Rubin

unread,
Oct 3, 2012, 9:11:02 PM10/3/12
to
Brad Eckert <hwf...@gmail.com> writes:
> Can anyone provide links to descriptions of Forths that use search
> order instead of STATE to control compilation? AFAIK cmforth did this,
> but I don't have any info on it.

cmforth source code is online--I managed to find it a few months ago,
but found it pretty hard to read.

There was a good SIGFORTH article by Jay Melvin about the cmforth
metacompiler, which is shockingly simple (unfortunately this is just a
citation, fulltext is walled):

http://dl.acm.org/citation.cfm?id=382125.382916

If I were to try writing a Forth, I'd want to get it to work like that.

Anton Ertl

unread,
Oct 4, 2012, 9:10:23 AM10/4/12
to
Brad Eckert <hwf...@gmail.com> writes:
>Can anyone provide links to descriptions of Forths that use search order instead of STATE to control compilation? AFAIK cmforth did this, but I don't have any info on it.
>
>For example, DUP would exist in two different wordlists. One version would handle interpretation semantics and the other would handle compilation semantics. Colon simply changes the search order.

It's not the search order as we know it. Indeed I think that this
technique has not been used much because combining it with the search
order word set would be more complicated than using a different
technique for implementing compilation semantics.

>That other bit, the number handler, would be NOOP when interpreting, LITERAL when compiling, etc.

Take a look at recognizers (unfortunately, not much in English about
them yet).

Please keep the line length to about 70 chars.

- anton
--
M. Anton Ertl http://www.complang.tuwien.ac.at/anton/home.html
comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
New standard: http://www.forth200x.org/forth200x.html
EuroForth 2012: http://www.euroforth.org/ef12/

Charles Childers

unread,
Oct 4, 2012, 9:44:12 AM10/4/12
to
On Wed, 03 Oct 2012 16:15:59 -0400, Brad Eckert <hwf...@gmail.com> wrote:

> Can anyone provide links to descriptions of Forths that use search order
> instead of STATE to control compilation? AFAIK cmforth did this, but I
> don't have any info on it.

Old versions of RetroForth used to maintain two dictionaries, one for
normal words, and one for compile-only functions.

When compiling, the compile-only dictionary was searched first, and if
nothing was found, the normal dictionary would then be searched.

It didn't have actual ANS wordlists though.

A few builds were done with a third dictionary, but as far as I recall
no one actually used this and it was dropped.

-- crc

Andrew Haley

unread,
Oct 4, 2012, 11:56:09 AM10/4/12
to
Brad Eckert <hwf...@gmail.com> wrote:

> Can anyone provide links to descriptions of Forths that use search
> order instead of STATE to control compilation? AFAIK cmforth did
> this, but I don't have any info on it.
>
> For example, DUP would exist in two different wordlists. One version
> would handle interpretation semantics and the other would handle
> compilation semantics. Colon simply changes the search order.

This is one of those things that were tried twenty-odd years ago and
were abandoned: novix Forths did this (all of 'em AFAIK) but it really
was bad.

Let'd say you have a word FOO that has compilation and execution
forms. If you redefine FOO you have to redefine the compiling FOO as
well or when you use FOO in a colon definition you'll get the old
behaviour. Very bug-prone. There are other ways of achieving the
effect you need, most of 'em better.

Andrew.

Hugh Aguilar

unread,
Oct 4, 2012, 5:17:28 PM10/4/12
to
On Oct 4, 6:25 am, an...@mips.complang.tuwien.ac.at (Anton Ertl)
wrote:
> Brad Eckert <hwfw...@gmail.com> writes:
> >Can anyone provide links to descriptions of Forths that use search order instead of STATE to control compilation? AFAIK cmforth did this, but I don't have any info on it.
>
> >For example, DUP would exist in two different wordlists. One version would handle interpretation semantics and the other would handle compilation semantics. Colon simply changes the search order.
>
> It's not the search order as we know it.  Indeed I think that this
> technique has not been used much because combining it with the search
> order word set would be more complicated than using a different
> technique for implementing compilation semantics.

I wrote MFX in UR/Forth which was pretty much Forth-83. There was no
ONLY etc. --- we just had CONTEXT and CURRENT. I did have to resort to
assembly-language for a few things (such as a word similar to :NAME
although I think I called it HEADER at the time), but not much --- I
had maybe one or two screens of assembly-language and the rest was all
Forth.

I remember that I was very much baffled by how to write a cross-
compiler. I had written a 65c02 cross-compiler previously, but it
wasn't very good. My defining words had different names, such as |:
and |CREATE and so forth, to distinguish them from the UR/Forth
defining words. That was ugly and awkward. This would not be
acceptable at Testra, and I would have gotten fired if I did that.

Cross-compilation is not as simple as just putting all of the host
stuff in one vocabulary and all of the target stuff in another. How I
solved this was to go on long bicycle rides to clear my mind and think
about the problem. Then, suddenly, I figured it out! When I was over
by Papago Park it suddenly hit me how to do this so that both HOST and
TARG mode would be normal Forth, with no funky names. I didn't take my
clothes off and run down the street shouting "Eureka!," but still, it
was an epiphany. If you don't know how to write a cross-compiler, I
recommend that you go on long bicycle rides --- that is really the
best way to figure things out. When I was in Colorado I was baffled by
both the N-Queens problem and the Left-Leaning-Red-Black tree problem,
and I went for long walks in BLM land behind my dad's ranch --- that
worked, as I solved both problems. I really can't overemphasize the
importance of thinking as a way to solve problems. Try it!

Hugh Aguilar

unread,
Oct 4, 2012, 5:33:38 PM10/4/12
to
On Oct 4, 8:56 am, Andrew Haley <andre...@littlepinkcloud.invalid>
wrote:
That isn't true in MFX. When you are in TARG mode and you define a
word such as FOO, you automatically define *two* words. One is defined
in targ memory and is the FOO that you wrote and it does whatever FOO
does on the micro-controller. The other word is defined in host memory
and what it does is compile the targ version of FOO later on when you
are writing a targ word that uses FOO. You don't have to write the two
versions of FOO manually --- you just write the targ version manually
and the host version gets generated automatically. It is also possible
to write host words manually. Words like IF and BEGIN etc. are written
in HOST mode manually. They don't have a TARG version of themselves.

When I wrote MFX, I assumed that other people knew how to write cross-
compilers. I didn't bother to do any research on what other people
have done, because I always figure things out for myself. Still
though, I assumed that other people did know how to write cross-
compilers. Now, in these last 3 years that I've been visiting
comp.lang.forth, I have discovered that nobody knows how to write a
cross-compiler. There is a lot of talk about how easy it is, but
nobody actually knows how. In this thread we have both Anton Ertl and
Andrew Haley who clearly don't know how to do it. We have Stephen Pelc
saying that it is necessary to simulate the target processor at
compile-time in order to make the defining words work. He said that in
this thread:
http://groups.google.com/group/comp.lang.forth/browse_thread/thread/c0fe67c350a5cec3

A couple of days ago Brad Eckert promoted John Passaniti to sainthood
because he says that it is not necessary to write code, but only to
talk about code. He said that in this thread:
http://groups.google.com/group/comp.lang.forth/browse_thread/thread/3f7ea9769807de8b
This is what he said:

On Oct 2, 9:43 am, Brad Eckert <hwfw...@gmail.com> wrote:
> On Wednesday, February 10, 2010 5:21:00 PM UTC-7, John Passaniti wrote:
>
> > Actually, comp.lang.forth is usually all about programming. Your
> > problem is that your narrowly define "programming" as coding. The
> > rest of us-- again, those of us who make a living writing software--
> > know that there are lots of other aspects to software development.
>
> I am impressed that after all this time, you continue to try to enlighten Hugh. You may be the first atheist saint.

Well, I remain unenlightened! I continue to insist that the only way
to be a computer programmer is to write computer programs. This was
true 2 years ago and it is true today --- it will always be true.





John Passaniti

unread,
Oct 6, 2012, 1:21:42 PM10/6/12
to
On Thursday, October 4, 2012 5:33:38 PM UTC-4, Hugh Aguilar wrote:
> Well, I remain unenlightened! I continue to insist that
> the only way to be a computer programmer is to write
> computer programs. This was true 2 years ago and it is
> true today --- it will always be true.

If you're hired as a programmer, you will indeed spend nearly 100% of your time writing code. Nothing wrong with that, there are people who want nothing more than to be a programmer; that's what they do, that's what they enjoy, and that's what they're good at.

As a software engineer, writing code is one major aspect of what I do. I'd say on an average day at work, I'm probably spending 75% of my time writing code. The rest of the time, I'm also charged with a variety of other responsibilities, from analysis, design, managing projects, measuring progress, and so on. Those are typically not skills that a person with a strict "programmer" title has to deal with, but they are essential.

You don't recognize this because you don't actually work as a programmer and you don't work in a group larger than yourself. You aren't responsible for products. You aren't responsible for developing standards. You aren't responsible for coordinating efforts of other programmers. You aren't responsible for schedules. You aren't responsible for research. You aren't responsible for meeting compliance requirements. You aren't responsible for finding ways to make the process of developing software better.

The closest you've ever come to an understanding of any of these things is when you actually worked as a programmer in the distant past. Too bad it didn't work out for you; if it had, you would have probably learned that restricting yourself to just programming and not diving deeper into the many other issues that come up in software development is limiting not only your career, but your experience.

I think we're also seeing why you never made it as a programmer. Your definition of being a programmer doesn't include any of the skills beyond programming that are needed to actually build, maintain, and sustain systems. Why would anyone want to hire someone with such a limited view of what their job is ("I just write code and don't worry about that other stuff"). By restricting yourself to just writing code and avoiding the larger issues in software development, you've effectively put a big sign on your head saying, "I do only one thing, don't hire me if you want anything more or deeper."

How's that working out for you?

Rod Pemberton

unread,
Oct 6, 2012, 6:06:44 PM10/6/12
to
"John Passaniti" <john.pa...@gmail.com> wrote in message
news:4381d528-f2af-4778...@googlegroups.com...
> On Thursday, October 4, 2012 5:33:38 PM UTC-4, Hugh Aguilar wrote:
> > Well, I remain unenlightened! I continue to insist that
> > the only way to be a computer programmer is to write
> > computer programs. This was true 2 years ago and it is
> > true today --- it will always be true.
>
> If you're hired as a programmer, you will indeed spend nearly
> 100% of your time writing code.

That's completely untrue.

90% of "purely" programming jobs have very little programming, maybe 25%.
Most include every non-programming task needed to complete the job at hand.
These are things such as meetings with your department or other departments,
interacting with users, making phones calls to a variety of people, program
design, program implementation, obtaining design and legal requirements,
complying with legal or industry specifications, producing and printing
documentation, getting coffee for higher ups, spending time discussing
fantasy football with your manager because he knows nothing about
programming nor management, being "required" to go to "social" events with
co-workers on your time off, and even helping "the boss" move because his
alcohol abuse caused him to get divorced and is so messed up emotionally he
can't function, etc.

Programmers are usually the "low man" in department. They get handed
everything no one else wants to do. That's true even if it's the job other
people.

> Nothing wrong with that, there are people who want nothing
> more than to be a programmer; that's what they do, that's
> what they enjoy, and that's what they're good at.

That's true.

Many programmers want to just program. They don't want to handle the "BS"
of non-programming business and corporate political issues. Why would they?
They aren't "people" people. They're "idea" people like scientists,
chemists, and engineers. It's outside the scope of the job they have, or de
sire. It's like asking an electrical engineer (EE) to patch drywall. It's
rarely done. When it is, it's the manager who gets reprimanded and demoted,
or should be ... The engineers are not there to patch drywall. It's not
their skillset. It's not what they're being paid for either. They're being
paid far more than a drywall installer or building maintenance.

> As a software engineer, [...]

We've been over this before. There is no such thing as a software engineer.
You're misusing the term "engineer". The engineering college of a
university grants engineering degrees, including electrical and mechanical
engineering. The liberal science and arts college of a university grants
science degrees, including mathematics and computer science. Programming is
part of the LSA college degree program. Engineers must be licensed by the
state for every engineering field or work under a licensed engineer. Are
you licensed by the state? Is your immediate manager? If you answered
"No." to both, then you're not an engineer.

> As a [...] writing code is one major aspect of
> what I do. I'd say on an average day at work, I'm probably spending
> 75% of my time writing code. The rest of the time, I'm also charged
> with a variety of other responsibilities, from analysis, design,
> managing projects, measuring progress, and so on. Those are typically
> not skills that a person with a strict "programmer" title has to deal
> with, but they are essential.

That's called a "programmer analyst". It's when you are spending a larger
percentage of your time doing analysis and design. If you're no longer
programming at all, then you're a "systems analyst".

> You don't recognize this because you don't actually work as a programmer
> and you don't work in a group larger than yourself. You aren't
> responsible for products. You aren't responsible for developing
> standards. You aren't responsible for coordinating efforts of other
> programmers. You aren't responsible for schedules. You aren't
> responsible for research. You aren't responsible for meeting
> compliance requirements. You aren't responsible
> for finding ways to make the process of developing software better.

You're belittling him because he worked for a very small company?

Your resume seems to indicate you haven't worked for any large companies
either. Most seem to have fewer than 65 employees.

> The closest you've ever come to an understanding of any of these things
> is when you actually worked as a programmer in the distant past. Too
> bad it didn't work out for you; if it had, you would have probably learned
> that restricting yourself to just programming and not diving deeper into
> the many other issues that come up in software development is limiting
> not only your career, but your experience.

One can say the same thing about you. He could say you limited your career
because you only have a two-year community college degree instead of a
four-year university CS degree. Once you get that degree, he can ask you
why you didn't get a more valuable, and in-depth, MBA degree.

> I think we're also seeing why you never made it as a programmer.

You don't know that it's his attitude that affected his programming career.
It could easily be numerous unrelated life events. He could be required to
live where he is to take care of his parents or family, or he could be
injured and be living close to needed healthcare, or he could be unable to
sell his house, or he could have court mandated locality requirements, or he
might not have the correct degree or skills for the current market, or maybe
his finances are so messed up that he can't get college loans, or maybe the
environment where he programmed was so "toxic" he has mild "PTSD" and
doesn't want to program for pay. You just don't know.


Rod Pemberton



Paul Rubin

unread,
Oct 6, 2012, 7:05:18 PM10/6/12
to
"Rod Pemberton" <do_no...@notemailnotz.cmm> writes:
> That's called a "programmer analyst". It's when you are spending a larger
> percentage of your time doing analysis and design. If you're no longer
> programming at all, then you're a "systems analyst".

That was a 1960's or 1970's thing, maybe still used in government
agencies or other such bureaucracies. Not much of anywhere else as far
as I can tell.

Elizabeth D. Rather

unread,
Oct 6, 2012, 7:56:19 PM10/6/12
to
Really, there's not much point in trying to parse out these various job
titles. I suspect every single company, large or small, defines them
differently. Not to mention the fact that individuals' particular skill
sets will lead to somewhat different actual job activities in spite of
what their title/formal description says.

Some companies, of course, have a lot more hardware design, development,
and debugging to do than those who are using only off-the-shelf
hardware. But even in the latter class you'll see a lot of variation in
how much involvement the "programmer" has in program requirements,
design, etc., in addition to writing and testing code.

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."
==================================================

Hugh Aguilar

unread,
Oct 6, 2012, 9:48:14 PM10/6/12
to
On Oct 6, 4:56 pm, "Elizabeth D. Rather" <erat...@forth.com> wrote:
> On 10/6/12 1:05 PM, Paul Rubin wrote:
>
> > "Rod Pemberton" <do_not_h...@notemailnotz.cmm> writes:
> >> That's called a "programmer analyst".   It's when you are spending a larger
> >> percentage of your time doing analysis and design.  If you're no longer
> >> programming at all, then you're a "systems analyst".
>
> > That was a 1960's or 1970's thing, maybe still used in government
> > agencies or other such bureaucracies.  Not much of anywhere else as far
> > as I can tell.
>
> Really, there's not much point in trying to parse out these various job
> titles. I suspect every single company, large or small, defines them
> differently. Not to mention the fact that individuals' particular skill
> sets will lead to somewhat different actual job activities in spite of
> what their title/formal description says.

I don't distinguish between "analyst" and "programmer." That would
only make sense if you have two people, one who is the analyst and the
other who is a "code monkey" who writes code but has to be micro-
managed in the sense of being told exactly what function to write hour-
by-hour. I've never heard of that being done. Rod may be right that it
was done in the 1960s and 1970s, but I wouldn't know. Top-down
programming was done in the 1960s and 1970s, but all of that is long
obsolete. Forth pioneered bottom-up programming, and now everybody is
doing it.

In my experience, team programming doesn't work unless the team
members are given distinct jobs. For example, at Testra I wrote MFX
the development system for the MiniForth, and the other employee used
MFX to write the motion-control program (actually, port it over from
his old 80c320 program). I never actually saw the motion-control
program's source-code (because John Hart didn't trust me not to steal
it and start my own company selling motion-control boards). There was
some overlap in regard to low-level stuff. For example, I was supposed
to write the 16-bit integer addition but I didn't know how and kept
putting it off, so the other guy wrote it. Similarly, some of what I
wrote was actually low-level aspects of the motion-control program,
which I accomplished without knowing anything about motion-control.
For the most part though, giving programmers distinct domains to work
in is the best way to go --- that way they don't step on each other's
feet.

When I was working as an IBM370 assembly-language programmer, I
sometimes had a CSR (customer-service rep) between me and the
customer, and sometimes I had to be my own CSR. I definitely preferred
to have a CSR --- those customers were all liars and cheaters --- I
didn't want to deal with that. I did the CSR thing when necessary ---
that was actually pretty similar to cab driving except that I never
got to beat anybody up.

> Some companies, of course, have a lot more hardware design, development,
> and debugging to do than those who are using only off-the-shelf
> hardware. But even in the latter class you'll see a lot of variation in
> how much involvement the "programmer" has in program requirements,
> design, etc., in addition to writing and testing code.

The reason why I'm not working at Testra anymore is because I don't
know anything about electronics. They wanted me to build boards and
test them --- I don't know anything about that though. I wasn't
prepared to be an electronics technician, and certainly not get
involved in the hardware design. I'm actually working now soldering
electronics though (I just drive the cab on Friday and Saturday), so
I'm taking a step toward learning that stuff. I still don't know
anything about electronics, but I am getting experience soldering
which is a start.

Alex McDonald

unread,
Oct 7, 2012, 7:21:54 AM10/7/12
to
On Oct 6, 3:03 pm, "Rod Pemberton" <do_not_h...@notemailnotz.cmm>
wrote:

>
> > As a software engineer, [...]
>
> We've been over this before.  There is no such thing as a software engineer.
> You're misusing the term "engineer".  The engineering college of a
> university grants engineering degrees, including electrical and mechanical
> engineering.  The liberal science and arts college of a university grants
> science degrees, including mathematics and computer science.  Programming is
> part of the LSA college degree program.  Engineers must be licensed by the
> state for every engineering field or work under a licensed engineer.  Are
> you licensed by the state?  Is your immediate manager?  If you answered
> "No." to both, then you're not an engineer.

The company I work for invests heavily in software engineers; over
four thousand of them. That's how they describe themselves, what we
call them and what the wider software industry calls them. We don't
advertise for programmers, but for software engineers.
https://careers.netapp.com/1033/ASP/TG/cim_jobdetail.asp?partnerid=25093&siteid=5100&jobid=252950.

As to your division of university colleges, how does that make a
difference? See again the job advert; "A Bachelor of Science Degree in
Electrical Engineering or Computer Science, a Master Degree, or a
PhD". Doesn't say anything about "LSA".

>
> > As a [...] writing code is one major aspect of
> > what I do.  I'd say on an average day at work, I'm probably spending
> > 75% of my time writing code.  The rest of the time, I'm also charged
> > with a variety of other responsibilities, from analysis, design,
> > managing projects, measuring progress, and so on.  Those are typically
> > not skills that a person with a strict "programmer" title has to deal
> > with, but they are essential.
>
> That's called a "programmer analyst".   It's when you are spending a larger
> percentage of your time doing analysis and design.  If you're no longer
> programming at all, then you're a "systems analyst".

These are arbitrary and old-fashioned divisions that I haven't heard
in a long time outside of bureaucracies where rank, pay and job title
are often intertwined.


Rod Pemberton

unread,
Oct 7, 2012, 7:07:21 PM10/7/12
to
"Alex McDonald" <bl...@rivadpm.com> wrote in message
news:f97ed3c4-f52f-4aaa...@o8g2000yqm.googlegroups.com...
> On Oct 6, 3:03 pm, "Rod Pemberton" <do_not_h...@notemailnotz.cmm>
> wrote:
...

> > > As a software engineer, [...]
> >
> > We've been over this before. There is no such thing as a software
> > engineer. You're misusing the term "engineer". The engineering
> > college of a university grants engineering degrees, including
> > electrical and mechanical engineering. The liberal science and arts
> > college of a university grants science degrees, including mathematics
> > and computer science. Programming is part of the LSA college
> > degree program. Engineers must be licensed by the state for every
> > engineering field or work under a licensed engineer. Are you licensed
> > by the state? Is your immediate manager? If you answered
> > "No." to both, then you're not an engineer.
>
> The company I work for invests heavily in software engineers; over
> four thousand of them. That's how they describe themselves, what we
> call them and what the wider software industry calls them. We don't
> advertise for programmers, but for software engineers.
>

In most states, it's illegal to claim you're an engineer when you're not.
It's generally a part of the State licensing laws of engineers. Check your
State's laws.

> As to your division of university colleges, how does that make a
> difference?

The college determines which degree you can earn. Engineering degrees come
from the engineering college at a university. That explanation reiterated
what was already said by me and is still quoted above. Please read before
replying.

> See again the job advert; "A Bachelor of Science Degree in
> Electrical Engineering or Computer Science, a Master Degree, or a
> PhD". Doesn't say anything about "LSA".

Mathematics and physics majors have been known to become programmers too.
So, you should probably allow those degrees too...

It says a Computer Science degree is one of the degrees accepted for the
job. That's an LSA degree. It's not an engineering degree. Someone with a
CS, cannot validly claim to be an engineer. It may be illegal too. As for
an MD or PHD, it depends on the degree. Can they all do the job? Probably,
but only one is formally trained in programming.


Rod Pemberton


Elizabeth D. Rather

unread,
Oct 7, 2012, 7:42:51 PM10/7/12
to
On 10/7/12 1:07 PM, Rod Pemberton wrote:
> "Alex McDonald" <bl...@rivadpm.com> wrote in message
> news:f97ed3c4-f52f-4aaa...@o8g2000yqm.googlegroups.com...
>> On Oct 6, 3:03 pm, "Rod Pemberton" <do_not_h...@notemailnotz.cmm>
>> wrote:
> ...
>
>>>> As a software engineer, [...]
>>>
>>> We've been over this before. There is no such thing as a software
>>> engineer. You're misusing the term "engineer". The engineering
>>> college of a university grants engineering degrees, including
>>> electrical and mechanical engineering. The liberal science and arts
>>> college of a university grants science degrees, including mathematics
>>> and computer science. Programming is part of the LSA college
>>> degree program. Engineers must be licensed by the state for every
>>> engineering field or work under a licensed engineer. Are you licensed
>>> by the state? Is your immediate manager? If you answered
>>> "No." to both, then you're not an engineer.
>>
>> The company I work for invests heavily in software engineers; over
>> four thousand of them. That's how they describe themselves, what we
>> call them and what the wider software industry calls them. We don't
>> advertise for programmers, but for software engineers.
>
> In most states, it's illegal to claim you're an engineer when you're not.
> It's generally a part of the State licensing laws of engineers. Check your
> State's laws.

"Software engineering" definitely exists, as a job title and as a
degree. According to Wikipedia, "A number of universities have Software
Engineering degree programs; as of 2010, there were 244 Campus programs,
70 Online programs, 230 Masters-level programs, 41 Doctorate-level
programs, and 69 Certificate-level programs in the United States."

>> As to your division of university colleges, how does that make a
>> difference?
>
> The college determines which degree you can earn. Engineering degrees come
> from the engineering college at a university. That explanation reiterated
> what was already said by me and is still quoted above. Please read before
> replying.

"Software engineering" is not the same as "Computer Science" which tends
to be more theoretical and academic, while software engineering tends to
focus much more on practical application: design and implementation of
applications. "Software engineering" may be offered in the College of
Engineering, but I think there's no hard and fast rule.

>> See again the job advert; "A Bachelor of Science Degree in
>> Electrical Engineering or Computer Science, a Master Degree, or a
>> PhD". Doesn't say anything about "LSA".
>
> Mathematics and physics majors have been known to become programmers too.
> So, you should probably allow those degrees too...
>
> It says a Computer Science degree is one of the degrees accepted for the
> job. That's an LSA degree. It's not an engineering degree. Someone with a
> CS, cannot validly claim to be an engineer. It may be illegal too. As for
> an MD or PHD, it depends on the degree. Can they all do the job? Probably,
> but only one is formally trained in programming.

As an employer of people writing computer programs over the last 40
years, my experience has been that there's a fairly weak correlation
between what particular degree you have (if any) and your ability to get
the project done effectively and well. Individual skills and experience
count for a lot more.

Chuck Moore does not have either a CS or SE degree. As I recall, his
degree is in Physics or Math from MIT. The best practicing application
programmer I know does not have a bachelor's degree in anything, but he
regularly debugs custom hardware that's been sent to him to program, by
reading the schematics and running tests, and writes absolutely
exquisite Forth.

Alex McDonald

unread,
Oct 8, 2012, 5:29:28 AM10/8/12
to
On Oct 7, 4:42 pm, "Elizabeth D. Rather" <erat...@forth.com> wrote:
> On 10/7/12 1:07 PM, Rod Pemberton wrote:
>
>
>
>
>
>
>
>
>
> > "Alex McDonald" <b...@rivadpm.com> wrote in message
The current maintainer of the NFS client stack in Linux was a nuclear
physicist from the University of Oslo. He too is a software engineer.

>
> 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 90045http://www.forth.com

Alex McDonald

unread,
Oct 8, 2012, 5:41:27 AM10/8/12
to
On Oct 7, 4:03 pm, "Rod Pemberton" <do_not_h...@notemailnotz.cnm>
wrote:
> "Alex McDonald" <b...@rivadpm.com> wrote in message
I read it. Again; what difference does the division make in practice?
Edinburgh University's CS is part of the Science & Engineering school.
Glasgow has a school of Computing Science.

>
> > See again the job advert; "A Bachelor of Science Degree in
> > Electrical Engineering or Computer Science, a Master Degree, or a
> > PhD". Doesn't say anything about "LSA".
>
> Mathematics and physics majors have been known to become programmers too.
> So, you should probably allow those degrees too...

We do. See my reply to Elizabeth.

>
> It says a Computer Science degree is one of the degrees accepted for the
> job.  That's an LSA degree.  It's not an engineering degree.  Someone with a
> CS, cannot validly claim to be an engineer.  It may be illegal too.  As for
> an MD or PHD, it depends on the degree.  Can they all do the job?  Probably,
> but only one is formally trained in programming.

Which one?

Brad Eckert

unread,
Oct 8, 2012, 11:18:32 AM10/8/12
to
On Saturday, October 6, 2012 3:03:17 PM UTC-7, Rod Pemberton wrote:
> One can say the same thing about you. He could say you limited your career
> because you only have a two-year community college degree instead of a
> four-year university CS degree. Once you get that degree, he can ask you
> why you didn't get a more valuable, and in-depth, MBA degree.
>
The top principal engineer at the semiconductor design group I used to work for doesn't have a college degree. But he does have almost 100 patents.

John Passaniti

unread,
Oct 8, 2012, 7:11:11 PM10/8/12
to
On Saturday, October 6, 2012 6:03:17 PM UTC-4, Rod Pemberton wrote:
> > If you're hired as a programmer, you will indeed spend
> > nearly 100% of your time writing code.
>
> That's completely untrue.

Most reasonable people don't count the time in necessary (or unnecessary) administrative or random ancillary work. Such work is a given of pretty much every job of any real responsibility. If you're going to play your usual games and count /all/ time, then you'll next probably try to count bathroom breaks, water-cooler discussions, time to find a parking spot, time for lunch, time for recovering from the food coma after lunch, etc.

You have a talent for taking what people write, ignoring the reasonable interpretation, and going straight for the most ridiculous interpretation possible. Are you this amazingly tedious in real life? If someone tells you, "I spent all day working on this problem" is your response, "that is clearly factually incorrect, the day is 24 hours long, and you slept during part of that." Duh.

> Many programmers want to just program. They don't want to
> handle the "BS" of non-programming business and corporate
> political issues. Why would they? [...]

I don't consider the various other aspects of software development I listed (and didn't list) to be "BS". Different companies have different amounts of "BS"; I've been lucky in that except for one company, my job has been largely "BS"-free. I'm sorry if the companies you've worked for had a Dilbert-like environment. That's not true of everyone.

What is being discussed here is that the common job title of "programmer" describes someone who spends most of their time (unsurprisingly) writing code. My point-- and one you don't seem to substantially disagree with-- is that software development is a (much) larger set of activities than just coding.

Hugh dismisses this. The only reasonable interpretation of what Hugh has written on the subject is that anything beyond the act of banging on the keyboard and looking at a flashing cursor is stupid and/or unnecessary work. And that might actually be true. If the programming work you've done is generating slide rules with your name on them for future post-apocalyptic generations to cherish, maybe spending time thinking about design and structure isn't necessary. Or say you want to inefficiently manage a symbol table based on a faulty and untested premise-- no need think about measuring your assumptions and proving your work has value over simpler solutions. But for the rest of us who aren't paid to slap out ad hoc solutions, things are a bit different.

Hugh's statements demonstrate that he is nothing more than the traditional definition of a programmer. And again, that's fine-- if that's what he likes and that's what he's good at, then all the more power to him. But just because he doesn't recognize the value of analysis, design, testing, maintenance, project management, and dozens of other related activities doesn't mean they don't have value.

Part of the problem here is that what experience Hugh has seems stuck somewhere in the 80's. Take for example the word "design". In the 80's, the majority of software developers followed some flavor of a waterfall methodology and "design" usually meant a discrete phase that occurred prior to any coding. Now, the only people following that kind of methodology are those who enjoy seeing projects fail (or those who must do so because of other external factors). In modern software development (pretty much everything since the mid 90's), the "design" phase is more typically incremental, spread out over the course of the project on smaller sections of the project. Any up-front design is usually limited to setting up the general architecture, patterns, and practices the rest of the development will follow. It's usually high-level stuff to keep a project on track, consistent, comprehensible, and maintainable.

Hugh doesn't understand this because he's stuck in time. When I say a word like "design" he's using a 80's sense of the word and thinks I'm talking about what the agilists call "Big Design Up Front." He's wrong of course, but he doesn't know that. Because he relishes in being just a programmer, he's not even aware that things have changed in the past 25ish years.

> > As a software engineer, [...]
>
> We've been over this before. There is no such thing
> as a software engineer.

Yep, there is. It's part of a series of job titles that broadly define the set of roles and responsibilities of various flavors of software developers. It certainly includes coding, but also includes all the other things I described that Hugh dismisses.

> You're misusing the term "engineer".

Nope. There is an *obvious* distinction between the job title and function of software engineer, and people who additionally have achieved academic certification and licensing with that title. If you don't like that such distinctions are made in the world, then you've got at least 30 years of historical precedent you'll have to change. Good luck with that.

My guess as to the origins of "software engineer" is that companies were searching for a term that meant "more than just a programmer". They noted the increased scope of roles and responsibilities engineers in other disciplines had and wanted to convey that in the job title. For example, most engineers in other disciplines are equally concerned with requirements, analysis, process, methodologies, measurement, maintenance, and so on. It isn't surprising that employers seeking candidates who saw value in these things would reuse the word "engineer" in the job title.

You of course are free to ignore this and claim that the job title of "software engineer" is invalid for one of your typically tedious reasons. But what you aren't free to ignore is that regardless of the job title, the role and responsibility of someone hired as a "software engineer" is typically larger than "programmer".

> Are you licensed by the state? Is your immediate
> manager? If you answered "No." to both, then
> you're not an engineer.

The answer for me and probably the vast majority of those who have been *given* that job title is no. Companies that are specifically looking for those that have certification as an engineer may certainly exist, but I haven't come across any in my past job searches. The advertisements for "software engineer" in the various sources (newspapers, job boards, Monster, Dice, etc.) make absolutely no requirement for certification. Take it up with them, not me if you disagree.

> That's called a "programmer analyst". It's when you are
> spending a larger percentage of your time doing analysis
> and design. If you're no longer programming at all, then
> you're a "systems analyst".

Yes, those are common terms I remember from the 80's. Maybe you and Hugh are stuck in the same time warp. Crawl out to the edge of your event horizon, you guys. 2012 is an amazing place. We don't have hover-cars yet, but otherwise, it's pretty cool.

If you want to use terms like "programmer analyst" to describe me and others like me, feel free. Our employers tend to use more modern terms that better reflect that we aren't just programmers, and aren't just analysts. Maybe terms like "programmer analyst" and "systems analyst" are still in common use in some industries, but I haven't seen that in embedded systems for years. Indeed, when we start talking about my actul job, it also includes quite a lot of stuff on the hardware side; I'm also responsible for designing and implementing digital logic in our systems.

So let me turn this around; what should my job title be in Rod's perfect and universe? I don't _just_ do programming, I don't _just_ do analysis, I don't _just_ do design, I don't _just_ do the other software activities I've listed (like managing projects and people). And on top of that, I don't _just_ do software. What ultra-precise Rod-world job title captures that? Please let me know because I need to order new business cards (there are a lot of fishbowls in local restaurants offering free lunches).

> You're belittling him because he worked for a very small company?

Certainly not! I'm belittling him because he's a twit. He appears to have worked for *one* small company in the distant past, had a very narrow role and probably minimal responsibility, and despite all this, he feels that he can expertly comment on this and related issues. If you don't see a problem with that, perhaps you need medical advice? I once did some contract work in a medical lab, so that should qualify me to dispense medical advice, right?

> Your resume seems to indicate you haven't worked for any
> large companies either. Most seem to have fewer than
> 65 employees.

Yep, and the engineering departments of those companies are even smaller; where I work now, we have just ten engineers. I'm a big fan of small companies. I like that small companies pretty much force people to wear multiple hats and that (in my experience) leads to companies where people are less parochial in their approach. In my case, it forced me to learn more about electronics and to take a wider interest into software process and methodology. The down side about working in a small company is that... you actually have to work. It's very difficult to get lost in the machine when you're the machine.

I spent a year as a sub-contractor at (then) corporate giant Kodak and hated every millisecond of it (well, except for the amazing cafeteria at their corporate headquarters). What I saw was a work environment where people became hyper-specialized into either a narrow subset of a discipline or some picayune aspect of a product. Having such depth is great... up to the point where because of your specialization you can't see beyond your own work. I was offered a job there and turned it down in a heartbeat. I would have made more money there, but while money is nice, it isn't what motivates me.

So no, I certainly don't criticize Hugh for working for a small company. I think it's great! It's the true engine of the economy! His sob story is that the company he worked for paid him badly and screwed him over. What most people do after such an experience is stand up, dust themselves off, and move on. Hugh didn't do that. I don't know why... and at this point, I don't really care.

> One can say the same thing about you. He could say you
> limited your career because you only have a two-year
> community college degree instead of a four-year
> university CS degree.

Hugh probably would say that-- he's partially attributed his own career failure to get a job in software development to the lack of a degree. But that's just an excuse. I bailed out of college for three reasons:

1) I was bored because of the pace and found I didn't get much out of it. I learn better by exploring, not by following a rigid curriculum. Different people learn differently.

2) I was making money as a TA and tutoring students taking 400-level courses at two of the four-year schools here.

3) I was given a job opportunity that paid very well, doing work that I enjoyed, and was in an industry that I loved (and still love).

You're right that not having a degree has limited my career. Specifically, I found it limited me from being hired by a tiny handful of larger companies that require such a degree. But since I had no real interest in working for those companies, it didn't matter. The companies I have chosen to work for never cared about degrees; they cared only if I could do the job and what ideas I could bring. And that's actually true for many companies. If you look at most job listings, many of them will list a B.A. or higher as a job requirement and then follow that "...or equivalent experience."

So no, I don't see how not having a degree has limited my career. I'm paid competitively, I'm doing the work I love, I'm working in an industry that I love, and I'm constantly learning and expanding my role, making myself more valuable. So where is the real limit here?

Related to this, back in the 90's, the company I worked for asked me to handle the technical interviews for new job candidates. There was one fellow who had the most amazing resume you've ever seen. When we saw it, we had to get him in for an interview, and I was shocked as during the interview (which included a simple skills assessment), he completely flubbed it. He knew lots of things, was bright, but had zero practical experience. That same interview process gave me a resume of a woman who had a doctorate degree-- in theology. We didn't expect much, but we brought her in, interviewed and tested her, and found she was amazing.

Anyone who believes that not having a degree limits you is wrong. Anyone who believes that having a degree means you can do the job is wrong. Any company that refuses to use actual skills and experience instead of academic credentials is not worth working for.

> Once you get that degree, he can ask you
> why you didn't get a more valuable, and
> in-depth, MBA degree.

Because getting a MBA has no relationship to the work I want to do. I guess it comes down to how one judges if one's career is a success. If one takes the traditional view that success is defined by climbing a corporate ladder, moving into a management role, and then spending your time waiting for retirement, then that's not a definition of success to me. That's fine for some people, but it's not what I want.

> You don't know that it's his attitude that affected
> his programming career.

Correct, but it's not hard to infer from his own words. Hugh has stated in the past that he doesn't work well in groups and sees no value in doing research. Now, if you were interviewing him for a typical position, would you find that a plus or a minus? Don't take my word for it-- you love endlessly scanning old newsgroup messages. Do that for Hugh, and compile in your own head if his attitude, skills, knowledge, and experience make him a prime candidate for anything but the lowest-level code monkey.

> It could easily be numerous unrelated life events.

Could be. Back when I first questioned the time and space efficiency of his "symtab" I remember a sob-story message he wrote about how (cue violins) that programming is the only thing that gives him joy and how he spent lots of time on it. He had other messages where he talked about how he was screwed by the company that hired him, couldn't find work after that, and so on. Gosh, I actually felt sad for the little feller. (Excuse me, I need a tissue.)

Then the little Ayn Rand in the back of my head kicks in and I don't care. Hugh offers endless excuses (he doesn't have a degree, he doesn't know anything about electronics, he can't get hired because he puts Forth on his resume, various bizarre conspiracy theory involving Elizabeth Rather, etc.). And on top of this steaming pile of nonsense, he has doubled-down on his goofy statements so many times that you need to take the base-2 logarithm to get a reasonable number.

> He could be required to live where he is to take care
> of his parents or family, or he could be injured and
> be living close to needed healthcare, or he could be
> unable to sell his house, or he could have court
> mandated locality requirements, or he might not have
> the correct degree or skills for the current market,
> or maybe his finances are so messed up that he can't
> get college loans, or maybe the environment where he
> programmed was so "toxic" he has mild "PTSD" and
> doesn't want to program for pay. You just don't know.

Don't let Occam's Razor accidentally cut you, Rod. Feel free to freely generate more speculation about what Hugh's problem is. When you're done, you might consider using Hugh's own words. That seems a more reliable indicator of reality than your ability to invent sad circumstance. Sometimes things *are* exactly as they appear.

Sorry, my inner Ayn is kicking in again: Boo fucking hoo. Hugh isn't the only person on the planet who has had to face challenges and overcome adversity. I believe that the character and worth of a person isn't defined by challenge and adversity, but by how they respond to it. Hugh responds with excuses and ignores the responses:

* Doesn't have a degree...
... but doesn't need one.

* Doesn't know about electronics...
... but doesn't get off his ass and learn.

* Can't find a job doing Forth...
... excuse, or are his skills really that specific?

* Doesn't know how to work with others...
... but refuses to believe he's not the center of the universe.

* Doesn't do research...
... which is part of the reason why symtab sucks.

That last one is probably the core of the problem. Part of the reason why people do research and study the work of others is that they want to learn. And with learning comes an implicit understanding of one's limitations. You get to see problems from new perspectives, appreciate clever solutions, and learn about problems you didn't even know existed.

Hugh doesn't know what he doesn't know. And when I and others point out what he doesn't know, his reaction isn't to go, "oh wow, I should look into that." His reaction is "you're all wrong."

The only sad thing here is that at this point, it may be too late for Hugh to turn things around. He's had nearly two decades of making excuses and he's aging at the same rate we all are. If he wanted to work for a large company, he's going to be competing against people who are younger, will work for less, and have been trained in current skills. He may have a shot at a smaller company that cares more about what he knows, but given his misanthropic attitude and lack of experience, why on earth would anyone hire him? Because he knows how to efficiently code an array defining word? Because if he runs into a complex problem that goes beyond his capabilities, he'll steadfastly ignore study and research and instead waste his employer's time with a journey of personal discovery?

Mark Wills

unread,
Oct 9, 2012, 5:09:13 AM10/9/12
to
JP: "Hugh doesn't know what he doesn't know. And when I and others
point out what he doesn't know, his reaction isn't to go, "oh wow, I
should look into that." His reaction is "you're all wrong."

More likely his reaction is on the defensive because of the
continually sarcastic, acidic tone of your missives, John?

You get back what you give. In your case, I don't think I've seen a
post from you where you exhibit any kind of tact, empathy, or
sympathy. You're clearly a clever guy. It must have occured to you
that, you know, gee, perhaps phrasing your responses in a more tactful
tone might illicit a better response, and draw that person in, towards
you, into a position where they could learn from you?

Instead, your constant combative tone puts people on the defensive.
And like I said, it's very clear that you are a clever and talented
guy. And that makes it all the more sad. Why? Because you clearly
weighed up the options and decided to go on the attack; not just with
Hugh but others too, me included in the past. It suited your
(presumably) shallow ego to go on the attack, to belittle, to
ridicule, rather than extend a friendly comment: "Hey, that Symtab
looks cool, but I'm not sure this application could benefit from that
particular algorithm. You might want to take a look at this: <web
link>. Let us know how you get on."

Sure, he could have thrown it in your face. But at least you tried to
help. I can't really think of any occasion where you've posted a
critique that was intended to help in any way. You know, to extend
some kind of common courtesy, compassion, or just a willingness to
help. You're modus-operandi is quite clear to all here. You never post
any Forth code, you lurk, waiting for a particular type of
conversation/thread to appear. You prefer the very general, high-
level, high-brow discussions on the merits of a particular programming
language or paradigm. Why? Because that's when JP gets his chance to
shine. That's when the great JP can leap up the steps into the JP
Programming Pulpit, and lecture down to his lowly CLF peons about how
they're so stupid to claim that language x is better than language y.
Hark how the mighty JP shall clense his flock with the holy water from
the JP Font of all Knowledge. And lo, thy lowly flock shall repent.
Duly cleansed and corrected.

It's very sad. I read your post above in response to Rod regarding the
attribution of titles to programmers/software engineers, and agreed
with pretty much every word you said. But the tone was once again (why
should we be surprised) the classic JP that we've all come, well,
dread, quite frankly.

I don't agree with Rod's opinion on the subject of job titles, nor
Hugh's on this occasion. However, I'd rather go for a beer with Hugh
and/or Rod any day. And that is sad. Because your clear experience,
knowledge, and intellect would be very very interesting and
stimulating. But you'd just annoy the absolute living shit out of
everyone, sipping your cocktails (because only the great un-washed
drink beer), and lecturing everyone from on high. Pretty soon the bar
would be empty, and you'd be happy. Content with a job well done.

Alex McDonald

unread,
Oct 9, 2012, 7:39:59 AM10/9/12
to
On Oct 9, 2:09 am, Mark Wills <forthfr...@gmail.com> wrote:

>
> I don't agree with Rod's opinion on the subject of job titles, nor
> Hugh's on this occasion. However, I'd rather go for a beer with Hugh
> and/or Rod any day. And that is sad. Because your clear experience,
> knowledge, and intellect would be very very interesting and
> stimulating. But you'd just annoy the absolute living shit out of
> everyone, sipping your cocktails (because only the great un-washed
> drink beer), and lecturing everyone from on high. Pretty soon the bar
> would be empty, and you'd be happy. Content with a job well done.

The likelihood of leaving the bar amused, entertained, infuriated and
delighted after a conversation with Passaniti is high. Pemberton or
Aguilar would leave me bored while they pounded on and on and on, the
tedium only to be relieved while they visited the toilet to return
their rented beer. And the ability to leave in one piece after the
inevitable disagreement is something I value highly in a drinking
partner. I'll take a highball with Passaniti any day of the week.

Mark Wills

unread,
Oct 9, 2012, 8:13:56 AM10/9/12
to
There's an oxymoron there. You can't (surely?) be delighted at being
infuriated? ;-)

Alex McDonald

unread,
Oct 9, 2012, 8:37:20 AM10/9/12
to
I see you've (re)discovered "Pemberton's Peripheral Perambulation", an
algorithm for seeking out super-literalism in colloquial
conversation.

Bernd Paysan

unread,
Oct 9, 2012, 10:44:30 AM10/9/12
to
John Passaniti wrote:

> You have a talent for taking what people write, ignoring the
> reasonable interpretation, and going straight for the most ridiculous
> interpretation possible.

Hey, Rod, here you get the same thing from a true native speaker.

John: Just do what I did: Killfile him. He's 100% trolling.

--
Bernd Paysan
"If you want it done right, you have to do it yourself"
http://bernd-paysan.de/

John Passaniti

unread,
Oct 9, 2012, 2:59:17 PM10/9/12
to
On Tuesday, October 9, 2012 5:09:14 AM UTC-4, M.R.W Wills wrote:
> JP: "Hugh doesn't know what he doesn't know. And when I
> and others point out what he doesn't know, his reaction
> isn't to go, "oh wow, I should look into that." His
> reaction is "you're all wrong."
>
> More likely his reaction is on the defensive because of the
> continually sarcastic, acidic tone of your missives, John?

You're looking at the end of history, not the start. Look back at how Hugh was initially treated in this newsgroup by myself and others. Note that my tone (and the tone of others) came only after Hugh's increasingly strident, bizarre, and unsupportable statements started to flow. Note also that as Hugh continued to make statements that were simply *wrong* (most notably on algorithms and data structures that anyone with a moment doing some Google searches would know was't true) grew increasingly angry and refused to accept simple reality.

> You get back what you give. [...]

Nice cliche'. Here's another one: It takes two to Tango.

Pretending that if it wasn't for my oh-so-mean behavior that Hugh would be all sweetness and light requires an amazing set of blinders and an active ignorance of history. But you seem to have those blinders firmly attached to your head.

When people in this newsgroup are simply wrong-- as I certainly have been-- the usual reactions are either to say, "oh, I didn't know that" or to drop the issue and move on. In either case, there is a an explicit or implicit demonstration of *learning*.

Hugh doesn't learn. He doesn't need to-- he has all the answers. He is in a small class of people who when he's told he is wrong goes completely apeshit. He can't simply can't accept it, probably because it challenges long-held beliefs. When I (and others) showed that "symtab" had both time and space efficiency problems, it certainly didn't start off with any sort of attack. If you go back in history, you'll see it was simple and mostly flat statements of fact and opinion from myself and others. But Hugh couldn't accept that he was wrong. So he dug in his heels and repeatedly doubled-down his statements to be increasingly more wrong, more bizarre, more conspiratorial.

> In your case, I don't
> think I've seen a post from you where you exhibit
> any kind of tact, empathy, or sympathy.

This is a newsgroup about programming, focused on Forth. It's a collection of facts, opinion, and experience. It's a place where (hopefully) such things can be discussed and debated. If you're looking for hugs, try elsewhere.

What is the tactful response when Hugh offers "symtab" with a slew of claims, but refuses-- FOR YEARS NOW-- to demonstrate those claims and to continue to make wrong and misleading counterclaims about competitive data structures? How would you demonstrate empathy for someone who took a completely incidental aspect of my life (that I'm gay) and try to (unsuccessfully, just like a couple others before him) to whip the crowd into a froth over that? What kind of sympathy should be shown to someone who continually (and bizarrely) attacks Elizabeth Rather with an increasingly elaborate conspiracy theory.

In fact, let's go with that last question because it's a great illustration of the real problem here. One would have to have incredibly thin skin to look at the messages from Elizabeth Rather and see in them much in the way of anything approaching mean or not-supportive. If you had to rank the people here in terms of providing solid advice that comes from years of practical experience, she would be at the top. I disagree with her on many thing, but one thing I don't do is question her integrity, her experience, her role in the history of Forth, or her skill.

Hugh does all that and more. Hugh attacks Elizabeth for the crime of never directly saying anything about "symtab" but merely saying that she valued *some* of my messages. For this, Hugh has gone on a goofy campaign against her that nobody takes seriously, but still questioning her skill, experience, and involvement in Forth.

Hugh has *that* kind of reaction with Elizabeth who has barely said anything about Hugh. So why is it at all surprising that Hugh would have a far more insane reaction against me (and others) who directly question his work?

> [...] It suited your
> (presumably) shallow ego to go on the attack, to belittle,
> to ridicule, rather than extend a friendly comment: "Hey,
> that Symtab looks cool, but I'm not sure this application
> could benefit from that particular algorithm. You might
> want to take a look at this: <web link>. Let us know
> how you get on."

WE DID. Don't lecture me on what I should have done when I (and others) did nearly exactly what you stated. I even gave him the benefit of a doubt-- after showing that the premise of "symtab" (that global frequency counts matter more than classic locality of reference) was flawed, I stated that "symtab" may be a fine algorithm for some specific use case, just not for symbol tables in general and not for Forth specifically. Hell, I even made the assumption that there *was* some use-case where "symtab" made sense and spent the better part of a day trying to come up with one. I failed, but it wasn't because I didn't try. If I had come up with some use-case that actually made sense, I was more than willing to congratulate Hugh.

I and others pointed out that his claims about the variety of ways that hash tables are implemented was somewhere between naive and wrong, and we gave plenty of references that any reasonable person would read and learn from.

> Sure, he could have thrown it in your face. But at
> least you tried to help.

How was it not helpful to suggest that he could prove his claims (and learn something important about data structures and algorithms) if he would spend no more than ten minutes instrumenting his code to measure the actual performance with an actual data set? How was it now helpful to do the analysis and visualization that I did that demonstrated with a real-world data why the core assumption of "symtab" was invalid? You go back to those messages and what you'll see are messages that were mostly flat in tone and focused on measurement. No, I didn't go out of my way to pat him on the head and go "good boy" but I assumed he was an adult who could handle constructive criticism.

Were *later* messages increasingly mean, sarcastic, acidic and so on? Yes! And that's completely warranted by *his* behavior. Use gavino as an example-- every last person in this newsgroup bent over backwards to help gavino at the start. We all patiently answered his questions. We all provided him numerous links. We all spent time carefully trying to explain what he needed to know to understand Forth. Over time, as gavino demonstrated he either doesn't care or has some other issue that prevents him from learning, the tone of those messages has increasingly become dismissive. Gosh, why would that be?

It's the same thing with Hugh. It didn't start as you describe. My first message to Hugh was not "here are the 27 reasons you're a moron." Over time, Hugh's behavior flamed up and everyone else followed suit. Did my increasingly harsh messages fan the flames? Maybe. But I certainly didn't start the fire. It's been burning in Hugh for what I guess is years, and if it wasn't me who triggered him, it would have been someone else.

> I can't really think of any occasion where you've
> posted a critique that was intended to help in any
> way. You know, to extend some kind of common
> courtesy, compassion, or just a willingness to
> help.

Then chalk it up to a character fault and ignore me.

> You're modus-operandi is quite clear to all here. You
> never post any Forth code, you lurk, waiting for a
> particular type of conversation/thread to appear.

This is a discussion group. It's not a code repository. Years ago, a lot of the code I wrote was in Forth. Now, it's in near-Forth languages that I embed into my applications, mostly as a way to get past the static tedium of C and C++. I still read here because every now and then there is news or information that I value. The notion that in order to be a participant in this newsgroup one most post code is ridiculous. We're here because we have some interest in Forth. Sometimes that interest is direct, other times it's more tangential. Nothing else is required. If you believe more is required to meaningfully participate in the discussions here, then feel free to post the minimum quota of code that is necessary for continued participation... and then enforce that across the board.

> You prefer the very general, high-level, high-brow
> discussions on the merits of a particular programming
> language or paradigm. Why? Because that's when JP gets
> his chance to shine.

Or because that's my primary interest in a discussion group like this, and it's a core interest of mine professionally.

> That's when the great JP can leap up the steps into
> the JP Programming Pulpit, and lecture down to his
> lowly CLF peons about how they're so stupid to claim
> that language x is better than language y. Hark how
> the mighty JP shall clense his flock with the holy
> water from the JP Font of all Knowledge. And lo,
> thy lowly flock shall repent. Duly cleansed and
> corrected.

Cute, but not how I think. I am a firm believer that programming languages limit and shape thought and I appreciate discussions on both the pros and cons of various languages because its at the edges that I think we learn the most about programming languages. As I do work with a large number of programming languages professionally, I don't just have opinions but experience and that is a large part of my participation here.

I like fairness in discussions. I don't think that just because the newsgroup is called comp.lang.forth that we all have to pretend that Forth is this perfect jewel that can't ever be questioned or challenged. So yes, when someone says that Forth is better than language X, I want to explore that, and if I find points of disagreement, challenge it. You can characterize such however you like. You're also free to take me at face value and not invent motivations.

> It's very sad. I read your post above in response to
> Rod regarding the attribution of titles to
> programmers/software engineers, and agreed with
> pretty much every word you said. But the tone was
> once again (why should we be surprised) the classic
> JP that we've all come, well, dread, quite frankly.

As that message was a *reply*, you might consider the source message when considering my tone. You might also consider the larger context of past discussion with Rod and how he consistently takes the most ridiculous interpretation possible of my words and then argue against them. You might also consider how Rod had made outright lies about me. Why exactly would you think my tone wouldn't be modulated by that? Why am I required to take the high road and silently dismiss *his* tone and his behavior?

> I don't agree with Rod's opinion on the subject of
> job titles, nor Hugh's on this occasion. However,
> I'd rather go for a beer with Hugh and/or Rod any
> day.

You would have to. I don't drink alcohol and hate coffee. I'm more a tea and diet soda guy.

So let's review for those playing along at home. I'm a awful person because I write mean-spirited, acidic, sarcastic messages. We can't put on the table the tone and behavior of the people I respond to; clearly how I write is independent of that and clearly I am the instigator of that behavior. Prior to my messages, Hugh was a saint and Rod wasn't pompous. It was me that turned them that way.

When I go out to socialize with friends, it's because we share a common respect for each other. I don't agree with all my friend's views and they don't agree with me all the time. That respect is based not on agreement, not on substance, and not on style. More than anything, it's based on honesty. And sometimes honesty is not all warm hugs and fuzzy statements. Sometimes, the best thing you can do to a friend is say, "you are wrong."

Brad Eckert

unread,
Oct 9, 2012, 3:03:50 PM10/9/12
to
On Monday, October 8, 2012 4:11:12 PM UTC-7, John Passaniti wrote:
>
> Hugh doesn't know what he doesn't know. And when I and others point out what he doesn't know, his reaction isn't to go, "oh wow, I should look into that." His reaction is "you're all wrong."
>
Just be glad you're not stuck in the Hugh universe. He's an interesting case study isn't he? I've seen Hugh make some useful points here, which is an improvement over the genuine trolls.

Marcel Hendrix

unread,
Oct 9, 2012, 3:07:09 PM10/9/12
to
Mark Wills <forth...@gmail.com> writes Re: STATEless Forths
[..]
> You know, to extend
> some kind of common courtesy, compassion, or just a willingness to
> help. You're modus-operandi is quite clear to all here.

Unfair. John is prepared to help anybody with a genuine question or
problem, as I have personally experienced on a number of occasions. The
thing is, he doesn't seem to be inclined to help posters with a "certain
profile." I am not going to tell you what that 'certain profile' is,
but if you stick around CLF long enough, you will start recognizing
a pattern.

Now, most long time residents of CLF simply ignore posters with that
'special something,' but John is unusual in the sense that he takes
pleasure in extensively and repeatedly pointing out the obvious.
I say 'pleasure,' but it could be that others here would consider
calling it 'taking social responsibility.'

> However, I'd rather go for a beer with Hugh
> and/or Rod any day.

You know, I think you seriously mean it.

[..]

-marcel

John Passaniti

unread,
Oct 9, 2012, 3:13:35 PM10/9/12
to
On Tuesday, October 9, 2012 10:44:30 AM UTC-4, Bernd Paysan wrote:
> Hey, Rod, here you get the same thing from a true native speaker.

I don't think that you or I are the first people in this newsgroup (and likely in Rod's life) that have accused him of trying to win arguments based solely on the ability to take the most ridiculous, most pedantic, most hyper-literal interpretation of words.

It's a strategy that works great to fill the silence between conversation. It works because of the inherent ambiguity in some English words and the fact that most people speak/write colloquially and rely on shared understanding, not ultra-precise use of language.


John Passaniti

unread,
Oct 9, 2012, 3:22:56 PM10/9/12
to
On Tuesday, October 9, 2012 3:03:50 PM UTC-4, Brad Eckert wrote:
> Just be glad you're not stuck in the Hugh universe.
> He's an interesting case study isn't he? I've seen
> Hugh make some useful points here, which is an
> improvement over the genuine trolls.

When Hugh is on the meds and sticks to talking about Forth and not about the black helicopters that Elizabeth Rather has orbiting his home, I sometimes find agreement. And that shouldn't be surprising; I've expressed some of the same ideas over the years. I for example think that Forth needs to have a standard library that takes the best practices of experts (and no Anton, that's not me) in providing a foundation. I don't think his "novice" library is that library; it's too personal and focused on a singular notion of efficiency.

There are other examples, but really, it's not important. When I've agreed with Hugh, I've written such. Too bad it's overwhelmed by the rest.

Paul Rubin

unread,
Oct 9, 2012, 3:31:21 PM10/9/12
to
John Passaniti <john.pa...@gmail.com> writes:
> as Hugh continued to make statements that were simply *wrong*

http://xkcd.com/386

> [225 other lines snipped]

Elizabeth D. Rather

unread,
Oct 9, 2012, 3:45:58 PM10/9/12
to
Good one. I love xkcd!

Rod Pemberton

unread,
Oct 10, 2012, 3:53:10 AM10/10/12
to
"John Passaniti" <john.pa...@gmail.com> wrote in message
news:b93b7ce7-4a7a-4b9d...@googlegroups.com...
On Saturday, October 6, 2012 6:03:17 PM UTC-4, Rod Pemberton wrote:
> > > If you're hired as a programmer, you will indeed spend
> > > nearly 100% of your time writing code.
>
> > That's completely untrue.
>
> Most reasonable people don't count the time in necessary
> (or unnecessary) administrative or random ancillary work.

So, why did you do so in your initial statement of your job
being more than just programming? That makes no sense.

> Such work is a given of pretty much every job of any real
> responsibility. If you're going to play your usual games and
> count /all/ time, then you'll next probably try to count
> bathroom breaks, water-cooler discussions, time to find a
> parking spot, time for lunch, time for recovering from the food
> coma after lunch, etc.

I see you're playing your usual game of attempting to change
what you said - after the fact. Why don't you spend more time
*thinking* about what you say means before you post?

> You have a talent for taking what people write, ignoring the reasonable
> interpretation, and going straight for the most ridiculous interpretation
> possible.

No, I hold people to 1) the truth and 2) what they stated. You, and a few
others like Bernd, attempt to change what you state *after the fact* once
you realize that you've backed yourself into a corner. You specifically
will snip out all your original comments in the reply in an attempt to hide
them. I've previously mentioned to you that all you have to say is you
mispoke or clarify. You choose to stick to your initial incorrect
statements and so get angry when you can't prove them correct, after the
fact. Bernd goes into circular arguments, as demonstrated recently by me
again.

> > Many programmers want to just program. They don't want to
> > handle the "BS" of non-programming business and corporate
> > political issues. Why would they? [...]
>
> I don't consider the various other aspects of software development
> I listed (and didn't list) to be "BS".

Fine. I didn't say you did.

> My point-- and one you don't seem to substantially disagree with-- is
> that software development is a (much) larger set of activities than just
> coding.

Yes.

> Hugh dismisses this.

The fact that he dismisses it doesn't mean he isn't doing it. Obviously, he
has to think about how to implement a program's tasks in order to code it.
That constitutes simple analysis and design. Obviously, he has to test and
maintain the program in order for it to work and continue to do so. So,
he's doing at least four of the things you've claimed he isn't doing, albeit
at a basic level. [snipped, they were further below]

> The only reasonable interpretation of what Hugh has
> written on the subject is that anything beyond the act of banging
> on the keyboard and looking at a flashing cursor is stupid and/or
> unnecessary work.

This is a foolish claim.

> [far more politely than normal, bash of Hugh]

...

> > You're belittling him because he worked for a very small company?
>
> Certainly not! I'm belittling him because he's a twit.

If you want to know why people hate you, reread that insult. Maybe, he
should belittle you because you're a twit.

> He appears to have worked for *one* small company in the distant
> past, had a very narrow role and probably minimal responsibility,
> and despite all this, he feels that he can expertly comment on this
> and related issues. If you don't see a problem with that, perhaps
> you need medical advice? [...]

Is there a double standard here?

Above, you criticize me for apparantly being too literal or pedantic,
and here you criticize Hugh for not being literal and pedantic enough.

Hugh needs to express precise and accurate "expert" commentary for you,
but Rod needs to accept imprecise and inaccurate "colloquial" conversation
from you.

WTF? Do you recognize your irrationality? What about when you reread it?

Just how exactly are we to know when to apply the non-literal and
non-pedantic requirements versus when to apply the literal and pedantic
requirements needed to satiate your distorted reality?

> > You don't know that it's his attitude that affected
> > his programming career.
>
> Correct, but it's not hard to infer from his own words.
...

> Hugh has stated in the past that he doesn't work well in groups [...]

Which programmer engineer, chemist, physicist, mathematician does? None do.
They're all introverts. They all deal with ideas or things, not people.
They don't like dealing with people. Of course, they're all forced to lie
because hiring departments always want: 1) team players, and 2) employees
who fit the corporate culture. Once they get past the hiring department,
then they can reveal to management what type of job they really want.

If he wanted to deal with people, he'd been in marketing, human resources,
or management.

> [...] and sees no value in doing research.

Many employers want the employees to do what they're told: nothing more,
nothing less. Admittedly, that's more of a factory environment, but it
still goes for programming too. In one case, I remember being very
hostilely scolded for spending time coding a few programs my manager didn't
ask for which dramatically reduced my work and improved my productivity.
It took a while for him to come around.

> Now, if you were interviewing him for a typical position, would
> you find that a plus or a minus?

Both appear to be a plus to me...

> Do that for Hugh, and compile in your own head if his attitude,
> skills, knowledge, and experience make him a
> prime candidate for anything but the lowest-level code monkey.

A large company I worked for had a entire floor of programmers, maybe over
200 people. A small company I worked for had exactly one. He programmed
the microcontrollers and DSPs for dozens of products. When the engineers
changed the DSP to a different one, he rewrote all the DSP code.

> > It could easily be numerous unrelated life events.
> [...]
>Then the little Ayn Rand in the back of my head kicks in and I don't care.

But, you bring it up as frequently as Hugh brings up his sob story. If you
don't care, why do you bother bringing it up repeatedly? It seems to just
be a pretext for you to trash him.

> Hugh offers endless excuses [...]

Every emotional person I've known is like that. They still cope with their
emotions, with harsh reality, with an average IQ, and manage get a bunch
stuff done.

> [...] various bizarre conspiracy theory involving Elizabeth Rather, etc.

I take most of those as a form of humor. Some don't even seem to be
actually directed as Ms. ER but to an imaginary foe: "the gods of Forth", of
which Ms. ER is the only one he has access to.

> Don't let Occam's Razor accidentally cut you, Rod. Feel free to
> freely generate more speculation about what Hugh's problem is.

You initiated the speculation. I was pointing out your speculation could be
specious. You certainly thought mine was. Why isn't yours?

> When you're done, you might consider using Hugh's own words.
> That seems a more reliable indicator of reality than your ability to
> invent sad circumstance.

I agree. So, why did you speculate on the "failure" of his career?

Wow, now you're doing the "Bernd-Circular-Argument" thing too!

> That last one is probably the core of the problem.

A few snipped sentences ago you didn't care. What changed?
Oh, I almost forgot: continue to trash Hugh ...

> Part of the reason why people do research and study the work
> of others is that they want to learn. And with learning comes
> an implicit understanding of one's limitations. You get to see
> problems from new perspectives, appreciate clever solutions,
> and learn about problems you didn't even know existed.

That's pure speculation. And, it's incorrect too. Learn some
psychology before you make such claims. MBTI (psychology)
indicates that only a small percentage of people are
interested in learning and knowing.

> Hugh doesn't know what he doesn't know.

Isn't that true of anyone? Or, is it implied that the phrase is only true
for a higher IQ individual than Hugh? I.e., are you belittling or
patronizing Hugh again?

> And when I and others point out what he doesn't know, his
> reaction isn't to go, "oh wow, I should look into that."
> His reaction is "you're all wrong."

So? People can only understand what their intellect allows them too. If a
complete stranger, a physicist with a genius level IQ, accosts you, and told
you were wrong about something you knew was true, would you believe him? Of
course, you wouldn't. You wouldn't say "oh wow, I should look into that"
either. As far as you know, the guy is mentally impaired, possibly
homeless, a religous lunatic, or, at best, of average IQ. You're arguing
with Hugh from the perspective that you're the well known and well regarded
genius, when you're basically a total stranger. Since you've apparently
never actually posted any Forth here, how can he confirm you're good at it?
I'm not good at Forth, yet I know who here posts decent Forth and who
doesn't. Does this make any sense to you?


Rod Pemberton



Rod Pemberton

unread,
Oct 10, 2012, 4:00:59 AM10/10/12
to
"John Passaniti" <john.pa...@gmail.com> wrote in message
news:0d9860bf-08ad-42d1...@googlegroups.com...
> On Tuesday, October 9, 2012 5:09:14 AM UTC-4, M.R.W Wills wrote:
...

> > [...]
> Hugh doesn't learn.

Get over your bash Hugh fetish already John.

> > In your case, I don't
> > think I've seen a post from you where you exhibit
> > any kind of tact, empathy, or sympathy.

I agree with Mark.

> This is a newsgroup about programming, focused on Forth.
> It's a collection of facts, opinion, and experience. It's a place
> where (hopefully) such things can be discussed and debated.

You don't ever post anything Forth related John.

> > You're modus-operandi is quite clear to all here. You
> > never post any Forth code, you lurk, waiting for a
> > particular type of conversation/thread to appear.

I agree with Mark.

> This is a discussion group.

Yes, it is! OMG, you got one thing correct.

So, do you *EVER* intend to discuss *Forth* here, John?

We know you can discuss the bashing of Hugh, Mark, me, and numerous others.

> The notion that in order to be a participant in
> this newsgroup one most post code is ridiculous.

True. Other than the use of the word "Forth", where is the discussion of
Forth in this post of yours? I don't see any.

> We're here because we have some interest in Forth.

True. Although, you seem more interested in trashing people.

> Sometimes that interest is direct, other times it's more tangential.
> Nothing else is required. If you believe more is required
> to meaningfully participate in the discussions here, then feel free to
> post the minimum quota of code that is necessary for continued
> participation... and then enforce that across the board.

This is not a moderated newsgroup.

> > You prefer the very general, high-level, high-brow
> > discussions on the merits of a particular programming
> > language or paradigm. Why? Because that's when JP gets
> > his chance to shine.
>
> Or because that's my primary interest in a discussion group
> like this, and it's a core interest of mine professionally.

See comp.lang.misc.

> You might also consider the larger context of past
> discussion with Rod and how he consistently takes
> the most ridiculous interpretation possible of my words
> and then argue against them.

Please stop being ludicrous or stupid ...

> You might also consider how Rod had made outright
> lies about me.

I've never lied about you.

> Why exactly would you think my tone wouldn't be modulated
> by that? Why am I required to take the high road and silently
> dismiss *his* tone and his behavior?

Ah... So, you don't _ever_ recall totally f*cking trashing me
out-of-the-blue for no reason? Ok. You keep on pretending
to be a sweet innocent little angel or victim instead of the
verbally abusive bully you are. You're seeing how far that gets
you. People here hate you. Some of them are finally standing
up to you too.

> Prior to my messages, Hugh was a saint and Rod
> wasn't pompous. It was me that turned them that way.

1) I thought you didn't care. That's the Ayn Rand in you ... Or, is that
on a switch that you can turn on and off at will?
2) You're supposedly here because you're interested in Forth. Despite that,
you never discuss Forth with anyone. Lua, Perl, ...
3) Why are you _so_ focused on verbally abusing others? According to you,
you've a great job and excellent skills. You shouldn't need to waste your
valuable time doing that.


Rod Pemberton


Hugh Aguilar

unread,
Oct 10, 2012, 10:09:48 PM10/10/12
to
On Oct 9, 12:06 pm, m...@iae.nl (Marcel Hendrix) wrote:
> Mark Wills <forthfr...@gmail.com> writes Re: STATEless Forths
In this thread we have Marcel Hendrix posting my code with my name
removed from the copyright notice:
http://groups.google.com/group/comp.lang.forth/browse_thread/thread/c0fe67c350a5cec3
Later on Marcel said about my algorithm: "I don't know what it is
designed to do."
Now he is an expert on "taking social responsibility!" That program,
and all my code mentioned in the thread, is now in the novice package
(don't follow the link given in the thread as that no longer exists)
--- not including the original Factor program that the Forth program
was ported from, although I think that is still available in the
Factor code repository and I have it on my own computer somewhere.

That is actually a pretty interesting thread. This is the same thread
where Stephen Pelc claimed that it was necessary for a cross-compiler
to simulate the target processor at compile-time. Anton Ertl says this
about me: "I think in this case the lack of understanding is an
individual failure
and not a failure of the standard." Of course, now I've abandoned
Forth-200x and I'm writing Straight Forth which I intend as a
competing standard --- I still consider ANS-Forth to be a failure 3
years later.

I recommend that everybody reread that thread. I could have pretty
much given up on comp.lang.forth at that time --- although it seems
impossible, communication has only gone down hill since then --- that
thread largely contains everything that comp.lang.forth means.

P.S. Rod and Mark are welcome to join me for beer any time that you
may be in Phoenix. I know some good Mexican restaurants. :-)
0 new messages