Author Topic: Can VBA do Everything that Vlisp can?  (Read 9717 times)

0 Members and 1 Guest are viewing this topic.

Dave R

  • Guest
Re: Can VBA do Everything that Vlisp can?
« Reply #30 on: November 11, 2008, 08:05:46 AM »
Revit ships with VSTA, so it's not too much of a stretch to believe that AutoCAD will eventually include it as well.  I haven't heard it straight from the horse's mouth yet, though.

Thanks for the info Chuck. Hopefully Autodesk will let us know well before the switch actually happens.

Glenn R

  • Water Moccasin
  • Posts: 1932
  • What idiot child of married cousins wrote this?!
Re: Can VBA do Everything that Vlisp can?
« Reply #31 on: November 11, 2008, 11:54:37 AM »
VB has been retired by MS -> welcome to VB.NET.

It makes sense that they will retire VBA as well -> welcome VSTA.

The model is pretty much the same - MS licenses VBA to app developers (Autodesk includes it in AutoCAD etc.) for the app developers to enable 'scripting' of their application. MS is not supporting VBA on 64 bit, which is the way computing is heading and Adesk is providing a 'fix' that makes it operate in a separate 32 bit process. This is akin to an external VB exe controlling AutoCAD - VERY, VERY slow.

VSTA will be licensed by Autodesk and included in AutoCAD in much the same way that VBA is now (with in-built IDE etc. etc.)

Investing in either autolisp/odcl and/or .NET now would be a wise thing ;)
Me

sinc

  • Guest
Re: Can VBA do Everything that Vlisp can?
« Reply #32 on: November 13, 2008, 06:04:31 PM »
Another question would be: what can C# / VB.net do that AutoLISP / VisualLISP / OpenDCL can't do?

The big difference is that with .NET, you have the entire .NET framework available.

Net result is that it can take far less time to develop practically anything in .NET than in VBA or Lisp.  It also tends to be far more readable and maintainable than, say, a Lisp program, which can save more time down the road, if you ever revise your code.  This means it is much easier to write much more complex things with .NET than with Lisp, or even with VBA.

The .NET savings, however, are proportional to the complexity of the task.  There are some simple tasks where Lisp is better than .NET.  In fact, I tend to think of Lisp as "Autodesk's macro language" these days.  But for pretty much anything else, .NET is superior.

Unfortunately, with a rich framework, you also have a lot to learn.  Your effectiveness with the .NET framework is proportional to your familiarity with the framework.  Luckily, the .NET framework can be used from a variety of programming languages, though, so you can use your .NET knowledge with a wide variety of programming languages.

dgorsman

  • Water Moccasin
  • Posts: 2400
Re: Can VBA do Everything that Vlisp can?
« Reply #33 on: November 13, 2008, 07:43:20 PM »
Another question would be: what can C# / VB.net do that AutoLISP / VisualLISP / OpenDCL can't do?

The big difference is that with .NET, you have the entire .NET framework available.

Net result is that it can take far less time to develop practically anything in .NET than in VBA or Lisp.  It also tends to be far more readable and maintainable than, say, a Lisp program, which can save more time down the road, if you ever revise your code.  This means it is much easier to write much more complex things with .NET than with Lisp, or even with VBA.

The .NET savings, however, are proportional to the complexity of the task.  There are some simple tasks where Lisp is better than .NET.  In fact, I tend to think of Lisp as "Autodesk's macro language" these days.  But for pretty much anything else, .NET is superior.

Unfortunately, with a rich framework, you also have a lot to learn.  Your effectiveness with the .NET framework is proportional to your familiarity with the framework.  Luckily, the .NET framework can be used from a variety of programming languages, though, so you can use your .NET knowledge with a wide variety of programming languages.

You're kidding about the "practically anything"... right?  Writing anything short of a major application is going to take longer and a *lot* more code than LISP, and be unreadable to anybody without a .NET IDE installed (I doubt anybody these days is writing .NET -based code in a text editor).  There is also legacy issues to consider - who is going to look after the code when you aren't there?  How easy is it to get somebody who can do .NET vs. somebody who can do LISP?  Will you have to hire in a professional programmer just to keep your system running?  How easy is it to lose the source code?  How easy is it to deploy to users and keep them all up to date?  What about compatibility with each new version (very important with the yearly release cycle)?

Yeah, .NET is perfect for the big complex stuff but doesn't make much sense for most of the typical automation tasks a company will need.
If you are going to fly by the seat of your pants, expect friction burns.

