You are viewing archived messages.
Go here to search the history.

Denny Vrandečić 2022-02-10 22:09:35

Computer science and programming doesn't seem to have a popularizer, like many other sciences did: Carl Sagan or Neil de Grasse Tyson for Astrophysics, Steven Pinker for Linguistics (whether you like the person or not), Bertrand Russel for Mathematics and Philosophy, etc. But there is so much fun stuff to tell and show. Does anyone know someone or some place that comes close to such a goal?

Orion Reed 2022-02-10 22:55:00

This is an interesting observation, closest folks I can think of are Tim Berners-Lee, Ted Nelson, Alan Kay, etc. But they're definitely something other than the pop-science, “thought-leader” character and are known for specific work, or ideas.

Andrew F 2022-02-10 23:07:48

Computerphile on YouTube. Same producer or whatever as Numberphile and a couple other channels IIRC. Not terribly famous, but definitely in the space you're looking for.

Orion Reed 2022-02-10 23:08:53

IMO there's a distinction between folks like Tyson or Piker, who get lots of speaking events, media coverage and whos income is reliant on maintaining a public presence of some form -> vs people such as Noam Chomsky, or Hawking, who may engage in lots of public discourse but have primarily worked within their fields for most of their lives.

I've heard people refer to this distinction as one of “thought leader” vs “public intellectual”

I feel there's more of the second category in computing, but they're still relatively niche and I don't know any that regularly engage with society at large.

Andrew F 2022-02-10 23:11:47

If you want a charismatic personality, I think Tom Scott could do the job (he does do some CS content on Numberphile and his own channel), but based on his YouTube output he doesn't feel like specializing to that degree.

Edit: Grant Sanderson/3Blue1Brown also occasionally does related work at a very high quality.

Orion Reed 2022-02-10 23:29:03

It's almost as if there's more a network of popularisers: YouTubers, authors, filmmakers, or public speakers, addressing their own part of a massive space -> the web, ML, game/system design, sociological analysis, interesting mathematics, etc. it's kinda all messy and spread out.

Andrew F defo has some good recommendations, I'd add TwoMinutePapers and Sebastian Lague, along with all the great smaller creators putting in tons of work to present technical ideas in an engaging (and nice-to-look-at) way.

Denny Vrandečić 2022-02-10 23:34:40

Thanks for the suggestions so far! I was thinking of Tim Berners-Lee and Alan Kay. Berners-Lee might be recognizable, at least in name, but he is not a great explainer or popularizer. Kay is much better in this regard, but never reached a wider audience. The ones who come to mind are Herbert Simon and Allen Newell, but they went much further than CS. The YouTubers are interesting, and possibly the closest we have in CS to a Carl Sagan, I am afraid.

Andrew F 2022-02-11 00:17:18

I wouldn't hold my breath. The most widely popular ones are for fields like astronomy and physics where you can feel awe and wonder without much effort. Pop math exists, but is less popular, and still in inverse proportion to how much effort is needed to appreciate it. An astronomer can just put up a slideshow of cool pictures.

Any interesting applications of CS tend to require a lot of effort to appreciate, and/or be too abstract or too niche to catch lay interest. This is in no small part due to the state of the ecosystem, which obviously a lot of people here are working on fixing. E.g. cool visualizations are nice but tend to be obviously toys, raw coding in mainstream languages is hard to follow, lambda calculus can be beautiful but demands a lot of effort even from pros, etc. Where it's not mind-bendingly hard there's a bunch of accidental complexity.

I suspect linking CS concepts with problems that people intuitively understand is key, ideally with concrete results/outputs, that don't feel too artificial. A program format that lay people can grok would also be great, but I think if people can link the explanation of the code or whatever with the problem or other question, then they'll take it for granted and come back for more. Perhaps a platform that let you livecode a non-trivial game, maybe even a webapp, or some demo that made theoretical CS feel more practical than just moving symbols around. Honestly there probably exist people who could do the game thing in Love2D or something, but I don't know if lay people could follow. Live music coding is a (niche) thing, but I don't know how far you could take that in popularizing CS concepts beyond loops.

I'm kind of obsessing over live demos here, which is probably not the only way to do it. However, I do think interaction is the best way to make CS feel computational, showing multiple runs and changes to the program, and if the common scenario is "speaking engagement", well, there you go, you're doing it live. :)

David Brooks 2022-02-11 01:28:47

I think one obstacle in the way of someone becoming a Carl Sagan of CS is that CS is still, relatively speaking, in its infancy. Physics and Maths have hundreds and hundreds of years of history, a cohesive story and a sense of foundational understanding. As Alan Kay says (or at least I think he says)... the closest thing we have to a fundamental CS law is LISP. Turing equivalence and all that.

Jack Rusher 2022-02-11 08:34:46

In the 80s it was Douglas Hofstadter, particularly Gödel, Escher, Bach: an Eternal Golden Braid.

Tom Larkworthy 2022-02-11 08:34:50

I am somewhere between Steve Jobs and Donald Knuth

William Taysom 2022-02-12 06:11:22

