|
In lugnet.off-topic.debate, Larry Pieniazek writes:
> > high-level** languages.
> >
> > ** Languages with features like closures, late binding, lambda functions,
> > in-memory compilation of arbitrary code constructed on-the-fly, regular
> > expression manipulation, arbitrary namespaces, and of course OO.
>
> I agree with most all you say, but I am surprised that you consider
> this:
>
> in-memory compilation of arbitrary code constructed on-the-fly,
>
> necessary for a language to be "high level".
I didn't mean to say that it was necessary for a language to be "high level"
but it certainly is a common property of high-level langauges (for example
Lisp/Scheme, Logo, PostScript*, and Perl).
> I rather consider it a
> potential pitfall for the unwary instead of a feature. I certainly agree
> that it's a sign of a good/powerful/rigorous design to be able to do it.
> But I dispute that it's useful. I've not seen a situation yet where I
> needed it, and I consider myself pretty good at doing clever things
> programmatically.
It certainly has a variety of mis-uses, but where it really shines is that
it's a wonderfully elegant way to implement special-purpose or extension
languages for doing various things. You slurp in a file of code (written
in your special language) and transmogrify this into the target language
(i.e. Perl or Lisp) and then execute that, either on-the-fly or save the
compiled/translated version back to disk for re-use later without having
to retranslate.
> I guess I fall into the camp that wants languages to help enforce clear
> thinking. C++ was a huge step above C because it helped do that, but not
> far enough of a step, because you could drop down into C any time you
> liked.
>
> I consider Pascal (one of my early favorites, and still a holder of a
> special place in my heart) and Java (my current true love) canonical
> examples of languages that are easy to read and that help prevent silly
> mistakes while teaching their novice and journeyman coders how to think
> more clearly.
Modula-2, too. :)
> I know for sure that there are Pascal haters out there who find it
> confining. Yes. It's not a sysprog lang. Fine. sysproging is not for
> novices anyway. Ditto Java.
>
> But it's plenty powerful for the experienced. Our (Novera's) entire
> product is written in Java. The whole thing! All the tools, the coupling
> to the orb, transaction management, monitors, load balancing, schema and
> metadata management, the object relational mapper, protocol converters,
> everything. And it was done by people that certainly could have coded in
> C++ or C or whatever they chose to... See our website.
Awesome. Java over C/C++ any day, man.
> On another note:
> What do you think of the more widespread 3GL/4GL taxonomy? I'd put PERL
> as a 4GL under that scheme and Java as a 3GL. (although the official
> definition is much more complex, I tend to think of the distinction as
> 4GL being primarily for automating or glueing components or systems
> together, and 3GL for doing those components... although usages vary. a
> 3GL can be used for gluing... and a 4GL can be used for components.)
I don't know what to think about where those two would go. There are so
many sides to the argument. I think it's a lot more fun to talk about where
PostScript would go. :) PostScript on the pure semantic level is, IMHO, an
incredibly high-level language (on the order of Lisp) but with massive syntax
problems (heh, also on the order of Lisp, go figure). One is prefix, the
other is postfix. OTOH, PostScript is terrible for gluing. I wonder what
FORTH is like? GNU Emacs Lisp must also be a great thing to study the
placement of in the taxonomy -- it's supposedly the king of glue, even more
than Perl. But I like Perl's pure syntax and semantics much more than its
glue-power.
--Todd
|
|
Message has 1 Reply: | | Re: Perl rules!
|
| Todd Lehman wrote in message ... (...) functions, (...) regular (...) level" (...) I've always had a sport in my heart for SNOBOL which had an eval function to evaluate an expression, and a compile function if you needed real code. I used the (...) (25 years ago, 20-Jun-99, to lugnet.off-topic.geek)
|
Message is in Reply To:
| | Re: Perl rules!
|
| Good post! (...) I agree with most all you say, but I am surprised that you consider this: in-memory compilation of arbitrary code constructed on-the-fly, necessary for a language to be "high level". I rather consider it a potential pitfall for the (...) (25 years ago, 19-Jun-99, to lugnet.off-topic.debate, lugnet.off-topic.geek)
|
433 Messages in This Thread: (Inline display suppressed due to large size. Click Dots below to view.)
- Entire Thread on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
This Message and its Replies on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
|
|
|
|