(www.youtube.com) Oopsla Conference: Growing a Language - YouTube

ROAM_REFS: https://www.youtube.com/watch?v=lw6TaiXzHAE

[Recorded on October 1998]

From University Video Communications' catalog:

"Over the last quarter-century Guy Steele has been convinced that trying to design a complete and perfect programming language is the worst thing you can do. A programming language (including its associated libraries) must grow over time as its user community and its development community grow. This is a different situation from 25 years ago, when all such communities were relatively small. The difference is a problem of scale. As a result, programming language design now and in the future is necessarily as much a matter of social engineering as technical engineering and must rely more on a set of general principles than on a set of specific technical decisions."

Catalog number: 102706476
Lot number: X6636.2013

Ultimately, the thesis of the talk is that programming languages should be designed to be seamlessly extended by the programmers that use it. No general purpose programming language will be suitable for all general purpose users; therefore, it needs to be extendable.

The primary topic is that of large vs. small languages. One point of note is that Guy L. Steele Jr. thinks that building a perfect small language, in contrast to an imperfect small language, can't be done. He points out that Scheme was his best attempt at that. He also points out that users tend not to like languages as small and simple as Scheme or Pascal. Guy L. Steele Jr. concludes that, since large languages take too long to make, and that a perfect small language doesn't appear to be possible, the answer is to build a small language that is designed to grow and have the imperfections filed away.

Guy L. Steele Jr. points out that Lisp works in a way John McCarthy likely didn't originally intend or foresee: in Lisp, user additions to the language look identical to language primitives and vice versa. This means that user additions are indistinguishable from the base language.

Local Graph

org-roam 4ce14cbe-3b40-41af-bf7c-b4677450f635 (www.youtube.com) Oopsla Conference: ... b24601aa-09df-41e1-aa7e-25ead342db34 Programming Language 4ce14cbe-3b40-41af-bf7c-b4677450f635->b24601aa-09df-41e1-aa7e-25ead342db34 f236ab65-0f2f-4c13-bfac-b7a693e44af9 Programming Language Design 4ce14cbe-3b40-41af-bf7c-b4677450f635->f236ab65-0f2f-4c13-bfac-b7a693e44af9 745de98a-8445-4622-9020-877901f1a7cf Guy L. Steele Jr. 4ce14cbe-3b40-41af-bf7c-b4677450f635->745de98a-8445-4622-9020-877901f1a7cf 6246f8d4-6cd4-489d-b19f-9c1142b51b60 Scheme 4ce14cbe-3b40-41af-bf7c-b4677450f635->6246f8d4-6cd4-489d-b19f-9c1142b51b60 84ae6e85-a6a2-4133-bc53-274238081c2d Lisp 4ce14cbe-3b40-41af-bf7c-b4677450f635->84ae6e85-a6a2-4133-bc53-274238081c2d 9c394806-9d31-4312-a2cf-ae0d0935f7b1 John McCarthy 4ce14cbe-3b40-41af-bf7c-b4677450f635->9c394806-9d31-4312-a2cf-ae0d0935f7b1 f1682ffd-4562-4f76-8bea-dfe7ffd78c39 (www.reddit.com) Design Patterns as m... f1682ffd-4562-4f76-8bea-dfe7ffd78c39->4ce14cbe-3b40-41af-bf7c-b4677450f635