Alexey Kuznetsov

Functional programming, web development, DevOps

Currently Elixir is not one of the most popular programming languages but for sure it is one of the most promising and underrated ones. Elixir and it’s community has been growing and evolving this year steadily so right now I can recommend it to everyone - no matter if you are a business owner or you are an experienced developer or a total newbie - it’s time to learn or adopt the new technology.

Testing in Elixir is pretty neat. You can easily test anything written, you have instruments like ExUnit or ESpec, you can practice TDD and more and more. Functional programming paradigm helps you a lot to make your testing even simpler by forcing you to use pure, small functions that will be pleasant to test. Concurrency of Elixir allows you to run all your tests asynchronously and blazingly fast.

This post is a continuation of series of posts started in previous article. Previously we’ve talked about one of the most awesome, innovative and pleasant projects that we had the honor to develop here in FlatStack. In this article I will tell you about the problems we’ve faced and how the right choice of technologies stack helped us to solve them.

Pattern matching is a key feature of functional programming. It allows you to check a given sequence of tokens for the presence of the constituents of some pattern. Using pattern matching you can easily operate with complex data structures in most expressive and eloquent way. Elixir provides pattern matching like any other functional programming language.

Node.js has a simple and powerful stream API. Streams in Node.js are unix pipes that let you perform asynchronous I/O operations by reading source data and pipe it to destination. If your application operates not with streams only, but promises, callbacks or synchronous code, you may want to use more deeper abstraction that fits your needs. In this case you may take a look at Highland.

Ruby is a great example of multi-paradigm programming language: it allows you to write code in object-oriented, imperative or functional styles. Ruby have much in common with functional programming languages: high-order functions, closures, anonymous functions, continuations, statements all values. If you want to use more functional programming patterns and tools, you might want to take a look on Functional Ruby gem.

Ruby is dynamically and strong typed programming language. In the most of the cases it gives you required level of type safety with minimal code. But if you want build more secure applications or you’re like static typing, then you need to check every variable or method for it’s type or class:

JavaScript is one of the most dynamic, flexible and powerful programming languages. It supports multiple programming paradigms - imperative, object (prototype) oriented, scripting, and functional.
Let’ see what JavaScript has common with functional programming languages:

Welcome! This is my blog about web development, functional programming and others geeky themes.