Live data from Hacker News

What can I only do in Erlang?

erlang.org

91–100 of 173 posts

Re: What can I only do in Erlang?

#91
post #34

Erlang looks interesting. However, the only problem I have with starting in Erlang is that on the great computer language shootout, it shows that Erlang is about 10x slower than C++ on most examples. And about 3x slower than Go [1] I know that the problems on this website are not specifically "concurrent" problems, but still, even a distributed web-server must do some non-concurrent stuff at times :) Are my concerns…

Which do you need sooner; fast? or correct and scalable? Erlang is built first for fault tolerance, not speed. The decisions that went into that make it also really, really good for concurrency and distribution (and so that's what it often gets touted for). The decisions that went into C++ were for speed, and compatibility with C (and all that entails). If you've got something truly resource intensive, yeah, you're g…

I feel like Rust in a way is trying to be somewhere between Erlang and C++, and in a way thats what gets me so excited about it.

Re: What can I only do in Erlang?

#92
post #25

Curious how much people think Go will eat into Erlang? Many of the points made were about Erlang as CSP and that's Go-territory. Loïc Hogun (author of Cowboy, other projects) said: For me Erlang is first fault tolerant, then concurrent, then functional As Go gains libraries like groupcache will it become more and more go-to for networked and shared systems? Is Go moving up from concurrent to fault-tolerant in a real…

I would take a look at akka instead. Distributed actor concurrency and local STM.. Oh my.

All built on the JVM which has its own set of issues compared to BEAM or natively compiled Go or Rust.

Re: What can I only do in Erlang?

#93
post #49
post #36

Earlier quoted context omitted.

When you say Erlang is slower than C++, You are right. It is also slower than Go. Ruby is also slower than C++ & Go, But Ruby on Rails is not only popular but a very productive web framework which can help you build your app with a productivity that C++ or Go can't match. When you write a high quality, fault tolerate system, the raw speed comes at the end. Erlang shines when you write a concurrent system plus its des…

> and Erlang is perhaps the most commercially successful functional language. Out of interest, what makes you say that? Looking at the TIOBE rankings (not that this is definitive), Erlang doesn't even make the top 20 languages, when F# and R do: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.... Is there a reason you think it's more successful in the commercial world? (btw, I'm a fan of Erlang - unfortun…

TIOBE not only isn't definitive, but there's little reason to think that its that much more meaningful than throwing darts at a board for its declared meaning ("an indicator of the popularity of programming languages") or the things it claims to be useful for ("to check whether your programming skills are still up to date or to make a strategic decision about what programming language should be adopted when starting to build a new software system").

Re: What can I only do in Erlang?

#94
post #27

Op's work environment is exceptional in many ways. It's a quintessential hacker work place. Unbelievable flexibility. I am sure a place like that attracts people who can make any technical edge, however miniscule, into a real felt advantage. I want to learn about their management, hiring and culture-building practices more than their actual hacking triumphs.

"As for encouraging adoption, I recommend you solve a problem in your spare time that your company has, in Erlang, and demonstrate how easy it is to maintain compared to whatever the accepted solution being worked on is. That's a lot safer thing to your management than "throwing money at a new toy, hoping for a payoff"." For me, this translates to: invest unpaid time for your employer to improve things, on the off ch…

Oh please. What's the best way to learn a new programming language? Writing code in it. What problem(s) should you solve? Well, there's the crappy foo-bar thing that would be awesome to solve...

That's a WIN for both sides of the equation. You're expanding your knowledge and learning something new; The company is getting the benefits of you learning new stuff. This is how 'engineering culture' is supposed to work.

It's complete garbage to associate this with "exploitation." If the company were saying "this is mandatory that you do exploratory programming on nights and weekends for the next 6 months" then you might have half a leg to stand on.

Re: What can I only do in Erlang?

#95

Earlier quoted context omitted.

Tell that people who are trying to build scalable network applications. Saltstack uses ZeroMQ under the hood and the biggest cloud computing operations in the world use it. That article reads like from a past age, where you didn't have startups scaling to millions of users based on cloud computing. HTTP was invented for retrieving hypertext documents. Not for connecting millions of nodes.

Scale covers lots of things, including statefull v. stateless and (appropriate to this discussion) asynchronous comms and the ability to queue requests. Scale in that sense is facilitated by retrying a remote call that failed - possibly because the server is at capacity. That implies store/forward, which is what the "queue" part of message queuing does. You can definitely use tools like ZeroMQ, MQ Series, MSMQ or WCF…

Examples can be found here http://zeromq.org/docs:labs AFAIK Twitter storm uses ZMQ under the hood.

Re: What can I only do in Erlang?

#96
post #49
post #36

Earlier quoted context omitted.

When you say Erlang is slower than C++, You are right. It is also slower than Go. Ruby is also slower than C++ & Go, But Ruby on Rails is not only popular but a very productive web framework which can help you build your app with a productivity that C++ or Go can't match. When you write a high quality, fault tolerate system, the raw speed comes at the end. Erlang shines when you write a concurrent system plus its des…

> and Erlang is perhaps the most commercially successful functional language. Out of interest, what makes you say that? Looking at the TIOBE rankings (not that this is definitive), Erlang doesn't even make the top 20 languages, when F# and R do: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.... Is there a reason you think it's more successful in the commercial world? (btw, I'm a fan of Erlang - unfortun…

Erlang is used in infrastructure projects. A few I know of:

Rabbitmq -- probably the most popular messaging system

Riak -- distributed, fault tolerant database

WhatsApp -- managed to route billions of messages a day with only a handful of engineers and servers.

Ericsson -- pretty much got the market for cell base nodes cornered. Chances are about 50% if you use internet on your smartphone, that Erlang will be involved.

Some firms on Wall Street use Erlang -- remember Serge Aleynikov case, he is an Erlang programmer.

Ejabberd -- a very popular XMPP server

CouchDB/Cloudant(IBM) -- another database and database-as-a-service company use Erlang.

So I would still say the original statement holds. By success might mean the amount of work being done not amount of people writing code. Think about WhatsApp. It was only 10-20 engineers that worked on the back-end yet think about the massive amounts of data they were able to handle.

Re: What can I only do in Erlang?

#97
post #86

Earlier quoted context omitted.

So? 1) There are trade offs, sometimes you trade development time for execution time. 2) Erlang is "fast"/scales, ask whatsapp 3) A lot of people worry about execution but have enough spare CPU cycles to compute the universe. 4) Benchmarks mean nothing, you must figure out what is meaningful to you. You won't compare a ferrari and a minivan? Well, you could, but yet, find that a minivan is more practical for your dai…

