Understanding the pitfalls in Erlang / Elixir and steering clear from them

Erlang has been in production for more than 30 years and a highly battle-tested robust system, which is being used by everybody including Telecom systems that provides 99.99% uptime. Elixir has been built on top of Erlang overcoming the shortcomings of the language and also using meta-programming, it has opened a new paradigm of looking at the language itself. I want to show what Elixir is to the audience and minute nuances that every experienced or inexperienced developer should be aware of before jumping into the magical erlang and elixir world.

 
 

Outline/Structure of the Talk

Objective

To make the audience aware of the basics and minute nuances of using erlang and elixir. Also, giving them some ideas as to how to solve those shortcomings / alternatives.

Why should you choose Erlang / Elixir?

Giving the audience an idea of where erlang / elixir fits and how to take the most out of them

Shortcomings of Erlang / Elixir in brief

Demonstration of where Erlang and Elixir might fail to perform as expected.

Real-life Alternatives / Solutions for the Shortcomings

Sharing the real-life problem that we have faced over the past and how we overcame them without turning down.

Conclusion

Summary of the major advantages of what Erlang and Elixir brings to the plate and a thanking note for the Audience

Learning Outcome

  • Understanding when to choose erlang or elixir
  • Understanding the advantages and disadvantages of erlang or elixir
  • Overcoming the major shortcomings of erlang and elixir

Target Audience

Beam language Enthusiasts ( Erlang and Elixir)

Prerequisites for Attendees

  • Attendees should be able to understand or grasp functional programming paradigm
schedule Submitted 4 months ago

Public Feedback

