Questions tagged [backward-compatibility]

47 questions
58
votes
14 answers

Keep a programming language backwards compatible vs. fixing its flaws

First, some context (stuff that most of you know anyway): Every popular programming language has a clear evolution, most of the time marked by its version: you have Java 5, 6, 7 etc., PHP 5.1, 5.2, 5.3 etc. Releasing a new version makes new APIs…
Radu Murzea
  • 1,810
  • 2
  • 18
  • 24
40
votes
7 answers

Why do library developers deliberately break existing code?

Today, I updated ZBateson\MailMimeParser the PHP e-mail parser library from 1.x to 2.x. Soon enough, my PHP error log started filling up with errors. Noting where it happened, I found out that it had to do with their ::parse(...) function:…
19
votes
1 answer

Why does(/did) Bertrand Meyer think subclassing is the only way to extend a "closed" module?

In Meyer's Object-Oriented Software Construction (1988) he defines the open/closed principle as follows: A module will be said to be open if it is still available for extension. For example, it should be possible to add fields to the data…
19
votes
3 answers

What is a good design for allowing backwards compatibility of files between different versions of software?

What is a good design for allowing backwards compatibility of a file type between different versions of software? For instance, how does microsoft get word 2007, 2010 and 2013 etc... to all open docx files, but different editions can save more /…
JJBurgess
  • 191
  • 1
  • 5
19
votes
7 answers

When to update jQuery?

When you recommend updating jQuery/jQuery UI? Or in other words: what are the best practices for updating jQuery/jQuery UI? I’m working on a long project that will take at least one more year. In that time span, I’m sure that jQuery/jQuery UI will…
epaulk
18
votes
13 answers

C# or .Net features to cut off assuming no backward compatibility needed?

Any product or framework evolves. Mainly it's done to catch up the needs of it's users, leverage new computing powers and simply make it better. Sometimes the primary design goal also changes with the product. C# or .net framework is no exception.…
Gulshan
  • 9,402
  • 10
  • 58
  • 89
15
votes
3 answers

Which version of Java should I use for a desktop application to reach the most users?

Am I correct to assume that most end users are using an older version than Java 8? Since I do not want to force people to upgrade in order to use my application, should I plan it to use Java 7 or even 6 from the start, even if that means that I…
15
votes
3 answers

Is there any mechanism to make programming language more stable(compatible) for changes?

There are a big number of programming languages. Some of them grow up and become very popular. People use such languages more and more often. The founder of such language (or founding organisation/community) may try to implement changes to make the…
14
votes
2 answers

What is .NET framework backward compatibility?

We develop a windows application in .NET 4 with a database of MySQL. When we are about to deploy that application, we install the .NET 4 framework in our client, then when installing the .NET Connector for MySQL, it requires a .NET framework 3.5.…
John Isaiah Carmona
  • 727
  • 2
  • 8
  • 15
8
votes
3 answers

Strategy for backwards compatibility of persistent storage

In my experience, trying to ensure that new versions of an application retain compatibility with data storage from previous versions can often be a painful process. What I currently do is to save a version number for each 'unit' of data (be it a…
vaughandroid
  • 7,569
  • 4
  • 27
  • 37
7
votes
9 answers

Changing number of arguments of a function

I wanted to know the best practice(s) for ensuring scalability while passing arguments. Say, in version 1.0 of an application, the foo function looks like this void foo(int i) Now, in version 1.1, the function has to be changed to void foo(int i,…
awakened
  • 97
  • 7
6
votes
1 answer

How to deal with legacy functionality conflicting with new feature

I am working on a well established (aka clients using it for a while) video player. We recently found out that the drawing engine (ddraw) is deprecated in windows 8 and 10, and choose a modern solution to replace it. Issue is, a completely different…
UmNyobe
  • 372
  • 2
  • 11
6
votes
2 answers

Is bash "finished"?

Should bash be expected to change in ways that break non-trivial amounts of existing scripts at some point in the (near/<5y) future? How much change has it gone trough in the last ten years compared to, say, python or perl?
user46637
6
votes
2 answers

Use of versioned objects/data to handle program version compatibility?

Is there a common name for the practice of keeping a version number on your data, so that different versions of your program can identify, for example, "current", "legacy", and "too-old-to-deal-with" versions of the same type of object? As discussed…
5
votes
1 answer

Impacts of using class_alias() to maintain backwards compatibility in PHP

Scenario: An open-source PHP project that has existed for several years has too many classes in the main namespace that we want to refactor some of them into another namespace, but we have a widely used and diverged plugin API, and refactoring may…
1
2 3 4