08:06
Ven` joined
10:13
Ven` left
10:32
Ven` joined
10:59
Ven` left
11:39
Ven` joined
|
|||
Ven` still wants to learn Simula `at some point | 12:18 | ||
masak | :) | 12:19 | |
I just discovered by accident that Simula used the "parameter list to class" syntax | 12:20 | ||
I'm in fact not so sure we ought to adopt that syntax -- I prefer to err on the side of boring/predictable/tried and true rather than opinionated/edgy | |||
Ven` | My comment disappeared. Wtf, weechat. | 12:21 | |
Anyway, yeah. Scala `case class`, Kotlin `data class`, C#8, .. | |||
Oh, C#7 even it seems. | |||
masak | I would need to check out all of those | 12:22 | |
Ven` | I think TypeScript wanted to do the same (that is... Copy C#) but I'm not sure if they went through. | ||
In LiveScript (and previously in CoffeeScript), you could do `class then (@a, @b) ->` that is, the "constructor" is an anonymous function in the body (and generally the class body is executable) | 12:24 | ||
masak | I think we talked about Julia having an executable body with some quasiquoting tendencies | 12:25 | |
Ven` | Maybe Julia, I admit to not really knowing the language. I do know Elixir has that tendency (but has no "classes"). | 12:26 | |
masak | I mean, I'm not ready to do that exactly, but I do recognize the macro use case that people will want to "construct" their class using macros | ||
Ven` | .oO( I very often wish learning natural languages were as easy as learning computer languages ) |
||
masak | it's the kind of thing that you can definitely do with a MOP... but maybe also with an ergonomic-enough macro system | ||
Ven` | I do think we have an issue about MOP and macros interactions. | ||
masak | no, me neither | 12:27 | |
oh, you *do* think :) | |||
Ven` | you don't? | ||
I think we talked aobut it in the context of Crystal, mhh | |||
masak | well, my latest thought on the matter is that the class syntax should maybe desugar to MOP calls, like in Perl 6 | ||
and then there is not much of a conflict | |||
Ven` nods | |||
masak | again, it mostly comes down to whether you want to macro-syntax it or MOP it | 12:28 | |
Ven` | If you're forced to use your own tools, they tend to suck less :). | ||
masak | I have a weak point for bootstrapping | ||
Ven` | Bootstrapping has a week point for bootstrapping... | ||
s/ee/ea/ | |||
masak | :P | 12:29 | |
s/point/spot/ | |||
no, I've been thinking about "007 is metacircular, but with a much bigger metacircularity loop than Lisp" in the past few days | |||
largely this is because parsing is trivial in Lisp, and so mostly is evaluation | 12:30 | ||
expressing them is "elegant" simply because there isn't much impedance mismatch between the data, the syntax, and the semantics | 12:31 | ||
Ven` | the syn-what? :-P | ||
masak | hehe | ||
Ven` | .oO( I only ever write my Lisp as array literals ) |
||
masak | but a modern Algoloid (with macros) doesn't have that elegance. instead it favors things like precedence/associativity, lots of special forms, and in general lots of specialized syntax for different things | 12:32 | |
it's an active choice, somehow. where Lisp radically favors a kind of consistency, modern Algoloids favor a kind of comfort | 12:33 | ||
Ven` | well special form can mean most everything and anythin, as Dylan shows I think. | 12:34 | |
A friend of mine is working on a lisp where you can use a syntax like ## x y to wrap the rest of the expression with (x y ...), which removes layers of parens | |||
it's just a tiny special form for people who think the issue iwth Lisp is the parens :P | |||
masak should definitely look more at Dylan | 12:36 | ||
Ven` too | |||
masak | any suggestions for resources? | ||
Ven` | github.com/vendethiel/read/issues/13, github.com/vendethiel/read/issues/1 is all I see to have. | 12:37 | |
Ven` looks at all the macros-related papers in that repo and sighs | 12:38 | ||
masak | ooh, a 'read' repository. that's a good idea! <3 | 12:41 | |
Ven` | Yeah, alas not enough things get closed... | 12:42 | |
The "metaprog" tag is probably one for your interest | |||
masak | noted. | 12:45 | |
Ven` | To say those papers I've been intending to read since like... 2013... | 12:47 | |
Back when I wanted to add a macro system to LiveScript :P. | 12:48 | ||
yes, yes, famous last words and back to the drawing board. | 12:50 | ||
masak | ;) | 13:01 | |
Ven` | Certainly, one thing I did not have to worry about is syntax: You can't make syntax overridable if there's pretty much never any syntax errors already :P. | 13:10 | |
masak | when I hear "pretty much never any syntax errors", the connotations are not all that positive ;) | 13:14 | |
Ven` | Says the Perlist! | ||
Well, it certainly wasn't meant to sound positive. | |||
masak | _reformed_ Perlist, if you please ;) | ||
Ven` | Sorry, I forgot you were a Java guy now ;) | 13:15 | |
masak | no, but, seriously, being a Perl 6 user is already an improvement on being a Perlist in that regard | ||
"this language takes any input you give it and attempts to make sense of it" is a dictum I can see *might* make sense to a certain mindset | |||
s/input/program/ | 13:16 | ||
Ven` | I need to re-read Programming Perl now that I've used 5 a bit. I read it only knowing Perl 6, and it certainly explained some choices, but I want to know more now. | ||
.oO( I guess that given/when Perl 5 explanation in the book might not be useful to me any further :P ) |
|||
masak | being a Perl 6 user made me want to understand Perl 5 better too | ||
you might enjoy reading the Apocalypses, by the way | 13:17 | ||
Ven` | Yeah, I certainly should. I do want to re-re-read the synopsis first. | ||
Wait, weren't they the exogeneses? My memory is failing me | |||
masak | the Apocalypses are much more personal than the Synopses | ||
Ven` | Not sure where they were moved now... | 13:18 | |
masak | the Apocalypses are authored by TimToady | ||
the Exigeses by TheDamian | |||
Ven` | ohhh, right! | ||
masak | perl6.org/archive/doc/apocalypse.html | 13:19 | |
Ven` | TimToady had a talk about the RFCs a few months back, I wonder if the data is there now... | ||
s/there/available publicly on the internet/ | 13:20 | ||
masak | perl6.org/archive/doc/exegesis.html | 13:21 | |
Ven` | thanks | ||
how should I read them? A1, E1, A2, E2, ..? :P | 13:22 | ||
masak | sure, that makes sense | ||
in general, the A documents are TimToady going through the RFCs and "integrating" them into a design, and the E documents are TheDamian taking that design and "implementing" it as an example program | 13:23 | ||
of course, what I see when I read those nowadays is all the things we learned since then | |||
YMMV | |||
Ven` | Yes, I see. Asked TimToady++ in #perl6, I'll see when he does drop by | ||
> Therefore one thing we must implement in Perl 6 is the ability to write meta-use statements that look like ordinary use statements but turn around and declare other things on behalf of the user | 13:25 | ||
More meta is always the solution! | |||
masak | where was that from? | 13:26 | |
Ven` | A01 | ||
masak | it seems highly relevant to my musings in the `import` issue | ||
Ven` | oh, I should fidn the RFCs list to go along. | 13:27 | |
perl6.org/archive/rfc/ it is | |||
masak | that particular RFC (16) is interesting because TimToady basically accepts it, but in practice it's been rejected by real-world Perl 6 usage | 13:28 | |
Perl 6 in all its usages is much more similar to Perl 5 with `use strict;` and `use warnings;` switched _on_ by default | 13:29 | ||
Ven` | And I like it that way | ||
masak | and I can't really remember when I last saw someone dropped down to `v6;` slacker mode | ||
I certainly never do that | |||
Ven` | Oh, that's how you do it? | ||
masak | I... I *think* so | 13:30 | |
Ven` | I've long known there was *a way* to do that, but I've never used it | ||
masak | I mean, I'm not sure, because I actively don't care, because it's, um, condtraindicated | ||
contra* | |||
masak went for a term that's not offensive to anyone | |||
masak mistyped the term, like a pro | |||
Ven` | I'm offended by (cond) | 13:31 | |
masak | haha | ||
I learned the other day that LISP pioneered the `if` statement | 13:32 | ||
Ven` | Wait, the E02 is actually for the A01? | ||
masak | though since it must've looked like (IF A B C), I wonder which language it was that invented the words "then" and "else" | ||
Ven`: no, there just isn't an E01 for A01 | 13:33 | ||
Ven` | I seem to find BASIC to be the answer, but from wikipedia with no source | ||
masak | could very well be true. BASIC is old. | 13:34 | |
Ven` | I'm not sure when COBOL got its -else | ||
masak | but, hm, does BASIC really predate Algol 60? | ||
Ven` | 1964 | 13:35 | |
probably not | |||
(when I tell people that LISP was basically invented within a year of COBOL, they tend to give me a weird look) | |||
> So there should be nothing preventing someone from writing a lexer regex that handles them, provided we make the lexer sufficiently mutable. Which we will. | |||
he he he he he. | |||
masak | "the lexer"? | 13:36 | |
ah, we were so young | |||
we still believed in lexers | 13:37 | ||
Ven` | well, considering how much the lexer does in 5-land... | ||
if it quacks like a deity... | |||
.oO( and demands as many sacrifices as a deity ) |
|||
masak | yes, that's the other thing | 13:38 | |
back in the days of Axx and E0x, Perl 6 looked a *lot* like Perl 5 | |||
you can see how the people who wrote it were mired in Perl 5 syntax and semantics | 13:39 | ||
I find that *fascinating*, and I also enjoy how far we've come since then | |||
Ven` | what does `length @a` do in 5? | ||
oh, funny, A02 mentions "Unicode support level", something we discussed less than a month ago | 13:40 | ||
masak | Ven`: `length @a` in Perl 5 is list length. `length $a` is string length. | 13:41 | |
Ven` | erm... isn't list length `scalar @a`? | 13:42 | |
oh wow, `length @a` is actually the length of the size of @a, as in `length scalar @a` | |||
masak | yes, but only because the latter delegates to the former, I believe | ||
er, no | 13:43 | ||
Ven` | well, so it's list length's length | ||
it's not list length | |||
masak | huh. it appears you're right. | ||
I was probably thinking of `reverse` | 13:44 | ||
Ven` | ah, I think I read something about reverse | ||
masak | strangelyconsistent.org/blog/the-ta...edy-on-irc | 13:46 | |
Ven` | Perl 5 prototypes are... well beyond insane | 13:49 | |
Oh, right, you speak mandarin, was it? | |||
My IRC client really doesn't like ??????. | 13:50 | ||
[Update: No, this confuses two different meanings of boolean. Use for =$*IN {...} instead.] | 13:59 | ||
haha | |||
masak | yep, we used to have prefix:<=> | 14:01 | |
the mandarin just means "haha" | |||
Ven` | "school of fish, fish's mouth moving, exhaling sound" | 14:06 | |
oh, japanese kinda-sorta stole it only. No japanese reading. (sorry, no cn dictionary on hand) | 14:07 | ||
seems like it only stole it for names... | |||
masak | well, "exhaling sound" sounds like it could be "ha" | 14:08 | |
Ven` | yes, definitely | ||
masak | I still feel "haha" looks very silly but "åå" looks extremely onomatopoetic | 14:09 | |
Ven` | well, in my term, "??" looks mostly... cryptic. | ||
Ah, unicode... tis a silly place. | |||
masak | "UTF-8 is your friend!" as #perl6 says | ||
oh, or "our friend". apparently not yours | 14:10 | ||
Ven` | > print $data{key is NoteToSelf('gotta get a better name for this key')}; | ||
that one is... gorgeous | |||
masak | but whyyyy | 14:12 | |
just use a comment | |||
Ven` | well we *did* ban inline comments :P | ||
masak | we... did? | 14:13 | |
Ven` | oh, yes, see A02 - RFC 102 | ||
masak | if you mean Perl 6, it resisted them for a long time, but then relented after badgering from perl6-lang | 14:14 | |
now we have #`[ ... ] | |||
Ven` | well, that bit is at the end of A02. it did ban them earlier in the document | ||
> La propri??t?? c'est le vol | 14:15 | ||
Damian speaks french, huh? or doesn't | |||
masak .oO( tout le monde ne le fait pas? ) | 14:19 | ||
it's called "lingua franca", after all :P | |||
Ven` | Offensichtlich spricht niemand franzosisch! | 14:22 | |
masak | ;) | 14:23 | |
Ven` | > First: Larry is insane. This means more to me than anything in the language itself. I prefer my heroes to have a firm grasp on sanity. I was never a fan of Don Quixote. Larry says God talks to him, and tells him that He hates non-Perl programmers. | 14:31 | |
some people... | |||
masak | that's stevey, right? | 14:33 | |
Ven` | yes | ||
masak | :( | ||
Ven` | is he "known"? | ||
masak | somewhat | 14:34 | |
what I like about his writings is that he writes frankly about language issues that not many others writes about | |||
the above example somewhat excluded, though. I don't like that post, although it makes a handful of fair points | 14:35 | ||
again, the above point excluded | |||
I don't feel an urge to knee-jerk defend TimToady's sanity, but... I still consider STD.pm6 to be not only ground-breaking, but a thorough atonement for toke.c | 14:38 | ||
Ven` | hahahha | 14:39 | |
masak | though I imagine Jeffrey Kegler would disagree about the "ground-breaking" part | ||
Ven` | oh, interesting question I'm getting from a bit of code. | 14:42 | |
Why didn't 5 keep its sigils-are-return-contexts for OO? | |||
@foo->bar(), %f->g() | |||
masak | I think you need to ask a core p5er that question | 14:43 | |
but (fwiw) my "Perl 5 brain" tells me that code looks "wrong" | |||
I think because I expect a reference before the `->` part | |||
15:06
Ven` left
15:10
Ven` joined
|
|||
Ven` | It's always interesting to read the explanation of a feature you yourself wrote a few years back... | 15:20 | |
Ven` writes down: "remove `content` from perl6inyminutes at some point" | 15:21 | ||
contend* | |||
16:14
AlexDaniel left
16:39
Ven` left
20:16
AlexDaniel joined
|