Page 4 of 4

Posted: Tue Mar 27, 2007 11:33 am
by JusTiCe8
The main default of windows users coming to linux is they don't change their point of view and their though about OS/computing/development process/ressources friendlyness code/... and they don't take time to learn nor to do one thing they never learn to do on windows: read doc !
So they just try a little and say: sucks (translation: it is not what I have "born with", I don't like it) and goes back to windows...

And from my own point of view, IDE is not the right way, cause they just tend to hide lot's of things and doing them not always as they should do.
So I prefer to have an old car, with reliable carburators, than a brand new all automatized, full of electronics, which do what it want to do and don't let me drive as I wish to drive :).

Posted: Tue Mar 27, 2007 2:50 pm
by bigfish
I'm somewhat of a Linux zealot but I do admit that Visual Studio is the best IDE out there. (At least for C and its descendants. And *gag* Visual Basic, not that it matters.) VS2005 can really do some amazing things. (although I've been using it for all of a month now and have already run into one INFURIATING bug!) However, KDevelop is pretty amazing too. It's not as old as VS so it's impossible for it to be as mature as VS but it's getting there. However, for Java development, Eclipse reigns supreme! I've been a long-time fan of vi + gcc + gdb, but I've finally convinced myself to move away from that mentality. IDEs just make everything so much faster. When you're doing professional development or research, speed is the name of the game.

Posted: Tue Mar 27, 2007 6:59 pm
by hybrid
So what's better with Visual than with vim, make, and command line?

Posted: Tue Mar 27, 2007 8:57 pm
by anylo
hybrid wrote:So what's better with Visual than with vim, make, and command line?
"Integrated" MSDN, debugger and code completion etc. small things which made code writing fast and (simple) bug hunting easy.

But on the other hand there was bugs (STL in VC6, some other in recent versions) which were/are quite annoying. There was no proper support for CSV/SVN (this is now probably changed, some SVN addon was released on the last January). And there's no similar tool like Valgrind available for free in Windows (excellent tool, everybody should check it out).

So, Visual Studio makes code writing generally faster and simple bugs can be easily spotted. Unfortunately I haven't been able to evaluate KDevelop enough (work, wife, two kids & wow guarantees that there's no free time to spare) to see how it works in different situations, but so far it looks quite good. And it generates autoconf/make scripts for project automatically which is always nice.

vi, vim, vile

Posted: Tue Mar 27, 2007 9:37 pm
by buhatkj
i HATE vi. vi and all it's descendants/forks stink. vi is for people who think the best interface is NO interface. it hides everything from you. the only way to use it is to either already know how, or spend a bunch of time reading about how to use it. if a piece of software is well designed, the 20% of it's functions that most users need should be blatantly obvious how to use them. the software should work for the user, not the other way around.
this is why linux fails on the desktop, because too many of the people who build and use linux software think its totally Ok to ignore any and all usability concerns.
ive been using linux since 1998, and its gotten a lot better, but it still has a LONG way to go before it could equal or surpass the everyday ease and usability of macOS or windows.

Posted: Tue Mar 27, 2007 11:33 pm
by hybrid
Vim has code completion built in. Just as lots of other things. You just have to know how to use them.
So now to this 20% thingy. I guess that compiler options are a pretty important thing. With command line tools I have them all available in one place, not clicking through dozens of dialogs with irritating descriptions as found in VS. Mouse usage is probably the most disturbing fact of IDEs. I'm usually programming with the keyboard and everything not available via shortcuts or keyboard commands is annoying.
What is still missing is a proper refactoring tool for vim (or does anyone have a solution for that?). Regular expressions and command macros are pretty useful, but cannot do their work semantically correct.

