by philippelh on 3/3/17, 12:11 PM with 182 comments
by mybrid on 3/3/17, 3:15 PM
by daxfohl on 3/3/17, 4:13 PM
Of course Haskell is more mature, has support for multithreading and STM, compiles to native, so it's more performant. But PureScript integrates with JS libraries and seems "fast enough" in many cases. I think it's more interesting as a project too: the lack of runtime and laziness means the compiler code is orders of magnitude simpler than Haskell's, so I could see a larger community building around it if it catches on.
Given that they were on Python earlier, I wonder if PureScript would have been a better choice.
by sid-kap on 3/3/17, 2:59 PM
> No messing around with virtualenvs and requirement files. Everybody builds with the same dependency versions. No more “works on my machine” and “did you install the latest requirements?”.
I wonder why the Python ecosystem, which is much more mature, doesn't provide a build tool as delightful as Stack (which is less than 2 years old).
by slezakattack on 3/3/17, 4:35 PM
Could you imagine if this wasn't the case? The hurdle to actually get people excited about a language such as Haskell especially moving from something like Python would potentially be huge. Kudos for already having that problem solved.
by gaius on 3/3/17, 6:52 PM
by Twirrim on 3/3/17, 4:18 PM
If you're having to "secretly introduce" tech, and "get away with it", that suggests there are unnecessary and unproductive constraints on your work; maybe even suggesting that you'd get in trouble for actually daring to make things better.
by framp on 3/3/17, 7:36 PM
It's kind of funny that build reproducibility (which was a major issue before stack) is one of the strong point.
I wonder if, for your project, using cloudhaskell would have been more appropriate. I have a feeling some of the problems you found could have been solved with that.
by lima on 3/3/17, 7:08 PM
by techman9 on 3/3/17, 5:39 PM
While this is nice, of course, I'm not sure that is outcome is unique to Haskell/Stack. It seems like you could accomplish a similar level of reproducibility by building a Docker image or bundling dependencies in some other way.
by arianvanp on 3/3/17, 3:45 PM
by jwatte on 3/3/17, 11:58 PM
There is a RealWorld that runs on top of IO and a FakeWorld that runs on top of pure State for unit testing.
This means that we have to wrap every single API into our own "SupportsRedis" and similar APIs, but in the end I think it's worth it! Unit tests are super fast and not intermittent at all.
by yawaramin on 3/3/17, 4:16 PM
by javajosh on 3/3/17, 7:46 PM
by kisstheblade on 3/3/17, 7:00 PM
You can do beautiful interfaces with eg. java also. But where is the meat where anything actually happens? I rarely see that in these posts. Yes I could look up the source but I don't have time to read through it randomly.
This looks just so nice and stuff just magically works?:
runWorkerLoop :: (MonadBackingStore m, MonadLogger m, MonadIO m) => WorkerState -> m WorkerState
And monads to boot! (are monads haskells equivalent of java factories? I kid, I kid :)
by contravariant on 3/3/17, 4:07 PM
Am I understanding correctly that this is because, while you can lift e.g. runFetchLoop to something of type IO m (), it's not possible to convert use forkIO on it since it requires an input of type IO ()? Isn't that just a consequence of the fact that Haskell has no possible way of knowing if your side effects can be contained in the IO monad?
by davedx on 3/3/17, 4:47 PM
by osi on 3/3/17, 3:41 PM
by hota_mazi on 3/3/17, 7:56 PM
The naïveté in this simple statement is so cute.
The list of concerns is also pretty naïve. The main problem you are going to encounter with this project is hiring. If you want to grow this project or if the main developers leave the company, I bet it will get rewritten in a different language in no time.
by guptaneil on 3/3/17, 3:07 PM
by mehaveaccount on 3/4/17, 12:26 AM
by xyzzy4 on 3/3/17, 5:56 PM
More on this: https://www.reddit.com/r/haskell/comments/1f48dc/what_does_t...
All of the answers seem insufficient. Basically you can't estimate Haskell run-time unless you are very familiar with the internal Haskell engine.
by ctlaltdefeat on 3/3/17, 9:31 PM
Why did you choose to write your own, regardless of the language?
by vorotato on 3/3/17, 9:26 PM
by eternalban on 3/3/17, 3:43 PM
I'm guessing he is a Python developer and likely he is no longer the lead.