3 ms·
is medium code for i've just read about something i haven't read before and here's some loosely related thoughts? the author is not even familiar with racket no
by nikofeyn 6y ago
is medium code for i've just read about something i haven't read before and here's some loosely related thoughts? the author is not even familiar with racket nor does he seem particularly familiar with what language oriented programming (LOP) is.
the author does not give definitions of things that he makes comparisons between. for example, no definition of language, natural language, programming language, or metaphor is given, and he even conflates natural language with language. and this entire article seems to be based on analyzing the meaning behind a footnote.
what he misses is that the racket/LOP community think of programming as communication between people and not between human and machine. matthias felleisen says so here (https://www.youtube.com/watch?v=91hynuuM_As https://www.youtube.com/watch?v=91hynuuM_As). that is the very definition of language: the words, their pronunciation, and the methods of combining them used and understood by a community (merriam-webster). this definition is actually a little overly specific, but one thing i am reminded of is the text from SICP that says:
> when we describe a language, we should pay particular attention to the means that the language provides for combining simple ideas to form more complex ideas. Every powerful language has three mechanisms for accomplishing this:
* primitive expressions, which represent the simplest entities the language is concerned with,
* means of combination, by which compound elements are built from simpler ones, and
* means of abstraction, by which compound elements can be named and manipulated as units.
> Also when they refer to “extra-linguistic mechanisms” do they mean different codes as in semiotics?
the author should understand what they mean before writing this article. by extra-linguistic mechanisms they mean reaching outside of the chosen language, like java, to other languages (these are the configuration, project description, and makefile languages mentioned). the purpose of LOP is to bring these extra-linguistic mechanisms into the base language. so in racket, rather than creating a wholly new languages for documentation, they created scribble which is a language that sits on top of racket and can interact with racket. this is turning the extra-linguistic mechanism of writing documentation into a linguistic construct so that scribble is not a totally separate language, it is an extension of racket.
> If we want to think about what kind of problems a programming language makes easy to solve, and which ones they make more difficult, I’d say it’s better to use the tool metaphor, and see where that framing could take us.
the so-called tool metaphor has been the dominant view and is the source of almost all problems of software. software is not just a tool.
what makes software hard is that it isn't one thing. it is all of a way to do something (a tool), a way to think about something (a conceptual model), and a way to communicate something (a language).