TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Why am I interested in Elixir?

341 点作者 muhic将近 6 年前

28 条评论

nickjj将近 6 年前
I&#x27;m currently building a video course hosting platform with Elixir &#x2F; Phoenix and all I can really say is this has been the nicest tech stack I&#x27;ve ever used in 20 years of web development.<p>IMO it really does feel like you get the best of everything (developer productivity, developer happiness, great language for creating maintainable code, OTP and the BEAM bring a lot to the table, it&#x27;s memory efficient, tracing code without a ton of experience is very doable, it&#x27;s fast as balls and Phoenix channels &#x2F; LiveView is a great abstraction on websockets). I find myself fist pumping all over the place as I make progress towards this app while learning as I go.<p>I don&#x27;t think I&#x27;ve liked a technology this much ever and I&#x27;m honestly surprised it&#x27;s not already more popular than it already is. I&#x27;ve been around for the release of a lot of major frameworks and technologies (Rails &#x2F; Django, Node, Go, etc.). Nothing has impressed me this much. It truly feels like it&#x27;s a zero compromise environment to write code in and I hope I can still be using it in 10+ years.
评论 #20357785 未加载
评论 #20359678 未加载
评论 #20366734 未加载
评论 #20358005 未加载
评论 #20357769 未加载
评论 #20357970 未加载
评论 #20359975 未加载
anthony_doan将近 6 年前
My current side project is in Elixir&#x2F;Phoenix and it&#x27;s sweet. Currently on 1.8.<p>I&#x27;m hoping to move to 1.9. The language just fit my ideology better, Jose Valim just stated that the language is mostly complete. All major planned features are completed unless something come up. The language isn&#x27;t bloated, it&#x27;s small and sweet, and it doesn&#x27;t go out of the way to add random unnecessary features to the core.<p>I was fullstack since ~2008 and it is becoming pretty hard to be fullstack when frontend moves too dang fast for me. So the pace of Elixir and Phoenix is amazing. I know these two technology are relatively new but compare to its peers it&#x27;s boring tech; as in it&#x27;s battle proven and it&#x27;s not going to radically change that often (at least not for the sake of hype or reinventing the wheel).<p>The community over at elixirforum is nice. There seems to be quite a few camps. The ones that stands out to me are the web dev and embedded camps.
评论 #20357942 未加载
enraged_camel将近 6 年前
My startup uses Phoenix, along with a Vue front-end. The combo is an <i>absolute</i> joy to use. The benefit that has had the most business impact for us so far is developer productivity.<p>A couple of months ago we met with a prospective client to discuss their use cases and conduct requirements gathering. They really liked what we showed them, but the CFO wanted a dashboard that displayed the data in the app in a specific way. We shook hands, told them we would contact them soon, and parted ways. It was around 9 AM when we stepped outside the client&#x27;s office and got back in our cars.<p>By 5 PM that evening, we had a stunning, fully functional dashboard built and deployed to the demo environment. It utilized a few new database tables that aggregated data, some data processing done by Elixir, passing that data to the Vue front-end and displaying it using Charts.js and a few other UI libraries.<p>I sent a quick email to the CFO with the URL. He responded ten minutes later with, &quot;holy cow, why didn&#x27;t you show this during our meeting if you had it already?!&quot; :)<p>We are meeting with them again later this month, hopefully to sign them on as a client.<p>(For reference, I&#x27;ve used Rails and ASP.NET with C# before Elixir, along with JQuery back in the day, and then a bit of React. Can&#x27;t speak about other frameworks and languages.)
评论 #20358257 未加载
评论 #20359209 未加载
评论 #20375640 未加载
neya将近 6 年前
I just finished writing my own in-house static site builder in Elixir. I come from the Ruby land. If you thought Ruby was awesome, then you would LOVE Elixir. I was hesitant at first, thinking &quot;not another language..&quot; but once I gave it a shot, I stopped looking back.<p>I&#x27;m an individual consultant with a very small team. Without Elixir, many projects that I&#x27;ve finished in weeks would have taken me months. This is a seriously under-rated language that would make you wonder why didn&#x27;t you give it a shot earlier. It&#x27;s that good.<p>My static site is now way faster than Jekyll or Middleman. I didn&#x27;t re-write it for speed, speed was just a nice side-effect. I wrote it mostly for the language&#x27;s flexibility.<p>With Ruby, which Middleman and Jekyll both use, you need to think in the traditional OOP way and sooner or later, you will hit the limits of the language itself. Whereas, with Elixir, everything is taken care of by guards. This is really one of the nicest codebases I&#x27;ve ever written in a while. This is in comparison to my earlier codebase which was written in Ruby, and I had to do all sorts of things like install a library to make the language more scalable. That was the ugliest hack I&#x27;ve ever done. [1]<p>Imagine, a Wordpress clone, only it runs on your computer and generates static files (this was my goal) but, written in less than a month by one person, working a full time job, with the same fit and finish of Wordpress.<p>Elixir is amazing.<p>[1] <a href="https:&#x2F;&#x2F;github.com&#x2F;aetherknight&#x2F;recursive-open-struct" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;aetherknight&#x2F;recursive-open-struct</a>
评论 #20358803 未加载
评论 #20358795 未加载
c4po将近 6 年前
We are building a sales automation app using Elixir and Vue.<p>Our dev team seem really happy with this tech stack.<p>Productivity is awesome - we are four months in and already have similar functionality to a (sort of) competitor that has spent several years on their dev. This is the first dev project I have experienced where we are ahead of our planned milestones. Got to find some more features to quickly add!<p>My original concern was getting hold of developers as Elixir lacks the pure numbers of people that other server environments enjoy, but this has not been an issue. If anything we have got more senior devs then we would otherwise be able to get as they are excited to be able to use Elixir. Oskar in Poland and Dan in London, hats off, you are awesome!<p>Not sure if I agree with others that the broader environment is underdeveloped - yes there may be less versions of the same thing compared to a large JavaScript framework, but what is there is absolute quality.<p>Only (small) gripe is that Elixir is not a fast language. At one stage I thought this was going to be a real issue, but great support from the community and improved understanding on how to do things the Elixir way (let it fail!) seems to have resolved this for us.
评论 #20359069 未加载
thibaut_barrere将近 6 年前
The Elixir ecosystem offers a lot of interesting things. I&#x27;d like to underline those:<p>- LiveView (which I use in production &amp; have recommended for upcoming projects too) is a complete game changer, not because it allows to remove javascript, but because it removes a boundary (between the client &amp; the server), making development &amp; maintenance much faster since you only have one layer, and also making very rich features easier, because you can remain stateful during the processing (if you have interactive rich UIs with e.g. file upload &amp; processing then live reporting as you process the file, this will remind you of desktop programming, in a good way)<p>- While the initial setup of apps can be a bit cumbersome to my taste (like the SwitchTower period of Rails - e.g. you&#x27;ll need a build server or a Docker image typically), the mental model of programming is quite simple in a lot of cases afterwards. I would say that junior developers can be onboarded quite easily (I&#x27;m starting to train some), and maintenance is quite sweet at this point.<p>I can warmly encourage you to try Elixir out (a nice way to get started by the way is to code ExUnit tests to try out the language, see <a href="https:&#x2F;&#x2F;github.com&#x2F;thbar&#x2F;elixir-playground&#x2F;blob&#x2F;master&#x2F;test&#x2F;koans_test.exs" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;thbar&#x2F;elixir-playground&#x2F;blob&#x2F;master&#x2F;test&#x2F;...</a> as a boilerplate to get started).
评论 #20357805 未加载
dkulchenko将近 6 年前
All the backend code for my current startup is in Elixir (switched from Ruby, my previous love).<p>Elixir&#x2F;Phoenix&#x2F;Ecto are an absolute joy.<p>It took a bit to get used to immutability and FP but it feels so &quot;cozy&quot;, for lack of a better word, to know exactly what my code is doing and to not be bit by obscured mutability and magic anymore.
评论 #20358121 未加载
kuzee将近 6 年前
Coming from Ruby and Python and a bit of node, Elixir encourages a really convenient mental model for thinking about small and large parts of your app in the same way. Net result is fewer bugs created, easier to write tests so you write more, and easy to debug when they do happen. And because of the fault tolerance, most production bugs are so transient they&#x27;re not causing problems. I&#x27;ve run several small webapps with a few thousand users and the maintenance is minimal because of how solid the language is.
SLIB53将近 6 年前
Elixir is great. It&#x27;s the most fun I&#x27;ve had programming. I wrote Erlang for a little more than a year, and I grew to like the idea, but found it hard to work with. Elixir is bringing me back around.
wmock将近 6 年前
My experience with Elixir has been great but one area of improvement is debugging. Maybe it&#x27;s because I&#x27;m so used to using something like Chrome&#x27;s developer tools, but I wish there was something as easy to use for setting breakpoints and inspecting the environment. Would love to know how others are debugging currently!
评论 #20358654 未加载
评论 #20359024 未加载
评论 #20359749 未加载
评论 #20359683 未加载
spraak将近 6 年前
Has anyone who previously preferred static typing converted (at least for certain projects) to using Elixir? I won&#x27;t even put plain Node into production anymore, TypeScript at the minimum, but otherwise OCaml or Go.
评论 #20357670 未加载
评论 #20358495 未加载
评论 #20357451 未加载
评论 #20357649 未加载
kureikain将近 6 年前
Elixir is a language that I can very productive in day one. Only Ruby+Go enable me to be productive like that. Lot of people get turn down by so many thing in Elixir like OTP and other cool stuff that you never used and think it&#x27;s complex.<p>I literally learn it on the job.<p>Lack of typing is the biggest issue for me, but pattern matching enable to get the shape of object and to a certain extent and I&#x27;m quite sasitify with it.
colinramsay将近 6 年前
Where are people getting their documentation for Phoenix? The stuff on the website is awful for grasping the bigger picture and how the parts of Phoenix combine. It gave me the impression of being an immature version of Rails when I tried it recently which doesn’t gel with the attitude people seem to have of it.
评论 #20358969 未加载
评论 #20359846 未加载
评论 #20359150 未加载
评论 #20359382 未加载
prodiguy89将近 6 年前
I&#x27;m currently working on my side project the backend for which I&#x27;ve chosen elixir to go with. Looking at performance and long term maintainability, it doesn&#x27;t seem to be a sucker like rails.<p>No magic, no hacky patterns. No mess like the one you see with Node. For what it does the platform is hella stable. I drifted towards Go for a little bit but man, code in Go felt too verbose with weird patterns. Go is a solid platform as well. But it&#x27;s not just my cup of tea for web apps right now.<p>Scalability is in reach if you need it. Hell, even if you need ridiculous background job processing power, use OTP already. And I forgot, liveView is also rock solid. Honestly, if anyone would ask me what the best platform for web apps right now is, I&#x27;d just say Phoenix&#x2F;Elixir.
评论 #20366653 未加载
philsnow将近 6 年前
The most interesting part of Nerves for me isn&#x27;t rpi&#x2F;embedded&#x2F;resource-limited environments, but rather the ability to remove most&#x2F;all of the security surface area of the userspace (say, in the cloud).
评论 #20359863 未加载
anm89将近 6 年前
I will definitely be aiming to make my next career move to somewhere where I can be using as much elixir as possible.
SteveMorin将近 6 年前
Great language and importing other technologies though NiF to integrate c and rust (wrapping c or not) with Elixir. My old company build many systems on it and hope another will in the future.
xutopia将近 6 年前
Elixir has a lot going for it nowadays! My side projects are all using Elixir in some way nowadays.
SMFloris将近 6 年前
Elixir is an absolute joy to use. I love to use it whenever I can and coming from Erlang, boy its a step up!<p>It&#x27;s just the Phoenix framework for which the initial setup of the project generator feels so opinionated. You have no options, no way to make a template for the generator. Phoenix&#x27;s LiveView is a great feature and I want to use it. It&#x27;s just Phoenix itself that feels off for me, not as straightforward as it should be. Does anyone else get this feeling?
评论 #20360786 未加载
benmmurphy将近 6 年前
coming from erlang elixir is much nicer than that. exunit is miles ahead of eunit and i feel like that would be enough to convince me to switch.<p>the with syntax is nice and helps to deal with early exit on errors but still feels a bit awkward compared to imperative control flow.<p>like you can do something like this in an imperative language:<p><pre><code> foo, err = func() if err != nil { return nil, Err(&quot;bad&quot;) } bah, err = func2(foo) if err != nil { return nil, Err(&quot;blah&quot;) } return bah </code></pre> whereas in elixir you have to do something like the following in order to avoid the nesting of doom:<p><pre><code> with {ok, foo} &lt;- func() |&gt; Error.or({:error, &quot;bad&quot;}), {ok, bah} &lt;- func2(foo) |&gt; Error.or({:error, &quot;blah&quot;}), do bah end </code></pre> like the with blocks kind of work until you have to transform the errors you receive then you need helper functions. if you are just doing static transforms like above it is not too bad but it starts to get hairy if you want to transform based on the returned error or variables in the function. whereas the imperative style you can inline your error handling logic nicely into the function.<p>for example what if i want to log something on the error path that includes some contextual information and custom formatting. probably, the easiest way is going to be to use with() and pipe to a custom function that triggers on the error path to do the logging because the code is going to start getting really messy. whereas if i was writing it imperatively i could just inline the logging statement most of the time because it is just a few lines of code.<p><pre><code> foo, err = func() if err != nil { return nil, Err(&quot;bad&quot;) } bah, err = func2(foo) if err != nil { Logger.error(&quot;err: &quot; + err + &quot; when processing: &quot; + foo.name) return nil, Err(&quot;blah&quot;) } return bah </code></pre> like i feel this is a bit messy but maybe it is actually not that bad:<p><pre><code> with {ok, foo} &lt;- func() |&gt; Error.or({:error, &quot;bad&quot;}), {ok, bah} &lt;- func2(foo) |&gt; Error.or_else(fn err -&gt; Logger.error(&quot;err: &quot; &lt;&gt; err &lt;&gt; &quot; when processing: &quot; &lt;&gt; foo.name) {:error, &quot;blah&quot;} end), do bah end</code></pre>
评论 #20357804 未加载
评论 #20357900 未加载
评论 #20358997 未加载
评论 #20357726 未加载
allanmacgregor将近 6 年前
Great write up, Elixir definitively deserves all the attention is getting and likely more. I recently helped my team so solve a huge blocker on a project, we had to create a few proxies to handle large amounts of data.<p>With very little effort or development time we where able to put together a highly scalable solution that is robust and very low maintenance.
aloukissas将近 6 年前
Spot on! I recently wrote a blog how we&#x27;ve been super happy with elixir&#x2F;phoenix at AgentRisk: <a href="https:&#x2F;&#x2F;blog.agentrisk.com&#x2F;how-having-a-non-typical-tech-stack-actually-helped-us-get-better-candidates-77d12a7796d4" rel="nofollow">https:&#x2F;&#x2F;blog.agentrisk.com&#x2F;how-having-a-non-typical-tech-sta...</a>
etxm将近 6 年前
Big fan of elixir, FP was something to get used to, but feels so much easier to reason about now that I’m used to it.
Fishysoup将近 6 年前
What are its promising uses outside of web development? From the little I&#x27;ve seen it looks like a beautiful functional programming language, but I&#x27;m not even tangentially involved in web development.
评论 #20358268 未加载
评论 #20359891 未加载
ggregoire将近 6 年前
People preferring static typing, what&#x27;s your opinion about Elixir? Do big projects become difficult to reason about and maintain like with Python and friends?
trevor-e将近 6 年前
Is it possible for someone to create a statically typed language that works on OTP&#x2F;BEAM, or for an existing language to interface with them somehow?<p>I tried learning Elixir a while back and just couldn&#x27;t get myself to like the syntax&#x2F;ergonomics. It seems like most of the benefits people list for Elixir are actually attributed to BEAM, not the language itself.
评论 #20359630 未加载
评论 #20359682 未加载
评论 #20359614 未加载
_pmf_将近 6 年前
I really, really wish Elixir&#x2F;OTP&#x2F;BEAM would take hold in the soft real time &#x2F; large embedded space. Such a nice fit.
navyad将近 6 年前
I am learning Elixir and build small library with it. Looking to integrate the Phoenix sometime near. I have asked feedback for this project on elixirfourm or on its slack channel. And people have been nice and helpful.<p><a href="https:&#x2F;&#x2F;github.com&#x2F;navyad&#x2F;moviematch" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;navyad&#x2F;moviematch</a>