7 ms·
I'm saying that programming languages are tools for completing programming tasks. So, yes, when faced with a task I think about which one is best. Examples: N
by spekcular 5y ago
I'm saying that programming languages are tools for completing programming tasks. So, yes, when faced with a task I think about which one is best.
Examples:
Need to copy a bunch of files? Use bash.
Need to do a quick Monte Carlo simulation? Probably use Python since it allows me to write it the fastest (based on my familiarity).
Need to write drivers? Use C.
I don't think there is a strict ordering of "is better than" between Haskell and Rust. I think for many purposes they are roughly equivalent, and for some one or the other is more suited to the task.
But, if I can't identify any problem for which Haskell is a better tool than Rust, why would I ever learn Haskell?
- the_af 5y agoHow can you identify the problem if you first don't learn Haskell? How would you even decide you want to learn Rust and not Haskell if you didn't know either? Hype? Popularity? Because your coworkers know Rust, or the codebase is in Rust? Those are all good reasons, honestly! So if you were in a Haskell shop, you'd have reason to prefer Haskell over Rust. There's your answer. Either will be better than Python for a medium/large project, but likely worse for a really tiny script or program. How did you pick Python over Ruby? They are very similar, yet they have many differences. Think about it, and there's another answer for you.
- spekcular 5y agoHow do I decide? I look at the features and documentation for each language, and try to figure out what problems it is best suited for. I also ask various people I trust (and HN commenters!). I agree: If the problem is "How do I get paid?" and the best available job requires learning Haskell, then learn Haskell! But, I think this is kind of an evasive answer. First, not many jobs require Haskell, so if my choice of language is dictated by economic concerns I'm better off with, say, Python or various web dev stacks. Second, because I have in mind a situation in which the implementer has a fixed problem and is trying to figure out which language to use. (A personal project, say.) I'm sorry if this was not clear. So, I ask again: are there any problems for which Haskell is a better solution than Rust? edit: Regarding the Ruby question, I think the language has various flaws, but going into detail would take way too time. A shorter answer is: numpy, scipy, pytorch, numba.
- the_af 5y ago> I look at the features and documentation for each language, and try to figure out what problems it is best suited for Well, and what have you found so far in relation to Rust and Haskell? It seems to me you know what you have to do. Let's assume your answer is "I read every introductory page in wiki.haskell.org, read and worked through a couple of tutorials, and I still cannot figure it out". If so, do you think a comment here in HN is going to convince you of picking language X over Y? > So, I ask again: are there any problems for which Haskell is a better solution than Rust? Realistically, which kind of answer do you expect? A summary of the "Why Haskell" and "Why Rust" pages? I'm sure they exist and you could take a look at them and decide.
- spekcular 5y ago> If so, do you think a comment here in HN is going to convince you of picking language X over Y? Yes. Because I'm a highly fallible person and very open to the idea that a Haskell expert might be able to point out a good use case that I missed. > Realistically, which kind of answer do you expect? A summary of the "Why Haskell" and "Why Rust" pages? I'm sure they exist and you could take a look at them and decide. The selling point of Rust is (very, very) roughly "C++ without the bad parts, and some more good parts." Given the demonstrated utility of C++ (and demonstrated pitfalls) this is manifestly appealing. Avoiding memory safety related security holes alone is huge. That's an example of the kind of answer I expect.
- the_af 5y ago> a Haskell expert I'm not a Haskell expert, I just dabbled with it and liked it. > The selling point of Rust is (very, very) roughly "C++ without the bad parts, and some more good parts." Given the demonstrated utility of C++ (and demonstrated pitfalls) this is manifestly appealing. Avoiding memory safety related security holes alone is huge. The selling point of Haskell is that it's a Functional Programming first language (see: "Why Functional Programming Matters"), has a better statically type system than C/C++/Java which makes whole classes of bugs common in those languages harder to write in Haskell (so if writing correct code is a priority, that's your use case), and memory safety related security holes are harder to write, just like with Rust. Laziness (or non-strictness, whatever) is also a big if controversial selling point (why: read "Why Functional Programming Matters"). If you like slightly less opinionated (or non-strict by default) languages, you could go with OCaml or Standard ML instead. Why would you prefer Rust? Why don't you ask a Rust advocate?
- AnimalMuppet 5y agoIf you're asking people to learn Haskell in order to find out which kinds of programs it's better on, that's a tough ask in a universe that has dozens of languages that one could learn. Most people aren't going to bite on that. No, tell us what kinds of problems it's good for, and if we care about those kinds of problems, then we'll consider Haskell.
- the_af 5y ago> No, tell us what kinds of problems it's good for, and if we care about those kinds of problems, then we'll consider Haskell. Haskell is good for writing general purpose code in the Functional Programming style [1]. It's not the only language that supports this style, but it's one of the most opinionated about keeping to this style that is also general-purpose, pragmatic, and has some industry adoption [2]. You can also see read what wiki.haskell.org has to say [3]. [1] "Why Functional Programming Matters": https://www.cs.kent.ac.uk/people/staff/dat/miranda/whyfp90.pdf https://www.cs.kent.ac.uk/people/staff/dat/miranda/whyfp90.p... [2] Commercial Haskell: https://github.com/commercialhaskell/commercialhaskell#readme https://github.com/commercialhaskell/commercialhaskell#readm... [3] "Why use Haskell": https://wiki.haskell.org/Introduction#Why_use_Haskell.3F https://wiki.haskell.org/Introduction#Why_use_Haskell.3F > If you're asking people to learn Haskell in order to find out which kinds of programs it's better on I'm not asking people to do anything, but if they do want to understand the tradeoffs of any technology, sometimes the only way is the hard way: learning it. I find all too often what people really want to know is a quick and easy glance at how much language X differs from something they already know (usually C derivatives, or Java, or Javascript, or Python).
- spekcular 5y agoAgain, I find this answer somewhat evasive. Many languages support functional programming and are used commercially. You still have not told us: What problems is Haskell best for? What is its comparative advantage? I don't think it's unreasonable to expect a more concrete reply to that quesiton than "First master the language, then figure it out."
- 5y ago