<iampims>
Is there an automated way to know which package are compatible with the current ponyc version?
<iampims>
I was looking at https://github.com/jemc/pony-redis and getting ` lambda ... end is no longer supported syntax; use {...} for lambdas` errors
<iampims>
I'm trying to use stable to have a repeatable build process, to demo to my team internally, and I'm expecting them to ask quite a few questions :)
<jemc>
no, not yet - you're also very likely to find packages with such breakages because the language has been going through a bit of a "growth spurt" recently
<iampims>
understandable.
<jemc>
stable is a very simple dependency manager at the moment, and isn't as full featured as many expect from a package manager, but we want to work in that direction eventually
<iampims>
last question for today: do you have resources you'd recommend for a group of engineers trying to understand how to build actor-based systems? It's a different mindset, and I'm currently struggling a little bit when going beyond the trivial examples.
<jemc>
however, the fact that it's simple is sometimes a big benefit - simple tools are easy to reason about and modify to your needs
<iampims>
Yeah, I read the very informative DM thread on github.
<iampims>
re: simplicity -> totally.
<jemc>
hm, good question - I think it probably depends on the background of the learner
<jemc>
what kind of languages, libraries, and applications is your team familiar with?
<iampims>
JVM/Java, mostly stateless small HTTP/TCP services
<iampims>
There is quite a bit of documentation around Erlang/Akka, so that's what I'm starting with, but I feel like I'm missing a big part of the intuition around why/when actors offer great benefits compared to a more traditional multi-threaded architecture
<jemc>
I can't think of any particular reading material to suggest (maybe SeanTAllen has an idea), but I can give my take on the benefits
<jemc>
in my perspective, the main advantage to using a (well-designed) actor system like Pony is that it puts you in a paradigm where crafting and maintaining appropriate solutions is more straightforward than it is for inappropriate ones
<jemc>
that is, when you are forced to think about concurrency in terms of message passing, rather than in terms of limiting concurrent access to resources, the solutions you create are more likely to be appropriate and performant
<jemc>
especially in systems like Pony that don't allow blocking operations, you're forced into making a distinction between immediate operations and asynchronous operations, so you end up in a prevailing paradigm of *reacting* to things instead of *waiting* for things
<iampims>
I see.
<iampims>
So what kind of applications do you think are well suited for Pony/Actors?
<jemc>
any persistent application that responds to events is usually a great fit for the actor model
<jemc>
some short-running applications may also be a good fit if they need to do a lot of work in parallel before finishing
<iampims>
ok. Thanks for the hints.
<iampims>
I'll probably be back with more questions once I learn a bit more. Have a great weekend :)
<jemc>
no problem, and you too
iampims has quit [Quit: Leaving...]
vaninwagen has joined #ponylang
Matthias247 has quit [Read error: Connection reset by peer]