Introduction
We can think about language at a number of different levels, from the purely syntactic view of keywords and punctuation all of the way up to the semantic view of knowledge organization and control. At each level, a particular language offers particular benefits and imposes particular costs.
Furthermore, tools exist in a variety of languages which are intended to serve as either generic or very specific starting points from which developers can build their own intelligent systems. These range from shell systems such as E-Mycin and CLIPS to very specific environments for things like Natural Language Processing (like the Stanford Parser used by Team Rodan) and the creation of decision trees (See-5).
The Question(s)
Write a three-page essay discussing both
a) the trade-offs between using standard, off-the-shelf languages (C, Java, etc) to write intelligent systems and using special-purpose, higher-level languages (3APL, DreamMaker, SPIKE, ISOMax).
b) the trade-offs between using intelligent toolkits (such as those some of you are using) vs. developing code from scratch.
I do not expect you to understand any of these special purpose languages or toolkits in order to answer this question. You only need be familiar with the concepts they offer.
Instead, what I want you to consider is what advantages and disadvantages standard languages (like the ones that everyone of you is likely using for your project) have in using them as a language for your project. What limitations have you discovered in the language you are using? Why is it still better than alternatives? Similarly, what advantages and disadvantages come from the inclusion of existing toolkits? Why might you use them and when might you choose to start from scratch.
Suggestions
Trying to discuss language in the abstract is difficult because we have no way to ground abstract terms on concrete examples (and no ability to come up with concrete examples for the special-purpose languages I have mentioned). Furthermore, even if we could, it is tempting to draw conclusions that don't always hold true.
So ground your discussion in the context of a particular task to be performed by the program, or in the context of particular languages that you can use as examples.
The issues on which you focus can be at any point on the continuum between lowest-level syntax and highest-level abstraction. Ideally, we will end up with papers discussing several different issues at several different locations on this continuum. That would give us many different data points on which to draw in our discussions.