Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
IntelliJ IDEA and the whole IntelliJ platform migrates to Java 8 (jetbrains.com)
184 points by ingve on Jan 3, 2016 | hide | past | favorite | 137 comments


Interesting that all of the discussion is rambling about IntelliJ in general (e.g. Is it slow? Is it better than this other IDE? Ermagherd, Java sucks! Etc).

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?


Honest question: why is backward compatibility an issue for development machines? It's an IDE, right, so you will still be able to edit the project that is backwards-compatible with 1.4 with it?


Intellij can be configured to target older versions of the Java language (so it will basically error if you use newer language constructs than the ones you've set) but I can imagine that it might be very difficult for you to capture quirks of java 1.x if you're using java 1.y. Difficult enough that most developers would just decide they haven't time for the trouble and install an old, unsupported, and insecure version of the jvm on their work machine.

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.


It affects development of huge ecosystem of plugins for IntelliJ.


The IDE itself uses Java 8. You can still work on projects that utilize previous versions of Java.


Just like you could have Java 8 projects before this change.


I believe that, with JetBrains tools, it installs its own JRE as part of the product installation (at least it does for RubyMine on OS X).

So if your corporate overlords allow the IDE itself, you're good.


They just started doing that this year


There's been 8 years between Java 1.0 and Java 5. It was probably too many release for the enterprise world. It took TEN years from Java 5 to Java 8. It was probably due to the gap of Java 7 when Oracle bought Sun. Companies are also much more used to auto-upgradable software now, and the Moore law is over for desktops, hence everyone was awaiting for the Java 8 upgrade.


> Maybe it's Oracle releasing new Java versions every two years now, and being more aggressive about end-of-life'ing the prior versions?

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.


You can also buy support directly from Oracle: http://www.oracle.com/us/technologies/java/standard-edition/...

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


You're absolutely right. I always forget this one.


"Java 8 was SUPPOSED to an even bigger shift than Java 5" No, it's not, Java 8 is mostly lambdas and unlike generics which requires coordinate effort between the client side and the API side, lambdas are just syntactic sugar at client side and plain old interfaces at API side.

Because of that, Java 8 is supposed to be a smaller shift than Java 5.


> lambdas are just syntactic sugar at client side

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.


No, invokedynamic is not mandatory for lambda. It's a proposed translation, which has the advantage to make lambdas that do not capture values to be seen as constant by the VM.

But you're right that certified Java 7 VM must have an invokedynamic opcode.


But at the library API level it's a much smaller mandatory change.


You can use latest Idea to write code on Java 1.4, I guess. The topic is about JRE used to launch Idea itself. You can use any JRE to launch your projects from Idea.


Sure, but developers in the corporate enterprise world often don't have control over the software installed on their workstations.

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 understand and agree that in corporate enterprise you usually do not control which software is installed in your workstation.

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.


IDEA comes with its own JDK bundled, so if you have permission to run IDEA, you have the updated Java (installed to the subdirectory that IDEA resides in, nonconflicting with the system JRE). What's so hard about that?

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.


I really like the IntelliJ products (especially PHPStorm with the Symfony2 plugins, PyCharm, etc) but you really need a 'beefy' computer to run it properly. SSDs are a must.


Maybe your performance issues are caused by plugins? I have no problems using IntelliJ on a base model 12" MacBook (1.1GHz Core M, 8GB RAM, 256GB PCIe SSD). I don't use Symfony2, though.

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'm on a ~5 year old Thinkpad (w/ an i5-520m; apparently it benches to roughly the same as the M-5Y31 that's probably in your macbook), but IDEA pins a couple cores on my processor to 100% for half a minute whenever it opens a project and incurs a noticeable delay when tabbing to and from its window. Compared to my work machine, IntelliJ truly crawls.

I suppose I'm asking, have you had _any_ responsiveness problems? Or does it work flawlessly?


How much heap are you allocating? I was seeing unusually poor performance while working with a large project until I bumped the heap up to 4-6g. It still takes a minute when I open the project but is pretty performant otherwise. Also, I've had to invalidate the cache a couple of times when idea was behaving strangely (over a 5 yr or so period)


