Hacker News new | ask | show | jobs
by sitkack 2220 days ago
I have seen it, it is no better than Python's, exactly as I said.

Hot swapping Erlang in production is rarely done, and if it is done, it mostly done during debugging, not serving production traffic.

I invite you to do a straw-poll on the erlang mailing list.

2 comments

> I have seen it, it is no better than Python's, exactly as I said.

I'm going to have to call your bluff and ask you to substantiate your claim. Please show where Python provides, as a part of the language and/or the standard library, the equivalents of these Erlang built-ins:

1. Module versioning (via vsn)

2. The ability to run multiple versions of the same module at the same time, transparently and for as long as needed.

3. The versioning (via Module vsn), tracking (via handle_call/3 and derivatives), and migrating (via code_change/3) of State.

4. The dependency tracking and ordering between code updates of multiple modules (via release_handler)

These are the native features that make hot-swapping in production not only feasible, but also powerful and easy. Of course, these are built on top of foundational primitives that are possible in any language, sure, but not all languages (including Python) have these natively available.

----

> Hot swapping Erlang in production is rarely done, and if it is done, it mostly done during debugging, not serving production traffic.

> I invite you to do a straw-poll on the erlang mailing list.

I'm sorry, but this point you're introducing now is unrelated to the discussion we're having, so I'll refuse to respond to this in any way except to remind you of the point we _are_ discussing:

1. adrr's claim: " Erlang was developed for telecommunication systems where you need performance and the ability to hot swap code." https://news.ycombinator.com/item?id=23286646

2. To which you responded: "Erlang's hotswap and Python's hotswap are of comparable power, ie, both are crappy. Being able to do something isn't the same as doing it well.

You can hot swap all languages." https://news.ycombinator.com/item?id=23287624

Hot swapping support in Erlang is first class, but even with that, it is not an easy feat to accomplish in large systems. Which is why, in my experience, people tend to avoid it if they can do without it. Systems i have worked with either had scheduled downtime periods or one could easily take down a node for upgrades without impacting the general availability of the system. In such cases, there is no real incentive to invest time and energy in managing hot swapping. But if you absolutely need all parts of your system be up 24/7, Erlang has the best story I've heard so far.