Post by Dave PearsonFamiliarity with Clipper has nothing to do with it, it's about noticing the
number of implementations that makes me think a little differently. Clipper
seems a little different from those other offshoots of that trunk in that
there are multiple independent compiler implementations.
Maybe yes and maybe no.... Sure there have been products that we would
think were built from Clipper... that's a valid point.... more so than
dBASE and Fox for sure! But the child products are different enough that
you may even consider them different languages. dBASE ( DBL ) for example
has locals/statics/codeblocks/classes... etc.... but it's different enough
to be considered it's own language.
But would you not agree that DBL is one step along in the evolution of that
part of the evolutionary tree? That it borrowed stuff from another part of
the tree (in this case it would seem that it borrowed heavily from Clipper)
is interesting but I don't think it detracts from the point of view that
sees a family called Xbase and identifies parts of that family of languages
as languages in their own right and with their own names.
Take Lisp as another (richer and older) example. Today, right now, there are
many and varied languages which are, by some, seen as been part of the Lisp
family of languages. Common Lisp, elisp and scheme are probably the most
recognisable members of that family. There's also Dylan, which is very much
related but, on the surface, looks very different. Arc's coming one day in
the future (I'm not holding my breath). Then there are the languages that
aren't quite languages but might be, such as rep; it started life as
something that was more or less an elisp implementation but, these days,
it's mutated into something that is more or less a scheme implementation.
All of the above are in some way a descendant of Lisp 1.5. It's a pretty
muddled family history and it isn't always easy to put your finger in what's
a language and what isn't but, at the same time, you can generally speak in
terms of Common Lisp and Scheme being languages and people tend not to
worry. Indeed, these days, if you say Lisp it can be assumed that, by
default, you're talking about ANSI Common Lisp. And, yet, at the same time,
people can be happy that Lisp means any language with lots of "annoying and
scary parentheses".
Post by Dave PearsonAnother case in point.... take a Clipper programmer ( either Summer 87 or
5.x ) that has never used a third party product, now put him in front of
some Clipper/FiveWin code...
Take a C++ programmer that has never used a third party product, now put him
in front of Microsoft's or Borland's offerings with all those bells and
whistles. Again, I don't think it's helpful to start to confuse a
programmer's experience and knowledge with what the core language makes
possible.
Post by Dave Pearsonor better yet.... VO code and have him make a
change.... or even describe exactly what is going on.
I'm not sure I'd actually include VO in the set of implementations that I'd
call "Clipper compilers". There's no doubt that its lineage descends from
Clipper, but...
Post by Dave PearsonSure he'll recognize
the structures and be able to explain parts of it.... but saying that any
Clipper programmer can sit right down and be comfortable with VO code is a
leap of faith <g>.
It's also a red herring IMO.
Post by Dave PearsonIf both Clipper and VO were the same "language", you
would think you could interchange programmers.
Right. Is somebody saying that Clipper and VO are the same language? But,
even if they were, don't you recognise that you could conduct the same
exercise with other languages such as C++? Throw in enough extras and you're
going to make life interesting for someone who only knows the bare language.
Remember how, in the days of 3.0, Borland added quite a few Windows specific
bits to the language itself? IIRC Microsoft did something similar but
different. It's hardly a revelation that someone can know a language but not
know a full development environment and support structure based around that
language.
Post by Dave PearsonI feel much more comfortable describing the language as xbase and the
implementation Clipper, or VO, or Harbour, or Xbase++, dBASE, Fox etc.
.... if not..... tell me exactly what you feel the common thread is that
makes __Clipper__ __Clipper__.... it's not the pre-processor / locals /
statics / codeblocks... dBASE for example has all of that... so what would
it be???
If you can take some reasonably clean Clipper code, pre-processor tricks,
code block tricks, etc, and throw it at the current incarnation of dBase
without much worry then, perhaps, dBase has mutated into a Clipper compiler?
I think the point here is that a language isn't just defined by a standard
or by a tick list of sorts; a language can be more than the sum of its
parts. This discussion has happened many times before and it always seems to
hinge on either product naming and/or trademark issues or individual
features or facilities. I think that, in part, a language can also be
defined by a community and how it communicates via code. While I acknowledge
your discomfort in regard to the idea of Clipper as a name of a language --
something that names an area on a wider map of the Xbase world -- I do find
it a little odd that you feel that discomfort. From where I'm sat, and I
don't think I'm alone here, Xbase, DBL *and* Clipper all exist, just like
Lisp, Common Lisp and Scheme all exist.
The main thrust being, if someone is only comfortable with programming in
"Clipper" it doesn't have to follow that they're only capable of producing
DBF-using DOS (or, I guess, Win16) based solutions (which is where this
discussion about "Clipper the product" vs "Clipper the language" sprang
from) and, moreover, it needn't be suggested that that's all their capable
of because they're happy to acknowledge that Clipper is a name used for a
language that is a common base for a handful of different compiler
implementations.
--
Dave Pearson | OSLib - Timeslice release functions.
http://www.davep.org/ | eg - Norton Guide reader for Linux.
http://www.davep.org/clipper/ | weg - Norton Guide reader for Windows.
http://www.davep.org/norton-guides/ | dgscan - DGROUP scanner for Clipper.