41 ms·
There isn’t one technique that works all the time. Life is unfortunately about tradeoffs whenever you do something complex.
by seanhunter 3y ago
There isn’t one technique that works all the time. Life is unfortunately about tradeoffs whenever you do something complex.
- amelius 3y agoSo choose a technique and language that least limits your design freedom. Choosing performance as your #1 priority is often a bad idea as it gets you into a straight-jacket from the start, making everything else much more difficult and slows down development to a crawl. Unless you're developing an OS kernel perhaps. Computers are fast enough these days, let them do part of the work for you! And you can always write a faster version of your software when there is a demand for it.
- sshine 3y ago> Choosing performance as your #1 priority is often a bad idea You can write inefficient code and optimize it later. > it gets you into a straight-jacket from the start, making everything else much more difficult and slows down development time to a crawl. Unless you're developing an OS kernel perhaps The argument seems to break down: Surely you don't want to be in a strait-jacket if you're developing an OS kernel. Somehow Rust is equated with always being in a strait jacket. The cost of writing highly concurrent programs is pretty much the same in every language except ones that have concurrency at the core (Erlang). I don't see much difference between starting with Java or Rust in terms of avoiding complexity caused by having to build things that a concurrent runtime could give to you for free.
- amelius 3y ago> The argument seems to break down: Surely you don't want to be in a strait-jacket if you're developing an OS kernel. If you're developing an OS, there is no escaping from the straight-jacket. Your design freedom is severely limited by the fact that your constraints include all applications that will run on your OS.