Musings on the multitude of programming language choices available to todays application developers
Yes, there's more than one way to skin a cat. You could start with the neck or the tail... meeea...oW! Ok, Ok, I didn't mean to offend. I have, however, seen some nifty looking sporrans made out of pre-deceased, I hasten to add, wildcats from Scotland. Are programmers (application developers) a bit like cats? Cats are known for being independently minded, unlike the typically faithful, devoted, monogamous dog. In the programmer's world, perhaps that stretches to being independent in terms of the choice of their favourite programming language. How many programmers still use Erlang or Lisp, for instance?
Programmers aren't in the business of skinning cats, I trust, but they are into application development, whatever the application might be. In the world of telephony, there are many ways to write - or craft - an application, hence the analogy. So maybe Ruby Tuesday has put a spell on you or you're hooked on Groovy baby or you're a closet snake charmer (a Python in a basket case) or you spell pearl like a German or you've cast your .NET a bit wider and become a C# dresser. Whatever you choose to use, you will be making decisions along the way; from the design approach - what used to be called 'systems analysis' - to the project management approach, which might be the 'Scrum' framework, to the programming language and, ultimately, the telephony hardware.
In these days of 'software-only, IP-based systems' and 'cloud computing' it is often forgotten - or deliberately ignored - that someone, somewhere, even if it is over the rainbow, has to deal with the hardware. Software applications deployed in 'the cloud' are installed and run on hardware, but the benefits stem from someone else being responsible for those server platforms. In the world of telephony, that has lead to a fillip for hosted applications, such as those offering IP PBX or contact centre functionality, particularly when combined with SIP trunking. Of course, the problem with clouds is that they appear in lots of different forms. There are: 'Cumulus' - heaps of clouds; 'Cumulus fractus' - ragged, detached portions of clouds; and 'Accessory clouds' - clouds that develop on the body of the main cloud. The message there, I guess, is that you need to be careful with your cloud. You certainly don't want it to be a 'Nimbus' or a 'Cirrus' and it definitely needs a bit of 'Vertebratus'.
But you do want your programming language to be an 'Alto-stratus'. In terms of developing your telephony application, you should be looking at a high-level API, presented in your favourite programming language and interfacing to the telephony or media server software of your choice. In cat terms, that means you should avoid the 'shabby tabby' and settle for something more 'Alto-ordinus'. I'd recommend using a high-level programming language and API, something like C#, for example, if you're a .NET Microsoft devotee. But, as I said, there's more than one way of skinning that 'Felis'.
To find out how Aculab's latest product makes use of a high-level programming approach using C# and Python, visit the AMS Server page here.