As a side project, I'm looking into the effort required to (semi-) automate conversion from Avenue to Python, instead of keeping ArcView 3.x around to run them.


5 Answers 5


I have over 1000 scripts and extensions for ArcView ;-). Some of them do unique things, such as certain forms of random sampling and data conversion either unavailable in most other GISes or available at considerable cost (e.g, need an ArcInfo license). It's easier to keep using them with ArcView 3 than porting them to a new environment (which will go unnamed) that is constantly evolving and constantly requiring rework of old code because the vendor has no respect for backwards compatibility or their users' investment. Once burned, twice shy.

But the main reason I keep a machine with AV 3.x running is that it is much easier and faster to do certain things with it than with any subsequent software released by ESRI, such as joining and relating tables, joining tables to themselves, and easy but sophisticated calculations of shapes. Last week I turned to AV 3.x on a four year old PC to do some joins and mapping involving layers having only 30,000 features (but 200+ MB on disk) because ArcGIS 10 could not accomplish these tasks in any reasonable time on a high-end Xeon workstation.

If your code uses high-level Avenue objects with any frequency, automatic conversion to anything else is impractical if not hopeless. If it uses entirely low-level objects--numbers, strings, dates, booleans--then it almost surely was ported from some other place to begin with!

  • 1
    Agree with this as 'easier & faster' for table joins, even the startup time for AV32 compared with ArcGIS is much faster.
    – Mapperz
    Sep 22, 2010 at 9:22
  • An interesting example of a recent use of AV 3 and Avenue appears in the Producing Building Shadows thread. Contrast this with the attempts to do the same thing in ArcGIS. Whether your metric is human time (evidenced in an order of magnitude difference in lines of code) or computer time (guess which program is still faster?), AV 3.x turned out to be an effective platform for this problem.
    – whuber
    Apr 13, 2012 at 15:22

XTools and ArcView (3.2a) has fast table joins...


though is available for ArcGIS 10 http://www.xtoolspro.com/

but don't miss it as still use it.

Multiple Layouts still beats 'Data Driven Pages' http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/What_s_new_for_page_layouts_and_data_frames/00qp0000001m000000/


One thing I dont miss is the old "Segmentation Violation" errors...

I still have a copy of v3.2 handy. I remember that v3.2 seemed to have less memory leaks, and that it would process larger datasets than v9.1 ---> v9.3.1 (not recently been using v10 for Geoprocessing).

I did notice that these leaks were "improved" over the versions of ArcGIS Desktop, but 3.2 still never bottomed out, even if the job took over 2 days.


AV3 because you can edit (and fix) the project files in any decent text editor!

I also used AV3 regularly up until about a year ago to quickly view and browse data as it's much faster than Arcmap when you just want to have quick look at things. I stopped using it daily when we moved the last of our primary datasets to file geodatabase.

I'm not sorry to be using python instead of avenue, though it would be nice to have more gui bindings available to it (as avenue has).


In 2003, after much consideration of conversion techniques, we spent 4 years translating by hand 700 Avenue scripts and 40 dialogs in an extension to a VB code extension for ArcGIS8.3. Soon after, in less than a year, we recoded the logical concepts of the extension into Python scripts for geoprocessing under ArcGIS9+. I have also written a translator in Python to convert Avenue classes to Python classes. Now there are thousands of stubbed methods to code. Go straight to ArcGIS tools! It's faster!

  • 4
    After having your software vendor change the technology and force you to abandon or port all your work--TWICE!--you're still willing to program in their system? How long do you think ArcGIS tools are going to last until you have to do another port? Does this make sense?
    – whuber
    Oct 29, 2010 at 1:22
  • Out of curiosity: what product/process (vague answer is fine) did all this Avenue code support?
    – Dan S.
    Oct 30, 2010 at 0:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.