Posted: Wed Mar 28, 2007 12:34 am
by Spintz
  • Visual Studio supports regexp and even simple wildcard searching. Also, allows you to search in the current project, current solution, all open documents, or any folder
  • Supports an Emacs style keyboard interface, and if that's not good enough for you, you can map ANY command in the entire IDE to any key stroke you want.
  • Call browser
  • Right click on #include files and open the header.
  • Right click and go to definition or declaration for functions/variables.
  • Intellisense - has it's problems but works 99% of the time and is easy to recover from if it screws up.
  • If you want to specify command line options for compiling or linking, you can, you don't have to use the GUI for everything.
  • The WYSIWYG editor for visual components is better than ANY other WYSIWYG editor out there.
  • Integrated debugger( and best debugger I've ever used )
  • Collapsable code sections
  • MSDN is better documentation than man pages( and has better examples and is easier to search )
All personal opinion, but I've spent years using Linux and a few more years using Windows.

Posted: Wed Mar 28, 2007 7:44 am
by hybrid
That's the problem with VS: Right click means you have one hand on the mouse. In vim you use CTRL-] to jump to the code section and CTRL-T to go back (on a stack, so you can browse the complete call stack up and down). And buhatkj said he does *not* want to set up all the stuff so I guess configuring the keyboard shortcuts does not count :o
Of course a WYSIWYG GUI editor is not part of vim, but I never made a GUI anyway.

Posted: Wed Mar 28, 2007 12:31 pm
by Spintz
Well, if you want to nitpick, keyboards have a "Right Click" key on them, so you don't need to use the mouse to Right Click anymore.

Again, it's preference, and I would rather have use of a mouse. I've used, VI, Emacs, and many other editors and I can do things MUCH faster with one hand on the keyboard and one hand on the mouse.

Posted: Tue Apr 03, 2007 2:14 am
by steveth45
For what its worth, I use a nightly build of Code::Blocks with OpenSUSE 10.2 at home, and I'm quite pleased with the programming experience. Sure, its no Visual Studio, but it has some things, like a profiler that works amazingly well. With C::B, you can do normal VS style projects and skip the whole Makefile madness, though it supports them if you need it. I enjoy using Linux and programming in Linux, but I agree that the automake system is dreadful, so I don't use it. I keep Windows XP around so I can compile my games for Windows, so my friends can actually play them.

Posted: Tue Apr 03, 2007 11:19 am
by rogerborg
Blech. Are we all familiar with cognitive dissonance? Just because something was hard to learn and has been around for twenty years doesn't make it more valuable than a modern user-friendlier version.

The argument that devs hate Linux DEs because they come from Windows is spurious. I came from a UNIX/vim/make background, and I still hate Linux DEs because that's more or less where they stagnated. I prefer Windows DEs because they do the tasks that I actually want them to do, in a better way than emacs/vim/gdb. Implicit code completion as I type is fine, but the real winner is implicit symbol lookup, so that I can jump around callers and call-ees in the editor much as I'd do it with a call stack in a visual debugger. I actually edit in Source Insight and use command line tools for builds, but you can pry my Visual Studio debugger from my cold dead clammy paws. It's generations ahead of any of the gdb front ends: hover-to-view/hover-to-expand, the ability to effectively call and evaluate an arbitrary function on demand (did you know it could do that?), and compile-and-continue debugging save me hours every day.

I do accept the argument that Windows IDEs hide project options from you. Fine, then hand edit the .dsp/.vcproj/.whatever files. There's nothing to stop you doing that... except cognitive dissonance.

Posted: Tue Apr 03, 2007 3:28 pm
by CuteAlien
@rogerborg: I found it interesting that you did leave out the I of IDE, as this is maybe one the biggest differences between the system. IDEs like VS try to offer as much as possible in one application while the integration part in Linux is in the system itself. Good Linux development tools try to fit in with the whole GNU toolchain. There is some pain in the Linux approach - as gluing together several tools will often lead to some problems (like learning a lot of difference syntactic stuff for each tool), but it's also giving you a lot more flexibility. An advanced IDE might for example have some scripting embedded, but on Linux you can just use any language you like to communicate with most of the tools.

This leads naturally to another way of working. I'll just take your example of "the ability to effectively call and evaluate an arbitrary function on demand". This is certainly a nice feature and i would not complain if it where integrated in Linux IDE's. But what i'm doing in such a case in Linux is the following: I copy&paste the function in a new .cpp file, add main() and maybe one or two includes and just compile it. Starting a new project on linux is as simple as that - and i'm having at least 3-4 consoles open all the time anyway. And i guess it's not really slower this way to start debugging the function. My bonus: I can hack around that function now as much as i like without destroying anything in my main project. And it's usually a lot faster to debug, because i'm working with a single file now. And because i often just keep those files afterwards i'm slowly collecting a folder full of small applications with single functions which sometimes are handy in other projects. You could certainly also open a new project in VS - but i guess you do rarely so simply because it's more overhead.

I don't say it's better for everyone that way - just very different. When you switch from Windows to Linux you often avoid doing stuff like creating scripts with 3 lines, just creating a new project, etc, because you are not yet realizing that these things are easy to do on Linux. Makefiles are similar - yeah they are ugly, hard to read, hard to write. But only at the beginning, because after a while you don't write that much Makefiles anymore. What you do is copy a similar Makefile and change a few lines and suddenly it starts to get a lot faster to set up a new project.

But VS + MinGW running at the same time is also a nice solution combining a lot of power from both worlds ;-)