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.