Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Delete old Java frontends #242

Merged
merged 4 commits into from
Dec 6, 2021
Merged

Delete old Java frontends #242

merged 4 commits into from
Dec 6, 2021

Conversation

tsaglam
Copy link
Member

@tsaglam tsaglam commented Nov 29, 2021

Removes the old language frontends (contributing towards #114):

  • java1
  • java2
  • java5
  • java5dm
  • java7

The newest Java frontend is now just called java instead of java9.

@tsaglam tsaglam added enhancement Issue/PR that involves features, improvements and other changes major Major issue/feature/contribution/change language PR / Issue deals (partly) with new and/or existing languages for JPlag labels Nov 29, 2021
@tsaglam tsaglam marked this pull request as ready for review November 29, 2021 13:02
README.md Outdated Show resolved Hide resolved
@Alberth289346
Copy link
Contributor

Not sure removing java version numbers will work in the long term. Both C++ and Java (and possibly other languages as well) create new versions at such an incredible high rate that existing courses may not always follow while new courses may jump to whatever the newest version is at the time.

To cover both audiences, the program may need support for more than one java version.

To handle removal, the project could have a guideline when a front end is considered obsolete (example, older than 5 years before the newest release).

@tsaglam
Copy link
Member Author

tsaglam commented Dec 2, 2021

I think there is a bit of a misunderstanding here: The legacy Java frontends are only for a single version. For each Java update, a new frontend had to be created to support new language features. This was tedious and just not ideal. The Java 9 frontend is actually a Java 9+ frontend that was introduced for Java 9. It supports future Java versions if JPlag is compiled with that version.

We can remove the old Java frontends, as the Java9+ frontend should be able to parse older code as well (additionally, there this is the legacy version of JPlag). For future java versions, we just need to update the whole project to be compiled with that, and then we should be able to support the new language features automatically. As an example, #159 is such an upgrade. This is why we renamed the Java 9+ frontend; it is actually version-independent (explicitly to deal with the rapid release of Java versions). The version number was just to distinguish it from the redundant frontends that we will remove with this PR.

For the other frontends, we do not actually know in what state they are and what language versions they support or don't support. Since we use JPlag mainly for Java code, this frontend is well maintained and up to date. The other frontends might already be unmaintained and out-of-date, but I do not really know.

In my opinion, a frontend is considered as obsolete, if another frontend covers the same language version(s) and also one or more additional language versions. New frontends are always welcome, if they bring some capabilities that the existing frontends do not possess. Overhauls/modernizations of existing frontends are also welcome!

TL;DR The Java 9+ frontend is version-independent making the legacy java frontends redundant. The state of the other frontends is (largely) unknown.

Co-authored-by: Alberth289346 <alberth289346@gmail.com>
@tsaglam tsaglam added this to the v3.0.0 milestone Dec 6, 2021
@tsaglam tsaglam merged commit 7188bde into master Dec 6, 2021
@tsaglam tsaglam deleted the delete-old-frontends branch December 6, 2021 13:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Issue/PR that involves features, improvements and other changes language PR / Issue deals (partly) with new and/or existing languages for JPlag major Major issue/feature/contribution/change
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants