Re: Corpora: Corpus Linguistics User Needs

Kenneth W. Church (
Tue, 04 Aug 1998 13:29:33 -0400

I agree with much of this, but I get uncomfortable when programming skill is
equated with superficial ability to use such and such language. It has been my
experience that many linguists are remarkably strong programmers, much more so
than many people who claim to know all sorts of languages. Experience with
formalisms like lambda calculus, context free grammars, phonological rules and
so on are invaluable. It is easy to learn the syntax of C++, say, without
grasping the basic concepts of data abstraction (closures). People who deeply
understand a number of these linguistic formalisms are likely to have an
advantage over people with a superficial understand of the syntax of whatever
language is hot today. In my own case, I programmed in Lisp and related
languages while in grad school, and switched to C and Unix afterwards, for many
of the reasons suggested below. I wouldn't spend a lot of time right now trying
to guess which language is going to be hot tomorrow. It isn't all that hard to
switch when it becomes clear which language is hot. And even though I don't
program in Lisp much anymore, the experience was far from a waste of time. Lisp
(and lambda calculus) taught me how to abstract in a way that is useful and not
obvious to people who started with C (dare I say native speakers of C?).

It isn't so important that a candidate know a particular language well, but a
track record of a willingness/ability/eagerness to learn whatever is necessary
is a big plus.

Amy Winarske wrote:

> The industrial viewpoint on Philip Resnik's questions.....
> As an "industrial" software engineer who once worked in Computational
> Linguistics, I say learn PERL and C, in that order.
> * PERL because it's useful, easy to learn, very powerful, and lots of
> companies are using it for a wide variety of tasks. You will be employed if
> you know PERL.
> * C requires a basic understanding of programming, there's lots of C code
> out there, and it runs almost everywhere. Most software engineers know C
> and will be much more comfortable hiring somebody whose skill set they
> understand. If you know C, you should be able to pick up most other
> programming languages.
> * C++ and Microsoft knowledge are in hot demand everywhere.
> * Java is not catching on because the promise of portable code has not been
> fulfilled. The reality of the situation is the various Java VMs are not
> compatible and programming in Java provides no porting advantages. Many
> companies are opting out for C++ instead because it is object oriented and
> faster than Java.
> * Lisp is almost nonexistent and Prolog even scarcer. I wouldn't waste a
> minute on either at this point.
> Amy Winarske
> Software Engineer
> Silicon Valley