34 comments

[ 2.9 ms ] story [ 64.0 ms ] thread
Hey, I made this. I needed dummy but syntactically valid code to show in demos like this one: https://github.com/pomber/code-surfer/blob/code-surfer-v2/re...
Wait, this is just for dummy code for demos? I've been using at work for our production system. I figured the compiler would catch any mistakes...
Let me know how it goes with the compiler, I've got too much angel capital invested in this by now for it not to work!
The name is kind of misleading. I expected it to generate random lines of code, instead of just replacing identifiers with lorem ipsum.
For whatever it's worth, I didn't share your expectation. The real lorem ipsum is just a fixed load of text, after all - describing something as "lorem ipsum but for code" shouldn't necessarily imply any functionality.
Given that lorem ipsum is a fixed load of text, as you said, I would have expected a lorem ipsum for code to be a fixed load of code (that's nonsensical but looks real enough from afar).
Same thought here. I thought something along the lines of hackertyper. Something that looks like real code, but isn't.
Why code in faux Latin when you can use the real thing: http://users.monash.edu/~damian/papers/HTML/Perligata.html
I didn't expect it, but I thought Perligata is more readable than Perl.
At least, apart from numbers, which all are rendered in Roman numerals.
This is so cool! I love it.

I am a Russian speaker, and this ambiguous aspect of English has always bugged me to hell! I think english was a bad model as a starting point for programming languages.

How so?
I'm guessing they're referring to linguistic features that English doesn't have, such as inflected nouns to unambiguously indicate the subject, direct object and indirect objects.

`bite(dog, man)` is ambiguous. You need to look up the function documentation, make a guess, or ask the library developer to come up with a less ambiguous name.

If you could decline your variables, however, you could write (in terrible fake Latin)

`bite(dog, man-um)` or `bite(dog-um, man)` and they would be interpreted as two different -- and unambiguous -- things.

...but I'm just repeating GP's article.

It might just be me, but isn't that just how you name your attributes within the function definition? I don't see how that would help disambiguate without have to look at the function definition at the very least.
The point is it's a new way of looking at arguments (in this toy example). In Latin, the order of the nouns typically does not matter. Their role in the statement is unambiguously determined by their declension.

So if you wrote a library with the verb "bite", you wouldn't specify that the first bites the second, or the first was bitten by the second. Those are ambiguous, because they're you're choice as a developer. Rather, you'd specify that the noun in the subject case bites the noun in the object case. That's unambigious in all declined languages.

So, as a reader of someone else's code, I can see immediately that `bite(boy-um, dog)` -- in my fake Latin where "um" denotes the object (cf. "Puer - Puerum") -- that the boy was bitten by the dog. I don't need to look up any documentation or look at how the variables are named in a third-party library.

Again, of course this case is a toy example. The article is more in-depth.

`bite({from:Dog,to:Man})` solves the ambiguity in my opinion.
This is clearly the work of both a madman and a genius
I just proposed my team switch to this haha, awesome.
Unfortunately, this doesn’t lorem ipsum code comments.

I also wonder how large such an obfuscated code fragment would need to be to be able to find back the original code on GitHub/GitLab.

It looks like dolor is assigned without first being initialized.
No, it's passed in as a parameter with a default value of 1
I think it should not replace the `length` property of an intentional array.
As some others in this thread, I feel bamboozled.

What I was hoping for is a "Lorem Ipsum"-style generator for code for like 10 different languages. So you'd have a Lorem Ipsum for JS, C++, Rust, etc.

This is just find/replacing identifiers with lorem ipsum, which doesn't really mask the underlying code that well.

It keeps throwing me

"SyntaxError: unknown: Unexpected token (1:20)"

on valid code