Ask HN: How does JetBrains protect their IDE Java source code?
On linux, after I installed goland, I could see a lot of .jar file and .class file inside. I don't know, I can see all of the source code ?
On linux, after I installed goland, I could see a lot of .jar file and .class file inside. I don't know, I can see all of the source code ?
Nothing. No obfuscation either really. Heavy obfuscation could hurt performance, and light obfuscation can break reflection that might be used by plugins.
There isn't much value in trying to protect their source code. IDEs are evolving rapidly in response to languages, any decompilation you prepare would be outdated immediately. And nearly all JVM programs can be trivially cracked anyways, even if heavily obfuscated/guarded.
They probably use an obfuscator. Standard practice for Java which is otherwise relatively easy to decompile.
Or they may not bother, because what are you going to do with that source code anyway? You don't need it to pirate the IDE, there's no secret sauce in there, and you obviously can't use it to make a competitor. There would be very little value in obtaining the code.
.jar files are just specially packaged .zip files for distributing Java programs and libraries.
.class files are Java bytecode.
What source code files are you seeing?
What are the filenames, etc.?
JetBrains's IDE source code would likely be Kotlin (.kt, .kts file extension) or Java (.java file extension) source code files.
They protect their source code by releasing awesome products that developers happily pay for (I do).
Most of it is Open Source and on GitHub, anyway. So you shouldn‘t be surprised to see source code.
The Community edition lacks certain features, though.
Goland has no community version :)
As far as I'm aware, all their IDEs are based on IDEA, almost acting as IDEA+special plugin, so a lot of code will still be the same. Of course, the language-specific stuff is not open, but as others have said, Java bytecode is fairly easily decompiled anyway.
Oh right, I always assume that JetBrains has the same strategy across its tools. Happened not for the first time. Thanks for reminding me!
I remember go being a plugin to intellij idea. Now it's not. Sadly. I wonder how they got over with this plugin having been opensource
You mean that you have opened the class file, and saw the actual source code? Class file is supposed to be object-code (or whatever java calls that) - which can be decompiled (and sometimes even in a meaningful way), but generally it is not supposed to be the source itself...
(I just downloaded goland, and extracted a random jar file, and at least with that, the above paragraph seems to stand)