My project is around 20k lines, all located in (more or less) two files.
Before you flame on me: "oh, how can you be so stupid to have these huge files" let me explain: I have the intention of splitting the program into smaller pieces, but I don't want to do it *right now*.
I have not done so so far because, because (in order of importance)
1. Microsoft Visual studio works lightning fast on my project;
2. drop-down suggests work instantaneously;
3. so does jumping between classes/functions;
4. when I define a new class, it takes just a few seconds (in the background, without slowing my other work down!) to refresh its autocomplete list. This is no problem!
5. The debugger is excellent, and displays my "DebugStrings" (containing often 30x7 matrices of rational numbers) properly tabulated.
6. It compiles in less than 5 seconds (the first time I run the IDE it takes about 30 secs; every subsequent run is <5sec).
7. I do not use precompiled headers. I modify my template classes inside the header file all the time.
Is there an IDE in Linux with a similar performance?
-Code::blocks fails the second and fifth point (no drop down list for template class specializations).
-Eclipse fails all *except* the second point and 5th point, in which it works very well.
Cheers and thanks for the discussion!
P.S. Just to stir up the discussion a bit (I am not 100% serious, just around 75%): Microsoft visual studio is the best IDE!
I did a small interface for my program to the web via a CGI application. I wrote it as much in accordance with the online documentation of Apache as I could. It works perfect on my Ubuntu. It doesn't work on my Windows: at some point the "std::cout <<" fails in an unexplainable to me way.
I am so much tired of dealing with inconsistencies that are by no means part of my profession (I am not a programmer and don't want to be), that I refuse to spend the hours needed to debug and make the Windows version work. After all, I plan on running one webserver only, and our university administrator told me it's linux box(es).
Using Visual Basic was no better: it was far worse actually.
And, I have in fact run partial fraction decomposition of size 1.2GB. I am storing all my arrays and their sizes in the most compact form. Whenever I compute, I take small chunks and hash them. This way I don't need to compromise neither speed nor RAM use.
Try doing something like that in Visual basic. You will write twice the number of lines (and get 1/2 the speed).
Imagine you have written a large chunk of code that computes something with coefficients that are double-s.
Suddenly, you get a mathematical idea, that says that you should do precisely the same computation, but with coefficients in a "cyclotomic extension of the rational numbers" (something tough to program, but you can multiply add and divide with elements from it). Each element of a "cyclotomic extension of the rational numbers" is a separate dynamic structure, that allocates memory and has complicated methods within.
In which language you can most quickly reuse your code? I have never tried Fortran, but I am willing to speculate C++ is the best language to do that in.
Any more detailed comments on the original topic: which is the best IDE for linux, or what would you recommend?
I currently write my main code in my windows partition, and use linux only to test my web server CGI interface, which is kinda stupid...
I personally use CodeLite or Code::Blocks but IDE's may not be considered the best angle on Linux.
Also, these are all free software. VS is commercial software with billions of dollars backing it up. The fact that someone could make something comparable to it in their free time makes VS pathetic.
An older coder might suggest that you are WAY to dependent on your tools work flexibly.
NetBeans and Eclipse both seem to be better choices for larger projects. Also, your an idiot for having 20k lines of code in two files, no matter the situation.
Also, your an idiot for having 20k lines of code in two files, no matter the situation.
I think that's a little OTT. I think having 20 kLOC in two files is a bad idea (personally, I create a new directory for each module and then write a Makefile in each directory. Then I have a "master" Makefile that runs the others. Also, I've started writing in C++ again a little because I wanted to use namespaces and classes.).
P.S. Just to stir up the discussion a bit (I am not 100% serious, just around 75%): Microsoft visual studio is the best IDE!
It's definately the best C++ IDE I've ever seen/used. 100% serious.
IDE's may not be considered the best angle on Linux
by masochists, maybe.
Oh wait... Linux.
VS is commercial software with billions of dollars backing it up. The fact that someone could make something comparable to it in their free time makes VS pathetic.
Which is probably exactly why:
1) Nobody has made anything close to VS (except for maybe Eclipse, but I'm not familiar with it's C++ capabilities... and besides that's commercial as well, even if it's available for free)
2) VS isn't pathetic
(I got Eclipse mixed up with NetBeans or whatever the Sun one is. Nevermind)
An older coder might suggest that you are WAY to dependent on your tools work flexibly.
Or perhaps only stubborn coders refuse to use better tools.
When you do things like write your own makefiles, and make a series of batch/bash/whatever files to do this stuff, it's like you're willfully doing things the hard way and making more work for yourself.
Which isn't necessarily a bad thing, if you enjoy it. But that's the whole thing... it's like masochism.
Personally, I find it much easier to just press 'F5' and have the IDE automagically do everything rather than write my own makefiles, figure out exactly what I need to put on the commandline, and all that other BS.
And let's not forget the embedded debugger.
You can always get by with less. But why would you?
Personally, I find it much easier to just press 'F5' and have the IDE automagically do everything rather than write my own makefiles, figure out exactly what I need to put on the commandline, and all that other BS.
I like writing Makefiles, I don't need to "figure out" what to put on the command line ("make all" is fine for me)... however I do feel like having an IDE for a while.
You use autocomplete? Good heavens. Am I the only one here who types the whole thing out every time?
I swear by Visual Studio's Intellisense, do you have any idea how much longer it would take to take to write an application using large third-party libraries without autocomplete? You would spend more time reading documentation then you would code. Sometimes I even find out about convenient overloads I didn't know existed thanks to Intellisense.
I used to be cynical like you, but when I discovered that I code 3 times faster using Intellisense instead of online documentation.
Also, I would like to add to the discussions that Visual Studio's debugger is by far the best debugger out there. Period. The Code Definition window is also pretty convenient to have. These 2 features alone make VS my IDE of choice over even Netbeans (which I consider the best Open Source IDE by A LOT). Not to mention, Visual Studio's C++ compiler generates smaller AND faster code than GCC, and also has much better error messages.
My only really problem with Visual Studio is it's mediocre text-editor (but still better than some), but then again they all have flaws that annoy the pants off of me. With Netbeans having the second best editor, and Eclipse first. IMO
Truth be told, they are all great IDES, there's no point in arguing over which is better because each has so much functionality it depends on the user's opinion of each of those functionalities.
Just try each one for a few small programs and stress test all the different features and options that you personally want/need and stick with the one that just feels better for you.