Difference between revisions of "Programming Languages Project"
Wiki-Ajolma (talk | contribs) (first draft) |
Wiki-Ajolma (talk | contribs) |
||
Line 3: | Line 3: | ||
a new page on this wiki | a new page on this wiki | ||
− | =Goals | + | = Goals |
This page is intended for information about how | This page is intended for information about how | ||
Line 14: | Line 14: | ||
languages. | languages. | ||
− | =Audience | + | = Audience |
The contents are inteded for beginning developers | The contents are inteded for beginning developers | ||
Line 21: | Line 21: | ||
what's happening among languages they are not using. | what's happening among languages they are not using. | ||
− | =Interoperability | + | = Interoperability |
* Maintain functionally equivalent libraries in two languages (JTS/GEOS) | * Maintain functionally equivalent libraries in two languages (JTS/GEOS) | ||
Line 27: | Line 27: | ||
* Use .Net/mono (MapWindow) | * Use .Net/mono (MapWindow) | ||
− | ==Using Swig | + | == Using Swig |
* How to achieve a robust mapping between memory management in low level language | * How to achieve a robust mapping between memory management in low level language | ||
and in the interface language? | and in the interface language? | ||
− | =C, C++, Fortran and other "low-level" languages | + | = C, C++, Fortran and other "low-level" languages |
* Many fundamental libraries are written in these languages | * Many fundamental libraries are written in these languages | ||
* These can be wrapped efficiently with Swig | * These can be wrapped efficiently with Swig | ||
− | =Java | + | = Java |
Java is a hybrid in the sense that it's used for fundamental libraries | Java is a hybrid in the sense that it's used for fundamental libraries | ||
Line 43: | Line 43: | ||
Notable Java OSG include JTS, uDig, ... | Notable Java OSG include JTS, uDig, ... | ||
− | =Scripting languages | + | = Scripting languages |
Scripting languages take the burden of memory management and compilation and linking | Scripting languages take the burden of memory management and compilation and linking | ||
off from the developer. | off from the developer. | ||
− | ==Python | + | == Python |
− | ==Perl | + | == Perl |
− | ==Ruby | + | * Geo:: modules |
+ | |||
+ | == Ruby |
Revision as of 23:30, 23 March 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 page is intended for information about how different programming languages are used in OSG software and what's available.
A specific interest for this page is to discuss how to enhance or achieve interoperability between libraries and tools written in different languages.
= 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.
= 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.
== Python
== Perl
- Geo:: modules
== Ruby