Hi all. In the company I work for, we have had some discussions about the best strategy to keep our products up to date. Actually, we develop comercial software using PHP 5 or 7, with Symfony 3.4 as our framework.
Nevertheless, Symfony as well as PHP, tend to change to fast and abrupt from version to version. For example, if you develop an app in Symfony 2.x, there is no easy way to upgrade it to Symfony 3.x or 4.x. The problem we see here, is that in 2 or 3 years we will be using Symfony and PHP, but with 3 or 4 different Symfony versions (Symfony 2.4, 2.7, 3.4, 4.0 and so on). Even though it's the same language and framework, maintenance could get really difficult, specially if you have 15 or 20 projects going on at the same time.
I have developed software using ASP.net and upgrading an old project to a newer version is really easy (basically you open the old project using the new version of Visual Studio). Someone told me that the same goes for Java, that makes really easy to upgrade a project developed in java 8 to java 11, for example, whereas in Symfony this is not like opening the project in a new Symfony version.
Ultimately, we are thinking about choosing a new language / framework that is capable of ensuring certain level of compatibility between versions, in order to ensure that jumping from older to newer versions won't be a headache in 3 or 4 years.
With that in mind, here are my questions:
1) Do you know other language / framework / technology that handles this "version changes" in a better way, so it makes you easy to update older projects?
2) What would you advice me to do in this scenario regardless the technology / framework or language used to develop software, in order to keep our projects up to date in an easy way?
Nevertheless, Symfony as well as PHP, tend to change to fast and abrupt from version to version. For example, if you develop an app in Symfony 2.x, there is no easy way to upgrade it to Symfony 3.x or 4.x. The problem we see here, is that in 2 or 3 years we will be using Symfony and PHP, but with 3 or 4 different Symfony versions (Symfony 2.4, 2.7, 3.4, 4.0 and so on). Even though it's the same language and framework, maintenance could get really difficult, specially if you have 15 or 20 projects going on at the same time.
I have developed software using ASP.net and upgrading an old project to a newer version is really easy (basically you open the old project using the new version of Visual Studio). Someone told me that the same goes for Java, that makes really easy to upgrade a project developed in java 8 to java 11, for example, whereas in Symfony this is not like opening the project in a new Symfony version.
Ultimately, we are thinking about choosing a new language / framework that is capable of ensuring certain level of compatibility between versions, in order to ensure that jumping from older to newer versions won't be a headache in 3 or 4 years.
With that in mind, here are my questions:
1) Do you know other language / framework / technology that handles this "version changes" in a better way, so it makes you easy to update older projects?
2) What would you advice me to do in this scenario regardless the technology / framework or language used to develop software, in order to keep our projects up to date in an easy way?