Languages we speak

There is always hot debate about which programming language is the best. Let us tell you what we think about this topic.

First of all, we have decided upon our choice after years of practical usage of different languages. Although university gave us some time ago interesting knowledge, we are not fresh graduates with non real world academic experience in let's say PHP. We created code in Java, PHP, C, Pascal, Delphi, C++, Objective-C, C#, Prolog, Erlang, SQL, PL/SQL, Ruby, Python, Javascript and x86 assembly and experienced with others. We use all of them when they are appropriate. Nonetheless, for most projects we found combination of Ruby with C/C++ inclusions as ideal solution.

C/C++ is our choice for development where speed or memory usage is of the essence. C is definitely respected by most programmers. It's close relationship to machine assembly language makes C the best candidate for any application where speed matters. Every advocate of different languages must bow before this simple truth.
But (of course, there is 'but', otherwise everyone uses it) C language is more difficult to code and maintain. Low abstraction makes it difficult to think about complex real world problems. Cryptic and long code complicates maintenance after few iterations of development.

Ruby, on the other hand, makes high abstraction really easy. Nice simple and productive 'English like' syntax of language is easily readable. A lot of dynamic features elegantly solve complicated patterns. All together these aspects of Ruby result in highly maintainable code. And our clients consider that the most important thing for their real world business applications.
But (again) Ruby is often slow. Usually you will not notice, because database or network communication is even slower, but sometimes you need to make certain code run much faster.

And there goes our solution. Both Ruby and C allow very easy inclusion of each other, in fact of any language. So we write in highly maintainable rapid development Ruby. Then seek all bottlenecks and rewrite them in C/C++. As a result we have the best from both worlds leaving all attempts of the same as Java, .Net, PHP or other far behind.