Good suggestion; I've cranked it up to 5 GB from the default (0.75, iirc) in case the problems were stemming from the garbage collector spinning. Haven't tried it out yet, but thanks :)


5GB could potentially have a detrimental impact as well, instead of there not being enough memory and causing the GC to have to run aggressively you may simply be causing the GC to pause longer when it runs due to a larger heap of dead objects (the default GC is really bad here, G1 is a lot better). Try starting with 1-2GB, increase past if really necessary (it's been more than enough for me, personally).


In practice it seems to be hovering at around 1-2 anyways. On a side note, I really hate that the JVM requires users to be aware of its heap tuning parameters :/


One of the reasons why Java is largely relegated as a server-side language, I feel. I write WPF apps on .Net and I never have to worry about what I need to set for my heap size because the frameworks garbage collector just works as I'd expect it to - do the same thing with JavaFX and I feel like tearing my hair out.


I just timed it, and IntelliJ 15.0.2 took 27 seconds to start up, load a project[1], and finish indexing it. The UI was visible after 17 seconds. As soon as they appeared, UI elements worked fine. I notice no delay or lag when ⌘ + tabbing to IntelliJ.

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


Well, startup time aside, it seems like increasing the memory has done the trick? Or it may have all been some subjective nonsense to begin with. In any case, it is at least practice at being patient :)


Is it a big project? In PyCharm at least, the indexing is pretty slow even on my beefier machines. Once that's done it's smooth.


runs flawlessly for me on my 8~ yr old device (some AMD quad core thing). Boot ups are always a bit of a crunch, but afterwards its one of the best performing IDEs I've ever used.


I'm running WebStorm on the same machine, and haven't noticed it being too slow.


Your issues are related to the number of plugins being loaded.

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.


Similar experience. I usually use IntelliJ in my Macbook. But when I had to code on an enterprise laptop with 4 GB RAM (with many enterprise bloatware), I was surprised IntelliJ performed so well. That too, I was working on 10 modules.


Great advice. I have the "everything" JetBrains license but I still keep an up to date community edition IntelliJ installed with no plugins but Clojure - definitely plugins that are not used should not be installed.


If the project is not enormous a simple hard disk is ok. A lot of RAM is much more important than SSD. Sure indexing the first time takes enough time for you to go grab a coffee but otherwise it runs pretty fast.


That's not unusual for any app based on the JVM.


Reminds me of the time I installed Visual Studio 2015. That pig sprayed over 30 GB of files onto my HDD and still needed 3rd party plugins to be on the same level as IntelliJ.


That's a bit excessive, did you install all of the vs stuff (all languages & tools including c++, office dev tools, silverlight, light switch etc)? If you just choose C# it's a bit better (though still big). And yes you still need Resharper, ironically made by JetBrains, for it to be on the level of IntelliJ.


VS2015's installer is notoriously uncustomisable - it installs a bunch of useless stuff without letting you choose.

https://visualstudio.uservoice.com/forums/121579-visual-stud...


It's amazing how one man's "pig" can be a ton of other people's "best IDE that there is".

At least in the case of Visual Studio...I don't hear quite as many people naming IntelliJ as "the best". Not even close.


The only people I hear calling Visual Studio "the best" are usually .NET developers. Considering their lack of choices I'm not surprised.


Anecdotal counterpoint: I develop java and python at work, C# and C++ at home, use / have used Eclipse, IntelliJ, ST + plugins, vim, Visual Studio Code, and Visual Studio for development. Of all of the above, I've found that Visual Studio is by far the most pleasant to work in environment (for C# and C++), hands down.


That has nothing to do with the JVM. It's simply a result of it being a very feature-rich IDE.


It may. Java io stack is quite bad at certain tasks like crawling files and tracking changes.


On my experience, the blame is more between chair, keyboard and monitor than with JVM itself, given the typical codebases I have to review for quality issues.


eh, any app that maintains compatibility with jdks < 7 can't use the WatchService and it's low level system specific API, which includes buttload of enterprise app and but the most recents IDE that are starting to drop jdk 6 support.

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.


Just two examples of such PEBCAK quality:

- 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.


That problem was solved in the JDK five years ago. If you're required to support a ten-year-old, EOL-ed platform because people don't upgrade, that's still not the JVM's fault...


If it were for rational people, we wouldn't have spring beans application around. World isn't built on technical excellence.


Java UI is sluggish and looks strange unlike OS native UIs.


To speed up IntelliJ products, immediately open Settings -> Directories and exclude all unnecessary folders. Otherwise a crawler background process will indexes every file, and it consumes a lot of CPU and IO resources.


In one extreme example, my project was a scraper that scraped in 80k images or so, and IntelliJ was essentially unusable until I did this (16 gig of ram, SSD, i7 quad core etc), and completely fine afterwards.

So if anyone is having performance problems, please do check this out.


what kind of scraping project was it?


Steam sales - I posted it here a while back. Clojure + Reagent site - http://www.hydralist.com


In my RubyMine, it's named "Project Structure".

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.


Great advice! I need to exclude large data-only folders in my project directories and if I sometimes forget to do this then the IDE is not as performant.


Got any more detailed instructions for this? I'm running the OSX version of IntelliJ, I can't see this option anywhere


File -> Settings -> search for "direct"

Depending on the product version the settings dialog is a bit different: https://www.google.com/#q=intellij+exclude+folders


Right click the directory -> mark directory as -> excluded.


Call me old, but I still use eclipse even for android programming (using the ADT plugin). Every IDE has pros/cons, and both eclipse and intellij have their shares, but if you consider the big picture, they mostly even out.

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!


Most Intellij IDEA users (including myself) are former Eclipse users. Could I go back to Eclipse? Sure, but I wouldn't be as productive with it as I am using Intellij. I found myself fighting the UI and configuration way more with Eclipse than I have with Intellij. This might not be an issue if using 1-2 programming languages, but if using more than that, it gets pretty tedious in Eclipse.

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.


i have the exact same experience. Used to use vim as my editor for doing coding excercises for classes - switched to eclipse for bigger class projects. Started working, and got a chance to try out intellij (when it was at intellij 7!), and was blown away at the order of magitude productivity increase (which, i had to put some effort learning a lot of the shortcut keys, but was well worth it).

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.


Just anecdotal obviously, but most of the people I know just use the community edition. That's free, so the money argument doesn't seem to make sense there.

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.


Most of the folks at my work just use the free version of IntelliJ instead of bothering to get a license from IT. Not sure your argument about it being $$ driven holds water


Eclipse is not what I would call the paramount of performance.


Eclipse has gotten quite a bit better over the past couple of years. If you haven't tried it in a while, try again.


Second that. I had a few issues with trying out mars, but I use kepler daily and it simply rocks on Ubuntu 14.04!


In my experience, Eclipse performs far better than IntelliJ and the UI is more responsive. Probably because Eclipse uses SWT instead of Swing (which has another benefits as well, like better font rendering in OS X).


IntelliJ IDEA 2015 actually improved their font rendering to look as good as with SWT – I have no idea how they did it, though.


I don't like it that much, but it surely beats Android Studio on the same hardware.


Hmm, how does that work? Does Eclipse now have meaningful Gradle or Maven integration for Android so you can finally use AAR libraries?


> Call me old, but I still use eclipse even for android programming (using the ADT plugin).

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.


As a former Eclipse+ADT user, the key advantage of IntelliJ is stability. Eclipse+ADT crashed daily for me. IntelliJ might crash once a month.

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.


Ironically enough I finally caved and bought a sublime text license a few months ago but since then I've learned vim and mostly use that now.


Same for me, used it without a license for several years and then two months after I finally bought one, I switched to Emacs. It also seems like development of ST3 has once again ground to a halt, no new beta releases since July.


The biggest thing I like about intellij over eclipse is that it uses the java and maven versions I want it to, instead of ecj and a bundled maven. This probably doesn't affect many, but was constantly a problem on some weird legacy projects I worked on. I agree that the other differences are largely superficial. (I've yet to pay for intellij)


>But features that eclipse rules are more substantial (like performance, ability to work on wide range of projects).

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.


Explain like I'm five: Does this mean that IntelliJ IDEA will get faster?


I can't comment on performance but it definitely allows for easier plugin development. Another thing I think this affects is some things like font rendering (e.g. you can now use ligatures if your font supports them) since they use their own custom JDK.