Coming back to GEB in recently, it reads a lot like a blog to me now. 😮 Also I use this https://steamuserimages-a.akamaihd.net/ugc/438362340894581027/DFD65476747C2F86CE04304BDDB67ADE7985292B/ reference to GEB as the lock screen image for my iPad.

Konrad Hinsen 2022-02-13 09:53:18

Maybe one reason why there is not much of a market for popularization is the ubiquity of selling. All those people crying "my tech is the best and greatest" leave little room in attention space for popularizing more fundamental aspects of computing.

Janne Aukia 2022-02-11 11:50:03

I’m designing an UI for adding blocks in visual programming (similar to Scratch) without having to drag-and-drop, and wondering if there are any good ideas in other tools. Any block or outline UI:s for visual programming that handle keyboard navigation and/or focus caret (edit point) well?

Janne Aukia 2022-02-11 12:06:25

“Semantic Editors” here are maybe somewhat related (Hazel, Syntactor, Fructure), even though they are not based on blocks.

https://github.com/pel-daniel/mind-bicycles

Jack Rusher 2022-02-11 12:40:04

The Fructure approach would be very interesting for a block editor. 👍

Paul Tarvydas 2022-02-11 13:27:16

IMO: Emacs’ mark and point

  1. set cursor, click key, graphical object appears at cursor

  2. set mark, set cursor, click key, graphical object appears between mark and point

(I like to think that every operation must be bound to a keystroke. A mouse requires a whole hand, a keyboard allows the use of 10 fingers.)

Jason Morris 2022-02-11 15:45:32

Blockly Developer Tools is an eat-your-own-dogfood method of generating block definitions using a block interface, and Blockly supports a rudimentary keyboard navigation.

Jason Morris 2022-02-11 15:56:32

Blockly generally has an approach to variables and functions where you declare them, and then they become new blocks in the interface. I'm using a similar approach in Blawx for categories, objects, and attributes.

Joshua Horowitz 2022-02-11 19:43:31

Keyboard control of block-based programming is a really interesting direction. I haven't seen it done before. With structure editors modeled after textual code (Hazel / Fructure / Lamdu), there's a clear target of "make keyboard interaction emulate keyboard interaction with text". Your situation feels more open-ended.

You might want to look into how spreadsheets handle keyboard navigation. Or what Glen Chiacchieri's done with his latest Flowsheets demo, linked to from https://twitter.com/Glench/status/1488185413516857347.

Jason Morris 2022-02-11 21:55:12

@Janne Aukia, I've been thinking about this problem a little, today, and I have an idea. The blocks in Blockly all have a default textual representation. You could build a blockly plugin that allows the user to type, but everything is auto-completed to the text representation of the blocks that are currently available, so you can't type anything that doesn't generate blocks. new line creates a new block in the current stack, increasing and decreasing the indent moves the cursor in and out of stacks and fields. You could also allow the blocks to define their own alternative name for use in the auto-complete field, so you could type "rule", and you would auto-complete to "when we know we also know ". Whatever you have currently entered shows up on a scratch-pad. Hit enter twice in a row, and whatever you currently have (including spaces you haven't filled in the text version) gets dropped onto the workspace for you. Targetting is hard, so to start I would say put the first one in the middle of the workspace, and if the user continues to type without scrolling, put subsequent entries below that one. I think that could work, and I think it could be written in such a way that it would work for anyone using Blockly, not just for a particular block set, as long as the blocks all have text on them. But it might be a good idea to add details to the block definitions for how the text version should read, since internal inputs and fields can be named pretty arcanely. I think it would be a really smart way to combat the "visual programming is not for experts" nonsense.

Jason Morris 2022-02-11 21:56:34

Actually, that's such a cool feature idea, I'm adding it to my backlog.

William Taysom 2022-02-12 06:04:35

With Scratch, I thought at first that dragging blocks would be tedious in a way that it mostly isn't. Fairly standard code completion techniques may play well with a block language: just show me what blocks would likely fit here. Two other surprisingly nice Scratch things: (1) you can change the selector popups for blocks in your well, giving them more of a tool/template feel, (2) double clicking on lone groups of blocks in the middle of your workspace executes them. Now I'm reminded of Acme's middle click to execute code.

Jason Morris 2022-02-13 17:12:34

Yeah, I get a lot of pushback from "traditional programmers" about the downsides of the visual syntax. But the fact of the matter is that I can type, and I don't hate using it. Pair programming, mob programming, code review, all of these are attempts to increase the ratio of thinking to typing, so going slower may not be a bad thing.

Jason Morris 2022-02-13 17:13:56

What I do find tedious is how difficult it is to navigate your code. Line-wrapping means that text has a fixed width, and there are lots of good methods for page-up, page-down, etc. The same don't exist in the visual interfaces I've used.

Jason Morris 2022-02-13 17:15:14

I didn't know about the double-click feature in Scratch, that's cool. I might add it to question blocks in Blawx. Thanks for the tip!

William Taysom 2022-02-14 04:20:42

Keep in mind that traditional programmers are relatively good at what traditional programming entails. Many other people take one look at that and back away... slowly.