<etc>
Hi! You know how object literals and actor literals are the same but actor literals have behaviors? Is there a reason why the `actor` keyword is needed and actors aren't just classes with behaviors other than for documentation/readability?
<etc>
Also is there a `map` for arrays in pony?
<jemc>
etc: note that it's currently possible to define an actor who just gets the `create` message, and doesn't have any other behaviours
<jemc>
and that would not be possible with the system you're proposing
<jemc>
I think readability/explicitness is also a factor
<jemc>
but that's the main technical difference I can think of - actor constructors are actually behaviours, unlike class constructors, even though they are both declared with the `new` keyword
<jemc>
regarding your question about `map` - check out the `itertools` package
<etc>
Ahhh that makes sense! And constructors aren't applicable with object literals :)
plietar has quit [Remote host closed the connection]
plietar has joined #ponylang
plietar has quit [Read error: Connection reset by peer]
plietar has joined #ponylang
rurban has joined #ponylang
rurban has quit [Ping timeout: 260 seconds]
_whitelogger has joined #ponylang
jemc has quit [Ping timeout: 276 seconds]
jemc has joined #ponylang
endforma1 has joined #ponylang
endformationage has quit [Ping timeout: 248 seconds]
aceluck has joined #ponylang
plietar_ has joined #ponylang
plietar has quit [Ping timeout: 255 seconds]
aceluck has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
aceluck has joined #ponylang
aceluck has quit [Client Quit]
aceluck has joined #ponylang
aceluck has quit [Client Quit]
aceluck has joined #ponylang
aceluck has quit [Client Quit]
aceluck has joined #ponylang
aceluck has quit [Client Quit]
aceluck has joined #ponylang
aceluck has quit [Client Quit]
aceluck has joined #ponylang
aceluck has quit [Client Quit]
jemc has quit [Ping timeout: 248 seconds]
aceluck has joined #ponylang
endforma1 has quit [Quit: WeeChat 1.9]
samuell has joined #ponylang
bodie_ has quit [*.net *.split]
dom96 has quit [*.net *.split]
doublec has quit [*.net *.split]
aceluck has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
rurban has joined #ponylang
rurban1 has joined #ponylang
rurban1 has quit [Client Quit]
rurban has quit [Ping timeout: 240 seconds]
doublec has joined #ponylang
dom96 has joined #ponylang
bodie_ has joined #ponylang
rurban has joined #ponylang
rurban has left #ponylang [#ponylang]
aceluck has joined #ponylang
rurban has joined #ponylang
rurban has quit [Client Quit]
samuell has quit [Quit: Leaving]
aceluck has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
samuell has joined #ponylang
_andre has joined #ponylang
jemc has joined #ponylang
Matthias247 has joined #ponylang
shelajev has joined #ponylang
Matthias247 has quit [Read error: Connection reset by peer]
Licenser has joined #ponylang
<Licenser>
is this a thing? :D Wooh!
<Licenser>
seeing the user list.I already feel home
<jemc>
Wooh!
<jemc>
(welcome!)
<Licenser>
thanks ^.^ awesome to be here
kempe has quit [Ping timeout: 246 seconds]
endformationage has joined #ponylang
<SeanTAllen>
welcome Licenser!
<Licenser>
:D hello
<Licenser>
SeanTAllen I was told you know if there are erlang style monitors yet?
<SeanTAllen>
there are not
<Licenser>
Okay :) I figured I'd ask
<SeanTAllen>
an interested party should be able to add
<SeanTAllen>
there's nothing to prevent it from happening
<SeanTAllen>
there have just been no interested parties yet
<Licenser>
that's good :D
<Licenser>
not needed is a lot nicer then not possible or not wanted ^.^
<SeanTAllen>
that said, erlang and pony while being actor based are different so erlang-style aka direct copy of it might not fit, but the general idea of actor supervision, i think we will eventually see more than 1 idea on how to do and eventually something would get incorporated into the standard library
<jemc>
yeah, the pony paradigm for handling errors is significantly different, so it's not necessarily a one-to-one mapping
<Licenser>
that sounds cool, I think I got to read up on the error handling in pony to get a better understanding
kempe has joined #ponylang
<jmiven>
SeanTAllen: hi! Did you receive my email about the freebsd machine? (really just want to check if the email has arrived, I don't mean to rush you)
<SeanTAllen>
i did jmiven, i just havent had a chance to respond yet
<jmiven>
SeanTAllen: great! Sorry to bother you
<SeanTAllen>
no bother at all, thank you jmiven
<SeanTAllen>
all my time the last few days has been work and learning french
<jemc>
Licenser: the main difference is that the pony paradigm is that the compiler makes your life difficult unless you "do the right thing" and handle all errors close to the point where they are raised
<jemc>
SeanTAllen calls it "let it crash at compile time"
<Licenser>
hehe that's a nice description
<SeanTAllen>
actually that was Darch. I stole it from him.
<SeanTAllen>
* darach
<jemc>
ah, thanks for the citation correction
<jmiven>
SeanTAllen: if you need to practice french, don't hesitate to ping me
<SeanTAllen>
thanks jmiven!
Praetonus has joined #ponylang
<Licenser>
man I'm worried this sounds trolly, but it's a honest question I'm curious how that's different from the defensive programming in like java?
<SeanTAllen>
how is what different than defensive programming in java?
<Licenser>
handling all errors as close to the point to where they are raised, I fear I'm just not understanding it, but it sounds a bit like the way (for example) java makes you to throw catch exceptions
<SeanTAllen>
im not sure what you mean by "throw catch exceptions"
<Licenser>
I think I need to read the whole docs on error handling before asking that question :)
<jemc>
Licenser: to be totally honest, I think it is a form of defensive programming, but it's structured to be a positive pattern rather than an anti-pattern
<jemc>
(BTW, I appreciate that you're trying not to sound trolly - it helps to know that :)
<Licenser>
heh ja I think I need to do some proper research before talking out of my ass :D
<SeanTAllen>
Seems reasonable as a general rule of thumb
<Licenser>
jemc I try, sadly on the internet it's often hard to distinguise a honest question from someone who has no clue from a troll
<jemc>
it helps to think about them not as being "exceptions", but as being "partial functions", like in mathematics
<SeanTAllen>
My point wasnt that supervision trees can be useul
<SeanTAllen>
rather that i dont think a direct 1 to 1 mapping is going to be the best solution
<jemc>
that is, a function that does not have a valid return value over its entire parameter domain
<SeanTAllen>
I really want to remove the word "exception" from the tutorial
<jemc>
SeanTAllen: yes, please do :)
<jemc>
> on the internet it's often hard to distinguise a honest question from someone who has no clue from a troll
<jemc>
indeed - we usually try to assume good intentions until proven otherwise
<Licenser>
:D
<SeanTAllen>
i believe btw, what darach meant by "let it crash at runtime" is there are many types of errors that lead to a process crash in erlang that are caught at compile time by Pony.
<SeanTAllen>
"crash" of an actor at runtime in Pony would be.... interesting
<SeanTAllen>
as long as another actor holds a reference to it, that "crashed" actor will continue to exist and accept messages.
<SeanTAllen>
if you want to do supervision tress, you'd need a way to update every other actors reference to said "crashed" actor
<jemc>
I think an erlang-like supervision framework in pony would not only need to invent/solidify the supervision patterns, but also the crashing patterns
<SeanTAllen>
yes
<SeanTAllen>
its certainly doable but... you'd need to figure out "how" you really want to do it
<SeanTAllen>
i think that a 1 to 1 mapping wouldnt work out well
<Licenser>
I think crash in might more mean 'start with a clean state or escalate the error' not nessessarily crash in the erlang sense, I get that it's a lot harder in a strictly typed language
<SeanTAllen>
but its certainly an interesting area for someone to explore
<SeanTAllen>
ya, ive imagined it might be like that as well Licenser
<SeanTAllen>
which mean patterns for actor initialization/re-initialization
<Licenser>
I mean erlang crashes are not soly to protect against error-crashes but also logic that gets the state in a corner and work a bit of an assert if you want to call it that
<SeanTAllen>
its not supervision trees but look in the Bureaucracy package of the standard library for a couple small "supervisor"-y things Licenser
<jemc>
broadly speaking, I think a supervisor would need to be given a lambda (or "notify" object) that knows how to re-create the actor, and the actor would need to follow the `dispose` pattern in pony, so that it could be destroyed by the supervisor
<jemc>
and the supervisor would need to pass some sort of "crash lambda" (or "notify" object) into the actor, which the actor could call to signal that it is "crashing" and possibly some information about for what reason
<Licenser>
unrelated question there is a bit of a odd thing in the exception docs that sometimes it's `try` and sometimes it's try w/o ` - is that on purpose otherwise I'd make a PR for unifying it to either use ` everywhere or nowwhere
<jemc>
yeah, the docs have been edited by many different "hands" and it can sometimes be hard to police a consistent style, especiallt when it comes to those little things
<jemc>
PRs to improve the docs, including style consistency are always welcome
<SeanTAllen>
Licenser: are you saying sometimes it was ` around it and sometimes it doesn't?
<SeanTAllen>
if yes, then yes, please make keywords always have ` around them where you find they don't
<Licenser>
yap, I'm not sure how it's called in mardown. but sometimes it's monospace sometimes just regular text
<Licenser>
okay
<SeanTAllen>
i think GitHub calls it a "code fence"
<SeanTAllen>
¯\_(ツ)_/¯
<Licenser>
that stuff :P
<Licenser>
pR send
shelajev has quit [Remote host closed the connection]
samuell has quit [Quit: Leaving]
shelajev has joined #ponylang
shelajev has quit [Ping timeout: 240 seconds]
dougmacdoug has joined #ponylang
<Licenser>
I was lying, I didn't click submit -.-
shelajev has joined #ponylang
<Licenser>
sorry for highlighitng you sean, I forgot to put that snipped in ```'s
plietar_ has quit [Remote host closed the connection]
plietar has joined #ponylang
plietar has quit [Ping timeout: 258 seconds]
plietar has joined #ponylang
shelajev has quit [Remote host closed the connection]
dougmacdoug has left #ponylang [#ponylang]
shelajev has joined #ponylang
endformationage has quit [Ping timeout: 255 seconds]
Praetonus has quit [Ping timeout: 240 seconds]
Matthias247 has joined #ponylang
Praetonus has joined #ponylang
samuell has joined #ponylang
plietar has quit [Remote host closed the connection]
plietar has joined #ponylang
Praetonus has quit [Ping timeout: 240 seconds]
Praetonus has joined #ponylang
_andre has quit [Quit: leaving]
shelajev has quit []
Praetonus has quit [Quit: Leaving]
_etc has joined #ponylang
Matthias247 has quit [Read error: Connection reset by peer]