4 ms·
(2021) Unfortunately Brex doesn't use Elixir anymore https://medium.com/brexeng/building-backend-services-with-kotlin-7c8410795e4b https://medium.com/brexeng/
by colesantiago 3y ago
(2021)
Unfortunately Brex doesn't use Elixir anymore
https://medium.com/brexeng/building-backend-services-with-kotlin-7c8410795e4b https://medium.com/brexeng/building-backend-services-with-ko...
- judicious 3y agoKotlin, definitely an interesting choice for backend development. But I love to see idiosyncratic language choices being made.
- vvpan 3y agoDoordash uses Kotlin for backend as well. I suppose they want FE/BE to be in the same language. And when your main product is a native app Kotlin starts to make sense.
- ceras 3y agoNeither the iOS app nor the web app use Kotlin at DoorDash. Kotlin was picked for other reasons (consistency with the Android app wasn't mentioned): https://doordash.engineering/2021/05/04/migrating-from-python-to-kotlin-for-our-backend-services/ https://doordash.engineering/2021/05/04/migrating-from-pytho...
- brink 3y agoHaving spent considerable time in both Java and Elixir, I would also choose Kotlin (or Java) over Elixir as a backend language. I worked in Elixir for over a year, and frankly was quite disappointed with it. Elixir has a lot of good ideas, but falls short in some crucial points in execution. Relying on shapes instead of types to identify results / objects, weird syntax choices (You use both <%= %> and {} to interpolate in phoenix templates, depending on where you are), no ability to write custom guards, a lot of language concept overlap - for example behaviors / protocols should be one implementation instead of two separate ideas.. Elixir is an okay language, but I think it's just a fad, not good enough to have staying power. I think a better language written on the BEAM will come along and be the language that Elixir should have been. Just my personal opinion.
- vvpan 3y agoThis one is quiet actively developed but it seems like by only one person https://gleam.run https://gleam.run
- benzible 3y agoTypes are coming... * https://news.ycombinator.com/item?id=36311875 https://news.ycombinator.com/item?id=36311875 * https://news.ycombinator.com/item?id=35766126 https://news.ycombinator.com/item?id=35766126 Re: "You use both <%= %> and {} to interpolate in phoenix templates, depending on where you are" - no need for EEx anymore for web development, just use HEEx, which has standardized on {}. You can use HEEx for LiveViews and "DeadViews" (server-side rendered Phoenix)
- tessierashpool 3y agoI remember when José Valim first came up with it. I thought it might just be a fad, or a toy language to test out some ideas. that was in 2012.
- davidw 3y ago> custom guards I don't recall 100%, but I think this is a BEAM feature that exists because they don't want to run arbitrary code as part of guards that could have side effects, delays and so on. I don't remember the specifics.
- el_oni 3y agoYou can write custom guards out of any built in function that can already be used in a guard. Like defguard is_list_or_even_int(val) do is_list(val) or (is_integer(val) and val % 2 ==0) end
- bostonvaulter2 3y agoSince Elixir 1.6 it is possible to create custom guards with `defguard`: https://hexdocs.pm/elixir/Kernel.html#defguard/1 https://hexdocs.pm/elixir/Kernel.html#defguard/1
- 3y ago
- PhoenixReborn 3y agoIt's likely that they just chose Kotlin as "better Java" - many companies do this and I can understand why.
- benzible 3y ago"Moving to Kotlin first" is a long way from "doesn't use anymore". I suspect that they're still running a lot of Elixir code in production. This was the case more than a year after this announcement, per a conversation with one of their engineers.