Wednesday, September 17, 2008

Re: [BLUG] scheme programming

On Wed, Sep 17, 2008 at 09:35:09AM -0400, Ben Shewmaker wrote:
> [...] and was wondering what
> languages anyone on this list starting learning on.

My first real programming language was Borland's Turbo Basic (no line
numbers). It took me a little while to really get in to it. By the end
of it, (3 years later, when I decided to move to C), I had reverse
engineered the Umoria save file format to a reasonable extent, and could
browse the entire map and tweak objects, as well as my stats. For me, it
was all about cheating.

I'm expecting a child at the end of this year (or early next year). I've
already decided on the first computer language I'll teach her: Python.
I can't wait until she's eight, as that was the age I was when I started
programming.

Of course, before then, I get to do fun things like teach her to count
in binary on her fingers. -- I want to do that before she starts public
school.

> [...] I know it isn't the
> specific language you learn but the fundamentals that matter, but I'm also
> wondering if Scheme is used often in specific applications or where is it used
> in the wild?

As others have mentioned, in general the Guile embedded scripting
language is likely where you'll see it most widely used in the FOSS
community.

I've seen at least two Scheme-based Window Managers, IIRC. Though, if
one of those was Sawfish, that uses Rep, which is a another dialect of
Lisp. The other, however, was 'SCWM', the Scheme Constraints Window
Manager.

There's also a Scheme Shell (scsh).

> Oh, and another thing I've been thinking about on this class. There is a
> strict no sharing your code policy with anyone. [...]

I agree with other folks in that it is the process and thinking (and not
the code) that is important at this point. They do allow you to talk to
other people, and that should be enough to get past the hurdles you may
face.

If people are incapable of talking about their problems, then they can
fall in to the recipe trap. They'll not really know programming at all,
instead they'll just know the language enough to reuse other people's
code snippets.

While using recipes can speed some development up, it shouldn't be
the primary answer to all questions. If it is, you're doomed, as you
either don't fully understand the language, or you're missing important
programming concepts.

> [...] Maybe because I'm really into the open source community that
> I feel that a University would surely want to encourage a more open
> approach to coding?

You have to remember that open source thinking is not the only approach
that universities take. Frequently they make money on the inventions
of students, staff, and faculty. In an environment where they perceive
they are offering you a better percentage of the profits than a lot of
universities, it can be hard for some people to really understand why
they should even let you do open source.

This is one of the reasons that Stallman wrote the essay
"Releasing Free Software if you work at a University"
http://www.gnu.org/philosophy/university.html

While some universities are getting in to free software, just because
a part of the university is in to it doesn't mean the acceptance of it
has seaped through to all levels yet. Some things take time.

> And we also use
> an implementation called Chez Scheme, which is proprietary. Aren't there some
> good open source implementations? What do you all think?

Some introductory classes specifically set out to teach people using a
language the students likely have no experience with. This allows the
students to focus on the concepts, and get out of any bad habits they
may have gotten in to.

You could have gotten stuck with learning using ADA95. I knew a fellow
at University of Evansville that had his introductory courses in it.
Scheme gets a lot more FOSS projects than ADA.

Cheers,

--
Steven Black <blacks@indiana.edu> / KeyID: 8596FA8E
Fingerprint: 108C 089C EFA4 832C BF07 78C2 DE71 5433 8596 FA8E

No comments: