5 ms·
if you want to get started but don't know where this is a good place to start: http://spawnedshelter.com/ http://spawnedshelter.com/ there's a online course b
by marianoguerra 9y ago
if you want to get started but don't know where this is a good place to start:
http://spawnedshelter.com/ http://spawnedshelter.com/
there's a online course by Simon Thompson from the University of Kent that started 2 days ago, you may be able to join:
https://www.futurelearn.com/courses/functional-programming-erlang https://www.futurelearn.com/courses/functional-programming-e...
if you like the ideas but want to try something different there are alternative languages that run on the Erlang VM:
* Elixir with a ruby-like syntax: https://elixir-lang.org/ https://elixir-lang.org/
* LFE (Lisp Flavoured Erlang): http://lfe.io/ http://lfe.io/
* Efene with a python-like syntax: http://efene.org/ http://efene.org/
and one in development but already looking really interesting: Alpaca, an ML inspired language: https://github.com/alpaca-lang/alpaca https://github.com/alpaca-lang/alpaca
- dbcurtis 9y agoThanks! I came here to ask the "How do I Erlang?" question. Erlang has been on my radar for a long time but I've never taken the time to dig in. 85% of my code output is obscure protocol stacks in Python+Twisted, the other 15% is real-time embedded C over an RTOS. Even if I can't use Erlang in production, I'm sure I'd find food for thought in the concepts.
- digitalzombie 9y agohttp://learnyousomeerlang.com/ http://learnyousomeerlang.com/ That book is a good place to start. > Even if I can't use Erlang in production, I'm sure I'd find food for thought in the concepts. Oh boy are you going to be in for a treat. The concept for no loop construct other than recursion and recursive thinking was worth it for the little time I dabble in Erlang.
- equalunique 9y agoAs an erlang newcomer, the non-loop seems to be one of the most intriguing concepts, IMO.
- marianoguerra 9y agoYou still have list comprehensions, map, filter, fold and foreach using higher order functions
- dbcurtis 9y agoSounds excellent. Procedural imperative programming is the curse of computer science. Program counters be damned! Data-flow FTW. I'm sure there's some tee-shirt art in that rant somewhere.....
- pmarreck 9y agoYou run close to the metal, eh? Then you might find this project interesting to hack on: http://nerves-project.org/ http://nerves-project.org/ FWIW, the class for it was the first class to sell out for the upcoming https://elixirconf.com/ https://elixirconf.com/. Here's a great presentation by Garth Hitchens on Nerves https://www.youtube.com/watch?v=O39ipRsXv3Y https://www.youtube.com/watch?v=O39ipRsXv3Y (he uses it in production at his company, http://www.rosepoint.com/ http://www.rosepoint.com/, which builds sort of vertical-market marine navigation hardware). He mentions some performance stats as well.
- dbcurtis 9y agoYes, thanks. Good link. I do live on the hardware/software frontier and always have. I'm a big fan of Micropython, Python on bare metal. Noob question: What is the chance of an Erlang VM on bare metal?
- sofetch 9y agoPretty decent chance: https://www.grisp.org/ https://www.grisp.org/
- pmarreck 9y agowow, first I've heard about this. How does this differ from the Nerves project, which also boots directly into the Erlang VM?
- sofetch 9y agoNerves boots into the ErlangVM, but runs on a buildroot Linux. This makes it possible to run on a wide variety of hardware, but with the associated baggage. GRiSP uses RTEMS[0] as its base which should make its performance more predictable. [0] https://www.rtems.org/ https://www.rtems.org/
- cat199 9y agoThe tutorials and core library documentation are really very clean.. You should be able to go pretty far just by installing a package and starting through the tutorials, although OP also has some links to more docs too
- macintux 9y agoThere's a lot of overlap with Spawned Shelter, and I haven't touched it in a few months, but https://gist.github.com/macintux/6349828 https://gist.github.com/macintux/6349828 is a list of free Erlang resources I try to maintain.
- jchassoul 9y agoI was not aware about Spawned Shelter and your list of resources wow, I need to check the first be as soon as I click on your link I needed to write you some thanks message! awesome job with the list.
- jchassoul 9y agoPlease don't forget about Luerl: Lua has GREAT support inside the BEAM VM ecosystem https://github.com/rvirding/luerl https://github.com/rvirding/luerl
- marianoguerra 9y agoyep, there's also an erlang implementation of prolog https://github.com/rvirding/erlog https://github.com/rvirding/erlog the only different with the others is that since they implement existent languages following the spec, which means that some things don't map directly to the VM semantics and pay a little overhead, for example lua is a mutable language and the BEAM is immutable, this means that mutability is implemented by passing an immutable environment and mutating it. This doesn't mean you can't use them, but they are mostly used as extension languages and for scripting than for complete projects.
- jchassoul 9y agoThe original Lua has also designed to be used as extension language to be embedded and give the base systems scripting super-powers! The beauty of the Luerl Lua implementation is that is really a full implementation of the Lua language is not something inspired by Lua or some kind of handicap version of the language. I agree of course with your statement about a little overhead, but it is a real true Lua.
- wahern 9y agoLuerl lacks tail call optimization, coroutines, and "proper handling of __metatable". Without those three things Lua is just a simpler JavaScript and not that interesting. (Lua also has a first-class C API, but we'll let that slide.)
- jchassoul 9y agoWhat do you mean with proper handling of __metatable?, I'm not aware about the lack of tail call optimization that you mention please share your sources, about coroutines luerl is designed to use Erlang processes instead of coroutines that's the beauty of its implementation, you have millions of independent lua vm's running on top of independent beam processes. Coroutines are replaced by concurrency of multiple lua processes running in parallel if you have more than one physical core on your machine all in the same battle tested Erlang VM. (Luerl is an implementation of that fist-class C API, but for the BEAM Erlang/OTP VM)
- pbowyer 9y ago> there's a online course by Simon Thompson from the University of Kent that started 2 days ago, you may be able to join: First time doing a MOOC - is this considered a good quality one? I find his ordering of course material not always logical, and he omits useful info in places (discovered through Googling)