5 ms·
After playing around with an Arduino in my spare time, I've realized how important it is to start thinking in multi-threaded concepts in programming. Nothing m
by ChikkaChiChi 13y ago
After playing around with an Arduino in my spare time, I've realized how important it is to start thinking in multi-threaded concepts in programming. Nothing makes a better example than watching delay(); physical prevent your sketch from taking the next step.
Golang (Still can't believe Google would release a language so piss poor for SEO) WILL be the language I pursue when I start down this path, but right now I don't have any projects that force me to start rebuilding my libraries from scratch.
- bad_user 13y agoSave yourself the pain and go with Scala and the JVM ... mature platform with battle tested GCs, all the libraries and concurrency idioms you'll ever need and a modern FP language designed for scale.
- swah 13y agoScala problems (in the old days): - You can't find people to work on it - Unbounded complexity, type-masturbation - Slow compilation (you need a better computer/SSD) - Might as well use Java, the tooling for Java is great Do you know if those are still true?
- dubbledidu 13y agoIt has gotten a lot better on all fronts.
- asdasf 13y ago>You can't find people to work on it If you felt that was a problem before, you will almost certainly still feel that way. >Unbounded complexity, type-masturbation No idea what you mean. >Slow compilation Still terrible. >Might as well use Java, the tooling for Java is great The tooling for java is better, but java the language is unbearable.
- TylerE 13y agoOnly if you don't mind paying approximately an order of magnitude penalty in RAM usage, which has long been an achilles heel of JVM languages. http://benchmarksgame.alioth.debian.org/u64/benchmark.php?test=all&lang=scala&lang2=go&data=u64 http://benchmarksgame.alioth.debian.org/u64/benchmark.php?te...
- dubbledidu 13y agoIt uses exactly as much memory as you specify. It would be pretty stupid to have plenty of RAM and NOT using it. With enough memory GC becomes essentially free, by not having to do any work.
- TylerE 13y agoNonsense. I'm talking about the SAME data taking more memory to represent. Plus, all things being equal a larger memory space will take more time to GC, and GCs become longer, not shorter. The JVM does things suboptimally in a number of ways. Object memory overhead is relatively high - typically 8 or 16 bytes per object, strings as UTF-16 (vs Go's UTF-8), etc. It really adds up, and funtional languages tend to churn lots of GC.
- pcwalton 13y ago> strings as UTF-16 (vs Go's UTF-8), etc. Strings aren't traced, so that has no impact on GC time.
- TylerE 13y agoIt does, however, impact memory usage quite substantially if your data is string-heavy, which most web-apps are.
- dubbledidu 13y agoWrong, wrong, wrong and wrong.
- bad_user 13y ago
- ChikkaChiChi 13y agoThe problem is the Mobius strip of reasoning you go through when you start to punish yourself into picking the 'best' language. Different tools for this and that sure...but I think ultimately Golang in the long run will see a more widespread adoption rate. There will always be better tools, you just can't beat yourself up trying to pre-optimize for each one per project.
- asdasf 13y ago>a modern FP language Scala is many things, but that is not one of them. Scala is an OO language with some FP influence.