opentelemetry-java-instrumentation
opentelemetry-java-instrumentation copied to clipboard
Optimize project for development with IDEs
Is your feature request related to a problem? Please describe.
IDEs really struggle with this project since it is so huge and has so many submodules with many dependencies.
I believe this is a known problem (https://github.com/open-telemetry/opentelemetry-java-instrumentation/discussions/9331, https://github.com/open-telemetry/opentelemetry-java-instrumentation/discussions/8767), but I am filing this issue to bring more attention to it, and maybe track some progress.
Please take this as constructive feedback, and not criticism, because I'm really excited for this project, and I fully understand how it has grown to become this behemoth.
This sounds harsh, but... development on this project is so painful that I am questioning whether I want to contribute more to this project (I'm considering contributions for https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/9740, https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/9400, and https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/9390), or if I should maintain custom in-house extensions instead. I would much prefer to contribute to this project, but after comparing my experience contributing to it (https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/9705) versus my experience developing some separate in-house extensions for proprietary code... I can say that my experience developing in-house extensions was much easier/faster, mainly due to how much IDEs struggle with this project. IDEs constantly index and run out of memory (even giving them 8+GB), making iterative development terribly slow. I've resorted to editing files in a basic text editor, which is not a great experience after working with IDEs for years.
Describe the solution you'd like
The ability to perform iterative development on this project using an IDE with a reasonable footprint. For example, lower memory and CPU requirements, less indexing, faster builds, etc.
Describe alternatives you've considered
Don't use an IDE. Use a basic text editor instead.
Don't contribute to this project. Instead, develop custom extensions in separate repos.
Additional context
Reduce developer power bills by not making our computers work so hard. ;) On the bright side, since I have to let my computer cool off frequently when developing on this project, it forces me to take more breaks.