• Welcome

    Thank you for participating in this experiment. This experiment takes around 12 minutes to be completed. Please take your time, do not rush and enjoy participating in scientific research.

  • Consent form

  • As part of the research we will collect some personal information about our participants, such as demographic data and data collected during the experiment. Your data will be collected anonymous or pseudonymous.  

    The data will be used for research context of the Saarland University. We securely store this data for two (2) years, when the research period is over. We respect your trust and protect your privacy, and therefore will only share this data with the platform used to recieve your answers: Jotform. By filling out this form, you agree that your data can be processed in line with the privacy policies of:

    Saarland University (https://www.uni-saarland.de/en/privacy.html)
    Jotform (https://www.jotform.com/privacy/)


    You also have the right to access, view, and edit your own information in a timely manner, the right to be forgotten, which means being deleted from our survey results, and the right to be able to opt-out from this research at any time.

    If you have any questions or change your mind, please contact the researcher responsible for this project: Paul Zavalza at paza00002@uni-saarland.de

  • Demographic questions

  • Gender*
  • Level of English*
  • Years of experience in programming*
  • Years of experience with Elixir programming language*
  • Did you learned programming inside school or university?*
  • Which is the highest level of education that you completed?*
  • How often do you consult information about programming on Internet?*
  • How often do you use Chatgpt or a similar artificial intelligence tool for programming questions?*
  • Instructions

    On the following pages you will find two texts related to programming and software development. After each text, you will need to answer questions related to the content. Read the texts completely before jumping into the questions. Here are some general guidelines for you:

    • Understand as much as you can, we don't expect people to completely understand all the information inside the texts.
    • Keep an eye on the quality of the content, the questions you will answer are related to this.
    • Stay on this website, do not use Google, any translation tools or any other website while participating on this research.
  • Text 1 - What is a loop?

    A loop in programming is a control flow statement that allows code to be executed repeatedly based on a condition. The basic idea is to have a block of code that runs multiple times, depending on whether a condition is true or false. There are several types of loops, each suited to different scenarios:

    1. For Loop: Typically used when the number of iterations is known beforehand. It iterates over a sequence (like a list, tuple, or range).

    Example in Python:

     This will print numbers from 0 to 4.

    2. While Loop: Runs as long as a condition is true. It's useful when the number of iterations isn't known in advance and depends on some condition within the loop.

    Example in Python:

     

    This will also print numbers from 0 to 4.

    3. Do-While Loop: Similar to a while loop, but the condition is checked after the loop body has been executed, ensuring that the loop runs at least once. Note that Python does not have a built-in do-while loop, but it can be simulated using a while loop.

    Example in other languages (like JavaScript):

    This will print numbers from 0 to 4.

    4. Foreach Loop: Specifically used for iterating over elements in a collection or array. It's common in many programming languages to simplify looping over elements.

    Example in Python:

    This will print each fruit in the list.


    Loops are fundamental constructs in programming, allowing for efficient and compact execution of repetitive tasks.

     

  • Text 2 - What are the advantages of using Elixir on the backend?

    Elixir is a dynamic, functional language designed for building scalable and maintainable applications. Here are some of the key advantages of using Elixir on the backend:

    1. Scalability:

    • Erlang VM (BEAM): Elixir runs on the Erlang VM, known for its ability to handle millions of concurrent connections, making it ideal for applications that require high levels of concurrency.
    • Lightweight Processes: Elixir uses lightweight processes that are managed by the VM, enabling efficient handling of thousands of processes with minimal overhead.

    2. Fault Tolerance:

    • Supervision Trees: Elixir leverages Erlang's "let it crash" philosophy, using supervision trees to monitor and restart failed processes automatically, ensuring high availability and reliability.
    • Isolation: Processes in Elixir are isolated from each other, preventing failures in one part of the system from affecting others.

    3. Productivity:

    • Concise and Readable Syntax: Elixir's syntax is designed to be expressive and easy to read, which can boost developer productivity and reduce the likelihood of bugs.
    • Interactive Development: The Elixir shell (IEx) allows developers to interactively write and test code, making the development process more efficient.

    4. Performance:

    • Concurrent Processing: Elixir's ability to handle concurrent processes efficiently can lead to significant performance improvements for I/O-bound and parallelizable tasks.
    • Efficient Use of Resources: The BEAM VM's garbage collection and scheduling algorithms optimize resource usage, contributing to better overall performance.

    5. Robust Ecosystem:

    • Phoenix Framework: Phoenix is a web framework for Elixir that provides tools and libraries for building modern web applications. It is known for its speed and scalability, particularly for real-time applications.
    • Extensive Libraries: The Elixir ecosystem includes a rich set of libraries and tools that support various aspects of backend development, from database interaction to testing and deployment.

    6. Real-Time Communication:

    • Channels: Phoenix Channels provide a straightforward way to implement real-time features like chat applications, notifications, and live updates, leveraging WebSockets for bidirectional communication.

    7. Maintainability:

    • Functional Programming: Elixir's functional programming paradigm encourages writing pure functions and immutable data structures, which can lead to more predictable and maintainable code.
    • Pattern Matching: Elixir's pattern matching simplifies complex data handling and control flow, making the code easier to understand and maintain.

    8. Community and Support:

    • Growing Community: Elixir has a vibrant and growing community of developers who contribute to open-source projects, provide support, and share knowledge through forums, blogs, and conferences.
    • Active Development: Elixir is actively maintained and developed, with regular updates and improvements being made to the language and its ecosystem

    9. Integration:

    • Interoperability with Erlang: Elixir can seamlessly interoperate with Erlang, allowing developers to leverage existing Erlang libraries and tools, and benefit from decades of development and optimization in the Erlang ecosystem.
    • Nerves Project: For IoT applications, the Nerves project allows building and deploying Elixir applications to embedded devices.

    These advantages make Elixir an excellent choice for building robust, high-performance, and maintainable backend systems, particularly those that require high levels of concurrency, fault tolerance, and real-time capabilities.

     

  • Should be Empty: