4 ms·
So it's language agnostic. Can anyone tell me the rocket science behind this? How would a library know if a code and its libraries are performing software de
by kevindeasis 10y ago
So it's language agnostic.
Can anyone tell me the rocket science behind this?
How would a library know if a code and its libraries are
performing software development/engineering best practices?
What types of algorithms do you use and are there other libraries that already does this that is language agnostic?
- michaelmior 10y agoI think you're expecting it to be something more exciting than it is (I was too at first.) It's just a front end for static analysis tools. Coala doesn't do any analysis on its own. Everything is delegated to other tools. It just provides a way to pass configuration in and to parse the output so you know what lines in the source file have problems. Code Climate does something similar with their Engines[0] specification. Personally I like how they make use of Docker containers to perform the analysis. It is perhaps a bit heavyweight for simple analyses but it makes it really easy to install different language runtimes and tools. [0] https://github.com/codeclimate/spec https://github.com/codeclimate/spec
- sils 10y agoIndeed. coala is more of a framework that allows you to plug in any analysis routine. However, it also provides means to create new code analysis very easily and combine arbitrary routines. So yes, there are some very simple generic algorithms (line length checking, spacing corrections, we have things like variable name checking in the works which only need a few lines "language definition") and you can combine them with - possibly wrapped or not - language dependent algorithms easily. This is useful for the user because he doesn't have to learn and configure tons of tools and he has some basic functionality for every language - even the ones he writes tomorrow. It's also useful for people writing static code analysis because they can just write their algorithm and be done with it - why should everybody rewrite a CLI interface, editor plugins and so on? I wrote a thesis about code clone detection (another algorithm that is basically generic and would need only a relatively small parsing part per language, coala allows me to modularize meanfully into parsing and language independent AST processing) and it just took me a few functions that actually performed the analysis. People can now use it easily which usually isn't true for research programs and I had even less work than I would have if I had written it without coala.
- sils 10y agoOh btw. coala allows automatic fixes for source code, most tools like code climate are usually reporting only and can be more annoying than helpful.
- michaelmior 10y agoAgreed that such tools can be annoying without the proper configuration. But I also don't really want anything automatically fixing my source code. That's a personal preference though.
- sils 10y agocoala always leaves you in control, you can tell it to e.g. show a patch before applying. If you explicitly configure it you can set it to automatically apply patches that are coming from certain analysis routines.