3 ms·
I'm personally very hyped for using Haskell natively on Lambda! In the keynote he mentions the partner sponsored runtimes, and actually said "Scala and Haskell,
by Tehnix 8y ago
I'm personally very hyped for using Haskell natively on Lambda! In the keynote he mentions the partner sponsored runtimes, and actually said "Scala and Haskell, you'll just have to bring your own!" (as in, community effort).
- munns 8y agoYes! We are definitely looking forward to championing awesome projects to build languages for the Runtime API. Take a look at the Rust and C++ examples as they show you a bit of how it all works. (Chris from AWS Serverless team)
- bob_roboto 8y agoScala works just fine in the java runtime for us
- Tehnix 8y agoI haven’t personally played with scala yet, but do you need to add any additional runtime components for it to work? Or perhaps scalaz? Or is it just making a .jar and you are good to go? :)
- telechus 8y agoI've simply used sbt assembly to create a far jar. It includes all of the needed dependencies.
- RhodesianHunter 8y agoDitto Kotlin.
- hood_syntax 8y agoThis would be a real game changer for me, from an internal marketing perspective and for personal use.
- Tehnix 8y agoInternal marketing for me as well! Will help persuade my colleagues to give Haskell a try.
- pwm 8y agoSame here, Haskell in Lambda is where we want to be.
- rmason 8y agoMay be the only one(?) on here who is hyped for using CFML natively on Lambda. Now thanks to the work of a member of our community we have a proof of concept in Fuseless http://www.fuseless.org http://www.fuseless.org as well as the open source CFML http://www.lucee.org http://www.lucee.org folks hinting at a Lambda project. Only six months ago people told me it was never going to happen but I now see that changing.
- 0db532a0 8y agoThere has never been anything stopping you from running binaries compiled from any language (including Haskell) on Lambdas. They run Linux after all. See serverless-haskell (link at bottom) for defining serverless Haskell functions. serverless-haskell also takes care of packaging shared objects depended upon alongside the binary. You will have to package any binary dependencies of your Haskell code yourself. The way it works is by generating a Node script which invokes the compiled binary with the payload as an environment variable, although this is encapsulated by an interface which you implement in the Haskell code. One thing to make sure is that your libraries and Haskell code are compiled on a system compatible with the Lambda execution environment. Documentation going further into ELF compatibility is available, but I can’t remember where. I remember using stack to have my Haskell code compile on an Ubuntu docker image which was compatible. https://github.com/seek-oss/serverless-haskell https://github.com/seek-oss/serverless-haskell
- samstave 8y agoFor the uninitiated, can you please provide some example use cases where you would use Lambda for Haskell for great good?
- Tehnix 8y agoHonestly, for everything we are currently running on Lambda. At the moment we are using the Node.js runtime with Typescript. We use both Lambda for data processing on incoming IoT events, and also for API interactions with our user, along with services to send mails and SMS, etc. --- I would just want to use the robustness and correctness that I'm able to ensure with Haskell, compare to TypeScript, and especially bundling quirks with Webpack and NPM. An example of an easy thing to let through is missing an _await_ on a call (might be for logging or something else), which means it'll go out-of-band, and can then easily not be run during the execution, if you have disabled waiting for the event loop to be done (which is necessary in many cases for global setup optimizations). The call might then finish when the lambda function is thawed, but it might also never run, because the function gets collected. Now, admittedly, this is not a big issue in any way, but it's the death by a thousand papercuts that I'd like to avoid.
- freedomben 8y agoHaskell (and many functional languages) excel at tasks where data is being transformed and/or can be modeled that way. Most of our lambda functions do exactly that.