"Mike Tuersley" wrote
>> Having started over a decade ago with LISP, I'd agree
>> with your case *if* you said AutoLISP. However you
>> started VLISP which is ridiculous. VLISP is a "wrapper"
>> to mimic vba so you might as well just learn vba.
That's not a fair statement at all. If you really believe
that, you don't know very much about Visual LISP.
For simple scripting of a series of AutoCAD commands
using parameters derived from some calculations, LISP
is still the undisputed champ. Two or three lines of
LISP that computes some values and scripts various
AutoCAD commands, is equivalent to pages of VBA code,
complete with hidious kludges and hacks.
Many automation tasks in AutoCAD do not need or
benefit from dialog boxes. If that were not the case,
many more basic AutoCAD commands would be dialog-
based, but the fact is that most of them aren't.
Sorry, but your entire perspective is skewed. We are not
all aspiring developers. Many just need to do a little
scripting and automation of existing AutoCAD commands
to achieve their objectives.
>> Most people learn it faster since its object oriented.
Based on that, I have to wonder if you truly know what
'object oriented' really is, or means.
From software engineering perpspective, VBA is not
object oriented at all. It is a programming langauge
that was designed to easily script things that are by
design, made to *appear* as objects, from the VBA
client's perspective.
In all other ways, there are no such thing as real
objects in VBA. That is, objects that support the
fundamental characteristics of OOP (polymorphism,
inheritence, etc.).
The fact is that the biggest hurdle VBA programmers
have transitioning to an Object-oriented API like .NET,
is that because it is really object oriented, they are
completely lost, confused and bewildered by it, like
fish out of water.
To wit, you yourself were operating under the flawed
presumption that the way to solve the problem of no
pallet activation events was via 'subclassing' (which
is the VB programmer's ultimate hack). When in fact,
the solution was easily arrived at by simply overriding
a virtual protected method in the base class (huh?).
--
Message was edited by: Discussion Admin