IntelliJ IDEA and the whole IntelliJ platform migrates to Java 8
blog.jetbrains.com
blog.jetbrains.com
Nothing about the actual specific topic, which is that one of the most prominent development tools in the Java ecosystem now expects the current Java version to be installed.
Expecting the current version might sound mundane to a Rubyist or Node person (and it might sound like a pipe dream to a wistful Pythonist!). However, it's a pretty big change in the Java world. Backwards compatibility is highly prized...and tool or library authors have always been reluctant to use current language features, for fear of excluding users stuck on old versions.
Back when I was working in "the enterprise world", it wasn't unheard to see shops still stuck on 1.4 long after Java 7 had been released. Up until a few years ago, it was sometimes still a big deal for libraries to start incorporating generics (introduced with Java 5 in 2004).
Java 8 was SUPPOSED to an even bigger shift than Java 5, with an even slower adoption rate. However, for some reason it feels like the opposite is proving true. I'm seeing tools and libraries move to Java 8 shockingly soon compared to past experience.
I wonder why this is. Perhaps after the rocky Java 5 migration, large companies embraced the practice of updating their deployed versions more frequently? Maybe it's Oracle releasing new Java versions every two years now, and being more aggressive about end-of-life'ing the prior versions? Or perhaps it's just that I've been out of the enterprise environment and working for startups instead these past several years, and the situation in large companies is still as conservative and outdated as ever?
I realize that Hacker News skews toward a different industry segment, and it's hard for people outside of the enterprise to fully grasp its horrors. But believe it or not, expecting the current version of Java to be installed on a Java developer's machine is actually a pretty big shift!
I should note that this JDK 8 migration is for EAP releases (ie early alpha/beta versions of the next major release) and that all installers (windows, osx and linux) offered by Jetbrains come with its own JDK bundled in the installer. So if you happen to work in one of those corporate environments, if you manage to get permission to run this IDEA version, you also get the required JRE to execute the ide included.
Or is your question about how JetBrains expects to get permission from the pointyhair bosses to purchase the new IDEA version for their developers in the first place? If that's your question then it's not really JetBrain's business if megacorps decide developer productivity is not worth the money to spend on buying a new copy of IDEA.
EDIT: To be clear, those quirks would exist on your production deployment running java 1.x which is why they may be important to emulate.
So if your corporate overlords allow the IDE itself, you're good.
Because of that, Java 8 is supposed to be a smaller shift than Java 5.
No they are not, as they make use of invokedynamic. Certified JVMs must make use of the opcode and not generate anonymous nested classes, as many think they translate to.
But you're right that certified Java 7 VM must have an invokedynamic opcode.
This is a big part of it.
If you want support for older JDKs, you have to pay Red Hat for OpenJDK support. Which isn't even "real" Java, in the eyes of many companies.
Add in the clamour of major libraries and platforms pushing everyone to go to Java 8 so they can slash great chunks of boilerplate code and it's a smooth ride downhill.
From the above site:
* Direct access to secure versions of older releases of Java SE via My Oracle Support
* Rigorous and on-going regression testing and fixes for EOL’d versions of Java SE
Side note: I am of the opinion that no matter you're doing, SSDs are a must. If you don't already use one as your primary drive, please upgrade. Once you go SSD, any machine with platters will feel broken. This goes double for laptops, which often contain slower 7200RPM and 5400RPM drives.
I suppose I'm asking, have you had _any_ responsiveness problems? Or does it work flawlessly?
I'd like it if IntelliJ was faster, but I don't have many qualms with the current level of performance.
1. This project: https://github.com/Floobits/floobits-intellij
https://visualstudio.uservoice.com/forums/121579-visual-stud...
At least in the case of Visual Studio...I don't hear quite as many people naming IntelliJ as "the best". Not even close.
then there is indeed the PEBCAK as you say, but you can't really blame people that knows the proper solutions if they have weird jdk to support.
- Using a for loop to copy array contents instead of System.arraycopy()
- Doing everything on the main thread in Swing
There are plenty more that I can list and they never have anything to do with JDK versions.
So if anyone is having performance problems, please do check this out.
Depending on the product version the settings dialog is a bit different: https://www.google.com/#q=intellij+exclude+folders
Excluding the log directory is extra important. It's empty when you create the project, but will probably keep growing and gradually slow everything down the more you work.
I primarily write Java in my professional life, using IntelliJ Ultimate Edition. I have to do so on a MacBook Pro with SSD to be productive.
Lately I primarily write Go in my personal life. I use the free IntelliJ Community Edition (with Go plugin only) on all my devices. On a CHROMEBOOK with 2 GB of RAM running Crouton, my experience with Community Edition is almost as snappy as my 16 GB MacBook experience with Ultimate Edition.
You can radically speed up your IntelliJ environment by being more judicious in which plugins you enable. Quite honestly, lately I've wondered why I bother with Ultimate Edition at all... since the only non-free plugins I really use are for HTML and JavaScript support (and even those only rarely). If my company wants to pay for an Ultimate license and a MacBook on which to run it, then I'll gladly use them... but if it were my money I'd probably just stick to Community Edition for my needs.
In fact, I would rather argue that the features on which intellij rules are of superficial nature and have more to do with a "nice feel" (such as more friendly code-completion or better looking graphics/colors).
But features that eclipse rules are more substantial (like performance, ability to work on wide range of projects).
The only reason that intellij appears to have more fanboys is that it doesn't come free. And its human nature that if you spend bucks on something, the free alternative will obviously look inferior to you!
Now yes, lots of people do pay for the ultimate edition, but I'm sure if people thought the free alternate was better, they'd use that over paying for something.
Used Eclipse for 3-4 years when I was a student before discovering Intellij. Haven't gone back to Eclipse since then other than just testing once or twice a year.
Now, when i use eclipse (e.g., conducting a job interview with a candidate), i find it's UI strange, lack of ease of navigation really off putting.
I, too, wish we hadn't switched from Eclipse ADT to Android Studio. It's unfathomable to me how anybody can claim IntelliJ feels faster.
Given that the Google team is also shipping all of the new features for Android development in Android Studio first, you are giving up a whole lot more than just a few nice to have look and feel features by staying on the deprecated dev system.
It was a pain in the ass to learn a new IDE, but as a professional Android developer it was a must to stick with the mainstream toolset.
In my opinion, and every other dev at my shop, our switch to Intellij IDEA was the best thing we ever did, specifically for performance reasons.
A friend of mine started Xelfi -- I'm trying to figure out how awesome my friend is.
I could never get my head around Netbeans, and I never really gave it another chance. Downloaded IntelliJ after it came up in an interview & was hooked ever since then. Happy for Appcode as well.
The smaller IDE's are focused around the specific platform / functionality.
That said I'm still really happy to have intellij available as well for other stuff so I don't mind that much :)
EDIT: Just tried again with 15.0.2 and the PHP and Pycharm plugins and actually it seems way better than it did, setting up various framework specific bits actually worked.
Nice!.
Obviously, IntelliJ IDEA is a polyglot environment so certain things cater to the needs of many platforms and languages, which is why there are some differences in UI, but AFAIK, the core functionality is there.
Having said that, we fully understand that users want to have smaller more focused IDE's based on the specific needs, which is one of the main reasons we started offer the All Products option.
But I do want to stress that the functionality of the different IDE's are via plugins, and that these plugins are available for IntelliJ IDEA, the same day the IDE's are released.
I'm very happy for the universal license, thank you so much for adding it. I love the special editors like WebStorm and PyCharm, and I use IntelliJ IDEA as well. I use them all, regularly.
Minecraft's Windows launcher has actually included Java 8[1] for some time. Even if using your own install though, it should work just fine (or even better).
[1] https://twitter.com/MojangSupport/status/562199004516466689
https://youtrack.jetbrains.com/issue/IDEA-63779
It's disappointing, as I like the tool and would like to adopt it for every-day development.
Can anyone please tell me a reasonably complex GUI program in Java that is actually fast and resource-efficient? Counter-examples include IDEA, Lotus Notes, JDownloader, SAP...
I believe that while Java may be a nice programming language, you import slowness and resource starving of your system by using it.
It's going to take a while until it gains wider acceptance as a production language in commercial projects though.
I've been writing Java for over 15 years and still don't want to write Android apps in any capacity.
It certainly has quirks and issues (as all languages do) but I'd say it'a as 'nice' (if not more so) as most popular languages.
Java certainly feels dated (I know it's trying to catch up).
* GTK and even Qt are criticized for looking non-native or even ugly, and for being limited in their available components.
* Going the Atom route, of embedding Chrome and writing your app in HTML and JavaScript, is daft. The languages are poorly suited for the domain, installer bundles are fat and bloated, and the results are so slow and sluggish that they make Java apps look like assembly in comparison.
* Writing native versions for each target platform multiples the development effort, and the number of issues.
Java isn't perfect (nothing is), but it really does stand up well against the likewise-imperfect alternatives. If you use modern JavaFX, or customize Swing as I believe JetBrains has done, then users really aren't even aware that they're running a Java application (you just admitted to being unaware that IntelliJ was written in Java). Nothing touches Java for ease of cross-platform development, and packaging and deployment is comparatively simple.
If your Java app performs sluggishly, then it probably isn't because of the UI anyway. You're seriously citing a huge IDE, Lotus Notes, and freaking SAP as benchmarks?
Write a web app and distribute said web app with browser runtimes. Either Chromium or Firefox. JavaScript might be a PITA, but you get a highly performant layout/UI engine, styling and portability for free.
Downside is that for stuff not supported in JS, like filesystem I/O or raw socket networking, you'll need either custom bindings or a NodeJS/PHP/... proxy service, but that's imho acceptable.
> If your Java app performs sluggishly, then it probably isn't because of the UI anyway. You're seriously citing a huge IDE, Lotus Notes, and freaking SAP as benchmarks?
These are widely used Java apps, developed by (in case of Notes and SAP) multi-billion dollar companies, and if even these massive resources cannot get speedy apps done, I might think it's the language/runtime environment at fault here.
The most prominent webapp-on-the-desktop example that I can think of is the Atom text editor. It runs like crap, and its installer is roughly 20 TIMES fatter than Notepad++ or Vim's. You could ship the Java-based "jEdit" application, along with a full embedded JVM, and still be 25% lighter.
And the desktop app is written in JavaScript.
If that sounds like a great idea, then there's really nothing else to talk about from here.
set clipboard+=unnamed
That sets IdeaVim to use the system clipboard by default. However, this has the same effects as making vim use the system clipboard by default: for example, executing ci" will pull the text between the quotes onto the system clipboard, overwriting whatever is there. Personally I prefer this behaviour in vim, emacs (with Evil, obviously), and IdeaVim though. YMMV, but it is possible!
The Dvorak issue was specific to the JDK on OS X, according to JetBrains. Perhaps this is also fixed, now that they don't require Java 6. I don't know.
that thing is sweet