On Thu, 5 Mar 2020 at 17:28, Vladimir Sitnikov <sitnikov.vladi...@gmail.com> wrote: > > >Properties, XML, etc are not executed by the JVM; they are effectively > >just data. > > BeanShell, JavaScript, and Groovy are not "just data", but it is code which > is a part of JMeter. > > So far I see no technical justification for requiring all transitive > dependencies to be written in Java language only.
I'll try again. + The main reason is portability. Compiled Java source is portable to all systems that have a suitable JVM. Native code is inherently not portable. + Another reason is that compiled Java byte code cannot cause a JVM crash. Native code can (and does) cause crashes, and these are generally very difficult to debug. + A third reason is that Java source code only needs a JDK to compile it. There is no need to install additional compilers. Indeed you can compile the code on one OS and deploy on another. Native code usually means installing a C-compiler. Unfortunately, there are lots of varieties of C-compilers with incompatible options and syntax. This make compiling native code rather difficult and error-prone Also compilation generally has to be done on the same OS version. === As far as JMeter is concerned, it is the first two reasons that are most important. The 3rd reason is of more concern to creators of distributions. === Note that BeanShell, JavaScript (Rhino) and Groovy are themselves pure Java - that is why the same jar can be used on all OSes. === I hope you now understand what 100% Pure Java is about and why it is important to JMeter? > Vladimir