try {GreatPower;}
   catch (notResponsible)
      {NextTime(PlanAhead);}
   finally
      {MasterBasics;}

sinc

  • Guest
Re: Can VBA do Everything that Vlisp can?
« Reply #34 on: November 13, 2008, 08:21:50 PM »
I don't really understand most of your complaints...

There are a number of free IDEs.  The code is often a lot more readable and maintainable than a lot of CADR CAR MAPCAR labyrinths with esoteric DXF manipulations.  Don't know about how easy it is to find programmers for one vs. the other...  Haven't lost any source code yet...  Deploying to users is no harder than deploying Lisp...  Some .NET code can be compiled to run on any version of Autocad after a certain year, without needing to be recompiled...

In my experience, a .NET language works better than Lisp for all but the simplest tasks, so not sure why you insist it doesn't make sense.

But it does take some effort to learn the .NET framework.  But since it is so widely-used, .NET experience seems to be getting rather common, from what I've seen.  And the .NET framework often saves huge amounts of time compared to Lisp programmers, who often spend lots of time writing relatively low-level stuff that is already there in .NET.

tjr

  • Guest
Re: Can VBA do Everything that Vlisp can?
« Reply #35 on: November 14, 2008, 01:10:55 AM »
Another question would be: what can C# / VB.net do that AutoLISP / VisualLISP / OpenDCL can't do?

The big difference is that with .NET, you have the entire .NET framework available.

Net result is that it can take far less time to develop practically anything in .NET than in VBA or Lisp.  It also tends to be far more readable and maintainable than, say, a Lisp program, which can save more time down the road, if you ever revise your code.  This means it is much easier to write much more complex things with .NET than with Lisp, or even with VBA.

The .NET savings, however, are proportional to the complexity of the task.  There are some simple tasks where Lisp is better than .NET.  In fact, I tend to think of Lisp as "Autodesk's macro language" these days.  But for pretty much anything else, .NET is superior.

Unfortunately, with a rich framework, you also have a lot to learn.  Your effectiveness with the .NET framework is proportional to your familiarity with the framework.  Luckily, the .NET framework can be used from a variety of programming languages, though, so you can use your .NET knowledge with a wide variety of programming languages.

You're kidding about the "practically anything"... right?  Writing anything short of a major application is going to take longer and a *lot* more code than LISP, and be unreadable to anybody without a .NET IDE installed (I doubt anybody these days is writing .NET -based code in a text editor).  There is also legacy issues to consider - who is going to look after the code when you aren't there?  How easy is it to get somebody who can do .NET vs. somebody who can do LISP?  Will you have to hire in a professional programmer just to keep your system running?  How easy is it to lose the source code?  How easy is it to deploy to users and keep them all up to date?  What about compatibility with each new version (very important with the yearly release cycle)?

Yeah, .NET is perfect for the big complex stuff but doesn't make much sense for most of the typical automation tasks a company will need.
AutoLisp is no easier for things slightly more complex than a macro than C# is. In fact C# makes things 100000x easier to perform simple tasks like display a treeview. Can you even do that in AutoLisp without using a 3rd party tool like objectdcl?

The one thing people fail to realize when they grasp at the "autolisp can do whatever X can do" straws is AutoLisp knowledge is completely useless outside of the AutoCAD world. From what I understand it's not even comparable in features to modern common lisp or scheme.

dgorsman

  • Water Moccasin
  • Posts: 2400
Re: Can VBA do Everything that Vlisp can?
« Reply #36 on: November 14, 2008, 02:41:20 PM »
No arguments to any of the above, aside from the fact I'm looking at the comparison from the standpoint of a CAD adiministrator, not a dedicated programmer.  Most engineering companies don't or won't have a dedicated programmer on staff and put the AutoCAD customization onto the same person who is responsible for...

- knowing all the little corners of AutoCAD, including known bugs and "gotchas"
- setting up and enforcing standards
- data entry for all the programs (for my part, that means piping specs, data files for piping, steel, electrical programs)
- adjusting the support system to handle differing requirements from various clients
- basic support for supporting programs such as Word and Excel
- evaluating new software and new releases
- planning and executing upgrades and licensing
- knowing the basics of the profession (I need to be part stress engineer, part materials engineer, part piping designer, part civil/structural designer, part IT professional, the list goes on)

... and a bunch of other miscellaneous stuff.  Not a lot of time left over to be learning a dedicated programming language such as C#.  The only reason I have gotten as far as I have is with previous programming experience with C, Java, and machine code (after which LISP is a breeze).  Trying to justify to management the hours spent on converting all of the existing support code would be a hard row to hoe as well especially with a downturn in the economy and the reluctance to spend money for little realized returns.

