Question

I'm currently working for a company on the engineering team of about 5-6 people and have been given the job of heading up the redesign of an embedded system tester. We've decided the general requirements and attributes that would be desirable in the system, and now I have to decide on a language to use for the system, or at the very least come up with a list of languages with pros and cons to present to the team.

The general idea of the project is that we currently have a tester written in c++, which was never designed to be a tester, but instead has evolved to be such over the course of 3-4 years due to need. Writing tests for a new product requires modifying the 'framework' and writing code that is completely non-human readable or intuitive due to the way the system was originally designed. Now, we've decided that the time to modify this tester for each new product that we want to test has become too high and want to partially re-write the system so that we can program the actual tests in a scripting language that would then use the modified c++ framework on the back end to test the actual systems. The c++ framework would be responsible for doing all the actual work and the scripting language would just integrate with that to tell the framework what to do.

Never having programmed in a scripting language (we program embedded systems), I've run into a wall where I have no experience with any of the languages that we could possibly use, but must somehow give pros and cons of each language so that we can choose the best one for the job.

Currently my short list of possibilities includes:

  • Python
  • TCL
  • Lua
  • Perl

My question is this: How can a person evaluate a language that he/she has never used before? What criteria are good indicators for a languages potential usability on a project?

While helpful suggestions for my particular case are appreciated, I feel that this is a good skill to possess and would like to be able to apply this to many different projects if at all possible

Was it helpful?

Solution

  1. Use it. Grab a tutorial, give it a spin. This will both give you an idea of what it's like to use the language, and, what kind community it has.

  2. Stack Overflow Question Counts: This is a rough indication of overall use and how likely you are to find an answer to your question

  3. Open Source library/package counts: This is a rough indication of overall use and how likely you are to find a pre-existing solution

  4. Look for pre-existing solutions to problems you know you have; check them out in a bit more detail. This will give you an idea of the kind of code and documentation the community supplies for your problem domain, and how active that community is in that domain.

Then, I'd say, look up the philosophies that the community endorses; Python's 10 Principles vs Ruby's Enjoyment for the Programmer - but at that point you're getting /really/ subjective.

Oh! Also - Figure out where you, your team, your problem, and your possible languages fall on the "conservative vs liberal" programming "spectrum". It's a really useful axis for comparison.

OTHER TIPS

I am not sure if you have the budget for this, but you can hire people who can evaluate products/technologies for you. Solution architects -normally give you sound advice backed with data.

But if you dont have the budget for this or you are the solution architect, its better you learn about the languages you are evaluating. There are forums which will advocate various languages but best bet would be to try out few tutorials and get a feel of it. Also you might want to consider things pertaining to post production (installation, maintenance, version upgrade etc)

Certainly the popularity of a programming language is one factor to consider. TIOBE offers a useful index of language popularity including graphs that show change over time.

TIOBE points out that the index "ratings are based on the number of skilled engineers world-wide, courses and third party vendors. Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu are used to calculate the ratings. It is important to note that the TIOBE index is not about the best programming language or the language in which most lines of code have been written."

Licensed under: CC-BY-SA with attribution
scroll top