7 Feb 2023 |
Nemokosch |
these "hate trends" are more about people being stupid and easy to buy with superficial stuff |
15:47 |
|
rf |
Lisp is by far the most sound language design, but it isn't necesarrily sound for developers |
|
|
|
I don't know how to spell necessarily apparently lol |
15:48 |
|
el gatito (** advocate) |
this is a fibonacci sequence calculator in cobol rosettacode.org/wiki/Fibonacci_sequence#COBOL |
|
|
rf |
I think a good language is a language that gets stuff done, and doesn't get in the way of the developer. OCaml, Raku and Perl are my gotos for those reasons |
15:49 |
|
Nemokosch |
rf: see, English is forgiving xD |
|
|
|
nobody even noticed probably |
|
|
el gatito (** advocate) |
now rewrite that in any other language |
15:50 |
|
Nemokosch |
what are the numbers for? 😄 |
15:53 |
|
|
I mean... okay, it is verbose. Verbose like hell, even. But there have been trends to return to "literate programming", right? |
15:54 |
|
el gatito (** advocate) |
the authors of this language take "literate programming" a little too far |
15:55 |
|
Nemokosch |
I get the intention at least - same as Java |
15:58 |
|
|
bit of a "code monkey" mentality |
|
|
|
write more - but it should really be self-explanatory and rigid |
|
|
|
something that might work for 50 years without ever modifying |
15:59 |
|
|
you wouldn't feel like modifying it anyway 😆 |
|
|
el gatito (** advocate) |
it is also designed by a literal commitee |
16:01 |
|
|
m: my \hi there = 1; say(hi there); |
16:23 |
|
Raku eval |
Exit code: 1 ===SORRY!=== Error while compiling /home/glot/main.raku Term definition requires an initializer at /home/glot/main.raku:1 ------> my \hi⏏ there = 1; |
|
|
el gatito (** advocate) |
m: my \hi there = 1; say(hi there); |
|
|
Raku eval |
Exit code: 1 ===SORRY!=== Error while compiling /home/glot/main.raku Term definition requires an initializer at /home/glot/main.raku:1 ------> my \hi⏏ there = 1; |
|
|
Nemokosch |
why would this work, though |
16:24 |
|
el gatito (** advocate) |
im trying to put a no break space |
|
|
|
in between |
|
|
|
turns out they convert it to normal space |
16:25 |
|
Nemokosch |
ohhhh |
16:26 |
|
|
come to think of it: related issue |
|
|
|
github.com/Raku/problem-solving/issues/357 |
|
|
|
that is, indeed it isn't clear, in strings at least, how that would be interpreted |
16:27 |
|
el gatito (** advocate) |
m: my \𝚋𝚛𝚞𝚑 = 1; say bruh; |
|
|
Raku eval |
Exit code: 1 ===SORRY!=== Error while compiling /home/glot/main.raku Undeclared routine: bruh used at line 3 |
|
|
el gatito (** advocate) |
real |
|
|
|
nbsp are converted to normal space but mathematical monospace aren't converted into their respective ascii forms |
16:28 |
|
Nemokosch |
I'm fairly certain this falls into the "nobody thought of it" territory... |
16:29 |
|
|
the disadvantages of designing an arbitrarily complex language |
|
|
|
everything is allowed, unless explicitly forbidden |
|
|
el gatito (** advocate) |
meanwhile python...python 𝚋𝚛𝚞𝚑 = 1 print(bruh) # 1 |
16:32 |
|
Nemokosch |
the funny thing is |
16:35 |
|
|
it breaks the REPL in both |
|
|
|
although both say it has a length of 4 |
|
|
|
by the way, not gonna lie, Raku's version seems saner again 😆 |
16:37 |
|
|
if you're gonna allow Unicode weirdness like that, why on earth would you map that to something completely different under the hood? |
16:38 |
|
|
m: my \𝚋𝚛𝚞𝚑 = 1; say 𝚋𝚛𝚞𝚑 |
|
|
Raku eval |
1 |
|
|
el gatito (** advocate) |
its called nfkc normalization |
16:43 |
|
|
the point is that 𝚋𝚛𝚞𝚑 and bruh represent the same abstract characters just in different fonts |
16:46 |
|
Nemokosch |
from this spaghetti abbreviation, I can't say for sure but Raku strings undergo a certain normalization |
16:49 |
|
|
and it's certainly not this one because these strings are not equal |
16:50 |
|
|
found this unicode.org/reports/tr15/#Canon_Co...quivalence |
16:53 |
|
|
so for example |
16:58 |
|
|
m: "LATIN SMALL LETTER A WITH ACUTE".uniparse eq "LATIN SMALL LETTER A, COMBINING ACUTE ACCENT".uniparse andthen .say; |
16:59 |
|
Raku eval |
True |
|
|
Nemokosch |
I think this is a difference between NFKC and NFC (that MoarVM uses) |
17:01 |
|