Hacker News new | ask | show | jobs
by closeparen 3187 days ago
>when concurrency or performance are a requirement

I see what you're getting at, but this is an irksome way to put it. We're clearly unwilling to wait for the heat death of the universe for our programs to terminate. Performance is always a requirement.

"When the performance requirements can only be met by C/C++" might be a more accurate formulation, but then it's just tautological.

Java, Go, Obj-C, Erlang, and Scala are all certainly in the running when concurrency is required, and fit within many latency budgets just fine. The managed and dynamic languages on the list are typically used in contexts where latency is dominated by network and disk I/O, so marginal CPU efficiency isn't worth much. That doesn't mean performance isn't a requirement, it means the most effective ways to increase performance are different. Adding indexes, optimizing queries, caching, etc.

1 comments

I think its more like a level of performance is a requirement. Once you need a higher level of performance C/C++ becomes one of only a few tools you can use. If you need higher then you either go to Fortran or ASM.