Hi everyone,
I’m the developer of QPack which is an extension aimed to make code more robust.
First of all thanks for this great extension which is working good.
But there is unfortunately a problem that I’d received from the extension’s users and it is java requirement, which made the extension a not very desirable one. I myself want to get rid of the need of Java which is very slow in windows too.
Questions:
Is there any port or plan to migrate from Java based to Typescript or Rust or GoLang ?
And if There isn’t:
How and where should I start? I mean, I want to develop that analysis/checking part in typescript, Where should I look into to know Aha I have to check these list of Items etc…
Hello @SeyyedKhandon and welcome to the Sonar Community forum!
Kudos on developing QPack and great to see you’ve included SonarLint indeed
Coming now to your point #1 about Java in SonarLint code:
Short version: We currently don’t have plans to migrate from Java to other languages, and we always keep the door open for future changes if we realize the current solution isn’t the optimal one.
Long version:
SonarLint is available in different IDEs including VSCode, IntelliJ-based IDEs and Eclipse, and a good part of the logic is Java code shared among those.
Generally speaking, and based both on our measurements and on the feedback that our users give us (among others, in this forum ) we did not observe any significant performance issues and none that we can directly track down to the fact of using Java. We all have different opinions about Java, so I would be interested to know more about the specific performance issues your users are facing - you can also invite them to share their feedback directly in this forum. In particular we’d like to have some context information like the SonarLint version, the operating system, basic HW info, the JRE version if not using the one embedded in SonarLint, the language analyzed and the size of the file being analyzed.
Thank you,
That was my extension’s users feedback especially those who uses windows. the need to download and install 60MB file when installing a extension is something huge and sometime failed to download and I myself also experienced that and in addition to that when it runs the vscode gets slow very slow and sometimes I have to disable it. So based on these problems:
I plan to help to develop a version using typescript and in the first place aiming 2 languages JavaScript/Typescript to get rid of the need of Java in the first place
Optimize it, e.g. add an option to make it per-file check to optimize the performance issue.
From a purely technical point of view, SonarLint for VSCode relies on the SonarLint Language Server, which itself is powered by the SonarLint Core (Java) library - so yes, Java is currently (and for the foreseeable future) a requirement.
SonarLint Core is where the bulk of SonarLint’s features are implemented: it is responsible for running the analyzers, publishing the results and synchronizing with the servers in connected mode.
Technically, I believe it would be doable to develop an extension that would only use our JS/TS/CSS analyzer and thus remove the need for Java on developer boxes - and that would not be SonarLint anymore