8 ms·
Nice to see some new powerful C++ tools coming up. Also great that they seem to develop their own analysis code, which is pretty challenging for C++, but if Jet
by captainmuon 13y ago
Nice to see some new powerful C++ tools coming up. Also great that they seem to develop their own analysis code, which is pretty challenging for C++, but if JetBrains doesn't do it, I don't know who would. I was getting a bit worried that we would have a Clang monoculture when it comes to C(++) tools (outside of Microsoft at least: Xcode, Kdevelop, plugins for vim, emacs, sublime text, ... all use clang beneath the hood).
The only problem I have with JetBrains' products is the java UI they use. It never seems to fit into the OS. The mac version looks OK in screenshots but feels foreign when you use it, and the Linux version looks really bad (esp the Fonts). Also it is pretty sluggish - faster than Eclipse and NetBeans of course, but you still feel it's a java IDE beneath it. (Not saying that java based IDEs are neccessarily slow and unpolished, but I never found one that's entirely satisfying).
- oblio 13y agoHave you been using the latest version? Their latest versions have had a huge focus on UX. I think that Idea 13 >> Idea 10, for example.
- captainmuon 13y agoNo, but I will try it again once I get a new laptop. It might also have been an issue of Java versions / Ubuntu versions / Fontconfig settings. I already noticed a big difference, roughly comparing PyCharm when it first came out, and the new experimental Android SDK a few months ago - both based on JetBrains code, the latter was much more polished.
- king_jester 13y agoThe latest release, v13, has moved towards a more agnostic style that keeps a lot of the same widgets but doesn't try to feel like it belongs to any one platform. Definitely give it a try if you haven't used intellij in a few versions.
- rtpg 13y agoA big thing is whether you are using openjdk or Oracle's JDK(IIRC Oracle's makes IntelliJ look a lot better). OpenJDK generally makes interfaces look bad.
- pjmlp 13y ago> ... a Clang monoculture when it comes to C(++) tools ... There are plenty of other C and C++ vendors besides gcc, clang and Microsoft. But yeah, clang seems to be the only pluggable compiler freely available.
- DannyBee 13y agoSorry, he really should have written "gcc, clang, and EDG" monoculture. Are you aware of any significant compilers that use anything other than these as frontends at this point? (microsoft, intel, portland group, comeau, etc all use the EDG C++ frontend) I guess XLC still does (or it did when I was at IBM 7.5 years ago), but not sure they are really still in the running.
- br1 13y agoVisual C++ uses EDG only for the IDE. The compiler still has it's own frontend.
- DannyBee 13y agoPlease tell me they did not put Phoenix out in the wild :)
- pjmlp 13y agoNo, but they are rewriting the frontend to be AST based as well. http://channel9.msdn.com/Shows/C9-GoingNative/GoingNative-21-Visual-C-Front-End-Compiler http://channel9.msdn.com/Shows/C9-GoingNative/GoingNative-21...
- pjmlp 13y ago> Are you aware of any significant compilers that use anything other than these as frontends at this point? Not sure what the embedded and console guys have as frontends.
- DannyBee 13y ago
- thefreeman 13y agoIf you are using it on Linux, make sure to use sun java. I've noticed it performs and looks a lot better then open jdk.
- phaer 13y agoIt has been "Oracle java" for a few years now and that is a political problem for some people, myself included.
- dmiladinov 13y agoThere's also some vmoptions tweaking you can do to increase performance some more.
- smacktoward 13y agoHave JetBrains said anything about possibly addressing these issues? Besides the "ew" factor of using anything labeled "Oracle," Oracle Java has been a right royal pain to install and keep up to date ever since they pulled it out of the various distro repositories. (They provide an RPM for downloading, but not a DEB, which makes life even more fun for Debian/Ubuntu/etc. people like me.) OpenJDK on the other hand is in the repos, and is supposed to be the official Java reference implementation these days anyway (right?), so it seems like at some point it would be good for JetBrains' products to play nice with it...
- Erwin 13y agoI use this PPA: http://www.webupd8.org/2012/01/install-oracle-java-jdk-7-in-ubuntu-via.html http://www.webupd8.org/2012/01/install-oracle-java-jdk-7-in-... -- which has no Java files but can automatically install Java when it gets a new version. It seems decently up to date (though I would recommend never running Java on the web anyway, unless you have to because you live in Denmark).
- Mikeb85 13y agoOpenJDK is more or less on par since version 7.
- option_greek 13y agoHope they port their IDEs to native code. They are sluggish most of the time and freeze pretty bad (during garbage collection ?). That sucks because the functionality they provide is pretty awesome in most of their IDEs (intelli-j, webstorm).
- merry-year 13y agoBuy/build a faster PC?
- captainmuon 13y agoI can only speak for myself, but... I have that option privately, and in that situation I would by a new PC. But I need a C++ IDE at work, not for my hobby...
- diab0lic 13y agoI unfortunately have this same problem, most of the time the IDE works great and it's feature set is most definitely nice. However sometimes it just locks right up / chugs along, especially with the IdeaVIM emulator -- which isn't that satisfying in itself. My machine is plenty fast (a sibling comment on this thread mentioned to another user that it may be the issue). 2.53GHz Xeon (Quad core, hyperthreading) and 24GB of RAM. All of this has left me using vim + terminal for python development, loading up PyCharm community as a glorified debugger.
- sitkack 13y agoI haven't used it in _years_ but this used to be the best and only refactoring editor for C/Java/C++, http://www.xref.sk/xrefactory/main.html http://www.xref.sk/xrefactory/main.html not sure if it is even supported or installable. It ran as a plugin in emacs. Even in 2003-4 it was able to index the entire Linux kernel in a handful of minutes.
- sitkack 13y agoThat used to be a problem for me on a polycarbonate macbook, it has been decent on a quad core i7 and 16GB of ram. If you have specific scenarios that are slow they will be happy to look at them. Jetbrains has always been responsive to the bugs I file, it is making me a little teary eyed.
- kirab 13y agoSo you complain about the most awesome thing which has happened to C++? A tool (libclang) which parses the code 100% the same as the compiler does including all the newest specs and quirks and then outputs more abstract data for IDEs to use. It’s rather strange so many IDE developers waste so much effort to duplicate this C++ parsing algorithms and actually all of them fail at it. Not a single IDE has managed to properly parse C++ templates and C++11/14 features like auto declaration and so on.
- alkonaut 13y agoHilariously no attempts seem to be made to actually sort this out at the language level. Context free grammar anyone? Fear of breaking backwards compatibility is what slowly kills languages eventually. As long as every new version needs to be backwards compaitbile you can only add and deprecate, never remove and fix.
- scott_s 13y agoI don't think it's fair to call captainmuon's comment a "complaint". More hoping for a healthy technical ecosystem. After all, clang is in itself partly a response to the prior gcc monoculture.
- captainmuon 13y agoRight, I do think clang is a godsend. Finally reasonable error messages, modern compiler technology, you can interface it with tools for "intellisense" and syntax highlighting in many editors, ... I have the "pleasure" to work with something called ROOT, which is a data analysis toolkit for particle physics. One major component is the C++ interpreter CINT. Now you can imagine a C++ interpreter is a very bad thing. Subtle differences in execution, scripts that are almost valid C++ code but not quite, etc.. ROOT tried to offload some parsing to GCC via GCC-XML, but IIRC that didn't work so well, and GCC-XML was also doomed for political reasons (RMS didn't want a stable interface to the internals of GCC, so that nobody could interface it with closed-source code). With the new version of ROOT however, they are moving to a clang based interpreter, which means much less bizarre bugs due to corner cases of C++. (originally by Masaharu Goto, which lead to the saying "Masaharu Goto Considered Harmful"... I don't mean to offend that guy though)
- bad_user 13y agoPersonally I'm happy with how IntelliJ IDEA looks on my Mac or on my Ubuntu. It can be sluggish but I've never met an IDE that isn't sluggish and that's worth the price of me not using a text editor such as Emacs. This "Java UI" that they use give them a competitive advantage - it makes it easier for them to support multiple platforms. I'm happy that I get to use the same IDE on multiple OSes, as I routinely use multiple OSes (e.g. for work I now use OS X, for personal projects I'm using Ubuntu Linux and from time to time I use Windows too). What other IDE has a comparable feature set, works on Linux, OS X and Windows and does not suck like Eclipse does?
- TrainedMonkey 13y agoEclipse does not suck, you just need powerful enough box to run it. I use 32 core/256 GB ram workstation.
- aeontech 13y agoIt's kind of traumatising to see those kind of hardware requirements for an IDE :)
- azth 13y agoI think the parent poster was being sarcastic :)
- pjmlp 13y agoExcept when it remembers on a full moon to blow your metadata directory or the broken interaction between its worspace builders and external building tools.
- mtct 13y agoQTCreator
- papaf 13y agoIn my opinion, QTCreator is the one to beat at the moment. Its fast, simple and covers most of the IDE features for C++.
- nly 13y ago> I was getting a bit worried that we would have a Clang monoculture when it comes to C(++) tools ( I know of at least one open source C++ preprocessor using GCCs front-end.
- gcv 13y agoWhich parts of Emacs rely on Clang?
- captainmuon 13y agoNothing, but I think I saw a plugin (or what that's called in emacs land) that uses it for syntax highlighting. I definitely know there are such plugins for vim and sublime. It seems to be pretty easy to interface with clang for such purposes.
- mziulu 13y agoThere is also an auto-complete provider that uses clang for giving completion suggestions. I also think there might be a company-mode backend in the works, though I'm not sure about this one (company-mode is the "official" completion framework for emacs, while auto-complete is the unofficial but most widespread one).
- eonil 13y agoBefore Clang, we had GCC monopoly which was even worse. Situation is getting better.
- madisp 13y agoFor fonts, what really helped it for me on Linux was copying the font and removing all hinting information (as outlined here - http://superuser.com/questions/614960/how-to-fix-font-anti-aliasing-in-intellij-idea-when-using-high-dpi/623596#623596 http://superuser.com/questions/614960/how-to-fix-font-anti-a...)
- sho_hn 13y agoKDevelop doesn't use clang, it has its own C++ parser, template engine and so on. It's true however that KDevelop developers are currently investigating clang as a possible replacement of that implementation, so while your statement is wrong now, it might become true later.
- binarycrusader 13y agoThe Java UI they use is part of what makes it easy for them to have a cross-platform product that works almost anywhere Java does. I also find the "never seems to fit into the OS" argument a bit silly as most of the popular IDEs don't really "fit" either. For example, XCode's UI design is all over the place -- it doesn't match a lot of what users expect from OS X. Visual Studio has screaming uppercase menus and odd controls (among other oddities). Eclipse, well, it's never even come close to looking like a native application. So perhaps the more interesting question I'd ask is what IDE have you used actually feels, looks, and acts like a truly "native" application? In the end, I care more about a usable application that works on the platforms I use consistently then one that works wildly differently on every platform just so it can "feel native".
- Someone 13y agoI think a shared look is important, but a shared feel is more important. That's where the real problems often start. Does your editor know my custom dictionary? Does it have the standard key bindings? My overrides? If the need arises, can I use user interface scripting to drive it? Also, look can be annoying. If, IMO, my favourite font looks ugly in tool X, I'll have to spend hours finding a replacement (yes, that replacement won't be better than the default or than what I chose after three seconds, but it takes hours to admit that/adapt to the idea that that font is OK) And yes, Xcode, Visual Studio a d Eclipse aren't the ideal son in law, either, but that doesn't mean we cannot bash other would be sons in law.
- EdwardDiego 13y ago> The mac version looks OK in screenshots but feels foreign when you use it I use it daily on OS X and it doesn't feel foreign to me, but then I usually hate most of OS X's shipped interfaces anyway (my calendar is still pretending to be made out of leather), so perhaps I'm a poor judge of fit.
- simula67 13y agoI was getting a bit worried that we would have a Clang monoculture when it comes to C(++) tools (outside of Microsoft at least: Xcode, Kdevelop, plugins for vim, emacs, sublime text, ... all use clang beneath the hood) Seems like so does JetBrains ObjectiveC/C++ IDE : http://www.jetbrains.com/objc/features/cpp.html http://www.jetbrains.com/objc/features/cpp.html "The IDE will be integrated with Clang Analyzer, so that more than 2000 code inspections and error diagnostics results from Clang compiler would be shown right in the editor."