Arc Forumnew | comments | leaders | submitlogin
On Design & Research (paulgraham.com)
4 points by lojic 6084 days ago | 2 comments


2 points by mayson 6082 days ago | link

I have to say, that while the syllogism is correct, the conclusion "no language that makes type declarations mandatory could be convenient to program in" is invalid, because mandatory type declaration is not incompatible with a toplevel.

How can I say this? Because in the language environment that I am currently programming in (AOS - the Active Oberon System) I can type:

  M:M[splat] <-- splat is a keychord, in my case Cmd-Shift-X
and the following code appears:

  MODULE M;

    (* PACO.Compile M.Mod; System.Free M; M.Do ~ *) <-- click at the start - type Cmd-Enter, and the sequence of commands gets run, with output to the system console.

    PROCEDURE Do ();
      VAR
      BEGIN
        (* code goes here *)
        END Do;

    BEGIN
      (* code goes here *)
      END;
with the cursor positioned at the first code entry position, and when a little code is written, execution is a click-splat away. Macro execution at code-writing time is almost as powerful as macro execution at compile time, and dynamic execution of polymorphic statically typed code is about as powerful as dynamic execution of polymorphic dynamically typed code.

Did I mention that I'm about to make the (perhaps inanely or insanely hubristic) experiment of seeing how hard it eill be to implement Arc in AOS? Should be a fun learning experience.

-----

1 point by lojic 6084 days ago | link

From the essay:

"Remember, too, that languages are not primarily a form for finished programs, but something that programs have to be developed in. Anyone in the arts could tell you that you might want different mediums for the two situations. Marble, for example, is a nice, durable medium for finished ideas, but a hopelessly inflexible one for developing new ideas."

"...if a language has to have a toplevel to be convenient, and mandatory type declarations are incompatible with a toplevel, then no language that makes type declarations mandatory could be convenient to program in."

-----