After several minutes of turning Bluetooth off and on, headphones power switch off and on multiple times, messing with volume, etc., I was relieved to read your comment. (I only had the right earpiece in my ear...) 🤣
@@chrisE815 Perhaps an Erlang expert can provide actual insight, but I believe that it's just them re-starting some custom initialization that has to occur before the new experiment can take place. It's just them issuing the "run." command within the repl, the actual BEAM process is not restarted. Can agree that it does sound confusing. The hot-swapping is meant to work within the live process.
@@chrisE815 It's a feature of the BEAM virtual machine on which Erlang programs are executed. VM will make sure that all processes are still working even in case one fails (processes are isolated). This way it will prevent error to propagate through entire system.
Interesting how you can still see the roots in Prolog here in the tools and terminology used, even though the actual Erlang language isn't really anything like Prolog.
Summary: To build real-time distributed systems we realized that we had to move from imperative languages to a declarative language. This led to erlang being born. Properties of declarative languages: Programs are shorter. They encourage a clearer programming style Declarative languages are symbolic. We had to add the notion of concurrency and real-time to Erlang as declarative languages at the time didn't have this. We also added error detection, this allows to program robust real-time systems. [When using the telephone...] An error in one call will never affect other calls. (Parallel processes) A large scale experiment in Ericcson led to the finding that: programming in Erlang leads to at least a factor of 10 in increased productivity. Erlang programs are concise and elegant, they are 7 times shorter than equivalent programs in C.
What a coincidence that you are here today as well. I was convincing some more people about Erlang and came here (again). Each audio channel runs in a different Erlang process.
I think using someone's name during a conversation when you're already familiar with them is a bit passive aggressive especially so for erlang developers. "Hello Joe ... Hello Mike"
demo erlang devs: hot number, warm number, diversion, diversion on busy, delayed diversion, 911 emergency, black list incoming numbers, transfer, conference, directed call pick-up, call waiting on busy, call waiting on no answer, intrusion typescript nextjs devs: TypEsAfE toDo app!
Hehe, yeah it's used everywhere. And I love it. I also love C though and C++, both of which are extensively used. Yet, you cannot argue they're not very up to date.
I loved this all Aspie production about Erlang. The Monty Python intro was fine enough, but the Sado-Masochistic Alpine outro was absolutely sublime. On the negative side ... and speaking as an Aspie myself, I found the dramatic and overly-emotional presentation a little distracting, and feel that the presenters could have been a little less excitable and dynamic in their delivery, as this sometimes got in the way of the message. Nevertheless, I've mulled it over and I think I'll stick with Haskell for my particular functional/declarative software needs.
These people have riveting conversations on the phone... And Joe has a terribly rude phone manor... Cant even say good bye!!!! Thank god since the 80s scientists invented the greatest thing... A personality :) I still cant tell if this video is satirical or not... its soooooooooo deadpan
ashley stovall Which areas? I'm very fond of Scala, so this would be interesting to me. Also, the actor model wasn't used by Akka because Erlang is the better programming language. It's just a different concurrency model that is better suited for some things.
+Matthias J. Déjà first you will see they borrowed heavily from erlang...this is documented, so you can't dispute it, second the ease at which you can hit upgrade code on the fly is fucking amazing. The built in tracing facility if hands down the best. I never logged debug messages because of the tracing. Then when I found the bug I would recompile the beam and hot load it, production problem solved until the official release could make it througj the sdlc. Plus I thing the pattern matching is a little strong but that is because of its reflective nature, I pesto ally don't like oo so there is none of that which keeps you from wrestling with a type system, but the runtime debugging and hot loading I think the jvms are wayyyyy behind
+Matthias J. Déjà plus tail recursion without a ghettotastic trampoline is great, it leads to whacky stack traces but I like writing code that rips through a list passing the tail all over the place and not worrying about stack depth when logging traces which in Scala we need the tailrec annotation to inform us we fell off the trampoline. Plus my personal opinion is that implicit parameters was the wrong solution to a few problems. I hate implicit params
my left ear enjoyed it
After several minutes of turning Bluetooth off and on, headphones power switch off and on multiple times, messing with volume, etc., I was relieved to read your comment. (I only had the right earpiece in my ear...) 🤣
Thanks for the comment. I've started hitting my speaker because I though it's dead. Now I'm telling it that I'm sorry!
RIP Joe Armstrong. I've been digging into Erlang and Elixir and I'm in love. Thank you for your contributions.
Kind of funny that some languages still struggle with concurrency and these guys had it sorted ages ago.
2023 and still
and have been solved 4 decades ago by erlang
decades ago!
Love when he's like "Managed to fix a bug, eh? *hangs up*"
The hotswap example still impressive in 2016
Yeah, I was pretty impressed that it did not disrupt the call.
I was a bit confused by that: at ~ 8:27 he says "restart the system." How could a restart occur without dropping the call?
@@chrisE815 Perhaps an Erlang expert can provide actual insight, but I believe that it's just them re-starting some custom initialization that has to occur before the new experiment can take place. It's just them issuing the "run." command within the repl, the actual BEAM process is not restarted. Can agree that it does sound confusing. The hot-swapping is meant to work within the live process.
@@chrisE815 It's a feature of the BEAM virtual machine on which Erlang programs are executed. VM will make sure that all processes are still working even in case one fails (processes are isolated). This way it will prevent error to propagate through entire system.
Still impressive in 2022
tbh this is one of the best videos about a programming language
This is the video about the programming language.
Hello Roberts, Hello Mike, Hello Joe
WASSSSAAAAAAAAAAAAAAA
Hello World!
I love these kind of old tech videos so much. I don't exactly know why.
Well then, th-cam.com/video/yJDv-zdhzMY/w-d-xo.html
that and at&t archives too
still feeling cool in 2020, erlang goes far ahead in that year.
Hello, Joe. Goodbye, Joe. :(
I was sooo waiting for the Spanish Inquisition to storm in.
This is the greatest movie I have ever seen.
this is the greatest comment i've ever seen
Emacs and X, sounds like the present to me.
RIP Joe Armstrong
Hello mike! Hello joe! Hello mike! Hello robert! Hello joe! Hello mike! Hello robert! Hello mike! Hello! Looks like we fixed the bug!
:D
I enjoyed the constant switching between "Roberts" and "Robert"
Goodbye, joe
Rest In Peace
I do not regret watching this at all.
as someone who is starting to work in erlang (maintaining legacy code) is truly interesting
Interesting how you can still see the roots in Prolog here in the tools and terminology used, even though the actual Erlang language isn't really anything like Prolog.
I love how triumphant the intro is
Twist ending at 9:20
This is just masterful cinema
It’s refreshing to watch programmers being dignified, a stark contrast to the brash and overly opinionated programmers of today
Most epic intro sound ever.
Summary:
To build real-time distributed systems we realized that we had to move from imperative languages to a declarative language. This led to erlang being born.
Properties of declarative languages:
Programs are shorter.
They encourage a clearer programming style
Declarative languages are symbolic.
We had to add the notion of concurrency and real-time to Erlang as declarative languages at the time didn't have this.
We also added error detection, this allows to program robust real-time systems.
[When using the telephone...]
An error in one call will never affect other calls. (Parallel processes)
A large scale experiment in Ericcson led to the finding that:
programming in Erlang leads to at least a factor of 10 in increased productivity. Erlang programs are concise and elegant, they are 7 times shorter than equivalent programs in C.
A classic intro to a great programming language!
After so many years as C++ programmer, I wish I learned Erlang instead of C++...
Not too late 😊 These guys had programmed C++ too.
This movie belongs in a museum! (spoken in Harrison Ford voice)
Joe's segment starting at 1:10 reminds me of John Cleese from Monty Python's Flying Circus.
9:34. Very impressive Erlang...
This video is audio parallel! The left audio channel does one thing and the right audio channel does another!
What a coincidence that you are here today as well. I was convincing some more people about Erlang and came here (again). Each audio channel runs in a different Erlang process.
Goodbye, Joe!
In techno: Motormännen - Programmeringen (Hello Joe)
Goodbye Joe.
I think using someone's name during a conversation when you're already familiar with them is a bit passive aggressive especially so for erlang developers. "Hello Joe ... Hello Mike"
best video evar.
RIP Joe! great computer scientist!
According to this video, people who coded in Erlang died from boredom.
RIP Joe Armstrong.
I can clearly see that something has gone wrong here.
i love watching this movie
Anybody knows when it was recorded?
Dit lyk vir my baie na 'n episode van Monty Python :)
He was responsible for THE computer science laboratory....
everybody knew which one because there was only one on the whole wide world back then.
This is the cheesiest promo ever made about software XD
Btw, I'm learning the language right now (as a hobby language next to the C# I use for work).
Glasses / face ratio exceeding 1.0. Telephone handling skills approaching infinity. Young Graham Chapman detected.
RIP Joe
demo erlang devs: hot number, warm number, diversion, diversion on busy, delayed diversion, 911 emergency, black list incoming numbers, transfer, conference, directed call pick-up, call waiting on busy, call waiting on no answer, intrusion
typescript nextjs devs: TypEsAfE toDo app!
It felt like I was watching the Open University on BBC 2 in the 1980s
3:36 Hello Mike. Hello Joe
presenting knowledge in the 80's,... peek down...
i think this is my cue to dig in the BEAM ecosystem
It would have been a lot cheaper to do this video with actual human beings rather than robots.
You've seen the sequel, I presume
@@pmarreck we all did: th-cam.com/video/JJmqCKtJnxM/w-d-xo.html
Compared to anything that doesn't have built-in support for distributed/parallel processing, process linking, error handling across process etc.
What other languages/environments have that built in? Not JVM or CLR, AFAIK?
Hello Mike.
Erlang by Spike Jonze.
Hello, self respecting elixir developers and erlang enthusiasts
watching it in 2021
and in 2024
the same for the atom run, has there anything change in the core system of erlang?
9:15 X-D
Winning!
This is awesome. XD
And of course... it's still a better love story than Twilight.
Does Ericsson still use Erlang?
why should a simple list reload the correct code?
if your programming language doesn't have a demo like this it's not a real language
I heart this.
Imagine. C used to be considered high level.
Wazzup: The Prequel
Compared to hacking their PABX switches in assembler, most likely. But it sounds good.
When was this video made
"Airline"
Hehe, yeah it's used everywhere. And I love it. I also love C though and C++, both of which are extensively used. Yet, you cannot argue they're not very up to date.
yeah nobody writes programms in Erlang.... wait isnt CouchDB, SimpleDB and WhatsApp written in Erlang? ;D
Actually whatsApp was written in erlang, www.wired.com/2015/09/whatsapp-serves-900-million-users-50-engineers/
or RabbitMQ ;)
what did i just watch?
history being made.
+David Fernandes
"you're god damn right." - Heisenberg
@@daug27 *future* being made.
i'm learning erlang at my school right now! the language is nice but seems just as up to date as this video...
I hope you found Elixir (a la Ruby) before it was too late. Or Gleam of today
I cannot believe that I just saw so many nerds during such a brief video!
Vote for Pedro!
Hi Joe
Hello mike
I loved this all Aspie production about Erlang. The Monty Python intro was fine enough, but the Sado-Masochistic Alpine outro was absolutely sublime.
On the negative side ... and speaking as an Aspie myself, I found the dramatic and overly-emotional presentation a little distracting, and feel that the presenters could have been a little less excitable and dynamic in their delivery, as this sometimes got in the way of the message.
Nevertheless, I've mulled it over and I think I'll stick with Haskell for my particular functional/declarative software needs.
These people have riveting conversations on the phone... And Joe has a terribly rude phone manor... Cant even say good bye!!!!
Thank god since the 80s scientists invented the greatest thing... A personality :)
I still cant tell if this video is satirical or not... its soooooooooo deadpan
“Programming in Erlang leads to 10× increased programmer productivity” ← Compared to what?
Compared to C++.
Ray Purchase
too hardcore!
Based.
где звук-то?
Противофаза у тебя
This all seemed great until I realized there was like 1kb of log to process 3 bytes of data. And I thought web programming was bloated
You didn't stop to think that all this was run in debug mode, and not an actual production setting?
3:29
Heja Nørge! (Stockholm)
"high level languages like C++" LOL, history is awesome
c++ IS a high level language.
"os independent, more human readable" per Wikipedia == Wikipedia is talking about brainiac, uber smart math people who can read C
Hardware engineer: "High-level languages like C". Applications developer: "Low-level languages like C".
C++ is both high level and low level in one package. Template metaprogramming as as high level as you can get.
yeah, oop is definetely not high level
most reliable and efficient jabber servers are written in Erlang. Google "ejabberd"
And RabbitMQ
wow..
Using dual monitor workstation before it was cool th-cam.com/video/xrIjfIjssLE/w-d-xo.html
911 emergancy... fucking really?!
169
Erlang / Elixir Conf Bengaluru 2017 brought me here
C++ high level ?
Hi Hacker News!
Who else is from COP5615🤣
So it was like Scala, only less cool.
+Matthias J. Déjà as a user of both, i think scala lags behind erlang in a few areas. that is why akka used erlang as their model
ashley stovall Which areas? I'm very fond of Scala, so this would be interesting to me.
Also, the actor model wasn't used by Akka because Erlang is the better programming language. It's just a different concurrency model that is better suited for some things.
+Matthias J. Déjà first you will see they borrowed heavily from erlang...this is documented, so you can't dispute it, second the ease at which you can hit upgrade code on the fly is fucking amazing. The built in tracing facility if hands down the best. I never logged debug messages because of the tracing. Then when I found the bug I would recompile the beam and hot load it, production problem solved until the official release could make it througj the sdlc. Plus I thing the pattern matching is a little strong but that is because of its reflective nature, I pesto ally don't like oo so there is none of that which keeps you from wrestling with a type system, but the runtime debugging and hot loading I think the jvms are wayyyyy behind
+Matthias J. Déjà plus tail recursion without a ghettotastic trampoline is great, it leads to whacky stack traces but I like writing code that rips through a list passing the tail all over the place and not worrying about stack depth when logging traces which in Scala we need the tailrec annotation to inform us we fell off the trampoline. Plus my personal opinion is that implicit parameters was the wrong solution to a few problems. I hate implicit params
And much easier.