yshalabi
Today, increases in compute capabilities enabling new technology requires new architectures that match the problems. Similarly to how GPUs enabled deep learning.
Also I don't recommend you try to outfit your startups server farm. I dont know your needs, but you should find someone who can figure out what you really need.
As for your other comment... jeez. Why so passive-aggressive? You are certainly right -- we all have habits that someone would consider unhealthy. But is my taste for sweets as destructive as this? I dont know, seems like they are both serious. It might even be that the addictiveness and lack of end-game of these games make them more dangerous.
Anyways, my main concern is that these games are being played by kids. I think everyone agrees that kids are still developing. What is the impact of these kinds of games on them? Do you know for sure that its harmless?
Not meaning to insult you or anyone, but dismissing these questions without a good reason is just plain ignorance and probably irresponsible. I am not equipped to answer these questions. Which is why this post and my original one are filled with questions.
Thanks!
But, I don't know if "use FP if you want parallelism" is an acceptable solution currently. My intuition is that latency sensitive application can't use these languages because they don't expose the low-level primitives (read pointers) that make the difference in such applications. But I haven't written and profiled enough FP code to know if this is absolutely the case.
Now I understand your first paragraph a bit better :P. I would avoid using EC. Instead I would find another term. To me, EC implies that the object can be inconsistent for some period of time but will eventually reach a consistent state across all nodes. Your titling of the link and your use of the EC term kind of threw me off a bit.
"Modern computer are eventually consistent systems by virtue of the caching layers (and local registers) - only once modifications make it to a shared cache are they globally visible."
I agree with you but I would leave registers/cache out of this. Yes, if a read to a memory location could return stale data then this would be absolutely be a problem. But I would argue that reading a memory location into a register then performing RMW ops on it does not necessarily put the system in an inconsistent state. This because RMW ops on a register dont change the actual shared object.
I think a better example for what you are talking about is write buffers in individual processor cores. These can contain intermediate state visible to that processor but not to others. Such relaxed consistency procesors will require appropriately placed fences to achieve linearizability.
If you want sequential behavior from your datastructure in the presence of concurrency then, sorry, but linearizability is the only model that meets the requirements. I imagine 99% of programs want their concurrent lists/stacks/queues/maps to behave like their sequential counterparts.