Python Included In ArcGIS 9
Party_Pack writes "ESRI, the makers of the GIS
(Geographic Information System) Arc/INFO (as well as ArcView) and its more
modern COM based successor ArcGIS are once again, in the just released ArcGIS 9, giving
their users the choice of a fully featured scripting language rather than just
the hideously complex ArcObjects/full
programming language model they currently offer. Interestingly they have chosen
to move away from their tradition of proprietary languages such as AML and
Avenue and use Python. This is great news
for both ArcGIS users and the Python community, as ESRI will hopefully feed any
development work back into the community."
Any scripting language that supports COM can be used with ArcGIS 9. For example, Perl is also supported.
Intelligence shared is intelligence squared.
This is cool. Python does seem to be catching on as the embedded scripting language of choice for apps that combine attributes and graphics (eg modelling tools like Blender, as well as GIS). (I've pretty much decided to reject Tcl for Python in Cavor, too). Now if we can just come up with some standard APIs for similar functionality.
On the other hand, there are some advantages to a scripting language highly tailored to the application domain -- although (IMHO) AML and Avenue aren't exactly stellar examples of this. (I'm thinking more of the GML scripting language for GeoVision's -- later Autodesk's -- VISION* products).
-- Alastair
From my experience of programming against ESRI, I seriously doubt the company will contribute anything back to the community. For instance, in a project I once worked on, we developed custom renderers (i.e. custom icons to be displayed on maps etc.), and back then it was pretty much unsupported. The only way we could get support for this was to contribute our custom renderer to ESRI. Did we get any real support from them? no. But our framwork eventually became ArcGIS version 6's renderer hierarchy templates.
They have a reputation for not contributing anything back. User, beware.
Those who can, do. Those who can't, consult.
Is the actual data free? Or is it just the interface that's free?
This is great news for both ArcGIS users and the Python community, as ESRI will hopefully feed any development work back into the community
Why should they be expected to? Python is under the BSD licence. And I would not expect an application of the language to be making changes and additions to that language. The language drives them, not the other way around. They should be keeping compatibility with Python.
The I expect them to contribute is possibly a bug report or two - maybe even a very minor fix - but it's stupid to expect anything other than that. Python is a mature language that they're using as a convenience for themselves and their users. It's going to be so that they can think less about their scripting language. Nothing more.
I suspect the submitter is a little naive and possibly new to the world of commercial software.
- web development: Not only Zope and Plone, there's a lot of interesting development going on with Twisted... and, well, Twisted is not only about the web, it is about networking in general;
- .NET / Java development in general: Python in Java exists already... Java gaining more and more popularity? No problem, Python is already there.
.NET/Mono taking the market away from Java? The industry will perhaps support more and more .NET techniques - with IronPython (featured recently on /.), Python is already there. No problem;
- some people might wonder if you really need that stinkin'
.NET/Java stuff at all - Python is already very portable, but that's not everything - it already supports a wide range of MacOS/Unix/win32-specific functionalities.
- anything else makes you wonder, if Python is a good choice at all? What about realtime applications, like a VOIP phone (GUI included, win32/unix compatible) in Python? Do you read "interpreted" as "slow", do you wonder if Python is good enough to be useful in CPU-demanding programs like games? Anything else against it? Perhaps you're worried about Python's extensibility?
- if software telephony sucks for you, perhaps you should try a real mobile phone
Is there anything you would like to add to the list? Do you also think 2005/2006 will be the years of Python hype? Having a small part of good things about Python, I'd really like to hear, where does it suck for you. There are many, many things I don't know about it...I am a developer of apps/modules that run inside ArcMap (using VB.NET). I am very interested in getting some of our GIS to learn how to script in ArcObjects so that we can develop a bunch of 'mini-tools' in-house.
I know it just came out, but are there any good websites that will help teach non-programmers how to use Python in ArcMap/ArcObjects (besides esri.com)? Are there some free download sites? How about more advanced Python (for power users in other languages)?
Let's go Hurricanes!!! 2006 Stanley Cup Champions!!!
I'm developing a large ArcObjects-based extension to ArcGIS -- version 9. We're using C#, which, though it ain't python, isn't a bad language either.
Trust me on this: No language will make ArcGIS fun, or even marginally handy. That application is the worlds' largest heap of disgusting bloat, and it is buggier than hell. Have a look at the object diagrams (warning: 10Mb PDF, not that I feel any guilt about slashdotting ESRI) and see for yourself...
Avenue was a joy by comparison, although it was extremely limited. Probably _because_ it was extremely limited; it was also extremely clean.
Bottom line: if you use ArcGIS, expect to go spend 50% of your development time cursing ESRI and smashing your forehead on your keyboard: adjust your schedule accordingly.
It is right annoying. We did have an ArcGIS developer drop by to let us know exactly what was happening on the server versus client front. They seemed awfully schizophrenia -- they'd just sold out to COM with ArcGIS in a big way, but everything about ArcIMS (ActiveX connector dev freezing, cross-platform server installs and new Linux support, Java "MapObjects") pointed everywhere but Microsoft. They pretty obviously have two sides of the house -- and you wonder sometimes if either is really communicating with Jack (the CEO/pres/owner/whatever/rich balding white guy at the top).
A little more O[n]T, I tried to get them to open source their ArcIMS Author application, which was (iirc) written in Java. After they released their MapObjects for Java, every function Author had (display map content to show the state of an XML file you were authoring, no less) was out there. Even though they had no real industry secret -- and though I got an ESRI developer to admit the Author app was only "60% feature complete", no open sourcing.
Just to say I wouldn't read into any one annoucement's effects on the entire company too broadly. Linux on server doesn't mean they aren't selling out 100% to COM on the client. And Linux support and now Python on the client doesn't mean they're getting any friendlier to open source in any meaningful way. As others have pointed out, support isn't job one, nor is returning the favor open source software's given them.
(Fwiw, I support a soon to be unmothballed open source ActiveX ArcIMS template. Not sure if that helps or -- due to disuse -- hurts my claims to expertise here!)
It's all 0s and 1s. Or it's not.
"Because geoprocessing often involves processing many datasets or datasets with many records, geoprocessing tasks typically are repetitive and good candidates for automation. Any scripting language with a COM interpreter, such as Python, JScript, or VBScript, can be used to write scripts that execute ArcGIS Desktop 9 geoprocessing tools and automate tasks. Because these scripting languages are not proprietary, many resources for learning them are available." Source
__________________
working & blogging from nigeria
Why are so many of you happy? You should all be flinging huge piles of crap at ESRI despite their attempt to modernize and diversify!
.... oh, then while you are at it, go opensource ...
... where ArcView takes minutes, using 100% of the CPU. All so they can tell you to buy ArcInfo for $25,000 saying it gives you the lost speed back.
... could offer no explanation as to why scripts that would get us full marks could be so horribly unreliable. I suspect she had to keep quiet because of the huge licensing deals ESRI gave BCIT.
... not knowing that I knew the guy, and knew he's on the cutting edge, far from giving up on anything.
... jump up and down and cheer ... if you are a bloody fool. Many MapServer users have given up on Python. You can do far more, far more easily with the CGI version of MapServer, a PostGIS spatial database on a crappy spare parts linux server ... and a little ASP here and there to help things along.
After all, in the world of GIS, they are MICROSOFT. (cue evil music)
Get back in character! ESRI is the devil! start flinging insults no matter how rediculous so you can feel like you are part of the group!
--use MapServer with PostGIS spatial database and save $50,000 over ArcIMS with ArcSDE/Oracle (and have it function 100x better than ArcIMS)
--use Jump for day to day GIS needs http://www.vividsolutions.com/jump/
-- go to: http://opensourcegis.org/ for all the rest of your GIS needs (100's of open source programs there)
I dont understand why any common GIS user would bother with programming large scripts in ArcGIS. I have watched ArcGIS plod along for HOURS using no more than 1% of the CPU
I struggled through many courses in ArcGIS, and ArcObjects. It became painfully obvious that even if you can follow the set of 28 ANSI E size pages that make up the ArcObjects object model, you will in the end be stuck with a brutal little program that will crash often, run slow, and may not transfer properly to other machines.
My professor, who is earning her Masters degree specializing on trying to teach ArcObjects through Online classes (shiver)
Anywho, ESRI is running scared from the open source world. they are actively attacking the MapServer community because it is such a threat to their product, fighting to stop the government of Canada from using MapServer as widely as they do now. An ESRI salesmen went as far as outright lying to me a few months ago trying to tell me that a well known MapServer proponent here in Vancouver had given up on it, switching to ArcIMS
ArcGIS 9 with Python
George Bush + Linux = "I will not let information get in the way of the fight against Windows"
This thread is great! Straight talk about the Microso~1 the GIS world. Well actually, comparing ESRI to MS is an insult to MS. Microsoft actually has nice offices and treats their employees fairly well. ESRI sticks their employees in the smallest cubes and offices ever, and asks them to work in smog capital of the US: Redlands, CA (it makes nearby neighbor Los Angeles look like Hawaii.)
If you ever want to see real life Big Brother, go to the annual ESRI User Conference. 10,000 people sitting in a room while Jack Dangermond (ESRI president and owner) rambles on about how GIS will change the world (and ESRI will be the one holding the reins.) Put quite simply, the guy is nuts.
The Arc8 platform, that has been out for about 5 years now, is still very green. In the last two years it has gotten a lot better, but it is still very slow, buggy, and rough around the edges. The last 5 years has felt like beta testing.
SDE is developed first for Oracle and then ported to other databases, thus it works terribly on MS SQL Server. Getting it to work for any kind of serious enterprise application (100+ users) requires a shit load of hardware, and custom development.
ESRI does not support third party developers at all. In fact they see all of them as competitors. They often ask companies that already support ESRI products or resell them, to sell stock to Jack just so they can get "the inside track" from ESRI and things like free software and training (which most companies give to resellers/developers anyway.) Then if these companies innovate using ESRI products, they are pressured from ESRI NOT to release software that might in anyway compete with ESRI offerings.
ESRI has no accountability because they are wholly owned by Jack Dangermond. His dictatorship is what currently drives almost the entire GIS segment of IT software. GIS is used by private industry but mostly government, at every level (state/local/federal.) He very much has this market by the balls, and nobody is paying attention to any of his anti-competitive practices.
Hell hath no fury like vertical market software companies!
I hope this is not getting off topic...but...I am rather new to GIS, and I have a lot of discretion in choosing my tools so I was looking at either using ESRI or going with GRASS. I have known about python+ESRI for awhile and I love Python, but I decided to go with GRASS. My main reasons where that GRASS runs on OS X, and GRASS is very powerful. GRASS users claim that it is the best GIS available...and I also find it very powerful...however I do not have ESRI experience and so I can't make any comparisons. After reading the comments I am glad I didn't go with ESRI.
My main reason for posting this is to ask if there is a big demand for a Python enabled GIS. GRASS does not have Python hooks - and I think it would be nice if there was. However I am concerned about the performance hit given that one often deals with very large data sets in GIS.