13 ms·
Elixir v1.3 released
- josevalim 10y agoThe proper announcement can also be found on our page: http://elixir-lang.org/blog/2016/06/21/elixir-v1-3-0-released/ http://elixir-lang.org/blog/2016/06/21/elixir-v1-3-0-release... It is slightly better formatted and contains images from the graph commands and ExUnit diff format.
- qaq 10y agoCongrats ! Very welcome improvements, you guys are doing an amazing job
- atonse 10y agoThank you (and the whole elixir team) for all the work you do on this. I've been building my startup's app with ember and elixir and it's going really well. I recently had to go back to a rails app to do some work and missed some Elixir features already and I've started writing my ruby code in a very elixir way. (well, a functional way).
- andruby 10y agoThank you José. Maybe a moderator can edit the url to point to the proper blogpost.
- tuvistavie 10y agoI also published a blog post[1] about Elixir 1.3 a little while ago, which is partly complementary to the official one. [1]: http://tuvistavie.com/2016/elixir-1-3/ http://tuvistavie.com/2016/elixir-1-3/
- sctb 10y agoThanks! We updated the link from https://github.com/elixir-lang/elixir/blob/v1.3/CHANGELOG.md https://github.com/elixir-lang/elixir/blob/v1.3/CHANGELOG.md.
- josevalim 10y agoPerfect! :D
- oblio 10y agoMinor usability suggestion, for newbies: replace lhs/rhs in the test diff with expected/actual.
- tbrooks 10y agoSmall suggestion - I would love to see upgrade instructions somewhere in blog post announcements.
- oddgoo 10y agoThank you for the amazing project!
- rafadc 10y agoThe diffing in the tests is absolutely beautiful! Congrats.
- ch4s3 10y agoLooks great. Any clue when this will be up on Homebrew?
- deleted 10y ago[deleted]
- gamache 10y agoIf you're like me and didn't want to wait, it's a dead-simple build if you want to DIY: cd /usr/local/src git clone https://github.com/elixir-lang/elixir.git cd elixir git checkout v1.3.0 make clean test PREFIX=/usr/local/elixir-1.3.0 make install And then add /usr/local/elixir-1.3.0/bin to your $PATH.
- tomku 10y agoIt's updated, installing right now.
- somlor 10y agoAnother nice option is kiex, Elixir version manager: https://github.com/taylor/kiex https://github.com/taylor/kiex
- s0l1dsnak3123 10y agoI'm using asdf - it has the added advantage of being able to manage ruby, erlang, node, and more :) https://github.com/asdf-vm/asdf https://github.com/asdf-vm/asdf
- ch4s3 10y agoOh, cool. I've never heard of that, but it looks nice. Thanks!
- TY 10y agoAwesome! Elixir is quickly becoming my new go to language for the web apps and more. Come for concurrency, stay for metaprogramming. :-)
- nailer 10y ago> Come for concurrency, stay for metaprogramming. :-) hehe. I've only done a bit of Elixir, but coming from a node and Python background that's pretty accurate: - It should be the VMs job to take care of concurrency, not the programmers - Although functions having different signatures is common in the front end JS world (mainly due to jQuery) metaprogramming is a nicer way to do it. Also 5-10ms response times for a basic Phoenix web app is pretty rad. If I wasn't building a startup and thus had the time, I'd love to do more Elixir.
- kawera 10y agoPhoenix's author Chris McCord wrote an excellent book on metaprogramming in Elixir: https://pragprog.com/book/cmelixir/metaprogramming-elixir https://pragprog.com/book/cmelixir/metaprogramming-elixir
- crusso 10y agoSame here. As with my Rails development ten years ago, I feel like I have some secret weapons that not many have when I'm using Elixir/Phoenix.
- cgag 10y agoI've been burned by trusting Rubyists with metaprogramming before...
- andybak 10y agoI've never really looked into Elixir. I'm a Python guy and readability is the first thing that makes me love or hate a new language. Considering I've always found Erlang fairly obtuse visually I am surprised by how easy on the eye Elixir is. I found this quote very telling: > "Elixir is simply the first language since Ruby to really care about code beauty and UX of the language, libraries and ecosystem." (found here: http://ruby2elixir.github.io/posts/2015/12-29-what-makes-elixir-so-attractive-for-some-developers.html#qertoip http://ruby2elixir.github.io/posts/2015/12-29-what-makes-eli... ) (Of course they meant 'Python' instead of 'Ruby' but hey ;-) )
- ams6110 10y agoI started out learning Erlang before Elixr had really crossed my radar. I have to say I prefer the Erlang syntax to the ruby-inspired Elixir. Maybe just a matter of what you know, I could see a RoR developer finding Elixir more appealing (I've never really used Ruby or Rails at all).
- partisan 10y agoAgreed. The syntax and benefits would certainly appeal if I were a Ruby developer, but coming from a different perspective, I don't get the reason for all the love.
- xutopia 10y agoWhat about the pipe operator in Elixir? Isn't it tedious and less readable to apply the same logic in Erlang?
- KallDrexx 10y agoI am primarily a C# developer who learned Erlang (and did some small stuff in it) then moved to Elixir (I have never programmed in Ruby). I think the huge extent of macros in Elixir is used extremely dangerously, and it can be very difficult to truly know what's going on behind the scenes sometimes. That being said, I still prefer Elixir to Erlang for 2 reasons really. 1) I have a very iterative development style which involves a lot of refactoring and test -> code -> test -> code cycles that kept getting extremely frustrating with the ant-turd line endings. Honestly, if I could not have to deal with those line endings I probably would be more inclined to Erlang over Elixir 2) The testing infrastructure seemed much easier to use in Elixir than Erlang. That being said, I don't see a purpose for Elixir or Erlang in the web serving space, and instead are using it for distributed (and non) stateful servers.
- bcardarella 10y agoIf you're looking for a reason to migrate from a stack like Ruby/Rails to Elixir/Phoenix you should check out my RailsConf talk on that exact subject: https://www.youtube.com/watch?v=OxhTQdcieQE https://www.youtube.com/watch?v=OxhTQdcieQE
- Dangeranger 10y agoThis is a great talk. Have you all at DockYard considered putting these concepts in writing? Sometimes I find that having a detailed blog post about the subject with supporting links and documents can be a fantastic resource for transition discussions. My team has made the decision to move toward all greenfield projects being started in Elixir/Phoenix and we couldn't be happier. We have been a Rails shop for six years prior.
- bcardarella 10y agoI should probably write it up. I've been pretty busy traveling for business and doing conf talks. The next few weeks slow down quite a bit so I should have some time.
- dineshp2 10y agoGreat talk. Is it hard to find developers familiar with elixir/phoenix? Or is hiring RoR developers and training them to work on elixir/phoenix a better option than specifically hiring people familiar with elixir/phoenix? Just curious to learn about your experience, as there is not much data available on hiring elixir/phoenix devs.
- bcardarella 10y agoMost of our Elixir/Phoenix clients have retrained existing Rails devs. As I spoke about in the talk, the initial retraining period is about a week. Reading Part One of the PragProg Programming Phoenix book will introduce the dev to Elixir syntax and FP basics. Their existing knowledge of Rails can be applied to Phoenix apps where they can start making contributions. However, this does not make expert Elixir or Phoenix devs. Reading up and learning about OTP and how concurrency works in Elixir/Erlang is necessary to continue to advance.
- deleted 10y ago[deleted]
- sergiotapia 10y ago`mix test --stale` sound like a tremendous gain in productivity, can't wait to use it. Is there a way to have `mix test` just call --stale steamlessly for me in my terminal? The other updates to testing in general signal how important testing it to the Elixir core team, and should be a flag letting you know how robust this language and it's tooling is. Take a look for sure, it's a great language.
- andy_ppp 10y agoYou can set aliases in mix.exs... Search for aliases on this page: http://elixir-lang.org/docs/stable/mix/Mix.html http://elixir-lang.org/docs/stable/mix/Mix.html
- sergiotapia 10y agoOh that's nice, will do.
- revo13 10y agoThanks Elixir team!!
- matthewrudy 10y agoElixir 1.3 and Ecto 2.0 are now both released. That means Phoenix 1.2 will be released ASAP. Definitely give the Programming Phoenix book a read if you haven't already. The Elixir/Phoenix stack should be ready for most production environments now. https://pragprog.com/book/phoenix/programming-phoenix https://pragprog.com/book/phoenix/programming-phoenix
- sotojuan 10y agoIs there a good guide to Ecto? Aside from OTP, it's the part I have the most trouble with in Phoenix/Elixir.
- matthewrudy 10y agoSomehow I've never heard of "sectors" and google isn't any help. Is there a different name for this concept used in Elixir/Erlang world?
- sotojuan 10y agoAutocorrected from "Ecto" :-)
- flocial 10y agoYou won't find anything better than hexdocs and stacked overflow at this moment (not in my experience at least). You don't get the dynamic method calls of find_all or the find(:hash key) magic but once you master Ecto.Query and all the different parts that make up Ecto you'll have much more flexibility and performance out of the box. The information is hard to find on Google but the Ecto source code and official docs are much easier to parse than ActiveRecord.
- lucidstack 10y agoJosé Valim (the Elixir creator) is soon releasing a free ebook [0] on Ecto 2.0, and it's probably gonna give some good insights into Ecto in general, so I would definitely recommend getting that :) [0] http://pages.plataformatec.com.br/ebook-whats-new-in-ecto-2-0 http://pages.plataformatec.com.br/ebook-whats-new-in-ecto-2-...
- insulanian 10y agoAnyone here switched from a statically typed functional programming language (Haskel, OCaml, F#, Scala...) to Elixir? How would you describe the experience? What do you miss? What do you like/love? Overall, would you recommend taking that step?
- alexgaribay 10y agoI used to do Scala prior to coming to Elixir, mainly by using Play Framework to create web apps. I can tell you that I love Elixir and that I will not be going back to Scala. I miss nothing from Scala. * Pattern matching in Elixir is superior to Scala's in every way possible (You can pattern match on function parameters!!) * Async code is a breeze with Task.async()/Task.await() instead of mapping on Future's everywhere and making sure you have the proper implicit globals imported * Actor pattern is built into the language and it's a breeze to work with. No need to rely on Akka to replicate it * JSON is a joy to work with * Documentation is fantastic in the core language and many libraries * No more JVM! * Building a release is much easier than dealing with SBT If you have a functional background, I would recommend reading Elixir in Action as a starting point. It already assumes you have an FP background and takes you into more of the core features of the language. I really enjoyed it and the content is superb.
- hellofunk 10y ago> * No more JVM! You're just trading one VM for another, though. How does having a Beam VM environment differ from a JVM environment?
- alexgaribay 10y agoTrue. That bullet was more of my opinion of disliking the memory usage the JVM uses as well as my personal preference of VM. BEAM has many great advantages such as fault tolerance and multi-node distribution built in. This allows concurrency to be a first-class citizen for applications running on the BEAM. I'm not saying that concurrency can't be done on the JVM, but that I've found it to be much simpler using BEAM. On the other hand, the JVM excels at computational work compared to the BEAM. Both VMs have their place and can be better at different types of problems comparatively.
- CalmStorm 10y agoWith hot code reloading, high reliability and fault-tolerant of BEAM, I feel that writing web apps is like writing carrier class applications.
- oblio 10y agoHow are the resource usage and performance for Elixir/Phoenix compared to Ruby/Rails and even something like Java/Spring Boot?
- bcardarella 10y agoSignificant. You can see some data in a RailsConf talk I recently gave: https://www.youtube.com/watch?v=OxhTQdcieQE https://www.youtube.com/watch?v=OxhTQdcieQE
- flocial 10y agol used to be/still am a ruby on rails developer. I wrote a very naive web crawler in elixir within a week while learning elixir and I'm blown away by the performance. It basically maxes out my 2011 macbook air's cpu while staying under 200MB of RAM (and maybe another 500 for multiple postgres connections). It basically runs in the background on a computer that can barely handle Firefox with multiple tabs open. The only real bottleneck of my crawler is bandwidth (my internet speed). The performance you get out of the box is insane. And my app really sucks (individual database inserts, saving the entire html to the database, etc). The transition to a functional language is not exactly a cakewalk and I honestly still miss ruby's ability to be able to hack through arrays (no way to easily get the nth element of an array, it's all head|tail recursion) and hashes (nothing like hash[:key]) to make something "work" but the pipe operators and pattern matching are addictive. The eco system is not "opinionated" at all aside from the constraints of erlang. Documentation is crystal clear. Most of the phoenix stack can be used as stand alone libraries/dependencies. There's a lot less magic and most of the "magic" comes from macros which are much more transparent. I'm honestly excited for web programming again after being burned out on legacy rails app development and deployment. Mix is like gems/bundler/rails {console, server, etc.} in one neat package done right and minus the headaches. Jose Valim and Chris Mc Chord are brilliant but are very approachable and all around nice people to interact with. In my short time with Elixir/Phoenix I'd say the "hype" actually understates the true potential of BEAM for web development and tiny startups. Also there's also LFE (lisp flavoured erlang created by one of the creators of erlang) you can add to the mix (similar to what you have with Scala/Clojure + Java only with concurrency and multicore out of the box with a tiny RAM footprint). Learning Elixir was one of the best investments of time I've made in learning a new language and made programming a "hobby" again for me. Being able to write a naive implementation/prototype of an app and not dreading a "real" deployment (pulling out a bag of deployment tricks or stringing together a slew if external libraries/dependencies) is the most liberating experience I've had in a long time.
- dpeck 10y agoNot that you should do it too much since traversing arrays (lists) is expensive, but http://elixir-lang.org/docs/stable/elixir/Enum.html#at/3 http://elixir-lang.org/docs/stable/elixir/Enum.html#at/3 gives you the ability to grab arbitrarily.
- biot 10y agoAny best practice guides for running Elixir in production? How do you handle deployments, hotfixes, multi-node scaling, etc. in an automated way?
- bratsche 10y agoThis doesn't answer all of your questions, but it was the fastest way I found to get an Elixir app into production: https://github.com/boldpoker/edeliver https://github.com/boldpoker/edeliver It handles all the basic things I needed to get an app up and running, and supports hot-code upgrades. It supports multi-host deployments, but I think if you want auto-scaling you'll need to do some more work. One thing to be aware of is that if you're deploying any NIFs or any native-compiled code, not BEAM, then you can't deploy directly from Mac to Linux servers, you'll need to use VMware or VirtualBox or something to actually do the builds. This includes any packages you use which are using natively-implemented code, which I'm pretty sure includes packages that do password hashing and such.
- biot 10y agoThank you. I hadn't run across that... it looks amazing.
- sbrother 10y agoWe have a small React/Elixir/Phoenix webapp in production, and we deploy it using https://github.com/bitwalker/exrm https://github.com/bitwalker/exrm, https://www.go.cd/ https://www.go.cd/, and https://saltstack.com/ https://saltstack.com/. I'm not the devops guy myself so I don't fully understand how much work was involved in getting all this set up, but I am extremely pleased with the results!
- eddd 10y agoI use phoenix and elixir, I agree with the statement that Elixir is awesome. But don't drink too much cool-aid - Elixir might be dangerous as well. It is essentially a big pile of macros, so sometimes number of keywords that you have to keep in your head is staggering. Also, Elixir is a pretty big language - I knew Erlang before diving into it - so the barrier and number of concepts that you have to get familiar with is huge. Don't get me wrong - all these concepts/design patterns are necessary (I am thinking about BEAM and OTP here). Erlang (and therefore Elixir) is complete as development environment, that's where the amount of knowledge is coming from. Cool intro to erlang/BEAM: http://www.slideshare.net/BrianTroutwine1/erlang-lfe-elixir-and-joxa-oscon-2014 http://www.slideshare.net/BrianTroutwine1/erlang-lfe-elixir-...
- yelnatz 10y agoI use elixir (and phoenix) as well, and this is my biggest gripe with the language. When reading (and reviewing) code, sometimes you can't logically follow what's going on since most of the code is hidden behind macros. It's ok if I'm on my IDE that helps expand macros to quickly check the flow, but when it's on a webpage or in a gist somewhere, you're on your own.
- Donwangugi 10y agoWhich IDE do you use? I have been messing around with alchemist on emacs but the learning curve is pretty steep (i'm not an emacs guru).
- eddd 10y agoI can recommend: Atom with https://github.com/msaraiva/atom-elixir https://github.com/msaraiva/atom-elixir
- davidw 10y agoIs this a community/culture issue where you can keep things in check if you make a concerted effort to dissuade people from using something too much? Sort of like Rails was big on testing, which was generally a win.
- antipax 10y agoSuper excited for this release. I have to say that learning and using Elixir has been more pleasant than any other language I have ever worked with. Code is easy to follow due to the functional nature of the language, and the community is one of the best out there. The applications I've written and deployed have been more stable and fault-tolerant than anything else I've ever done, and I've yet to have any performance issues with the language in production.
- devbug 10y agoHow hard have you pushed Elixir in production? Snide aside, it's not this mystical technical panacea. As for community... it has had a large upswell of Rails developers... for better and for worse. That said, I've had a wonderful experience with all the places I've used Elixir in production or soon to be in production.
- antipax 10y agoQuite hard, in fact. My own personal experience doesn't matter much, though, because ultimately Elixir is Erlang and obviously Erlang has been pushed extremely hard in production (Klarna, Heroku, Riot Games, etc.).
- rdtsc 10y agoI use Erlang and plan on sticking to, but do like Elixir's community and am following it closely. Jose Valim and team did an outstanding job being welcoming to new members, emphasizing documentation, friendliness and ease of learning and paying attention to usability. That is no easy feat and requires a lot of hard work and determination, very impressed by it.
- rcarmo 10y agoThis is good news, since a few tooling improvements have made it back to the Erlang ecosystem in general (and to lfe.io in particular, which I prefer over Elixir).
- constantlm 10y agoGreat! We're busy rewriting a part of our Rails app that we are having difficulty scaling in Elixir. So far what I've seen is phenomenal. Coming from Ruby/OO, it's a bit weird sometimes, but the code is very readable and it's insanely fast. Really the first language since Ruby that I'm quite happily riding the hypetrain for.
- appleflaxen 10y agoWe're busy rewriting (a part of our Rails app that we are having difficulty scaling) in Elixir or We're busy rewriting a part of our Rails app (that we are having difficulty scaling in Elixir) I assume the former, based on context, but like they say... you can't put too much water in a nuclear reactor.
- davidw 10y agoWithout digging into it, the Calendar stuff looks like a strict improvement over Erlang's tuply handling of dates, times and timestamps, which are all tuples with three numbers. This can be confusing/problematic, and something that would benefit from typing to avoid mixing up Dates with Timestamps, say. Can anyone who knows both confirm?
- antipax 10y agoYes, it absolutely is an improvement over erlang-style tuples IMO, and it also vastly improves the interoperability story between the stdlib, date/time/calendar libs, and database libs.
- brightball 10y agoBuilding my first project with it now and loving every minute of it.
- tomekowal 10y agoI am working full time with Elixir and Phoenix for more than one year now and worked with Erlang before that. It is great to see how well thought out all the abstractions are (both in the language and in the framework). I saw couple of companies cautiously introducing Phoenix in their stack and then going all in. One of such stories will be presented at Erlang User Conference: http://www.erlang-factory.com/euc2016/ben-marx http://www.erlang-factory.com/euc2016/ben-marx Comparing to Ruby: Phoenix promises to be as productive as Rails, but more performant and it keeps the promise if all the libraries you need are already ported to Elixir. Even if not, people consider writing them from scratch. Comparing to Erlang: Elixir fixes a lot of problems like encoding or inconsistencies in standard library. It introduces many new concepts borrowed from Ruby so it might be a little overwhelming for Erlang developers (Erlang is really small and simple language - the hard part is OTP). Learning Elixir is like learning to touch type. Initially it slows you down, because you have your habits. You need to learn new abstractions, because old solutions just don't work. After short period you are as productive as before. After a month you can deliver hight quality code quicker which is the ultimate goal of every programmer :) And it magically scales on more machines or at least utilizes all of the cores.
- ngrilly 10y agoIs Elixir/Erlang/BEAM a good fit to write small command line programs (the kind of programs you could write in Python or Go for example)? I have three specific questions about this: - Can you make your program executable directly from the command line, by using a shebang and building an executable binary? - What about the startup time? - Do you need a lot of "boilerplate", or can you put everything in a single file?
- RobertKerans 10y agoYes, kinda - you can compile to an escript, and mix makes that super easy. But it needs an Erlang environment - you can't easily compile to an executable that will work anywhere, so it can be limiting. If you're happy with that limitation, yes and yes to the latter two questions. Otherwise, I'd stick with what you're using.