HN != Reddit.


you're right. on reddit they would have answered his question instead of giving a snarky response like yours.


HN readers are not five years old; increasingly reductive questions don't help anyone.


Downvoted again; try looking at it this way. Does the question need to be answered in such a way to be understandable by a five year-old? Does the question actually need to be prefixed in such a way? No, and no? Then let's not get drawn in to making people think for themselves less and expect a little more of them instead - this is how learning and real growth works.


Does anyone know if there was some relationship between Jetbrains & Netbeans? Netbeans started as Xelfi in Prague mid 90s. Jetbrains is also based in Prague.

A friend of mine started Xelfi -- I'm trying to figure out how awesome my friend is.


There was no relation between them. Java was hot back at the time, many companies jumped in.


Netbeans is actually a great IDE, and no doubt has come a long way. It works well "out of the box" compared to Eclipse, and feels lighter than IntelliJ but still comes with tons of project templates that actually work well without further customization.


My friend is pretty awesome -- both as a coder & a great all around guy. Very fortunate to have met him & it made living in Prague much more interesting & fun for a nerd like me back in those days.

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.


I still can't seem to figure out: can IDEA + plugins = PyCharm & RubyMine & PHPStorm & WebStorm?


No, they can't. The special versions of their editors do things that are not possible in a plugin because of how much the UI changes the editor. The good news is that you can now get a license for all of the intellij based IDEs. It's not cheap, but worth it.


That's actually not correct. The functionality of all IDE's we have (with exception of AppCode and CLion) can be obtained via plugins on IntelliJ IDEA.

The smaller IDE's are focused around the specific platform / functionality.


In theory yes, in practice on a project that uses both PHP and Python I find that having phpstorm and pycharm open on different parts still feels better than having intellij w/ plugins, I have the "full" package so I gave it a try.

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!.


Sorry hari, I love intellij and the work you do there, but I do not believe you. Please show me an IntelliJ IDEA that looks and behaves exactly like webstorm and pycharm just with plugins. You can't. For example Pycharm doesn't even have a project settings option. What plugin gives you that?


Are you asking if IntelliJ IDEA can look like PyCharm? If that's the case, no, it can't. Each IDE is somewhat tailored to the specifics of the framework/language/platform as I mentioned, but the functionality that they provide is available as plugins. For instance with WebStorm you can have node.js, angular.js plugins installed in IntelliJ IDEA and get the same features.

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.


Sure, and the UI differences become a big problem though when you want to set something up and cannot find the available documentation for intellij IDEA. The instructions will only be for Pycharm and making the translation of where to find the resource in Pycharm to how to find it in IntelliJ via the plugin can be considerably challening. In addition the special editors also seem to have sane default options added in places. I don't have a specific example, but I remember having trouble setting up a django project in intellij, giving up and buying Pycharm and doing it that way.

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.


It comes about 95% of the way. The plugins usually lag slightly behind the individual IDEs and their are some minor UI tweaks.


They usually do not lag behind. They are made available as plugins the same day that the IDE is released.


Kind of. The core functionality is the same but the plugins generally lag behind the functionality of the focused IDEs by around one major release. Additionally there are some general tweaks to the UI such that the overall experience is more streamlined with the focused IDEs.


Yeah, if you have the ultimate edition, you can get plugins to do pretty much what all their other products do. Except for maybe AppCode.


As someone who is about to heavily start using the Cursive IDE (built on top of IntelliJ IDEA), this is wonderful news. Coming from a frontend web dev background, Java 6 has been a layer of slime at the bottom of the barrel of sweet wine that is Clojure. Now, as soon as Minecraft gets off Java 6, I can rid my system of that infernal scourge.

https://cursive-ide.com


>Now, as soon as Minecraft gets off Java 6, I can rid my system of that infernal scourge.

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


Cursive is great, glad to see it mentioned. JetBrains are doing good for themselves, I hope their Kotlin language will gain some traction eventually too. Cursive is amazing because it's built on top of open source IDEA but I'd like to see Kotlin take off as well. Overall I think JetBrains are doing great.


Have you upgraded to the new Minecraft launcher? It bundles its own JRE, and I'm pretty sure it's Java 7.