The problem as I see it is one of time management and diminishing returns.  As both AutoCAD and programming tools increase in complexity the amount of time required to be proficient at both increases as well.  Eventually a "critical mass" is reached where people can only be proficient at one or the other.  I'm sure we would have no problems finding .NET programmers, but their knowledge of the ins and outs of AutoCAD *and* the industry we are in *and* .NET programming as it applies to AutoCAD?  Highly unlikely - it took us 3-4 months just to find somebody with sufficient AutoCAD experience (not even programming) to back me up.  In fact, I see this as the reason why AutoCAD products are on a slow decline in terms of useability.  The programmers that write the software do not have the time to gain the industry experience of actually using the product, while those that are very familiar with using the product in the chosen industry don't have the time to get proficient at the programming tools used to customize AutoCAD to the nth degree.

I still maintain, again from the standpoint of a CAD administrator rather than a programmer, that for most of the common automation tasks needed by engineering companies LISP is the better tool in terms of time spent developing, deployment, and upkeep.  .NET is better for large, full-service-program type automation where the company is unwilling to spend money on a product developed by a software company or no product is available.
If you are going to fly by the seat of your pants, expect friction burns.

try {GreatPower;}
   catch (notResponsible)
      {NextTime(PlanAhead);}
   finally
      {MasterBasics;}

Bryco

  • Water Moccasin
  • Posts: 1850
Re: Can VBA do Everything that Vlisp can?
« Reply #37 on: November 14, 2008, 04:54:36 PM »
If the help on net was as good as that in vba net would be a lot easier to learn.

tjr

  • Guest
Re: Can VBA do Everything that Vlisp can?
« Reply #38 on: November 14, 2008, 07:14:12 PM »
No arguments to any of the above, aside from the fact I'm looking at the comparison from the standpoint of a CAD adiministrator, not a dedicated programmer.  Most engineering companies don't or won't have a dedicated programmer on staff and put the AutoCAD customization onto the same person who is responsible for...

- knowing all the little corners of AutoCAD, including known bugs and "gotchas"
- setting up and enforcing standards
- data entry for all the programs (for my part, that means piping specs, data files for piping, steel, electrical programs)
- adjusting the support system to handle differing requirements from various clients
- basic support for supporting programs such as Word and Excel
- evaluating new software and new releases
- planning and executing upgrades and licensing
- knowing the basics of the profession (I need to be part stress engineer, part materials engineer, part piping designer, part civil/structural designer, part IT professional, the list goes on)

... and a bunch of other miscellaneous stuff.  Not a lot of time left over to be learning a dedicated programming language such as C#.  The only reason I have gotten as far as I have is with previous programming experience with C, Java, and machine code (after which LISP is a breeze).  Trying to justify to management the hours spent on converting all of the existing support code would be a hard row to hoe as well especially with a downturn in the economy and the reluctance to spend money for little realized returns.

The problem as I see it is one of time management and diminishing returns.  As both AutoCAD and programming tools increase in complexity the amount of time required to be proficient at both increases as well.  Eventually a "critical mass" is reached where people can only be proficient at one or the other.  I'm sure we would have no problems finding .NET programmers, but their knowledge of the ins and outs of AutoCAD *and* the industry we are in *and* .NET programming as it applies to AutoCAD?  Highly unlikely - it took us 3-4 months just to find somebody with sufficient AutoCAD experience (not even programming) to back me up.  In fact, I see this as the reason why AutoCAD products are on a slow decline in terms of useability.  The programmers that write the software do not have the time to gain the industry experience of actually using the product, while those that are very familiar with using the product in the chosen industry don't have the time to get proficient at the programming tools used to customize AutoCAD to the nth degree.

I still maintain, again from the standpoint of a CAD administrator rather than a programmer, that for most of the common automation tasks needed by engineering companies LISP is the better tool in terms of time spent developing, deployment, and upkeep.  .NET is better for large, full-service-program type automation where the company is unwilling to spend money on a product developed by a software company or no product is available.

I'm an electrical designer, not a programmer. I'm stuck with quite a few of the tasks you listed as well as putting out production drawings, specifying control panel components, specifying transmitters and gauges as well as PLC and HMI programming for our machines and all of it's auxiliary equipment. With all of that I still had time to start picking up C# and working with it.

Heck, you said you know Java. C# is essentially a better Java.

Glenn R

  • Water Moccasin
  • Posts: 1932
  • What idiot child of married cousins wrote this?!
