Live data from Hacker News

What can I only do in Erlang?

erlang.org

101–110 of 173 posts

Re: What can I only do in Erlang?

#101
post #80

Earlier quoted context omitted.

> Which do you need sooner; fast? or correct and scalable? Well, if I need all of these options, then Erlang is obviously not the way to go. In that case, Erlang might work as a prototyping language. My impression is, from what I've read here, that Erlang might be the preferred tool for situations in which latency is not of paramount importance. For example, when sending text-messages over the internet, it doesn't hu…

If you're just delivering content, not number crunching, I doubt your bottlenecks are CPU, and you shouldn't see Erlang take 10x as long. In fact, you'll probably deliver a better experience in Erlang, because of its approach to concurrency; your average latency will likely be a bit higher, but your extremes will likely be lower. In fact, since you started with benchmarks, let's return to benchmarks (I find them to g…

> Look at the max and standard deviations.

This, times a million. 99th percentiles and standard deviation are what truly matters in benchmarks. To liken benchmarks to automobiles, requests/second is horse power and 99th percentile/standard deviation are torque.

Re: What can I only do in Erlang?

#102
post #87
post #69

Earlier quoted context omitted.

Down vote = I don't agree with your statement normally here. Not that it might be a starting point on a conversation?

Down voting is not for disagreeing, read the guidelines for HN. If you disagree, provide a comment as to why. Down voting is for completely irrelevant comments, inappropriate comments, etc... [EDIT] To be clear, I did not downvote you and I disagree with the down votes on your comment here, even though it's off-topic it's important to acculturate people that are accustomed to "downvoting for disagreeing". Which is wh…

>Down voting is not for disagreeing, read the guidelines for HN.

(citation needed)

Re: What can I only do in Erlang?

#103
post #96
post #49

Earlier quoted context omitted.

> 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 involve…

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

His erlexec thing is quite useful: https://github.com/saleyn/erlexec - I started contributing to it myself before I realized who he was.

Re: What can I only do in Erlang?

#104

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.

Thank you for your reply - it's very useful to me to see the viewpoints of others. It's becoming clearer all the time that my use of and views on language are very much in the minority.

However, to respond ...

  > "Only" is an adverb in this case,
  > and can be placed anywhere in the
  > sentence for stylistic reasons.
That doesn't seem right to me.

    Only what can I do in Erlang? 
    What can only I do in Erlang? 
    What can I only do in Erlang? 
    What can I do only in Erlang? 
    What can I do in only Erlang? 
These, to me, mean different things.

  > we all knew what the title meant,
  > your sandpaper notwithstanding.
This is a case of "plausible interpretation" and I agree completely that of the different interpretations, probably only one of them really made sense given the context. It is still the case that I had to re-read to make sure something else wasn't meant, and I find it hard to believe that I'm unique.

But what I take away from your comment is that, in your opinion, we should just go with the most plausible interpretation we can think of, and not worry too much about being too precise. You are clearly in the (possibly overwhelming) majority.

Re: What can I only do in Erlang?

#105
Some people have already been mentioning this but I wish to clarify some things.

When Erlang was designed/invented the goal was never to make a new language, the goal was to design a way of building systems with a set of specific characteristics, massive concurrency, fault tolerance, scalability, etc. One part of this was the language, Erlang. But at the same time we were developing the language we were also looking at how you would use the language and its features to build such systems. The language and the system architecture went hand-in-hand with support in erlang for the type of patterns you would need in the system architecture.

These ideas and patterns existed before OTP. So there were Ericsson products built on top of Erlang which used these ideas and patterns before OTP. OTP "just" took these ideas and design patterns and formalised them in a generic, cohesive way. Plus of course a lot of useful libraries.

So we were never really out to design a functional language based on the actor model, we were trying to solve the problem.

(We had actually never heard of the actor model but were told later that Erlang implements it)

Re: What can I only do in Erlang?

#106

Not sure I agree with the conclusions: 1. Binaries: this isn't really an issue. We ship the JVM with anything that we do in Java. Unzip, run, done. Go is probably ideal there but it doesn't support embedded resources without some hideous hacks so you're still going to be deploying more than just a single binary in a lot of cases. CLR is pretty good at this as well. 2. Sockets: 0MQ/WCF/JMS/any stream abstraction wired…

1. Binaries: this isn't really an issue. We ship the JVM with anything that we do in Java.

That comment is just about the exact definition of the blub paradox.

When presented with a more advanced idea, there's no underlying context to join the discussion, so the brain jumps to what it "already knows" instead of a more advanced concept of what's actually being talked about.

Re: What can I only do in Erlang?

#107
I'm just starting to do some work on a system that is going to be very distributed with many endpoints, often on unreliable networks connecting back to a server.

Erlang (elixir, really) looked promising for this so I've been investigating off and on while we do some prototyping and flesh out some of the details. So far it seems to be that you get nearly all the advantages of Erlang with running something like RabbitMQ and then being able to write message consumers in whatever language you desire.

Everywhere I think Erlang would be a good fit, seems that relying on RabbitMQ instead and having less code to maintain in-house makes more sense. I'm still very early in my Erlang journey but so far haven't been able to convince myself to use it directly. I must be missing something.

Re: What can I only do in Erlang?

#108
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…

Erlang is about 10x slower than C++ on most examples.

damned lies and benchmarks. hipe enabled? VM tuned properly? attempt to use halfword emulator? comparing C++ the compiler optimized down to SSE2 instructions to an emulator VM loop?

How much slower is Ruby than C++? Ruby runs every startup in the world. This website is the home of "DO THINGS THAT DON'T SCALE" including using fast to write programming languages at all costs even if 3 months later their "we have modules for every occasion!" design will be inadequate (you are testing your _ideas_ after all, not programming language speed, at least of the majority of use cases for people on this site).

a good candidate for writing a distributed server

distributed means you need monitoring. monitoring means you need supervision. supervision means you need restart strategies or failover or other promotion mechanisms. all that is built into erlang for free. optimize for _reliability_ not for speed when creating distributed systems.

Re: What can I only do in Erlang?

#109
post #107

I'm just starting to do some work on a system that is going to be very distributed with many endpoints, often on unreliable networks connecting back to a server. Erlang (elixir, really) looked promising for this so I've been investigating off and on while we do some prototyping and flesh out some of the details. So far it seems to be that you get nearly all the advantages of Erlang with running something like RabbitM…

That RabbitMQ gives you many of the features you want from Erlang is not that strange really as RabbitMQ is implemented in Erlang. :-)

Re: What can I only do in Erlang?

#110

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…

In generally, I think the kind of point you are making here is valid (and reflects an important source of miscommunication in the real world which is especially frequently an issue because imprecise expressions get extracted from their root context which might illuminate the intent that differs from the wording -- this is common when requirements discussions and informal written exchanges get reduced to requirements documents, for instance, and also, as here, when headlines get presented in aggregators out of their original context [though, in a sense, headlines are designed to be viewed without benefit of context, and have a particular need to be clear without context for that reason.])

OTOH, the actual phrasing here, while awkward, doesn't, to me, present the interpretation you offer of "What does Erlang force me to do?" -- indeed, there's no simple way of keeping the basic structure and moving "only" in that sentence to get that meaning (the closest sentence I can see which can communicate that meaning is "What is/are the only thing/things I can do in Erlang?")

That's not to say its not both awkward and ambiguous -- "What can I only do in Erlang?" -- even absent context -- is hard for me to read as anything other than an awkward phrasing of either "What can only I do in Erlang?" or "What can I do only in Erlang?", the latter of which is apparently the intended meaning, the former of which asks about the authors unique strengths in Erlang that aren't equalled by any other programmer.

Post reply on HN