Hi, I am Saša Jurić, a software developer with 10+ years of professional experience in programming of web and desktop applications using Elixir, Erlang, Ruby, JavaScript, C# and C++. I'm also the author of the upcoming Elixir in Action book. In this blog you can read about Erlang and other programming related topics. You can subscribe to the feed, follow me on Twitter or fork me on GitHub.

Teaching orthogonal programming paradigms

| 1 comment

I didn't plan to post so soon, once a month is about as often as I can spare. However, this post from @rosettacode provoked me:

Pick three to five programming languages for teaching orthogonal programming paradigms. Which did you choose? Why? Blog and I'll share.

So, without further ado, here's my list, in the particular order:

1. C (procedural / imperative)
Why: It's ubiquitous on most platforms, it's extremely fast,  it's the lingua franca of combining multiple technologies together. Most importantly: every time I try to understand the inner workings of any piece of technology, I think of how a corresponding C code would look like.

2. Ruby (OO / dynamic)
Why: It's easy, elegant and concise. Probably my favorite language I've worked with so far. Supports many, if not all OO concepts, very flexible, especially suitable for building small internal DSLs. I find it incredible how much can be done with only a few lines of very readable code.

3. SQL (declarative)
Note: only declarative parts of the language i.e. queries, updates, DML/DDL, without stored procedures, triggers and custom extensions.

Why: SQL is to me the best example of separating "what" from "how". You build powerful queries, stating what you need, and the database engine does the rest. It is incredible how data can be flexibly sliced, filtered, joined and grouped, even when it is not normalized.

4. Erlang (concurrency / functional)
Why: The language is super simple, yet extremely powerful. Its support for concurrency is beyond anything I have ever seen. In addition, it supports pattern matching and promotes functional style. Finally, I consider the platform i.e. how the pieces of the language + VM + framework work together, as one of the greatest masterpiece in the IT field I have ever seen.

5. Lisp (functional)
Why: It's the Latin of programming languages. Almost every language and development platform, no matter which paradigm does it come from, borrows something from it.


  1. Programming is very interesting and creative thing if you do it with love. Your blog code helps a lot to beginners to learn programming from basic to advance level. I really love this blog because I learn a lot from here and this process is still continuing.
    Love from Pro Programmer