Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Elixir@SFI

578 Aufrufe

Veröffentlicht am

Jose Valim during SFI Academic IT Festival (03/13/2015) has presented basics and motivation for Elixir programming language.

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

Elixir@SFI

  1. 1. @elixirlang / elixir-lang.org
  2. 2. Rails 2.2 threadsafe
  3. 3. Functional programming
  4. 4. • Explicit instead of implicit state • Transformation instead of mutation
  5. 5. Switch Switch
  6. 6. Switch Browser Endpoint Server
  7. 7. http://stackoverflow.com/questions/1636455/where-is- erlang-used-and-why
  8. 8. http://blog.whatsapp.com/index.php/ 2012/01/1-million-is-so-2011/ 2 million connections on a single node
  9. 9. Intel Xeon CPU X5675 @ 3.07GHz 24 CPU - 96GB Using 40% of CPU and Memory
  10. 10. Idioms
  11. 11. •Functional •Concurrent •Distributed
  12. 12. Sequential code
  13. 13. Sequential code elixir
  14. 14. elixir
  15. 15. elixir
  16. 16. WebDB MailerStats
  17. 17. WebDB MailerStats Sup
  18. 18. WebDB MailerStats Sup App
  19. 19. •Processes •Supervisors •Applications •Message passing
  20. 20. •Concurrent •Let it crash •Fault tolerant •Distributed?
  21. 21. elixir
  22. 22. app2@localapp1@local elixir
  23. 23. •Compatibility •Extensibility •Productivity
  24. 24. goal#1 Compatibility
  25. 25. goal#2 Extensibility
  26. 26. Now we need to go meta. We should now think of a language design as being a pattern for language designs. A tool for making more tools of the same kind. Guy Steele - “Growing a language” at ACM OOPSLA 1998
  27. 27. defmacro unless(expr, opts) do
 quote do
 if(!unquote(expr), unquote(opts))
 end
 end unless(is_number(x), do: raise(“oops”)) elixir
  28. 28. defmodule MathTest do use ExUnit.Case test "basic operations" do
 assert 1 + 1 == 2
 end
 end elixir
  29. 29. from p in Post,
 where: p.published_at < now and p.author == “José”,
 order: p.created_at elixir
  30. 30. goal#3 Productivity
  31. 31. •First-class documentation •Tooling (ExUnit, IEx, Mix) •Hex packages
  32. 32. Demo time!
  33. 33. elixir-lang.org
  34. 34. beamcommunity.github.io / @josevalim
  35. 35. elixir-lang.org / @elixirlang

×