emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Emacs contributions, C and Lisp


From: David Kastrup
Subject: Re: Emacs contributions, C and Lisp
Date: Tue, 13 Jan 2015 11:16:39 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux)

"Perry E. Metzger" <address@hidden> writes:

> On Mon, 12 Jan 2015 17:21:21 -0600 Jacob Bachmeyer
> <address@hidden> wrote:
>> >> Parsing is relatively simple compared to the rest
>> >> of GCC. 
>> >
>> > I don't think the guys maintaining the C++ frontend would agree...
>>
>> Then C++ is even more complex than I had thought.  I last used it
>> for a freshman course in college some years ago.
>
> C++ is an amazing mess. Parsing is grotesquely hard for a modern
> language -- C++ isn't even remotely LALR -- and on top of
> that, we have things like the template language which is Turing
> complete. The language is also more and more complicated with every
> passing year -- modern C++ is a huge language compared to the C++ of
> 20 years ago.

To write software well, it's a valid strategy to hack together some
prototype and tweak it until it does the job, then throw it away and
rewrite from scratch.

"Modern C++" has been developed like that.  Except that it missed out on
all the "throw it away" stages.  It's like a reptile with a genetic
defect that kept it from properly molting, so there is lots of old and
patchy and flaky stuff of the original small frame all over the place
and grotesque mounts of flesh squeezing out from the original fossilized
skin.

"Ada's too big.  Let's just patch up C instead."

I actually like Lua because it is sort of the antithesis of C++.
Instead of the "let's see what else we can cram into the language"
approach, they use more of the "let's see what we can do without"
approach.  Also a bit overdone (for example, statements are _optionally_
separated by semicolon but just whitespace is enough), but it leaves
much less of a bad aftertaste.

-- 
David Kastrup



reply via email to

[Prev in Thread] Current Thread [Next in Thread]