[-] expr@programming.dev 9 points 3 weeks ago

A synopsis for a great fucking movie.

[-] expr@programming.dev 10 points 1 month ago

That used to be true, but in recent years he has gotten a lot more conservative, so I personally take his predictions with a huge grain of salt.

[-] expr@programming.dev 9 points 1 month ago

I dunno, I ended up blocking the instance way before I knew about their reputation (like, when I first joined Lemmy) because all of the users their kept posting the most unhinged shit.

I have definitely seen blatant apologism for China/Russia from them.

FWIW, I'm much further left than your average Democrat (I consider myself a leftist/anarchist). I personally don't consider what I've seen from them to be very "left", just authoritarian.

[-] expr@programming.dev 9 points 1 month ago* (last edited 1 month ago)

Fundamentally it's a language oriented around blocks of statements rather than composition of expressions. Additionally, it takes a different approach to the mutation problem than FP languages: where FP seeks to make most things pure and push mutation and side effects to the edges of the program, Rust uses its type system to make such mutation and side effects more sane. It's an entirely different philosophy when it comes to programming. I don't think either approach is necessarily better, mind you, just a different set of tradeoffs.

I'm a professional Haskell developer and am very much immersed in FP. When I read Rust code, I have to completely shift my thinking to something much more imperative. Whereas if I read, say, Ocaml, the difference is mostly syntactic. This isn't a slight, mind you. I quite like Rust. But it's a very different paradigm.

[-] expr@programming.dev 9 points 2 months ago

The negative impact a lot of screen time has on kids is very well documented. Basically, even educational shows do basically nothing for young kids. It's passive and doesn't help development in any way. Kids benefit a lot more from active exploration, play, and socialization.

"Moral panic" is a phrase reserved for complaints that have no basis in reality.

[-] expr@programming.dev 9 points 5 months ago

You're just describing parsing in statically-typed languages, to be honest. Adding all of this stuff to Python is just (poorly) reinventing the wheel.

Python's a great language for writing small scripts (one of my favorite for the task, in fact), but it's not really suitable for serious, large scale production usage.

[-] expr@programming.dev 8 points 5 months ago* (last edited 5 months ago)

1 Is pretty standard in the industry for people with experience. I haven't actually applied to any jobs myself in a while. Job hunting for me is sifting through the recruiter messages that hit my inbox.

[-] expr@programming.dev 9 points 5 months ago

Technically "to eat" is the Infinitive form of the verb, and using infinitives as nouns isn't all that unusual in many languages.

[-] expr@programming.dev 9 points 6 months ago

I'm not familiar with any special LLVM instructions for Haskell. Regardless, LLVM is not actually a commonly used backend for Haskell (even though you can) since it's not great for optimizing the kind of code that Haskell produces. Generally, Haskell is compiled down to native code directly.

Haskell has a completely different execution model to imperative languages. In Haskell, almost everything is heap allocated, though there may be some limited use of stack allocation as an optimization where it's safe. GHC has a number of aggressive optimizations it can do (that is, optimizations that are safe in Haskell thanks to purity that are unsafe in other languages) to make this quite efficient in practice. In particular, GHC can aggressively inline a lot more code than compilers for imperative languages can, which very often can eliminate the indirection associated with function calls entirely. https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/compiler/generated-code goes into a lot more depth about the execution model if you're interested.

As for languages other than Haskell without such an execution model (especially imperative languages), it's true that there can be the overhead you describe, which is why the vast majority of them use iterators to achieve the effect, which avoids the overhead. Rust (which has mapping/filtering, etc. as a pervasive part of its ecosystem) does this, for example, even though it's a systems programming language with a great deal of focus on performance.

As for the advantage, it's really about expressiveness and clarity of code, in addition to eliminating the bugs so often resulting from mutation.

[-] expr@programming.dev 10 points 6 months ago

No, this technology has been around for many decades, since the early days of computing. It is nothing new. The only thing that has changed is the volume of data and computing power.

[-] expr@programming.dev 9 points 8 months ago

Gmail is a (bad) web application. A marketing website or even an ecommerce store are not.

[-] expr@programming.dev 9 points 1 year ago

No, but they're also not wrong here.

view more: ‹ prev next ›

expr

joined 1 year ago