Last call to make your voice heard! Our 2022 Developer Survey closes in less than a week. Take survey.

Questions tagged [backward-compatibility]

The tag has no usage guidance.

Filter by
Sorted by
Tagged with
40 votes
7 answers
10k views

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 ...
user avatar
0 votes
0 answers
72 views

Download method of type void vs response

Given a method that is widely used and has a void return type: from somepackage import download_model from somepackage import get_filename def download(name, download_path): response = ...
user avatar
1 vote
2 answers
75 views

In client-server software systems, why should the client sometimes be backward-compatible instead of the server?

For instance, in the case of PostgreSQL, it is entirely acceptable to use a newer client to connect to an older server; but if you do the opposite, using an older client to connect to a newer server, ...
user avatar
  • 335
0 votes
3 answers
149 views

Should it be considered a BC break to return clone instead of new self?

(This question applies to the equivalent code in both Java and PHP) I have a class like this: class Foo { private int $bar; public function __construct(int $bar) { $this->bar = $...
user avatar
  • 618
1 vote
1 answer
173 views

Backward compatibility testing

As a creator of a software library, how can I verify backward compatibility with earlier versions? When using a dependency management (here: Maven), multiple versions of my dependency could be (...
user avatar
  • 135
0 votes
2 answers
1k views

How to design front-end to handle multiple back-end versions

In my company, we're using Spring Boot to implement backend API and React to implement frontend including Web interface and Android/iOS apps. Since our product is an Enterprise software, customers ...
user avatar
  • 245
4 votes
1 answer
732 views

What would be the pros and cons of requiring major versions to be forward compatible? [closed]

So I was learning about forward compatibility, and I was wondering if you could warn a "dependent" that a dependency is backward compatible, but not forward compatible*, and vice-versa. The SemVer ...
user avatar
  • 149
2 votes
3 answers
89 views

Using data to maintain compatibility when evolving RESTful service

I've been reading up on API versioning for REST APIs. Most of the articles I've come across (here's an example) seem to focus on two options: URI based versioning, e.g. v1/my_resource/ Media Type ...
user avatar
-3 votes
1 answer
46 views

Software Platform/Framework Backwards Compatibility with Extensions

How do software platforms/frameworks test for backwards compatibility with third party extensions? For instance, say I have a framework that many third party extensions rely on, and I want to make a ...
user avatar
3 votes
2 answers
136 views

Code quality on backports branch with limitted lifespan

JuliaLang just hit version 1.0 the other week I and many other package maintainers have thus updated out packages to work with julia 0.7 (the transitional release) and 1.0. In doing so, we've often ...
user avatar
0 votes
2 answers
564 views

How to test for backwards compatibility in NuGet?

Let us say I am working on a project with maybe 100 nuget packages installed and 50 of these packages require an update. I would ike to get a clear overview on which package updates cause any ...
user avatar
3 votes
4 answers
3k views

Best practices for database backward compatibility

I am working on an app which has multiple versions deployed in the market. Different versions have modified databases and databases are to be synced between local storage and server storage by signed ...
user avatar
3 votes
0 answers
1k views

How has Windows maintained binary compatibility for over 20 years? [closed]

Modern Windows 10 can run binaries that were compiled on 20 years ago for Windows 95 or NT4, however I imagine that the libraries that the code is calling would have changed massively since then. I ...
user avatar
4 votes
3 answers
343 views

Why are minor breaking language changes not handled with transpilers?

For any successful programming language, making a breaking change to the language is extremely difficult. This is the case even for those changes where the legacy code could be reliably and ...
user avatar
  • 1,045
1 vote
1 answer
626 views

Architecture for Windows 7 Embedded and Windows 10 IoT

I am in the process of refactoring a large application originally written in .NET 2.0, running on an old version of Microsoft's Compact Framework. The idea is to refactor and rewrite the code so that ...
user avatar
5 votes
1 answer
1k views

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 ...
user avatar
  • 618
2 votes
1 answer
5k views

ASP.NET Web API: enum or strings

I have an ASP.NET Web API application. It uses enums for some fixed sets of states or types. Now I need to extend enum to support more values. But it will break backwards compatibility so I need to ...
user avatar
1 vote
1 answer
246 views

Ensure compatibility between software components

We do have several Components in our product which are Component A Component B Component C Dependencies are (if unmet the system fails): A <-> B B <-> C We are currently creating a build ...
user avatar
  • 203
1 vote
3 answers
3k views

Handle backward compatibility on API changes

I have an API which allows me to communication with a device. The communication protocol is stored in a JSON file. It list the events that the device can raise, the functions, the frames format, etc. ...
user avatar
  • 119
1 vote
1 answer
80 views

Is an all-encompassing enumerator appropriate?

I will illustrate the problem with a specific case. Suppose we have a bit-flag style enumeration type defining different kinds of validations. It's tempting to define an enumerator like ...
user avatar
  • 155
6 votes
1 answer
131 views

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 ...
user avatar
  • 372
19 votes
1 answer
940 views

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 ...
user avatar
17 votes
3 answers
4k views

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 ...
user avatar
  • 171
15 votes
3 answers
2k views

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

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 ...
user avatar
4 votes
2 answers
2k views

Changing method signature while keeping backwards compatibility

I've inherited an API to maintain. Users can pass a callback function to the class which gets called on some event. The callback function is currently passed in a single argument. I need to change ...
user avatar
  • 141
14 votes
3 answers
629 views

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/...
user avatar
-1 votes
1 answer
740 views

Twitter Bootstap: Backwards compatibility? [closed]

I work for a university Digital Services team. Our university's main website uses the Ektron CMS (I have my own thoughts about this, but that's irrelevant). Because we maintain a university website, ...
user avatar
  • 101
1 vote
1 answer
120 views

Requirement that code changes within release be reverse compatible with DB schema

I have recently come across a requirement related to our release/SDLC process that seems a little out of the ordinary to me so I am writing this to inquire whether this practice is common and, if not, ...
user avatar
  • 1,551
3 votes
3 answers
3k views

Is it safe to just use MySQLi?

I have developed an open source PHP application and currently it uses both the MySQLi or MySQL extension for backwards compatibility. I'm wondering about switching it over to only be compatible with ...
user avatar
  • 304
57 votes
14 answers
10k views

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....
user avatar
  • 1,802
6 votes
2 answers
1k views

Is bash "finished"? [closed]

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 ...
user avatar
5 votes
2 answers
1k views

How to decide how backward-compatible my new Mac OS X application should be?

I'm currently contemplating writing an OS X version of my Windows software. My Windows application still supports Windows XP, and I know that if I drop support for it now, our customers will cry ...
user avatar
  • 153
6 votes
2 answers
440 views

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" ...
user avatar
  • 296
1 vote
2 answers
270 views

What's the term for re-implementing an old API in terms of a newer API

The reason for doing it is to solve the case when a newer API is no longer backwards compatible with an older API. To explain, just say that there is an old API v1.0. The maker of this API decides it ...
user avatar
  • 1,098
13 votes
2 answers
27k views

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 ...
user avatar
0 votes
1 answer
99 views

Compatibility Test and other testing method to use while building software

I will be adding a feature to the software and have to update or modify some of public API of the present open source software. What are steps which could be taken to ensure the compatibility of the ...
user avatar
7 votes
3 answers
1k views

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 ...
user avatar
  • 7,449
2 votes
2 answers
247 views

How quickly is the silent IE upgrade likely to propagate to end users? What about managed corporate IT infrastructures? [closed]

According to this article from the BBC and this post on Microsoft's Exploring IE Blog, Microsoft has planned to automatically upgrade Windows XP, Windows Vista, and Windows 7's IE to the latest ...
user avatar
  • 750
19 votes
7 answers
11k views

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 ...
user avatar
2 votes
3 answers
723 views

Is C++0x Compatible with C?

I have heard that there will be a lot of changes done in C++ because of the new standard (C++0x). My question is: What are the major changes, and will C++0x be compatible with C++ 98 and C ?
user avatar
3 votes
3 answers
180 views

Will any js libraries be updating api's with html5 under the hood?

So there is a lot of cool stuff in the html5/css3 specs which should be able to replace a lot of the stuff that have been traditionally done with javascript. Does anyone know if any of the major js ...
user avatar
  • 183
2 votes
3 answers
907 views

Version Changes: How considerable are the compatibility issues in project?

For example if we consider ActionScript2.0(based on Objects but programming does not implement much OOP ) vs 3.0(highly OOP) its like a whole new scripting language in the sense of approach, ...
user avatar
  • 3,537
18 votes
13 answers
2k views

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

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 ...
user avatar
  • 9,222