The definitions of transpiler and compiler are blurred. Both of them translate the program from one language to another, while maintaining the behavior.
We usually call it a “compiler” when it creates an executable binary. However, binary is just another language that can be interpreted by the processor. Each program is "executable" on the corresponding machine.
We usually call it a “compiler” when it produces lower level output than input, for example. C to assembler. Or Java-Java bytecode. Or ES8 to ES5. Wait ... is this really a different level?
Usually we call it a “transporter” when its output is at the same level as the input, for example. Python for JavaScript or vice versa. However, there will always be parts that use abstraction, available in one language, which must be “compiled” to implement a lower level in another language.
So, to answer your questions:
I believe that the compiler is very different from the transpiler.
No.
Is Babel a transpiler or compiler or perhaps offers both?
Yes.
Or is the website name "Babel - the Next Generation JavaScript Compiler" just wrong?
No. This title focuses on the functions of the next generation, that is, higher-level abstractions that really need to be compiled into a completely different way. Despite the fact that the output is still normal, mainly for humans, readable, JavaScript.
I am writing documentation related to Babel and I want my description to be accurate.
In this case, I would use my own terminology from the official site. If you want to compare the tool with others, select your description.
Bergi May 14 '17 at 9:37 2017-05-14 21:37
source share