Re: Can VBA do Everything that Vlisp can?
« Reply #39 on: November 15, 2008, 01:35:46 PM »
A good CAD admin, perse, knows the product well, how it's used in their field and AutoLISP. A VERY good CAD admin knows all this, PLUS multiple languages to enable them to choose the best tool for the job/task at hand.

IMO, engineers should NOT be using CAD, as their expertise is in engineering (number crunching if you will), NOT using CAD nor programming. I've been employed by some forward thinking companies as a dedicated 'problem solver' and I use my extensive experience with the software, plus all the programming experience I've gathered in multiple languages to provide the best solution for the project.
Me

Bryco

  • Water Moccasin
  • Posts: 1850
Re: Can VBA do Everything that Vlisp can?
« Reply #40 on: November 15, 2008, 03:32:39 PM »
Do  you  writie anything in lisp at work, Glenn?

Glenn R

  • Water Moccasin
  • Posts: 1932
  • What idiot child of married cousins wrote this?!
Re: Can VBA do Everything that Vlisp can?
« Reply #41 on: November 15, 2008, 06:14:39 PM »
Bryco,

Occasionally, when it's warranted - Lisp is VERY good for the startup stuff.
Me

sinc

  • Guest
Re: Can VBA do Everything that Vlisp can?
« Reply #42 on: November 17, 2008, 11:36:05 AM »
As both AutoCAD and programming tools increase in complexity the amount of time required to be proficient at both increases as well.  Eventually a "critical mass" is reached where people can only be proficient at one or the other.  I'm sure we would have no problems finding .NET programmers, but their knowledge of the ins and outs of AutoCAD *and* the industry we are in *and* .NET programming as it applies to AutoCAD?  Highly unlikely - it took us 3-4 months just to find somebody with sufficient AutoCAD experience (not even programming) to back me up.  In fact, I see this as the reason why AutoCAD products are on a slow decline in terms of useability.  The programmers that write the software do not have the time to gain the industry experience of actually using the product, while those that are very familiar with using the product in the chosen industry don't have the time to get proficient at the programming tools used to customize AutoCAD to the nth degree.

Were you seriously looking?  Or were you looking for someone who could do all this for $50K/year?

sinc

  • Guest
Re: Can VBA do Everything that Vlisp can?
« Reply #43 on: November 17, 2008, 11:41:07 AM »
IMO, engineers should NOT be using CAD, as their expertise is in engineering (number crunching if you will), NOT using CAD nor programming. I've been employed by some forward thinking companies as a dedicated 'problem solver' and I use my extensive experience with the software, plus all the programming experience I've gathered in multiple languages to provide the best solution for the project.

That's the old-school methodology.  These days, it is making less and less sense for engineers to be "number crunchers" that don't know how to use Autocad.  With Revit and Civil 3D, it's becoming more and more of a design tool, where the drafting falls out of the design.  And the software is now reaching the point where it is possible to do a lot of "what if" modeling, and come up with better designs, because it is so fast and easy to try multiple designs.  The thing that doesn't make sense now is for an engineer to try to do a bunch of work outside of Autocad, so that someone else can take a bunch of hand-made drawings and try to create a CAD model out of it.

mjfarrell

  • Seagull
  • Posts: 14444
  • Every Student their own Lesson
Re: Can VBA do Everything that Vlisp can?
« Reply #44 on: November 17, 2008, 02:56:34 PM »
IMO, engineers should NOT be using CAD, as their expertise is in engineering (number crunching if you will), NOT using CAD nor programming. I've been employed by some forward thinking companies as a dedicated 'problem solver' and I use my extensive experience with the software, plus all the programming experience I've gathered in multiple languages to provide the best solution for the project.

That's the old-school methodology.  These days, it is making less and less sense for engineers to be "number crunchers" that don't know how to use Autocad.  With Revit and Civil 3D, it's becoming more and more of a design tool, where the drafting falls out of the design.  And the software is now reaching the point where it is possible to do a lot of "what if" modeling, and come up with better designs, because it is so fast and easy to try multiple designs.  The thing that doesn't make sense now is for an engineer to try to do a bunch of work outside of Autocad, so that someone else can take a bunch of hand-made drawings and try to create a CAD model out of it.

THREADJACK


Here here, if one is still using the OLD design by hand, draft in cad,red line review by hand, redraft in cad, red line back check by hand, revising cad, and red line again methods you already losing more money than one would lose in training those users to use cad irrespective of their age, religion, or ethnic background.


THREADJACK OVER
Be your Best


Michael Farrell
http://primeservicesglobal.com/