JetBrains C++ IDE: Status update and Video report
blog.jetbrains.com
blog.jetbrains.com
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).
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.
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.
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.
http://channel9.msdn.com/Shows/C9-GoingNative/GoingNative-21...
Not sure what the embedded and console guys have as frontends.
I don't have a lot of experience with it. I've used Cilk Plus a few times.
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...
All of this has left me using vim + terminal for python development, loading up PyCharm community as a glorified debugger.
My problem is that the computers I'd like to code on are not the ones I have to code on. At work, I have a computer that is from Q1 2009. It has an Intel dual core (pre "core i") CPU and 2 GB ram, and is running some kind of ancient Scientific Linux (based on CentOS). I also have some code on computers standing on the other side of the atlantic, into which I have to ssh, and then use vi over the net, which is horrible. My portable is a trusty old eeePC that, while great for writing/coding on the go, and doing office stuff, is really painful to use with a modern IDE.
That sucks of course, but it's not going to change soon since I'm a scientist, not a programmer (although I mainly program). And it's not just my university, but apparently a common problem in my field. The crappy state of PCs doesn't affect the runtime of our programs though. We're supposed to run most code on the Grid or on batch systems anyway, which usually have plenty of power. But it's really a problem for productivity, and I wonder what I would be able to do if we had similar resources like industrial programmers.
Btw. at home I have a desktop PC that I bought for gaming some time ago (Intel i5 2500, 8 GB ram, decent GPU, Hackintosh/Win7), and I find myself more and more bringing work home to run on it, because it outperforms anything I have in the lab. On that, of course I have no problem running any IDE I've tested.
Have you tried using sshfs and then running an editor locally? Just don't use a GUI-based file manager on the mounted filesystem (esp. the OSX Finder.) :(
If you can't upgrade your machines, then yes, downgrade your software so it runs at a reasonable speed. There has been a trend, and this is an extreme example, of people using DOS software like wordperfect and turbo c++ in an emulator on modern hardware to get blazingly fast full keyboard navigated apps.
I guess it comes down to a good employer. My employer takes the view that a) give people the tools they need and b) developer time is expensive, computers are cheap in comparison.
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.
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)
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?
I've been using QtCreator full-time now for 6 months and I think it's awesome. I would buy it in a heartbeat, but it's a free download and it's even open source.
A bit of the background behind my need for a VS alternative: For more than a decade I've been using Visual Studio (since VC5 I think), and various other IDE's from Borland/Watcom/MS before that. [...]
http://richg42.blogspot.fr/2013/10/a-shout-out-to-qtcreator-...
Considering how VS is for games developers the gold standard by which all C++ IDEs are measured, this speaks a lot.
I know of at least one open source C++ preprocessor using GCCs front-end.
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".
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.
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.
Seems like so does JetBrains ObjectiveC/C++ IDE :
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."
Very excited to get my hands on this IDE - I might actually start coding C++ again.
Jetbrains, you're my favorite company. You actually pay attention to what people want when you release your software.
Seriously though, this looks great, and dragging C++ dev into the 21st century is something they are probably uniquely placed to take on.
So well done to them!
C++'s grammar is not context free, so you really need a compiler frontend to make sure the refactored code isn't broken.
Its existing C++ smarts are extremely impressive already; the developers are mostly considering libclang to get out of having to maintain their own C++ implementation as time goes on and the language gains more features.
Before anyone feels the need to praise Emacs here: It's been my primary C++ development environment for nearly 15 years. It does it alright, but it's not integrated in the way an IDE is.
It is nice to see them trying.
I wish I could use KDevelop or Xcode, but we're doing our work on Windows (and that's the case in most corporations, because of Outlook...).
And I don't even dream about auto-refactorings, I just want an editor with good code browsing capabilities...
If Python and Java are any indication, and JetBrains continue to invest in that, I bet their C/C++ IDE will be much better than CDT.
Compared to Visual Studio Eclipse CDT is cute at best.
Other than that the refactoring look beautiful. Better tooling definitely makes C++ look like less of a PITA.
I'd be happy to use IntelliJ for everything!
Those plugins can be installed and used in IntelliJ itself, so you can have Java/Ruby/Python/PHP/Javascript/etc support, all in one.
Obviously, you can get much of the same functionality by installing all the relevant plugins in IntelliJ. But, the per-language IDEs are nice in that they are tailored for that specific language. Also, they have a lighter footprint, since the plugins for the other languages are not loaded. And I don't see disabled JRebel buttons, etc. when working on, say, a Python project :).