3 ms·
Rust is designed to be a systems programming language in that it does not ship with a garbage collector. Pony does have a garbage collector. Comparing their mem
by humanrebar 9y ago
Rust is designed to be a systems programming language in that it does not ship with a garbage collector. Pony does have a garbage collector. Comparing their memory safety is comparing very different categories of languages.
It would be better to compare pony's memory safety to a GC language: go, Java, C#, Haskell, etc.
- pjmlp 9y agoIn what category would you put Oberon, Modula-3, Sing#, System C#?
- coldtea 9y agoThe first three surely in the "nobody uses and don't see that changing anytime soon" category (haven't heard of the last one, special systems-programming C# edition?)
- pjmlp 9y agoThe C# dialect used in Midori. As for the rest, IT world is full of political murders of nice technology. As Alan Kay puts it, pop culture driven development.
- jonaf 9y agoPlease tell me that the referenced C# dialect used in Midori is available in some form for use, research or general learning? This would really make my week!!
- pjmlp 9y agoJust scattered information. You have Joe Duffy's blog entries about Midori and one entry back when it was still called M#. Then there are the little pieces that came to C# from it. Namely async/await, TPL, the MDIL compiler on Windows 8.x, the .NET Native compiler for UWP, the improved GC control in .NET 4.6 and the planned features for C# 7.1, 7.2 and 8.0 related to more mechanical sympathy.
- pjmlp 9y agoEdit isn't allowed any longer, so here are some extra informations. Joe Duffy's blog about Midori http://joeduffyblog.com/2015/11/03/blogging-about-midori/ http://joeduffyblog.com/2015/11/03/blogging-about-midori/ Joe's blog entry about what was known as M# at the time http://joeduffyblog.com/2013/12/27/csharp-for-systems-programming/ http://joeduffyblog.com/2013/12/27/csharp-for-systems-progra... Joe's presentation at QCon 2015, "Safe Systems Programming in C# and .NET" https://www.infoq.com/presentations/csharp-systems-programming https://www.infoq.com/presentations/csharp-systems-programmi... Channel 9 presentations about MDIL compiler for Windows 8.x https://channel9.msdn.com/Events/Build/2012/3-005 https://channel9.msdn.com/Events/Build/2012/3-005 https://channel9.msdn.com/Shows/Going+Deep/Mani-Ramaswamy-and-Peter-Sollich-Inside-Compiler-in-the-Cloud-and-MDIL https://channel9.msdn.com/Shows/Going+Deep/Mani-Ramaswamy-an... Channel 9 presentations about .NET Native https://channel9.msdn.com/Shows/Going+Deep/Inside-NET-Native https://channel9.msdn.com/Shows/Going+Deep/Inside-NET-Native https://channel9.msdn.com/events/dotnetConf/2014/-NET-Native-Deep-Dive https://channel9.msdn.com/events/dotnetConf/2014/-NET-Native... GC Improvements on .NET 4.6, including memory guarantees for performance critical sections https://docs.microsoft.com/en-us/dotnet/api/system.gc.trystartnogcregion https://docs.microsoft.com/en-us/dotnet/api/system.gc.trysta... https://blogs.msdn.microsoft.com/alphageek/2017/01/24/significant-garbage-collector-changes-in-net-4-6-2/ https://blogs.msdn.microsoft.com/alphageek/2017/01/24/signif... C# roadmap for 7.1, 7.2 and 8.0 with more memory friendly features https://github.com/dotnet/roslyn/blob/master/docs/Language%20Feature%20Status.md https://github.com/dotnet/roslyn/blob/master/docs/Language%2... Joe is presenting a keynote at Rustconf, about memory safe systems programming. http://rustconf.com/program.html#joe http://rustconf.com/program.html#joe
- Ericson2314 9y agoI agree that it's tragic how little alternative systems are known now. That said, linguistically, sub-structural languages (which can avoid GC) are quite different, regardless of intended usescases.
- unscaled 9y agoI didn't read the docs in depth, but it seems that the extra safety Pony adds over Go, Java and C# is null-dereference safety, data race safety, exception safety and deadlock safety. Go, Java and C# all suffer from all the problem above. Go in particular (due to confusing slicing semantics and dearth of immutable data structures) and C# slightly less (due to a lot of syntactic sugar to help you with null-safety). Haskell is a slightly different beast. I assume that with idiomatic Haskell, except for an occasional runtime error due to bad program logic, you'll rarely run into these issues.