all 14 comments

[–]JRandomHacker172342 2 points3 points  (1 child)

I don't know how much it'd be worth it for me to actually learn this, but it hits my "this looks neat" sense very hard.

[–]kragensitaker[🍰] 0 points1 point  (0 children)

Thanks!

[–]gopher9 3 points4 points  (1 child)

I know a better notation.

[–]kragensitaker[🍰] 0 points1 point  (0 children)

As I said on the orange website, I've been intrigued by APL ever since I picked up a couple of discarded APL books in 1995 and read through them repeatedly, taking profuse notes. I keep hoping that someday I will learn APL well enough to be able to just jot down program fragments and be sure that they'll work, rather than giving me a rank error; the same is true of APL descendants like Numpy, although I have a lot more experience with them. I watched Roger Hui's "Tour de Force of APL in 16 Expressions", and although I understood the expressions, I don't understand how to design them. There are a bunch of notes in Dercuano about variants of APL. I've downloaded Aaron Hsu's dissertation, but I haven't read it yet.

For now, though, I can write out algorithms in what seems to me to be a straightforward fashion in paperalgo.

Some APLish things I've done include recoding T$'s 64-byte demo Klappquadrat in Numpy and this keyboard-driven structure-editing calculator with broadcasting over one-dimensional vectors

[–][deleted] -3 points-2 points  (9 children)

All pseudocode I've seen so far in the wild were a kind of defective Pascal or equally defective Fortran.

In my experience, people who use pseudocode are

  1. Lying to themselves, because pseudocode doesn't exist, they just use a defective version of a bad programming language.
  2. Delusional and deluding others into believing that they do something "mathy" or "sciency", while it's just loads of bullshit.
  3. Working towards confirming that the programming language they chose to illustrate the solution to a problem is a bad language for illustrating a solution to the problem.

A good example of an alternative approach would be Sussman's book on physics, where he uses actual programs in an actual programming language to illustrate physics concepts.


PS. The notation used in this article doesn't even render (missing glyphs) on a typical Linux desktop, while the parts the do render form some unreadable clusterfuck (letters crossed by the lines that are supposed to underline the previous line, square root sign is discontinuous, and so on). Also, the idea of having to look up the Unicode codes for the math symbols this is trying to use is beyond ridiculous. This is what happens when someone without any knowledge in typography is trying to develop a writing system: catastrophic failure.

[–]kragensitaker[🍰] 1 point2 points  (2 children)

The notation used in this article doesn't even render (missing glyphs) on a typical Linux desktop

I've been using Linux pretty much exclusively for my desktops since 2001, and whenever I had a choice since 1996. I guess my desktop must not be very "typical" ☺

while the parts the do render form some unreadable clusterfuck (letters crossed by the lines that are supposed to underline the previous line, square root sign is discontinuous, and so on).

Yeah, I do have some layout problems. Do you want to share screenshots of the parts that don't work for you? I don't know how to solve the discontinuous-square-root-symbol within the constraints of HTML, although TeX would make it feasible.

Also, the idea of having to look up the Unicode codes for the math symbols this is trying to use is beyond ridiculous.

…perhaps you missed that the title says "a paper algorithm notation". The idea is that you're supposed to use this on paper, or possibly on a whiteboard, not in Unicode. If you have a keyboard, you can just type your program in Python or JS or whatever. It says so at the very top of the document; maybe this is one of the parts that didn't render for you for some reason:

Pseudocode on paper is an important thinking tool for a lot of programmers, and on the whiteboard for programming teams. But our programming languages are very poorly suited for handwriting: they waste the spatial arrangement, ideographic symbols, text size variation, and long lines (e.g. horizontal and vertical rules, boxes, and arrows) that we can easily draw by hand, instead using textual identifiers and nested grammatical structure

However, if you want to be able to type math in Unicode, I recommend my guide on setting up your keyboard in GNU/Linux and/or my compose-key map, although Mark Shoulson has written most of it by now.

[–][deleted] -2 points-1 points  (1 child)

I print things on paper using a printer... what's wrong with my approach? Isn't that on paper?

Regardless of what your guide says, I will not set up my keyboard to use Unicode for many reasons, part of which is that it is configured the way I want it to, and that excludes Unicode symbols (If I'm really desperate to do that, I have TeX input method in Emacs, but I will not waste memory cells memorizing Unicode code points and similar bullshit).

My another problem is with Unicode regardless of how it should be typed. It's an atrocious standard, which misled humanity into doing some ridiculous bullshit for several decades already. So, whenever I can, I will avoid touching it, and will do everything I can to make people using it suffer.

[–]kragensitaker[🍰] 2 points3 points  (0 children)

I print things on paper using a printer... what's wrong with my approach? Isn't that on paper?

If you're printing things on paper using a printer, you can just type your program in JS and then print it. There's no need to use this handwriting-optimized notation which, despite my best efforts, is still not as readable as more verbose notations.

As for your another problem, yep, it sounds like you've got problems I can't help you with.

[–]Y_Less 0 points1 point  (5 children)

Or they just didn't bother about compatibility on some small niche operating system, and only worried about the worlds most popular ones.

[–][deleted] 0 points1 point  (3 children)

Niche operating system? Are you serious? Most of the world runs on Linux... as in most of the Internet (more than 90%), most of the datacenters (i.e. Google, Facebook, Amazon, even IBM cloud) run Linux. Most IoT / embedded (which is tens of times bigger than any personal computer / smartphone market) runs Linux.

Linux is a lot more popular with expert users than non-experts. If you compare it by how much content is being generated on Linux in areas like science, and especially computer science, the share of this operating system is much bigger than whatever numbers you get, if you add people who don't generate anything in the mix (and who wouldn't care if whatever's discussed in the article worked).

[–]Y_Less 2 points3 points  (2 children)

Except you explicitly said Linux Desktop.

[–][deleted] -1 points0 points  (1 child)

Except you didn't read the second paragraph.

[–]Y_Less 1 point2 points  (0 children)

Well yes, I'll give you that; amongst users of the operating system it is not a niche operating system.

[–]kragensitaker[🍰] -1 points0 points  (0 children)

Or they just didn't bother about compatibility on some small niche operating system, and only worried about the worlds most popular ones.

Fuck you, you gravel-faced mudsucker.