Looking for a stable language?

Do you want to be sure that when you upgrade any upstream stuff your code does not break?

No matter what changes, right?

Starting from the hardware, through the operating system, the the back-end database, down to the smallest function of the smallest CPAN module your code depends on.

You just want to be sure everything works.

I totally understand you. After all who wants to see her code broken by some upstream change?

Upstream changes happen all the time. Some are backward compatible. Some are not.

Python

Have you already upgraded to Python 3000? Why not?

Ruby

Just check out the backward compability matrix on is it Ruby 1.9.

PHP

Backward Incompatible Changes between PHP 5.2 and 5.3.

Perl 5

Have you used Pseudo Hash-es when they were hip? Have you ever relied on the order the keys() function returns the keys? Just two thing that could have caused you headaches.

Perl 6

The question, how well can Rakudo handle backward compability?

No, the question was how should Rakudo manage breakages across versions and instead of trying to give an answer Anonymous Monk went off discussing the meaning of the word stable and backward compability. No surprise he wanted to say Anonymous.

Of course Rakudo is still changing more frequently and drastically than the above languages. You probably should not yet build a business upon it, but you can already start to start building web sites and smaller applications. You can start porting libraries.

So

How to make sure that changes don't hurt much?

I know only one magic bullet. Write lots of tests. When you upgrade something in your upstream - regardless if that is the hardware, the compiler or a minor library - the only way to ensure that things still work is to test them.

It could be done manually but that's probably a waste of time. That's why you should write test.

Which reminds me to quote what I wrote in the latest edition of the Perl Weekly:

I think the story Buddy Burden shares with us is one of the best ways to explain how testing in general, and TDD in particular can improve your health. I really mean it.

Conclusion

If you are looking for language that does not change, try Latin. Other than that it's up to you. If you are ok with some extra work in exchange of some fun and building something new then check out Rakudo.

If you'd like to read articles about Perl 6, check out my new site.

Image source

Published on 2012-07-18 by Gabor Szabo

In the comments, please wrap your code snippets within <pre> </pre> tags and use spaces for indentation.
blog comments powered by Disqus
EduMaven
Python, Dart, JavaScript, and more.


Google Plus Twitter RSS feed