comment Suggest improvements to the Speaker
  • Tony Morris
    By Tony Morris  ~  2 months ago
    reply Reply

    Hi Mangala,
    I think this proposal could benefit with some of the technical details that you intend to cover. In particular, what the audience should have an understanding of after the presentation. Consider an audience member who has never heard of Erlang/Elixir, or has heard of it, but doesn't know much more.

    • Mangala Kader
      By Mangala Kader  ~  2 months ago
      reply Reply

      Hi Tony,

      Thanks for the feedback, but unfortunately Bruce Tate is already covering up certain things, that I intended to cover, also his proposal has already been accepted. So, I'm guessing, I should find some other topic.

      • Naresh Jain
        By Naresh Jain  ~  1 month ago
        reply Reply

        Hi Mangala,

        Bruce's session is on a different day, so I don't see a concern. 

        When I look at your current proposal, it lacks the necessary details. Can you update the proposal listing out the shortcomings and the alternative/solutions you propose?

        Also, can you please share the video of your past presentation?

        • Naresh Jain
          By Naresh Jain  ~  2 months ago
          reply Reply

          Hi Mangala,

          Any updates on this? Have you updated your proposal with a different topic?

    • Deepti Tomar
      By Deepti Tomar  ~  2 months ago
      reply Reply

      Hello Mangala,

      Thanks for your proposal! This is an interesting subject.

      In order to help the program committee to understand your presentation style, may I request you to please upload a video of your past presentations? If you don't have one, can you record a small 1 mins trailer of your talk and share the link to the same? 

      Thanks,

      Deepti

      • Mangala Kader
        By Mangala Kader  ~  2 months ago
        reply Reply

        Hi Deepti,

        Thanks for taking the time and care to look into my proposal, I have already given speeches in some of the colleges in Chennai for about an audience of 100 to 200 and videos of them are available. Although, unfortunately Bruce Tate is covering up some of the topics, that I had genuinely intended to cover for the speech. Since his talk has already been approved, I should find some other topic and If I find one, I'll definitely come back.

        • Tony Morris
          By Tony Morris  ~  2 months ago
          reply Reply

          Hi Mangala,
          Thank you for your submission and we look forward to reviewing your re-submission!


    • Liked Aaron W Hsu
      keyboard_arrow_down

      Aaron W Hsu - Programming Obesity: A Code Health Epidemic

      Aaron W Hsu
      Aaron W Hsu
      Computer Scientist
      Indiana University
      schedule 3 months ago
      Sold Out!
      45 Mins
      Keynote
      Beginner

      Programs are getting fat. They're becoming slow. They're taking up more computing resources. They're getting harder to maintain and more complex from the ground up. Layer upon layer of sophistication is causing us to lose our ability to predict what software will do. Where's that bug? Why is everything going so slowly? Am I even using the right data structures? Where's that important point in the documentation again?

      What's happened to us? In this meta-dive into the nature of our approach to programming, we will explore some of the dangers of our current approaches to programming and the how/why of our current programming obesity problem. We will look at real case studies and see just how bad the situation can be.

      But we will also explore how we can battle these sources of obesity. In this passionate plea for code that we can gain control over again, we will look at examples of how we can return to a state of high-performance on all levels, from code size to code scalability. We will look at the principles that can help us to reach leaner, more efficient, more usable, less buggy code. We will hopefully find some light at the end of the tunnel, and how we can change our outlook on programming to push ourselves towards code that benefits not only ourselves, but also those that will come after us.

    • Liked Andrea Leopardi
      keyboard_arrow_down

      Andrea Leopardi - BEAM Architecture Handbook

      Andrea Leopardi
      Andrea Leopardi
      Core Team Member
      Elixir Lang
      schedule 4 months ago
      Sold Out!
      45 Mins
      Talk
      Intermediate

      If you are writing a stateless web application backed up by a database, there is a good chance Elixir is a great fit. However, this is not where it shines. In this talk, we will discuss how to architect Elixir applications in order to leverage the features of the language and of its runtime.

      We will look at this both from a lower level, talking about the architecture of processes inside an Elixir application, as well as from a higher perspective of writing Elixir services and architecting systems to play to Elixir's strengths. We will see practical use cases and discuss design patterns.
    • Liked Allister Beharry
      keyboard_arrow_down

      Allister Beharry - Lightweight dependent types for scientific computing

      Allister Beharry
      Allister Beharry
      Software Developer
      Freelancer
      schedule 3 months ago
      Sold Out!
      20 Mins
      Demonstration
      Intermediate

      Sylvester is an F# DSL for scientific computing which implements an advanced type system where vector, matrix, tensor, neural-network and other types have numeric properties like dimension sizes, rank, layer node size, etc., encoded as part of the type. Type-level constraints for operations like matrix multiplication or network layer construction utilize the F# type checker as a type-checker for linear algebra and other mathematical domains which allows for type-level verification of mathematical operations and for Intellisense-enabled IDEs to provide immediate feedback that helps the user avoid errors in mathematical expressions..

    • Liked Nikhil More
      keyboard_arrow_down

      Nikhil More - Do you OOP in Elixir?

      Nikhil More
      Nikhil More
      Sr. Engineer
      Volansys
      schedule 3 months ago
      Sold Out!
      20 Mins
      Experience Report
      Beginner

      One of the strategies being adopted by RoR or Java software developers in adopting Elixir is they have not yet adapted themselves to unlearn the OOP in developing the web systems. This has caused OOP concepts to creep into full fledged Elixir systems. This presentation seeks to highlight these subtle points that need to be avoided to make the code more FP and less OOP.

    • Liked Alexander Granin
      keyboard_arrow_down

      Alexander Granin - Hierarchical Free Monads and Software Design in Functional Programming

      Alexander Granin
      Alexander Granin
      Sr. Haskell Developer
      Juspay
      schedule 5 months ago
      Sold Out!
      45 Mins
      Talk
      Advanced

      Functional Programming is going through the same process of rethinking as Object Oriented Programming has passed already. FP today is not only something mystical, something barely applicable for day-to-day tasks, but rather a whole philosophy of building big, complex applications, with own tools, approaches and methodologies. We can see a lot of ideas about software design and architecture emerging from the FP community: talks, books, articles. We’re actively discussing Final Tagless, Free Monads, effect systems and other approaches, but it seems the theme not yet covered and we don’t know about possibilities we have.

      In this talk, I’ll tell you about the power of Free Monads in building complex applications in Haskell and PureScript. These applications will be satisfying the requirements like maintainability, testability, simplicity. You’ll know how to create a safe concurrent application state, how to divide the application into layers and how to keep the code sane. In fact, you can do the same with Final Tagless or extensible effects, but the approach with hierarchical Free Monads has some specific properties making it the best tool to separate concerns and create a very interesting eDSLs with different semantics.

      The talk is based on the ideas I’m describing in my book “Functional Design and Architecture”. I also gave several talks about this theme earlier (you can find all my talks here).

      I’ve used these ideas to build software for different companies, including Juspay (Bengaluru), Restaumatic (Poland), Enecuum (Hong Kong). We’ve created several interesting technologies that were not possible to make without Free Monads. Some of them are open sourced.

    • Liked Morten Kromberg
      keyboard_arrow_down

      Morten Kromberg - Delivering your APLs

      Morten Kromberg
      Morten Kromberg
      CXO
      Dyalog
      schedule 3 months ago
      Sold Out!
      45 Mins
      Tutorial
      Beginner

      Most talks on APL at FunctionalConf have focused on the way array oriented programming allows you to quickly deliver concise and efficient solutions to problems with an analytical core. This talk will focus on the development environment, and follow the life of an APL code snippet from it's interactive discovery, via testing and debugging, through to delivery as a web service and a shared object, embedded into a solution implemented in Python.

    • Liked Tamizhvendan S
      keyboard_arrow_down

      Tamizhvendan S - Building an E-Commerce Marketplace Middleware in Clojure

      Tamizhvendan S
      Tamizhvendan S
      Lead Consultant
      Ajira
      schedule 3 months ago
      Sold Out!
      45 Mins
      Case Study
      Beginner

      Have you ever wondered how we can build a real-world, production-ready, end-to-end application using the functional programming principles? Immutability, Pure Functions and all other functional programming things sound good on paper but How can we build something useful by applying it?

      At Ajira, We recently built an e-commerce marketplace middleware in Clojure for a leading retail chain to sell their products on multiple e-commerce sites seamlessly. In this case study, we are going to build a minimal version of this project using which I will be sharing how we implemented it.

    • Liked Aaron W Hsu
      keyboard_arrow_down

      Aaron W Hsu - APL Training Wheels

      Aaron W Hsu
      Aaron W Hsu
      Computer Scientist
      Indiana University
      schedule 3 months ago
      Sold Out!
      45 Mins
      Tutorial
      Beginner

      APL is getting a lot of attention lately due to its potential for very high performance portability and suitability for both rapid prototyping of complex solutions as well as deployment of complex algorithms to high-speed, modern parallel hardware. It has the potential to vastly improve the speed, scalability, and size of your code bases. But APL has a reputation as an intimidating language to learn.

      In this back to the basics tutorial, we will explore the core of APL, and focus on those areas that usually trip up the beginner in learning APL. We will also walk you through how to approach an APL expression, how to reason about them, and how to read them efficiently. We will teach you the skills that the expert APLer has internalized, and how you can work through these skills externally and explicitly in a way that will help you to eventually internalize these critical skills in a way that makes you efficient at using APL on real world problems.

    • Liked Ravi Chandra Padmala
      keyboard_arrow_down

      Ravi Chandra Padmala - After the Crash

      Ravi Chandra Padmala
      Ravi Chandra Padmala
      Partner
      nilenso
      schedule 3 months ago
      Sold Out!
      45 Mins
      Talk
      Intermediate

      'Let it crash' gets thrown around a lot in the Erlang community. An experienced
      programmer (with understandably different experiences) on first encountering
      this idea in Erlang is often found asking what we let crash? And what happens
      after?

      I will attempt to answer this question.

      Erlang puts distributed systems programming ideas front and center. We'll also
      talk about this in the context of letting processes crash and how that affects the
      design of our software.


    • Liked Sreenidhi Nair
      keyboard_arrow_down

      Sreenidhi Nair - Learnings from using haskell in production

      Sreenidhi Nair
      Sreenidhi Nair
      Senior Haskell Developer
      ByteAlly
      schedule 3 months ago
      Sold Out!
      20 Mins
      Experience Report
      Intermediate

      Over a period of 7 years, we have applied Haskell across Web apps, compilers, parsers for our customers across various industries. This is our report on how some of the unique features of Haskell have not only helped us create stable production environments but also break barriers. On the other hand, there is a high cost of on-boarding new developers and few other pain points. So, is Haskell worth the investment?

    • Liked Suvrat Apte
      keyboard_arrow_down

      Suvrat Apte - How debuggers work in Lispy languages

      Suvrat Apte
      Suvrat Apte
      Backend Engineer
      Helpshift
      schedule 3 months ago
      Sold Out!
      45 Mins
      Talk
      Intermediate

      Debuggers are one of the most essential tools for any kind of development.

      Debuggers in Lispy languages make use of Lisp's homoiconicity. They are a bit different from debuggers for languages like C or Java.

      This kind of information is usually not needed in day to day development and hence it remains hidden.

      In this talk, I will take Clojure's cider-debug as an example and explain how it uses homoiconicity. Along with cider-debug, I will also talk about REPLs and how REPL client-server communication happens (with nREPL as an example).

    • Liked Andrea Leopardi
      keyboard_arrow_down

      Andrea Leopardi - Papers We Love - Elixir Edition

      Andrea Leopardi
      Andrea Leopardi
      Core Team Member
      Elixir Lang
      schedule 4 months ago
      Sold Out!
      20 Mins
      Talk
      Beginner

      Elixir is a modern programming language built for concurrency, robustness, and maintainability. Although the Elixir team comes from “industry” backgrounds, the history of Elixir is full of cases where the team has reached for existing research in order to solve problems arising with the language. For example, we based our implementation of a code formatter on a series of papers on pretty printing and formatting code. In this talk, I’d like to go share our learnings and experiences as a bunch of industry folks getting help from academia to approach and tackle real-world problems and come up with real-world solutions.

    • Liked Sandesh Soni
      keyboard_arrow_down

      Sandesh Soni - Build Tetris Game with Elixir and Phoenix LiveView. Full day workshop.

      Sandesh Soni
      Sandesh Soni
      Full-stack developer
      Formulae.io
      schedule 3 months ago
      Sold Out!
      480 Mins
      Workshop
      Beginner

      Phoenix LiveView provides ability to build web application without any custom javascript.
      You can write all the code on Backend server and the connection is alive and stateful.

      In this workshop, you will build Tetris App in Elixir and Phoenix LiveView. The aim of this workshop is give more hands-on Elixir experience and cover various functions and syntax.

    • Liked Aditya Giri
      keyboard_arrow_down

      Aditya Giri - Elixir and WebAssembly

      Aditya Giri
      Aditya Giri
      Student
      University of London
      schedule 3 months ago
      Sold Out!
      20 Mins
      Talk
      Beginner

      WebAssembly is one of the new technologies around the block that has vast areas still to be explored. I'd like to give a talk explaining what the WebAssembly is, what are the possibilities that you can cover with the help of WebAssembly, how does Elixir and BEAM VM fit into the equation and how to interoperate between Elixir and WebAssembly.

    • Liked Karthik Venkateswaran
      keyboard_arrow_down

      Karthik Venkateswaran - Building a simple GraphQL client in Elm for Elm

      Karthik Venkateswaran
      Karthik Venkateswaran
      Engineer
      Hasura
      schedule 3 months ago
      Sold Out!
      45 Mins
      Talk
      Intermediate

      Elm is a functional programming language for creating web applications. Elm is commonly known for its static type checking abilities and Elm architecture (out of many other amazing things) which is a simple pattern for architecting webapps.

      GraphQL is a query language spec for APIs defined by Facebook. It has changed the dynamics of front-end development with an array of powerful features. One such feature is declarative data fetching where you define what you would like to fetch and server responds with the data in the same format it is requested.

      In this talk, we will look at

      1. Sneak peek into Elm Type System
      2. What is GraphQL and benefits of it over other data fetching methods.
      3. Demo on how to write queries without custom DSL
      4. Writing types to make the above process little neat and fun
    • Liked Sandesh Soni
      keyboard_arrow_down

      Sandesh Soni - My Journey Building Tetris Kachori - Elixir and Phoenix LiveView

      Sandesh Soni
      Sandesh Soni
      Full-stack developer
      Formulae.io
      schedule 3 months ago
      Sold Out!
      45 Mins
      Case Study
      Beginner

      I will share my experience how I built this Tetris game without writing a single line of custom javascript code. All the code is written in Elixir and Phoenix LiveView.

      you can play the game here http://tetris.sandeshsoni.com/

    • Liked Ravi Chandra Padmala
      keyboard_arrow_down

      Ravi Chandra Padmala - Interactive fiction: An adventure through pop type-systems

      Ravi Chandra Padmala
      Ravi Chandra Padmala
      Partner
      nilenso
      schedule 3 months ago
      Sold Out!
      20 Mins
      Demonstration
      Beginner

      Having spent more than 10 years 'learning haskell', on and off, 4 days a month,
      4 months a year (in a good year), you know you're better off writing enterprise
      Lisp for the rest of your career.

      But suddenly out of nowhere you find purpose, and now you need to build a game.

      This is that game.