Live data from Hacker News

Programming language notation is a barrier to entry

blog.sigplan.org

21–30 of 191 posts

Re: Programming language notation is a barrier to entry

#21
post #2

Meh Notation in any field is a barrier to entry. See programmers takes on both math and music notation that are often posted here. The thing about notation that people sometimes don't think about is that it's used by many different types of people. Some things that would be convenient when notated implicitly make thinking about other things difficult.

> Some things that would be convenient when notated implicitly make thinking about other things difficult.

This really comes out in math, where choice of notation can call attention to different aspects of a concept. The Wikipedia page for ordinary least squares, for example, freely intermixes (depending on how you count) 3 or so different styles of notation.

I think that this is why I've always been fascinated by Knuth's literate programming. If you want to make something more understandable, saying it twice in two different ways is a great technique.

Re: Programming language notation is a barrier to entry

#22

Lowering barriers of entry to programming considered harmful to career programmers. If you support it without being manager level or above, you are harming yourself.

That assumes that more programmers doesn’t mean more programmers. I suspect the inverse, the more programmers we have, the more systems they create to program, and the more programmers we need.

Re: Programming language notation is a barrier to entry

#23

Earlier quoted context omitted.

And just like programming, there are versions of those with easier notation to ease entry. Anyone remember all the different ways music was represented as they grew up? What about guitar tabs? I remember simplified math as a kid. I think this hits on the right approach, which already exists: different languages with different complexity levels for notation.

It's interesting that guitar tabs are quite close to old tablature notation, which was used for lots of string instruments such as the lute. Renaissance lute music is usually tabbed.

Thanks for sharing. I had no idea.

I think it’s a really interesting approach of stripping away a ton of information and relying on the musician having heard the music before.

Re: Programming language notation is a barrier to entry

#24

Lowering barriers of entry to programming considered harmful to career programmers. If you support it without being manager level or above, you are harming yourself.

More genuine concern is lowering bar to entry below a certain level leads to decline of quality.

Just like how there is a class of programmers who don't understand simple CS concepts like algorithm complexity and memory allocation and write horribly inefficient code.

Re: Programming language notation is a barrier to entry

#26
post #2

Meh Notation in any field is a barrier to entry. See programmers takes on both math and music notation that are often posted here. The thing about notation that people sometimes don't think about is that it's used by many different types of people. Some things that would be convenient when notated implicitly make thinking about other things difficult.

And just like programming, there are versions of those with easier notation to ease entry. Anyone remember all the different ways music was represented as they grew up? What about guitar tabs? I remember simplified math as a kid. I think this hits on the right approach, which already exists: different languages with different complexity levels for notation.

> Anyone remember all the different ways music was represented as they grew up? What about guitar tabs? I remember simplified math as a kid.

I don't remember different notations for math and music as a kid...

Music was always sheet music, even when I learned classical guiter; Chord names were "procedures", at times spelled out, and sometimes only referenced. Guitar tabs exist, but were only for people who wanted to play without taking the time to actually learn the craft (at least when I was growing up) EDIT: This was the attitude of every teacher around me growing up, not mine.

As for math - other than having variables written down as empty squares, circles, triangles and stars which were later replaced by letters, I think the first real simplification of math notation that I met was Einstein summation; Everything else was just building on previous things, sometimes with new concepts (like complex numbers) and sometimes as shortcuts (limits and infinites). But they were all shorter than what they replaced, and compatible.

> I think this hits on the right approach, which already exists: different languages with different complexity levels for notation.

There was a guy who proposed something along the article's lines in 1958, which went even farther - instead of "single word descriptions", he chose a single symbol graphical description, because -- though ignored by the author of this article -- most of the world does not have English as their first language. I like the result of that 1958 suggestion a lot; most people place a SEP field over it. The guy is called Kenneth Iverson and the language is called APL with modern descendants J and K.

Re: Programming language notation is a barrier to entry

#27
post #20
post #6

Earlier quoted context omitted.

