Live data from Hacker News

Why study programming languages (2022)

people.csail.mit.edu

51–60 of 118 posts

Re: Why study programming languages (2022)

#51
post #17

I think that one of the things that they neglect to mention, on why we invent new languages, and it's probably the most important thing - people want new ways to express concepts. It's super important because those concepts get measured, and absorbed into existing languages (as best they can), but that wouldn't have happened without the new languages New concepts like Rust's "ownership model", Smalltalk's "Object Ori…

While those languages made the concepts mainstream, they weren't the ones coming up with them. Rust's "ownership model", is a simplification of Cyclone, AT&T's research on a better C, based on mix of affine and linear type systems. https://en.wikipedia.org/wiki/Cyclone_(programming_language) Haskell's "Lazy evaluation" was present in Miranda, before all related researchers came up with Haskell as common playground. h…

Cyclone was indeed a very interesting language. It's always surprising what ultimately prevails.

Re: Why study programming languages (2022)

#52
post #5

Once you understand a thing, you know what it’s capable of. A lot of my early expertise in performance analysis was heavily informed by my SIGPLAN membership. Many of the improvements showing up in compilers and interpreters would show up in some form there, and of course those developers were either involved in the papers or had access to the same research. So when some new version came out with a big explanation of…

> Once you understand a thing, you know what it’s capable of.

Did you.... just quote Blade? :-)

Re: Why study programming languages (2022)

#53
post #27

Programming languages are obsolete in the LLM era. What current generation AI has revealed is that English is actually the ultimate representation of computer programs and systems, which is both sufficiently terse and precise to economically describe the operation of arbitrarily complex programs. There is no reason to study programming languages in 2025, other than as a historical curiosity - the same way one may stu…

Good luck debugging and fixing the multitude of errors introduced by your LLM. ESPECIALLY if you're outputting some low-level assembler or machine code. At least when we have our AI outputting Java/Typescript/Python/etc, it's easy (for a programmer) to see where it's run afoul.

Re: Why study programming languages (2022)

#54
post #49
post #37

> Usability is similarly ill-defined and hard to measure. Human factors are very well studied and standardized, and there is a well-established discipline called "Human Factors Engineering", which also provides established test and evaluation methods. Human Factors research is considered solid and well-established because it has been built on rigorous experimental psychology and engineering principles developed over…

Apart from ADA, what are languages / stacks with most aspects of "Human Factors Engineering" considered?

Niklaus Wirth designed Pascal (1970) with explicit pedagogical and human factors goals documented in his seminal paper "On the Design of Programming Languages". Wirth explicitly stated his belief that "insights gained from educational considerations could benefit programming language design in general, and that the simplicity and clarity he was striving for should be a guiding principle for all language design, serving equally pedagogical and development purposes". But - as with Ada - I'm not aware of any notable human factors engineering studies to validate design decisions.

Also Alan Kay and the Xerox PARC team designed Smalltalk (as Papert did before with Logo) with profound human-centered considerations, and they even "tested" their early concepts with children.

Also some other languages explicitly state human-centered design goals (e.g. Python, Eiffel), but as with Pascal or Ada the approach was more based on expert judgment, formal analysis, and established principles, not practical studies.

Re: Why study programming languages (2022)

#55
post #49
post #37

> Usability is similarly ill-defined and hard to measure. Human factors are very well studied and standardized, and there is a well-established discipline called "Human Factors Engineering", which also provides established test and evaluation methods. Human Factors research is considered solid and well-established because it has been built on rigorous experimental psychology and engineering principles developed over…

Apart from ADA, what are languages / stacks with most aspects of "Human Factors Engineering" considered?

Perl is one obvious one, as anyone will realize, if one has read some of Larry Wall's articles about his (and later the team's) motivations for the (syntax and semantics) design decisions they made about the language. For example, in his annual State of The Onion talks, he often discusses these points.

They may not have used standards such as the gp comment mentions, but they definitely considered human factors a lot.

E.g. TIMTOWTDI - There Is More Than One Way To Do It.

But that's not the only area in which they applied it.

Re: Why study programming languages (2022)

#56
> Why do we design new programming languages?

The main answer is that we have only a limited ability to modernize existing programming languages. For example, most languages are not null safe, because most languages are old and we can't make them null safe without breaking backward compatibility with most existing code. And we can't break backward compatibility for practical reasons. So Java will never be null safe, PHP will never be strongly or statically typed, etc.

So for fundamental language features, replacing older languages is the only way to achieve progress. Unfortunately that's a very slow process. Python, the currently most popular language, is already over 30 years old.

Re: Why study programming languages (2022)

#58
post #49

Earlier quoted context omitted.

Apart from ADA, what are languages / stacks with most aspects of "Human Factors Engineering" considered?

Perl is one obvious one, as anyone will realize, if one has read some of Larry Wall's articles about his (and later the team's) motivations for the (syntax and semantics) design decisions they made about the language. For example, in his annual State of The Onion talks, he often discusses these points. They may not have used standards such as the gp comment mentions, but they definitely considered human factors a lot…

Perl presents a fascinating counterexample: Larry Wall, trained as a linguist, explicitly cared about human factors, but his linguistic philosophy produced a language that empirical tests show performs poorly on readability and learnability measures (see e.g. http://dx.doi.org/10.1145/2534973 or https://doi.org/10.1145/2089155.2089159).

Re: Why study programming languages (2022)

#59
post #51
post #17

Earlier quoted context omitted.

While those languages made the concepts mainstream, they weren't the ones coming up with them. Rust's "ownership model", is a simplification of Cyclone, AT&T's research on a better C, based on mix of affine and linear type systems. https://en.wikipedia.org/wiki/Cyclone_(programming_language) Haskell's "Lazy evaluation" was present in Miranda, before all related researchers came up with Haskell as common playground. h…

Cyclone was indeed a very interesting language. It's always surprising what ultimately prevails.

I guess it is always a matter of being there at the right time, or having the luck to spot the right audience.

Re: Why study programming languages (2022)

#60
One of PGs essays hit on this when he talked about “blub”. Building a language for a specific solution/domain was/is expensive, but using a language to build abstractions or an internal domain specific language has been much more tractable. As such some languages are more or less suited for this activity; Lisp being the king then Ruby then etc.

So to me the study languages was interesting from this DSL perspective.

Post reply on HN