Datasheet
Defining the Language
Environment
Most professional programmers use more than one programming language. A programmer who
relies on a single language for every task is like a carpenter who treats everything as a nail.
Just as carpenters use a particular fastener for a specifi c need, programmers rely on programming
languages that suit an individual development need. This chapter approaches the use of a partic-
ular programming language to meet a specifi c need in a development environment. Throughout
the chapter, you discover how the language environment determines not only which language
will work best but also how you interact with the language you select.
In some cases, you use multiple languages in a single application. Although the use of multiple
languages tends to increase complexity, using the right tool for the job also tends to make the work
easier. Just as a carpenter relies on both hammers and screwdrivers to build a bookcase, a pro-
grammer may use multiple languages to make creating a particular application easier. Just as the
carpenter could use nails for every need on the bookcase, but will obtain a poorer result by doing
so, the developer often achieves poor results by using just one programming language. This chapter
views the use of multiple languages in the context of the language environment and as a prereq-
uisite for application design.
Understanding the language environment means that you can take the next step in designing
your application, which is to determine what resources you have available. Even if you’re work-
ing by yourself, you must consider the language resources you have, because most developers
aren’t completely fl uent in every aspect of all the languages they use. You may decide to learn a
new development technique in order to use a particular language or live with a less than optimal
language environment in order to rely on a language you use well. Defi ning available resources
is critical in the team environment because you need to know what individual team members can
do to advance the project before you design it. This chapter describes a process of inventorying
the tools at your disposal and then gathering them for use in the application design and develop-
ment process.
15962c01.indd 315962c01.indd 3 1/23/09 5:44:56 AM1/23/09 5:44:56 AM