__jonas
Joined 7 years ago
Joined 7 years ago
Interop is not seamless since Elixir does not have the same static type system, but it is possible and that does help sometimes. When resizing images for example, I fall back to Elixir's bindings to libvips. I've also used Oban from Gleam in the past.
It's comparable to Cloudflare, if you're familiar with that, though Bunny is based in the EU instead of US.
This post is about their scriptable DNS service, which used to be paid and is now free.
- Owncloud: The 'original' platform, written in php, still developed today
- Nextcloud: A fork of Owncloud (php) by some of the people that worked on it, including the project founder over directional differences, now more widely used than the original Owncloud
- Owncloud infinite scale (OCIS): An implementation of the Owncloud server in Go, with the goal of making it faster and more scalable than the PHP version
- Opencloud: A fork of Owncloud infinite scale (Go) after an acquisition of ownCloud, the company.
You may be thinking about React itself, not the new compiler? I'm sure there must be some flow in there still from back in the day.
I don't have your level of experience with the language, but I have a personal project written in Elixir, and I do not feel very confident about parts of it that don't have complete test coverage, due to the lack of static typing.
I'm talking about things like: Is this pattern match exhaustive or is there a possible permutation I forgot / specified wrongly, which may then cause a match error at runtime, breaking a particular feature? (of course not bringing down the whole app due to OTP!); or if I change some keys in a map / struct in refactoring, did I forget to change them somewhere else in the application, introducing another error that is only caught at runtime?
Both of these have happened to me, I can even give you examples from code that is not my own – for my project I use a snapshot testing library by an experienced Elixir developer, and while using it I encountered two runtime crashes due to data being in the wrong shape and failing a (function clause) pattern match:
https://github.com/zachallaun/mneme/issues/85
https://github.com/zachallaun/mneme/issues/105
Proper static typing would make it very hard to write bugs like this. In Gleam for example, the compiler checks the exhaustiveness of your pattern matches against the type of the data you're matching against, and forces you to handle all possible values.