TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

A Brief History of the BEAM Compiler

326 pointsby jxubalmost 7 years ago

5 comments

ryanianianalmost 7 years ago
I&#x27;m always surprised and delighted to see so many &quot;first implementations&quot; of languages in prolog. It was described to me in college as &quot;just a novelty&quot; but in fact it&#x27;s used extensively in the JVM internals [1] and apparently is the starting-point impl for other languages.<p>But prolog still seems so..awkward. I wonder why langs like Haskell or OCaml aren&#x27;t more de-facto for these purposes; they seem to have similar expressive power for parser&#x2F;grammar things and with less inside-out paradigms (imho).<p>[1] <a href="https:&#x2F;&#x2F;docs.oracle.com&#x2F;javase&#x2F;specs&#x2F;jvms&#x2F;se8&#x2F;jvms8.pdf" rel="nofollow">https:&#x2F;&#x2F;docs.oracle.com&#x2F;javase&#x2F;specs&#x2F;jvms&#x2F;se8&#x2F;jvms8.pdf</a>
评论 #17674110 未加载
评论 #17672469 未加载
评论 #17673902 未加载
评论 #17672325 未加载
评论 #17672203 未加载
评论 #17672329 未加载
评论 #17677064 未加载
评论 #17672046 未加载
评论 #17677065 未加载
spinningslatealmost 7 years ago
Prolog and Erlang in the same thread - is it Christmas already? Two of my favourite languages, both hugely undervalued.<p>I remember the moment I first &quot;got&quot; Prolog. Having only programmed in C&#x2F;C++ to that point, it took some mental contortion. But the &quot;oh!&quot; moment was amazing. Backward chaining &amp; logical variables are just so incredibly elegant. I still use transitive closure as an example of just how powerful the language is:<p>path(A, B) :- link(A,B).<p>path(A, B) :- link(A,I), path(I,B).<p>That&#x27;s it. Stunningly simple.<p>As for Erlang - as others have noted - it was conceived right from the start as a language for concurrency. It&#x27;s had 20 years to mature and robustly solve problems that inherently single-threaded languages have barely even recognised yet (C&#x2F;C++&#x2F;Java&#x2F;C#&#x2F;python&#x2F;javascript&#x2F;rust&#x2F;...). Supervisors &#x2F; error handling and threading are two notable examples. It makes me sad to look at the spread of &quot;async&quot;. An inelegant sticking plaster that adds yet another concurrency construct and turns it into a tactical decision - on <i>every method</i> - and at the call site too.<p>Erlang shows that a single, well-conceived and executed construct is both possible and preferable. Lovely.
评论 #17677088 未加载
评论 #17679906 未加载
评论 #17676153 未加载
nathan_longalmost 7 years ago
If you&#x27;d like a high-level discussion of why the BEAM was designed as it was, check out my recent post: <a href="https:&#x2F;&#x2F;dockyard.com&#x2F;blog&#x2F;2018&#x2F;07&#x2F;18&#x2F;all-for-reliability-reflections-on-the-erlang-thesis" rel="nofollow">https:&#x2F;&#x2F;dockyard.com&#x2F;blog&#x2F;2018&#x2F;07&#x2F;18&#x2F;all-for-reliability-ref...</a><p>The TL;DR is: reliability was the main goal, and using isolated processes which can react to each others&#x27; failures, even when running on separate machines, was the way they found to get reliability. This turned out to be nice for scalability also.
misterbowfingeralmost 7 years ago
When I say this out loud, it sounds like a stupid question, but I&#x27;m still curious...<p>Outside of the fact that different programming languages run on BEAM and the JVM, what&#x27;s the difference between the two?<p>I believe BEAM ships with supervisors, which is why Elixir can utilize them... what else is different?
评论 #17671930 未加载
评论 #17672954 未加载
评论 #17672220 未加载
评论 #17672121 未加载
评论 #17672108 未加载
评论 #17672050 未加载
评论 #17672356 未加载
评论 #17671940 未加载
jerrycurlyalmost 7 years ago
BEAM is phenomenal but one area that&#x27;s still preventing people from adopting it is pure raw performance.<p>People have to write NIFs far to often to obtain the raw perf they need and in doing so, negates all the tremendous benefits of the BEAM.<p>I hope more people push BEAMJIT development forward.<p><a href="http:&#x2F;&#x2F;www.erlang-factory.com&#x2F;sfbay2017&#x2F;lukas-larson.html" rel="nofollow">http:&#x2F;&#x2F;www.erlang-factory.com&#x2F;sfbay2017&#x2F;lukas-larson.html</a><p>Maybe Facebook would fund this effort given their huge BEAM investment from WhatsApp use.
评论 #17674320 未加载
评论 #17684486 未加载