
Growing a Language, by Guy Steele (1998) [video] - mnmlsm
https://www.youtube.com/watch?v=_ahvzDzKdB0
======
mpweiher
Great talk, one of my inspirations.

The "nub" (slightly edited):

"A language design can no longer be thing. It must be a pattern, a pattern for
growth".

"My point is that a good programmer does not just write programs. A good
programmer builds a working vocabulary. A good programmer does language
design, though not from scratch, but building on the frame of a base language"

[https://youtu.be/_ahvzDzKdB0](https://youtu.be/_ahvzDzKdB0)

Oh, the paper if you don't want to watch the whole thing:

[https://www.cs.virginia.edu/~evans/cs655/readings/steele.pdf](https://www.cs.virginia.edu/~evans/cs655/readings/steele.pdf)

~~~
kristianp
"nub" \- I think you might mean "point" or "crux"?

Main Entry: bottom line

Part of Speech: noun

Definition: indispensable content

Synonyms: basis, conclusion, core, crux, determination, essence, fiber, final
decision, fundamentals, income, key point, last word, loss, main idea, main
point, main thing, meat and potatoes, name of the game, net, nitty-gritty,
nuts and bolts, point

~~~
mpweiher
> "nub" \- I think you might mean "point" or "crux"?

"This is the nub of what I want to say" is a direct quote from the paper/talk.

------
lioeters
A classic that is relevant today as it was 20 years ago. Thank you for the
repost, it's a good reminder to (re-)examine what I'm doing these days in a
larger context.

"..plan for growth with help from users. This is a win for you because you
have help. This is a win for the users because they get to have their say and
get to bend the growth to their needs."

"Parts of the language must be designed to help the task of growth. A good set
of types, ways for a user to define new types, to add new words and new rules
to the language, to define and use all sorts of patterns — all these are
needed."

------
pvg
Previouslies:
[https://hn.algolia.com/?query=%22growing%20a%20language%22&s...](https://hn.algolia.com/?query=%22growing%20a%20language%22&sort=byPopularity&prefix&page=0&dateRange=all&type=story)

------
cntlzw
20 years later. What does Guy Steele thing about how Java ended up? We still
have no operator overloading, no value types. There are plans, sure, but Java
grows very slowly. Good thing? Bad thing?

Does anyone know if there is a follow up on this?

~~~
kochthesecond
Thank goodness there is no operator overloading. I maintain 15 year old java
codebases and am very happy they did not add user defined operators...

~~~
jVinc
I always find this an odd reason to be against usable features. I have
inherited codebases in extremely confined languages as have I inherited
codebases in very permitting high-level languages Python, and never have I
though "Thank good this language decided to restrict its reach in order to
confine the programmer to a smaller subset which made it harder for him to
mess up."

Often have I though "My good, if only the language had better supported what
the programmer is trying to implement himself through horrible hacks, then I
wouldn't be sitting here trying to wonder exactly what mistakes he made that
casuses everything to crash inexplicably."

~~~
sharpercoder
I guess the culture around a language matters significantly. For instance,
there is quite a specific culture around the Rust community/language. The
focus on the language ergonomics is also reflected in many packages. Same goes
for the mutability/immutability aspect of code.

A second example of this culture is the go language. I read a few repo's, and
the same style of programming is seemingly applied throughout.

For the Java case, I can actually see operator overloading going haywaire over
many codebases. The same as overengineering is a typical trait associated with
Java.

------
garborg
This is one of my favorites. They played it for us when I was at
[https://www.recurse.com](https://www.recurse.com). I half appreciated it
then, but it's gotten better with repeat viewings.

------
namarie
Thank you for this! I'd forgot the name of the talk, and I spent some days
looking for it, with no success...

------
wontruefree
this was the first video handed to me when I started in Java

