Erlang/OTP – The fastest, cheapest way to build reliable clusters of computers
erlangotp.com
erlangotp.com
So Erlang is pretty much designed to deal with systems distributed on different machines, it's nice behaviour on modern multicore machines is just a byproduct of that.
Ever try to tell someone about "Erlang/OTP?" They ask "What's OTP?" Then you begin a 30 minute speech about the history of Erlang and phone switches (agile web ninjas ain't got time for 80s telecom stories) and how all modern fad problems were solved 20 years ago.
Erlang is great, but the core Erlang devs don't understand "web things." See their arguments against why Erlang shouldn't support JSON: http://erlang.org/pipermail/erlang-questions/2014-March/0782...
Here's what I tell people when I mention Erlang and then OTP: "OTP stands for 'Open Telecom Platform', but it's just badly named due to old corporate history at Ericsson. It's more of a general development framework that includes generic versions of design patterns to build pretty much any Erlang application."
I have never received questions after that about the name -- people get more interested by what it contains than what the initials stand for.
For the argument about 'core Erlang devs', the post you mention is:
1. not from a core Erlang dev
2. actually from the main Erlang developer of Cowboy, one of Erlang's most used web server/framework
3. Right that JSON is a pretty inefficient serialization format, full of ambiguities and with many undesirable limitations.
4. It's also right that JSON contains nothing regarding hypertext within its data type (ignoring JSON-schema) and is therefore a weird choice for the web and REST, where hypertext is fundamental.
It's easy to consume with Javascript, which is where most JSON probably ends up.
Ultimately though, something I've learned over the years is that you can either "go with the flow" and do things the way most people are, or you can try and do things your own way. Unless you're Microsoft or Google or something though, mostly, you don't have enough resources to do everything your own way, so you have to strike out on your own only where it really counts. Erlang does that in a number of places already, for sensible reasons - it's part of what makes the language so good at some things. However, fighting JSON is likely one of those Don Quixote battles that's not really going to get you much outside of some very specific contexts.
I've worked on real-time bidding software where the incoming protocol got changed from JSON to protobuffs. Just doing that made bandwidth costs go down majorly, CPU usage more than halved, and response times got cut.
When the question becomes "easy" vs. "good", always picking "easy" isn't very nice.
Also, I think that you have to consider how a company grows: JSON is simple to get started with. It's a good default - pretty much anyone can consume it very easily. As you explore your problem space and iterate and improve, you may realize it's not good enough. Fair enough - that's a good time to switch. But many people never reach that point, and will happily continue with JSON for a long time.
https://github.com/johnezang/JSONKit has a few interesting corner cases, for example.
I don't do that. I'd want to do that like I'd want to give a 30 minute speech about what EMACS, UNIX, or GNU stands for. Instead, I'd just answer the question about what it was.
If only Erlangers spent more time on marketing and less time on building things!
These days, someone launches a new open source product with an insanely well designed web presence. This open source project has a better visual design than I could make in two months: http://www.serfdom.io (along with the related http://www.consul.io).
Erlang is still stuck in "my first bootstrap page" mode of marketing (which is an improvement over the old version which was My 12 Year Old Neighbor's First Webpage mode).
Erlang is designed to appeal to people who already like Erlang. It doesn't get all the new programmer hyperfad attention of things like Go, but people who know how to use Erlang properly do amazing things more reliably in shorter timeframes than other programmers even know how to think about.
Generally, for people who actually have problems that they need Erlang to solve, they know that Erlang exists. I don't think marketing it as the solution to end all solutions to agile web ninjas is a very good idea.
This is post-modernism gone mad.
Richard Hamming, May 1986: you should spend at least as much time in the polish and presentation as you did in the original research. Now at least 50% of the time must go for the presentation. It's a big, big number.
Of course I did. You seem to be confusing things that you use for things that you are trying to sell (e.g. if you are an an academic, you want to sell your research as valid and worthwhile.) I use tools that I built to do work, and I've never spent a moment trying to sell the tools, but I actually made them. Some things in this world aren't even open source - people use them to make money, and never reveal them to anyone. Erlang started as an internal project, and people had to bargain to get it released externally.
You're drawing a false equivalence between marketing and substance. Erlang is doing billions of dollars of business. I love to talk about it, but the fewer people that know it, the better for me professionally. People have no idea how easy it makes everything.
* eOTP
* iOTP
* openOTP
* OTPly
* bitOTP
* OTP2000
* Margay
* Marvelous Margay
* OTP Classic
I think OTP should mean a library that helps you build reliable software. Telecom is old and crusty but! that also means reliable. Phone system is surprisingly reliable compared to computer systems. You can play it off that legacy.
Erlang supports JSON if you use a library[1], which is how pretty much every language other than javascript does it. Are you expecting native syntax or something?
Hopefully he doesn't speak for the rest of the Erlang community.
I wanted to try an experiment in presenting Erlang/OTP in a different way from lang Vs lang. Wanted a "Hello World" that was building a cluster, cos you can't do that with Node, lol...
I'm still waiting on an update on dragonfly's ssi story now that there are no free and open ssi solutions for linux... i fondly remember having fun with open mosix...
Yeah, but I am trying to get people to build a "Hello World" cluster in 5 minutes - so single machine, multi-node is easier...
http://uberblo.gs/2011/12/scala-akka-and-erlang-actor-benchm...