Difference between revisions of "Programming Languages Project"

From OSGeo
Jump to navigation Jump to search
m (→‎Using Swig: formatting fix.)
(added PHP)
Line 62: Line 62:
 
* Geo-Perl email list: https://list.hut.fi/mailman/listinfo/geo-perl
 
* Geo-Perl email list: https://list.hut.fi/mailman/listinfo/geo-perl
 
* FreeGIS database on Perl: http://freegis.org/database/?cat=24
 
* FreeGIS database on Perl: http://freegis.org/database/?cat=24
 +
 +
== PHP ==
 +
* PHP http://www.php.net
 +
: stands for "PHP: Hypertext Preprocessor" is a widely-used Open Source general-purpose scripting language that is especially suited for Web development and can be embedded into HTML. Its syntax draws upon C, Java, and Perl, and is easy to learn. The main goal of the language is to allow web developers to write dynamically generated webpages quickly, but you can do much more with PHP. (from the [http://de2.php.net/manual/en/preface.php PHP manual preface])
  
 
== Python ==
 
== Python ==

Revision as of 07:46, 5 April 2006

note: this is the quick first draft, please feel free to refactor and add, but when adding, consider linking to other pages first, or creating a new page on this wiki

Goals

This project is intended for information about how different programming languages are used in OSG software and what's available.

A specific interest for this project is to discuss how to enhance or achieve interoperability between libraries and tools written in different languages.

I'm not sure if there should be an official committee for this (probably not), but I think this kind of project is needed as it serves for example the educational project and developers.

Audience

The contents are inteded for beginning developers who are looking for basic information and pointers, and for more seasoned developers who may not be well informed what's happening among languages they are not using.

Libraries

Geospatial software libraries provide the functionalities that belong to general categories of

  • Data management (DM)
  • Analysis (A)
  • Visualization (V)

The codes DM, A, and V codes are used below. In practical tools the specialized geospatial software have to be linked to general software libraries and toolkits like GUI toolkits, network software, etc.

Interoperability

  • Maintain functionally equivalent libraries in two languages (JTS/GEOS)
  • Use Swig (GDAL, GEOS)
  • Use .Net/mono (MapWindow)

Using Swig

  • How to achieve a robust mapping between memory management in low level language and in the interface language?

C, C++, Fortran and other "low-level" languages

  • Many fundamental libraries are written in these languages
  • These can be wrapped efficiently with Swig

Java

Java is a hybrid in the sense that it's used for fundamental libraries but it is also often preferred also for its high-level features (strong OO). Notable Java OSG include JTS, uDig, ...

Scripting languages

Scripting languages take the burden of memory management and compilation and linking off from the developer.

Perl

PHP

stands for "PHP: Hypertext Preprocessor" is a widely-used Open Source general-purpose scripting language that is especially suited for Web development and can be embedded into HTML. Its syntax draws upon C, Java, and Perl, and is easy to learn. The main goal of the language is to allow web developers to write dynamically generated webpages quickly, but you can do much more with PHP. (from the PHP manual preface)

Python

R

R is a language for spatial computing.

Ruby