Re: foundations of relational theory?

From: Mike Preece <michael_at_preece.net>
Date: 29 Oct 2003 16:20:43 -0800
Message-ID: <1b0b566c.0310291620.35ab76e4_at_posting.google.com>


"Marshall Spight" <mspight_at_dnai.com> wrote in message news:<AgJnb.40259$275.92001_at_attbi_s53>...
> "Mike Preece" <michael_at_preece.net> wrote in message news:1b0b566c.0310282146.902de1e_at_posting.google.com...
> > Bearing in mind that everything in Pick is a string - more or less -
> > and that PickBasic has a feature set ideally suited to manipulating
> > strings with Pick's specific system delimiters, I'd like to know if
> > there's a programming language that could do a better job.
>
> On the specific issue of manipulating strings using Pick's specific
> delimiters, a special-purpose language (aka Pick BASIC) will
> typically demolish a general purpose language.
>
> > I'd go so far as to say that, provided the programmer is aware of the
> > format, it's pretty damn handy at dealing with *any* ASCII string -
> > regardless of where it came from or where it's going.
>
> There are a number of languages out there that target String processing
> specifically. The most well-known is Perl, but I do not consider
> Perl a particularly praiseworth language. The most interesting is
> probably Icon. Despite its age, it is still quite interesting from the
> standpoint of the number of interesting things it does really well,
> such as generators, backtracking, and coroutines. (Note that
> popular languages such as C++ and Java do not have any of
> these features. Python has generators.) I've never heard
> any official confirmation of this, but it certainly appears to me as
> if much of Perl's string processing features derive from Icon (possibly
> indirectly.)
>

Thanks for this. I'd like to learn more about these "generators, backtracking, and coroutines" - and therefore Icon in particular. It is interesting to me that you began this subthread by talking about features available in *modern* programming languages - and yet are able to say, without the slightest qualm it seems, "The most interesting is probably Icon. Despite its age...". Indeed, the fact that PickBasic has been in very heavy use for 30 years, with features continually being added to meet diverse real world requirements, is perhaps the main reason it's feature set is now so strong.

> Some people like Python for string processing, and a lot of people
> like Python for just about anything. I must admit it has many
> attractive features.
>
> C++ has templates and operator overloading, which are pretty cool.
> The template sublanguage is impressively powerful.
>
> Java has a very clean model for object oriented programming (OOP.)
> It has first class support for exceptions, including the ability to
> typecheck exceptions, and a "finally" construct that solves the
> problem of resource deallocation in the context of thrown exceptions.
> It has inner classes, which may be anonymous. This is quite a feature;
> it significantly makes up for the lack of higher order function support
> (HOF.)
>
> Also in the OO canon is Eiffel, which has Design By Contract.
> I think DBC would be an excellent fit for a RDBMS-oriented language.
>
> Lisp and Scheme have features such as continuations, lambdas,
> and macros. (Lisp macros are on a whole different plane from
> C macros; I admit I do not begin to fully understand them.)
> CommonLisp has the "Meta Object Protocol."
>
> Languages like the ML family (which includes OCaml) and Haskell
> have Hindley-Milner type systems and type inference. I'm quite
> interest to learn more about type inference; it may be a great
> fit for relational. These languages also have excellent HOF support.
> Haskell includes a pure functional sublanguage, and monads.
>
> There's also Erlang, which comes from Mars, apparently. I would
> love to have the time to study that closely for a while.
>
> These are just the (comparatively) mainstream languages. There's
> also things like Ruby, Tcl, PHP, Objective C, C#, Nice, Pizza,
> Mozart, Sather, Mercury, Clean, Dylan, Ada, Cecil, CLU, XSLT,
> Javascript, Self, REXX, Prolog, Modula-3, FORTRAN, etc.
>
> Each and every one of these languages has some unusual or
> different feature or combination of features that makes it
> interesting, distinctive, and unique. Except FORTRAN.
>
>
> > Can you tell me where I can find out more about a "modern language"
> > with features that a PickBasic programmer is "cut off from"?
>
> I honestly believe I could spend the rest of my life studying it and
> still feel like I was just getting started. Interesting resources are
> language-specific sites like python.org, ruby-lang.org, java.sun.com,
> theory/discussion sites like lambda.weblogs.com, and Your
> Local University.
>
>
> Marshall
>
>
> PS. I tried to range over a pretty broad swath of languages; there are
> almost certainly some mistakes in this post. The line about FORTRAN
> was a crack; FORTRAN has some high performance vectorizing math
> libraries that make it still the performance leader in some domains to this day.

There's no argument that there are a lot of programming languages, some better than others in a given role. I confess I don't know most of these languages, having direct experience of only 3 assembler languages, COBOL & various scripting languages - besides various 4GLs written in PickBasic, including my own "browser based development framework". While I would be interested in the specific features available in languages other than PickBasic, perhaps that discussion would be more suited to a cross-post between CDP & comp.lang. We wouldn't want to annoy the CDT regulars now would we?

Cheers,
Mike. Received on Thu Oct 30 2003 - 01:20:43 CET

Original text of this message