| | Maybe you are a [[Gradle]] fan and nothing mentioned so far convinced you. At the end, what is wrong on having build system subject of [[Wikipedia:halting_problem|unidentified complexity]]. You run it and when it computes the classpath, you write it down into static file which can then be consumed by various IDEs. Yes, this is possible, but it is upside down! Moreover unsecure. | | Maybe you are a [[Gradle]] fan and nothing mentioned so far convinced you. At the end, what is wrong on having build system subject of [[Wikipedia:halting_problem|unidentified complexity]]. You run it and when it computes the classpath, you write it down into static file which can then be consumed by various IDEs. Yes, this is possible, but it is upside down! Moreover unsecure. |
| - | Generic information like classpath, etc. should be extractable without running unknown code. So the core of the build configuration should in fact be those files consumed by IDEs. If there is anything else needed for the actual build, it could be written in [[Ant or [[Groovy]] (in spite [[I]] would rather advocate using [[AnnotationProcessor]]s as much as possible). But the core aspects of the project should be understandable without running any code. Because you don't want your IDE to hack your computer after you checkout a [[GitHub]] project and browse to its sources or open one of its files in editor! | + | Generic information like classpath, etc. should be extractable without running unknown code. So the core of the build configuration should in fact be those files consumed by IDEs. If there is anything else needed for the actual build, it could be written in [[Ant]] or [[Groovy]] (in spite [[I]] would rather advocate using [[AnnotationProcessor]]s as much as possible). But the core aspects of the project should be understandable without running any code. Because you don't want your IDE to hack your computer after you checkout a [[GitHub]] project and browse to its sources or open one of its files in editor! |
| | Another issue is CPU time: there are tons of services around the globe ([[wikipedia:Ohloh|Ohloh]] comes to my mind) that provide you indexing services over source code. Usually they just analyze commits, do static analysis of the code, etc. But there is nothing stopping them to understand structure of [[Maven]] projects and know cross-dependencies and resolve symbols to proper fully qualified names. However nobody is going to offer such service for generic [[Gradle]] projects! Because in order to analyze them you need to run foreign computation and that can eat enormous amount of CPU and do potentially anything and nobody is willing to offer free computation time so easily to everyone! | | Another issue is CPU time: there are tons of services around the globe ([[wikipedia:Ohloh|Ohloh]] comes to my mind) that provide you indexing services over source code. Usually they just analyze commits, do static analysis of the code, etc. But there is nothing stopping them to understand structure of [[Maven]] projects and know cross-dependencies and resolve symbols to proper fully qualified names. However nobody is going to offer such service for generic [[Gradle]] projects! Because in order to analyze them you need to run foreign computation and that can eat enormous amount of CPU and do potentially anything and nobody is willing to offer free computation time so easily to everyone! |