> But there's a reason we have doors, gates, locks and so on -- other "barriers to entry" Yes, because we don't want people to get into our house. Are you seriously suggesting a world where we want to make it harder for people to understand programming language literature?

> Are you seriously suggesting a world where we want to make it harder for people to understand programming language literature? I'd like the barrier for entry to be a bit higher if I'm honest. Maybe then I wouldn't have to work with code created by so many idiots.

My experience is that the people who hold this sort of view produce the worst output and are the least willing to improve it. Make of that what you will…

Re: Programming language notation is a barrier to entry

#28
People are being dismissive of the premise here. But I remember when someone gave me a link to a Haskell repository. I had no idea what was going on, or what those alien symbols meant. I can only imagine that the barrier to entry for Haskell is much, much, much higher than that of an Algol descended language.

Re: Programming language notation is a barrier to entry

#29
post #6
post #4

> But at its worst, PL notation obfuscates: a page of symbols is an opaque barrier to entry. The assumption here is that this is a bad thing. But there's a reason we have doors, gates, locks and so on -- other "barriers to entry".

> But there's a reason we have doors, gates, locks and so on -- other "barriers to entry" Yes, because we don't want people to get into our house. Are you seriously suggesting a world where we want to make it harder for people to understand programming language literature?

Or ideas in general, should we ever gate keep the dissemination of ideas and knowledge? Innovation is more likely to occur when people cross disciplines and they can only do that if it is approachable, it is gradual and discoverable. Simple is hard, simplistic is easy. Someone is going to come back with essential vs accidental complexity [1] but we can always strive for simpler, more cohesive ways to exchange knowledge. How much of our current notation systems are essential? And when do they diverge for non-essential reasons? Computer systems form primarily around notation (language and syntax), so notation is definitely important [z]

In the post the author mentions an excellent talk by Guy Steele that goes over issue of notation and balkanization titled, "It's Time for a New Old Language" where he outlines "the history and current status of computer science metanotation". [2]

Notation, like syntax is important, but like a plethora of ill defined and specified Domain Specific Languages (DSL), notation also needs to be defined, regular and learnable. For notation takes words and turns them into pictures that compose into thought structures that cannot be expressed in human written language to the same specificity. Think Feynman [3] and Railroad [4] Diagrams, or musical notation [5]

The abstract explains it beautifully,

> The most popular programming language in computer science has no compiler or interpreter. Its definition is not written down in any one place. It has changed a lot over the decades, and those changes have introduced ambiguities and inconsistencies. Today, dozens of variations are in use, and its complexity has reached the point where it needs to be re-explained, at least in part, every time it is used. Much effort has been spent in hand-translating between this language and other languages that do have compilers. The language is quite amenable to parallel computation, but this fact has gone unexploited.

[1] https://simplicable.com/new/accidental-complexity-vs-essenti...

[2] https://www.youtube.com/watch?v=7HKbjYqqPPQ

slides, https://groups.csail.mit.edu/mac/users/gjs/6.945/readings/St...

paper, https://sci-hub.st/10.1145/3155284.3018773

[3] 6 minute video from Fermilab on Feynman Diagrams https://www.youtube.com/watch?v=hk1cOffTgdk

[4] https://sqlite.org/syntaxdiagrams.html

[5] https://www.mfiles.co.uk/music-notation-history.htm

[z] Wadler's Law

Re: Programming language notation is a barrier to entry

#30
post #20
post #6

Earlier quoted context omitted.

> But there's a reason we have doors, gates, locks and so on -- other "barriers to entry" Yes, because we don't want people to get into our house. Are you seriously suggesting a world where we want to make it harder for people to understand programming language literature?

> Are you seriously suggesting a world where we want to make it harder for people to understand programming language literature? I'd like the barrier for entry to be a bit higher if I'm honest. Maybe then I wouldn't have to work with code created by so many idiots.

We're talking about literature related to programming language design not Stack Overflow here.

More people able to understand the literature means more people who can contribute and contribute effectively. That means better programming languages, better tooling and better educated people.

Post reply on HN