> 2) Erlang is "fast"/scales, ask whatsapp But whatsapp is not a latency-critical application.

If you're controlling car brakes, no, don't use Erlang. That's called "hard real time" and mostly gets written in C or Ada or those kinds of low level things: http://en.wikipedia.org/wiki/Real-time_computing

For most other things, Erlang is a fine choice. In your other comments you talking about web pages. People compose those all the time with languages like PHP and Ruby, and things mostly work out.

Odds are, with a lot of web stuff, a decent portion of your latency is going to be in the data layer anyway.

Re: What can I only do in Erlang?

#98

Added in edit: Seeing that this is getting down-votes suggests either that I've not been sufficiently clear in the point I'm trying to make, or that you think I've phrased it in an unacceptable way. Either way, sorry you don't think this fits here, but I'll leave it for others to down-vote, correct, reply to, or support, as they see fit. Another edit: Getting more down-votes, but not learning anything. Do you think t…

"Only" is an adverb in this case, and can be placed anywhere in the sentence for stylistic reasons.

In all spoken language (as well as computer language), context is king, so we all knew what the title meant, your sandpaper notwithstanding.

If the author was trying to ask "What does Erlang force me to do?" then he would have written that.

Re: What can I only do in Erlang?

#99
post #34

Erlang looks interesting. However, the only problem I have with starting in Erlang is that on the great computer language shootout, it shows that Erlang is about 10x slower than C++ on most examples. And about 3x slower than Go [1] I know that the problems on this website are not specifically "concurrent" problems, but still, even a distributed web-server must do some non-concurrent stuff at times :) Are my concerns…

It's silly to compare Go to Erlang, which is decades older and more mature. Erlang has built-in clusters, a robust actor framework and a powerful pre-emptive VM. It's optimized for High Availability/Low Latency applications, not "raw" speed or throughput.

Re: What can I only do in Erlang?

#100
post #47
post #20

Earlier quoted context omitted.

Agree, and to look at it from a different angle - to me writing Erlang felt like I was writing config txt files to some underlying system. The system performs good following your "config" but all the hardcore feel is lost for you.

Huh? "Hardcore feel" is definitely there and the language is anything but "writing config txt files to some underlying system". I've built applications in the > 10k SLOC range that use a consensus algorithm for distributed computing and it was hard but made tremendously easier because of Erlang's built in primitives. No hardcore feel was lost at all and neither was it writing a config txt file... [EDIT] I would love…

Very interesting! I have to admit I've not gone so far with Erlang...

Mind to share some more details? What project/company it is?

Post reply on HN