Current bundled Java version is 1.8.0_25.


Cue the Java haters in 3, 2, 1


I've given it a whirl, but it looks like their handling of non-English/Qwerty keyboard layouts is as broken as ever:

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.


As an end user of IDEA, not writing any plugins and already got java 8 installed, will i notice anything by this?


This is awesome news. Hopefully this means I won't have to edit my Info.plist file with every update now.


Java as base platform? Shit, didn't know that, and it totally explains the slowness on anything <8GB and spinning rust instead of a HDD.

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.


I'm not so much arguing as I am simply asking... what would you recommend instead for cross-platform desktop app development?

* 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?


I find C#/.NET and Xamarin to be comparable for developing cross-platform desktop applications. This allows a single codebase that interacts with native libraries and APIs for each major operating system as well as a native looking GUI for each.


Can you name any desktop app written in C#/.NET or Xamarin that looks decent, on Linux and/or OS X?


I actually have a lot of respect for C#, but isn't their cross-platform desktop story basically just GTK?


> what would you recommend instead for cross-platform desktop app development?

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.


I addressed your idea specifically in the parent comment.

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.


Occasional slowness is probably not caused by Java, but by background code inspections and indexing. Try setting IntelliJ (and RubyMine, etc.) on mobile/energy saving mode and you will have a faster experience, but with less functionality.


I right now I am switching back and forth betweeen doing Java 8 in IntelliJ and Swift in XCode. And IntelliJ is not the one that is slow and heavy.


I agree with that. After working with it for long time Java as a language / platform encourage super bloated applications. If IBM / Oracle's code is bloated and memory hungry and including core Java libraries then its mostly Java problem at root not the developer problem.


You can make it MUCH faster by adjusting the VM settings if you want. They set the config as low as possible (because I guess some developer may have a low end machine)


Hm, I write Java for a living (Android) and Java being a nice language would be one of the last things about it to come to my mind...


Android is mostly the Android APIs and 'way of doing things' though. It certainly isn't the same as desktop or Enterprise Java.

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.


Well, maybe, but that's because the most popular languages happen not to overlap with particularly nice ones ;)

Java certainly feels dated (I know it's trying to catch up).


Have you looked at using Kotlin instead?


Yes! Much of an improvement, definitely. Especially since it approaches maturity now.

It's going to take a while until it gains wider acceptance as a production language in commercial projects though.


now just embed neovim and make it awesome.


IdeaVim [0], a free plugin, is the best vim emulator I've ever used.

[0] https://github.com/JetBrains/ideavim


I agree. IdeaVim is the best Vim emulator I've used as well. However, it is still just an emulator and it lacks some Vim features that I use all the time. IdeaVim is very good, but not as good as having NeoVim embedded would be, I think.


I'm curious, what features?


I don't remember all of the issues I had with IdeaVim, but remapping the leader key was one (though I understand this has been fixed), issues with key mapping and the Dvorak keyboard layout, relative line numbering, etc. There were several other issues with key combinations I like using in Vim that didn't work in IdeaVim, but it has been a while and I don't remember what they were.

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.


Seconded. IdeaVim is incredible. It's been close to 1:1 parity with the vim features I need.


It just ruins Command+C and Command+V for me. Yes, I understand I can go into visual mode and use 'y' and 'p' but what if I want to paste from the system clipboard rather than the IdeaVim clipboard? Command+V simply just doesn't work and 'p' obviously contains the IdeaVim clipboard buffer.


$ cat ~/.ideavimrc

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!


Super helpful! Thanks for the tip


IntelliJ reminds me of ramp up prior to Firefox 3.5, forever announcing performance increases which never seem tangible. However we're at Firefox 43 now and it seems to have delivered on the 3.5 promises, I still hold out hold for IntelliJ perhaps nearer v20. Damn shame atm though as Cursive Clojure looks awesome.


The Firefox performance increases were (are?) tangible. I don't really remember which version first delivered them, but a long time ago I used Opera (9?) because it was much faster when opening a lot of tabs. Then Firefox became a lot more responsive.


pl0x (plz) bring the clion features (refactor and more) to the go ide/plugin

that thing is sweet




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: