I’ve question to the community.
Is it a goal to increase Elixir adaptation level for the enterprise?
If no, please ignore my post.
Having been in enterprise development for more than 10 years I see the following blockers for Elixir’s enterprise adaptation off the top of my head.
I do recognize that following topics may create some tension, I’m also aware that there are() exceptions, but my intent is to show what are the blockers in general.)
-
treat windows as first class citizen (including deploy tools), since most devs are using windows as their dev OS.
-
lack of nice IDE support (enterprise devs live in their IDEs), in the given context Atom, Emacs, VI, etc is not an IDE. OTOH Eclipse, Visual Studio, Intellij Idea are considered as IDEs. Proper Auto Complete is a must have.
(I’m aware that there is an Intellij Idea plugin, but currently it’s lacking some very important features) -
Decimal number support is not part of the language (it can be a though task)
-
lack of proper MSSQL and Oracle support
-
lack of collection of best practices, patterns, solutions for well known scenarios.
-
lack of easy to find info about language/beam/otp limitations/guarantees.
-
enterprise devs loves static type checing, there should be a standard, out of the box solution for definition and spec in a single line, eg:
instead of@spec add(number, number) :: {number, String.t} def add(x, y), do: {x + y, "You need a calculator to do that?!"}
use something like this:
```
def add(number x, number y) :: {number, String.t}, do: {x + y, "You need a calculator to do that?!"}
```
- lack of simple dialyzer opt-in with nice default options
- lack of easy custom env management
- there should be an easy way to configure compiler/beam settings for well known scenarios
Pretty sure there are more…
And would like to emphasize that my goal is not blaming or starting a flame war. My intent is to start constructive discussion if it’s important to make Elixir as a viable choice for the enterprise.