13 ms·
Pony language 0.11.0 released
- fnord123 10y agoPony is an open-source, object-oriented, actor-model, capabilities-secure, high performance programming language. http://www.ponylang.org/ http://www.ponylang.org/
- xkxx 10y agoI always wondered whether the language had or had not been named because of that show about colorful, pastel-, candy-colored equines, of which I'm totally not a fan of.
- spooneybarger 10y agoThe answer would be no, but we have no objections to equines of any color.
- fnord123 10y agoI think it's named after rhyming slang for crap (pony and trap).
- spooneybarger 10y agoalso nope: it's from the phrase "and I want a pony"
- teddyh 10y agoOriginally from here: http://www.gocomics.com/calvinandhobbes/1987/01/13 http://www.gocomics.com/calvinandhobbes/1987/01/13
- spooneybarger 10y agothat would be it
- ue_ 10y ago>that show about colorful, pastel-, candy-colored equines, of which I'm totally not a fan of. Have you watched the last couple of seasons? I liked them more.
- avian 10y agoHave you seen the FIM++ language? Perhaps somebody should re-write the interpreter in Pony. https://github.com/JaredMFProgramming/fimpp https://github.com/JaredMFProgramming/fimpp
- Cyph0n 10y agoOh man, but that's nothing compared to this: https://github.com/ErisBlastar/cplusequality https://github.com/ErisBlastar/cplusequality
- kkirsche 10y agoCurious what the deployment story for this looks like compared to things like Crystal. Is it compiled?
- spooneybarger 10y agoYes. Pony compiles to LLVM bytecode and from there to native binaries.
- fnord123 10y agoSo it has Rust and C++'s compile time problems?
- spooneybarger 10y agoIt shares LLVM pros and cons of other languages that compile to LLVM bytecode.
- appleflaxen 10y agocan you elaborate on what you mean, as it relates to Pony?
- pjmlp 10y agoLLVM was originally designed for C like languages, until recently used the system linker (lld is a recent change), so any language that uses it for its backend tends to suffer from the same lengthy compilations as C and C++. Unless they create their own intermediate language, so that they can do as much work as possible, before passing the bucket to LLVM. Hence why Swift has SIL, Rust MIR, and so forth for other languages.
- dbaupp 10y agoI don't think the use of the system linker is why Swift has SIL, nor Rust has MIR. It's true that one of the possible benefits of Rust's MIR is faster compilations, but it is fundamentally motivated by representing (and checking) semantic information that is unavailable at the LLVM level. Whatever linker LLVM happens to use is orthogonal to this.
- spooneybarger 10y agoThe 2017 Pony Community Survey just went up. If you are a Pony user or have played around with, we'd love to hear from you. https://goo.gl/forms/5qAmppwIEkvvEFkq1 https://goo.gl/forms/5qAmppwIEkvvEFkq1
- staticassertion 10y agoActors + type safety is a huge selling point for Pony that, to my knowledge, no other language is really providing. I'm definitely keeping an eye on it and I'm very excited to see its development continue.
- jeremyjh 10y agoThe distributed-process (Cloud Haskell) library gives you Erlang-style processes/actors in Haskell. Haskell is a good language to map these concepts to since it already has lightweight threads, pattern matching, asynchronous exceptions and other language features required to faithfully implement Erlang semantics. Scala/Akka would be another choice but it has totally different semantics from Erlang, and you can never forget you are working in an async model.
- zzzcpan 10y agoI think there is some misunderstanding of what Pony is. It doesn't target distributed systems by the looks of it, it's more like a statically typed OO language with an alternative to threads/mutexes/channels. So you can see it being interesting to people with statically typed OO background, who understand the downsides of multithreading and want concurrency and parallelism on a single system, i.e. those coming from languages like Java and C++. It's more appropriate to compare it with Rust or Go, but not Erlang or Akka.
- spooneybarger 10y agoI'm not sure why you would say that Pony doesn't target distributed systems. In the sense that there is no "distributed pony" yet, then yes. I spend my days writing a soon to be open sourced distributed system in Pony. The "alternative" to threads/mutexes/channels is actors which from a concurrency model perspective makes it very like Erlang. The GC model is also very like Erlang. In the end, it is its own thing.
- amorphid 10y ago
- igt0 10y agoPony is amazing, I am curious about the object capability model applied to distributed systems.
- BuuQu9hu 10y agohttp://erights.org/talks/thesis/markm-thesis.pdf http://erights.org/talks/thesis/markm-thesis.pdf has several chapters dedicated to the concept. Happy reading.
- spooneybarger 10y agothat's an awesome paper. thank you for posting it.
- spooneybarger 10y agoThanks. We still have tons of work to do in general. There's a paper on how to do distributed actors with Pony but as yet, we haven't implemented anything yet. We started but deprioritized it. https://www.doc.ic.ac.uk/~scd/Disributed_Pony_Sept_13.pdf https://www.doc.ic.ac.uk/~scd/Disributed_Pony_Sept_13.pdf
- patrickg_zill 10y agoCan anyone comment on the level of development? I came across one comment where the author seemed to think the main gurus were no longer working on it. e.g. here: https://www.quora.com/What-is-your-experience-with-using-Pony-programming-language https://www.quora.com/What-is-your-experience-with-using-Pon... I myself don't have much knowledge of Pony,which is why I ask...
- spooneybarger 10y agoSylvan (referenced as main guru in the link) is still an active member of the Pony community and he's contributing on a regular basis. His most recent commit that was merged to master was yesterday: https://github.com/ponylang/ponyc/commit/eaf1dcd525c691feae1b3e569d1fe52b2fa08749 https://github.com/ponylang/ponyc/commit/eaf1dcd525c691feae1... The Pony development community is still relatively small but we make good regular progress. We all wish the community was bigger and we were progressing more quickly but that is always going to be the case. We have a regular weekly development Zoom call that is open to the public. Feel free to join. Info is available in the Pony development groups.io group: https://pony.groups.io/g/dev/calendar https://pony.groups.io/g/dev/calendar. If you join the development list, you'll also get access to the recordings of the sync meeting going back close to a year. There's a wealth of info there for anyone cares to dig in. Probably more than anyone would care to ever listen to.
- rurban 10y agoSylvan is busily working with his team on the feature for distributed actors at Microsoft Research. * Type-system for machine specific data (local vs foreign actors, e.g file descriptors, ...) * Node failure * Distributed GC (pointer identity => random id) * Distributed work-stealing (CNF-ACK protocol, user-specific scheduler rules: moving cost, ...) There's also more work going for more formal proofs. Here is a bit of explanation: https://www.youtube.com/watch?v=KIziz1c41ww https://www.youtube.com/watch?v=KIziz1c41ww "Development status: Everything we talked so far is real and is in use. Runs on everything from a Raspberry PI to 4096 core SGI Windows OSX Linux FreeBSD Performance is competitive with C/C++, often better as core counts go up" Esp. the last 10 slides.
- 10y ago
- hellofunk 10y agoHere is a really great, very high performance, full featured c++ library for actors: https://actor-framework.org/ https://actor-framework.org/
- kovek 10y agoI wonder, where does ponylang fall short? I think that might be an interesting way to compare it to other languages.
- spooneybarger 10y agoI'm on the core team and I'm working on a "Why Pony?" talk that starts with all the reasons you wouldn't want to use Pony. There are many. I'd be happy to discuss via email if you want. My address is in my profile.
- didibus 10y agoI have to admit, the name of it throws me off. The intended or unintended relation with the subculture of obsessed adult men with a pre-teen show, and this programming language's name really makes me not want to take it seriously. I love to judge things for what they are, and not what they're named or related too, but given there's so many languages fighting for my attention, this one is hard to swallow.