9 ms·
Fun note, almost all of it is written in Haskell. If I remember correctly they've also done a bunch of stuff that helps Godot, or at least something to do with
by chungus 5y ago
Fun note, almost all of it is written in Haskell. If I remember correctly they've also done a bunch of stuff that helps Godot, or at least something to do with the Haskell bindings. Very accessible guys, I once asked a question on the gitter, and got helpful replies almost immediately.
- fouric 5y agoIf it's written in Haskell, it's highly likely that it'll be far harder to modify than something written in, well, not-Haskell. Haskell might be easy when you get the hang of it, but the vast majority of programmers haven't, and the language ideas are alien compared to the mainstream ones (Python, JS, C++, Lua). The design of Haskell also encourages users to be very clever, which only makes code harder to read.
- Jeff_Brown 5y agoHaskell reduces the size of the developer pool, but increases their productivity (the Haskell ecosystem is enormous and astoundingly solid given the number of devs in that space), and also makes the docs a joy to read.
- go_elmo 5y agoThis. Im wondering how this is possible, high haskell reusability / easy to get familiar with codebases & extend them when familiar with hs or being a genius? I guess its the first
- Jeff_Brown 5y agoStrict static types reduce a giant class of errors (including most of the footguns I'm always triggering in my dayjob with Python). Purity reduces another giant class: It makes it easy (indeed kind of forces you) to restrict your IO to a thin, top-level error, hence keeping the vast majority of the code purely functional and thus easy to test. Exactly how Haddock produces such wonderful automatic documentation, I don't know, but good God it does. The strict static types clearly help -- you can see exactly what every function inputs and outputs, what every data type needs, etc. And then you can jump to the definitions of any of those things, and if need be (almost never), the source code that defines them.
- darkwater 5y agoAnd what if it was the other way round? A steeper learning curve means that only the brightest, more motivated individuals can enter the realm, and those individuals are capable of doing more than the average developer.
- Jeff_Brown 5y agoYou're right, that's clearly happening too.
- Y_Y 5y agoI don't think writing Haskell ever gets easy, at least it hasn't for me over about ten years. Writing good code in any language is hard, but Haskell makes it harder to write bad code. I have to write object-oriented bullshit all day for my job, if I started a fun new project like this I'd happily choose Haskell. If people who only know JS and won't learn anything new can't contribute then that's a cost worth bearing.
- roganartu 5y ago> If people who only know JS and won't learn anything new can't contribute then that's a cost worth bearing. I think this is an unfair and unnecessarily-snarky take. My list of languages is fairly long these days. I’ve written php, ruby, and go in reasonable volume for mostly personal projects. I used to teach embedded C at uni. I write python professionally every day. Recently I’ve even started playing with rust (and had some success thanks to the awesome book). The list is far longer, these are just the ones used the most. I’ve been writing code in some capacity for the last 20 or so years (first self-taught, then at university, and more recently professionally full-time). Despite all that, and not for lack of trying, for whatever reason purely functional languages are the only ones that elude me. Every couple of years I try Haskell or erlang again and I just get nowhere fast. Maybe it’s because I was never very good at maths, maybe it’s because I haven’t had sufficient motivation, or maybe I just haven’t found the right monad blog post to convert me. All I know is Haskell remains chronically out of reach to many experienced and inexperienced devs alike.
- moron4hire 5y agoYeah, I don't really see functional programming being that great of a fit for VR. I mean, the 3D environment is inherently object-oriented and stateful. And you're working in an extremely performance intensive task, such that pure immutability really starts to get in the way. Also, Haskell's lazy evaluation has a bad reputation for poor and/or unpredictable performance. It's better to have a higher mean execution time with an extremely narrow standard deviation so you can plan your frame budget and not occasionally blow it, dropping frames all over the floor. What you want is something that puts the movement of memory between processes and threads front-and-center. Half the difficulty of writing a 3D rendering engine is coming up with a good memory model for loading 3D models and textures to push them onto the GPU. That really sounds more like Rust's wheelhouse than Haskell.
- seanc 5y agoI find Haskell to be absolutely impenetrable, but I run XMonad and work with my config file just fine. So users will probably be able to hack together what they want, but they may struggle to grow a large developer community. But that can still work out okay.
- whateveracct 5y ago> The design of Haskell also encourages users to be very clever, which only makes code harder to read. This is BS - find me some "clever" code in one of these Haskell projects and I bet it's not clever but simply using a set of abstractions there maintainers like and grok and the reader just doesn't understand.
- Rebelgecko 5y agoMaybe I'm being overly pedantic but I think that's a textbook description for overly "clever" code in any language- it makes perfect sense to the authors but is nontrivial for the reader to understand
- whateveracct 5y agoExcept in Haskell, it's not just some pet bit of code by the authors. It's a shared abstraction with well understood laws and theoretical underpinning. What people call "clever" code in mainstream programming is not in any way similar to the Haskell being referred to. Luckily in the Haskell world, we don't ascribe negative attributes like "cleverness" to code that isn't outsider-friendly. We gain a lot by not requiring that all our code is understandable by a mainstream programmer.
- wing-_-nuts 5y agoI often find myself wondering what the 'killer app' of purely functional programming languages is. For the longest time I assumed they would become much more popular as multi-core cpus proliferated, but pretty much every purely functional language out there is relegated to a dusty corner.
- kanetw 5y agoThe absolute killer app is compilers, static analyzers, and similar. Other languages don't even come close for anything in that space. However, I think that purely functional languages are useful for basically everything. Haskell is my general purpose language of choice, unless libraries or system constraints force me to another language.
- macando 5y ago> The absolute killer app is compilers, static analyzers, and similar. In other words, those problems that don't involve users and the outside world. Pure languages for pure problems. Impure languages for impure problems. It computes.