Additional Topics > External Development Guide > External Development Overview > About This Guide

# About The External Development Guide

The External Development Guide describes options for using code not written in IDL. It contains three parts:

## Part I:Techniques That Do Not Use IDL’s Internal API

This section discusses techniques that allow IDL to work together with programs written in other programming languages, using IDL’s “public” interfaces. Little or no familiarity with IDL’s internal interfaces is required. For many users, the techniques in this section will solve most problems that require IDL to use — or be used by — other programs. Topics covered in Part I include:

- Using SPAWN and Pipes
- Using CALL_EXTERNAL
- Remote Procedure Calls

## Part II: IDL’s Internal API

This section describes IDL’s internal implementation in enough detail to allow you to write an IDL system routine in another compiled programming language (usually C) and link it with IDL. Topics covered in Part II include:

- Types
- Keyword Processing
- Variables
- String Processing
- Error Handling
- Type Conversion
- UNIX Signals
- Timers
- Files and I/O
- Miscellaneous Topics

## Part III: Techniques That Use IDL’s Internal API

This section describes the process of combining IDL with code written in another programming language. Topics covered in Part III include:

- Adding System Routines
- Callable IDL
- Adding External Widgets to IDL
- Obsolete Internal Interfaces (??)