Best "Visual Studio" Alternative On Linux
Microsoft ISV writes: "We are beginning the next major release of our product,
and we have been a Microsoft ISV for many years. In a
few months Microsoft will be entering our market, and
we wish to hedge our bets by supporting Linux in this
next new major release.
Can you ask your readership what is the best 'Visual
Studio' like IDE for Linux? Especially for an ISV who
will be maintaining the same product on both Windows
and Linux?" Or is there even such a thing?
Vi, well vim (Vi Improved), has a built in tutorial that teaches you how to use it's commands and different modes, it is very handy in getting used to this editor. Just use the command "vimtutor" and off you go... Personally I love this editor as it maximizes the use of screen area, thought I have barely scratched the surface of its functionality.
So what is an ISV ? I get the feeling this is important part of answering this question.
I assume an ISV is providing some sort of add on, plug in, control or whatever that is integrated into a Windows app using the MS IDE ?
So really you're asking what should we target ?
Well target everything. Build libraries. Use the prominent GUI libraries, Motif, QT, Gimp
Maybe this is not your question and you're developing an application in which case I don't see why you need a linux IDE. All you need is a framework that facilitates cross platform development. In this case look at WxWindows or fltk (fast light tool kit). For an example of FLTK see the Palm OS Emulator.
And you hit the escape key with your nose?
The escape key must be positioned more convieniently on the keyboard you use.
Surfing the net and other cliches...
(Who Meta-Meta-Moderates the Meta-Moderators?)
it sucks as a linux dev because the visual translation layer for X (so it looks the same on all platforms) is horribly broken for linux
very bad hope it improves but I dont hold my breath
regards
john jones
vi is a visual editor, isn't that what you're looking for?
Je t'aime Stéphanie
I think he may have meant "Dalek". Just imagine how difficult it must be for an alien bent on destroying the earth (and doing it all with a pleasant English accent) to spell our inferior human languages correctly...
IBM's Eclipse (www.eclipse.org is a possibility but it's more for Java than C++ and it's still fairly new.
And you hit the escape key with your nose?
The escape key must be positioned more convieniently on the keyboard you use.
Yep. In the same way that Emacs users remap a PC keyboard to make Caps Lock be a CTRL key, I (and other vi users) remap Caps Lock to ESC. Even without that, Ctrl-[ is ESC anyway.
I started with Emacs and switched to vi because it's so much less wear and tear on the wrists and it's faster for me.
Sumner
rage, rage against the dying of the light
I've been using vslick for almost 3 years now and have been very satisfied with it. It is a bit pricey, but it is easy to customize and comes with a C-like language for writing custom macros. I've used it mostly for Java development, but it is also the best editor I've used for C and C++. One feature of vslick I have not heard mention is the diff utility. It has the best diff utility I've ever seen. It isn't just a nice GUI diff program - anytime I have to integrate code changes to different code lines or do a 3 way merge between multiple code lines, DIFFzilla is *the* tool to use.
And as the VI pundits like to say, I never have to take my hands off the keyboard when coding in vslick.
I think vslick costs about $200 but in a professional programming environment it pays for itself within a month or two from increased productivity.
Education is a better safeguard of liberty than a standing army.
Edward Everett (1794 - 1865)
Visual SlickEdit is a great gui based editor and it has multiple editor modes such as vi, emacs, windows, etc., but it is not a RAD environment as the poster might be wanting. However, VSE is incredibly easy to integrate into other programs and components as it has SlickC, a C like macro language that allows you to do pretty much anything you want to. I have personally used it to interface with an external GUI layout program (written by the company I worked for then), which then allowed the RAD like editing of code "behind the buttons" as well as syntax highlighting and project management for a language that isn't very common (Dibol). This could very easily be done for many different editors and the GUI layout tools giving the user a selection to mix and match their layout tool with their favorite editor. You can import your existing libraries into the autocompletion and construct handling routines. Oh, and tech support at SlickEdit is rather good, too.
My name fits again.
Other environments may be better looking or follow languages' syntax more closely, but XEmacs certainly is most flexible and gives least amount of distraction to the programmer.
Contrary to the popular belief, there indeed is no God.
Who said anything about VI being easy?
We just said its superior to use ONCE you know it.
Summary:
- Steep learning curve
- Very quick to use, and huge amount of functionality, once you know it.
Yes it will take some learning but its worth it, for those of us that do a lot of text editing.
$sig=$1 if($brain =~
here is some of my advice(do a google search
please try and use the gcc that fits you I recomend a dual gcc2.95 and a dev 3.1.xx or CVS version for intresting results (you will have to use redhats 2.96 if you plan to release to the 7.x as the ABI is differant but they plan 3.x for their 8.x release so it pays to be ahead of the game)
http://anjuta.sourceforge.net is a nice IDE that will help out visual studio freaks it has a GTK interface
http://www.kdevelop.org" is a KDE front end and is more mature and has a QT front end
but seriosly learn vi
this is because it is one of the more comman text editor and WHY because it is VERY good for seraching and writeing documents in plaintext (which I assume is what your C/C++/^*somethinglang%&^ is in)
I have to say writeing to standards helps so try it on solaris and BSD when codeing (three boxs as build machines is not a drain plus people can use these at the same time) all of these are free and run on x86 hardware http://www.sun.com
http://www.netbsd.org
Am I the only one who is ammused by the fact that people think that M$ wont go to linux ?
at the moment this is true but hey server side they have chillisoft doing ASP and the rest is comeing
oh and try out GDB (-;
regards
john jones
On the commercial side, KDE Studio Gold from the Kompany looks to be even better, and they also have Blackadder for Python and Ruby development if you need that. And language legends Borland are in the process of bringing over most of their modern packages including Delphi (confusingly renamed Kylix), Java and C++. Right now, Kylix is available, with C++ Builder and JBuilder coming in the next few months. Again, as long as you stay away from OS specific API calls (that does for Linux and Windows), you can reuse all objects and source with a simple recompile aimed at either Windows or Linux.
--
Evan
"$30 for the One True Ring. $10 each additional ring!" -- JRR "Bob" Tolkien
The problem with Forte is that it is slow as hell. Even on my P3 with a gig of RAM, it's painful.
You pundits just crack me up. You aren't seriously implying that learning vi is as easy as learning Word because they both require some degree of memorization? Yeah, let's use your example... We'll put someone who has never used either VI or Word in front of each and see what happens...
Let's see, person using Word types in "dear mom". Result "dear mom" appears.
Using vi person does the same. Result "r mom" appears.
Person using word eventually figures out to save/print from the file menu. How long does it take for them to figure this out? Depends on the user. But if we're expecting this person is intellectually competent enough that we expect they'd be able to be trained for vi, I'm going to bet learning to use the mouse isn't going to take very long at all.
Person using vi never figures out to hit "ESC:w".
After that, the person wants to make the letter out to dad instead.
In word, they quickly figure out that using the arrow keys and backspace or delete remove the characters "mom" and they can quickly retype "dad".
In vi, the arrow keys work, but they can't seem to delete the characters. Once someone deletes the characters for them, they can't seem to get into insert mode to type in "dad".
How long is it going to be before our hypothetical person can spin out a well written term paper in Word? and vi? How learnable is word campared to vi? How long will it take before the word user figures out ctrl-s is a key shortcut for save because it shows that to you in the menu? If they have trouble making that connection, I find it impossible to believe they would ever learn vi. Perhaps I should have used "vi requires far more memorization" since the amount of "new things unrelated to the users model" in vi is far higher than word or pretty much any newer editor.
Education is a better safeguard of liberty than a standing army.
Edward Everett (1794 - 1865)
Buddy, either you're a brilliant troll or you're really, really messed up in the head.
the people responsible for the IDE on windows (Microsoft v..no realy its a text editor..isual is a responce to them)
have released Borland's Kylix which happens to be very nice if your a pascal/delphi man and want cross dev
regards
john jones
p.s. I put in a few to many BR in the last tinking plain text did not do tags (-;
anjuta.sourceforge.net
I'll admit that I'm biased (! - and who isn't?!) but it is coming along nicely now, and as someone who has to use Windows / Studio at work, I find it quite a comfortable transition. We're still working hard to improve it, it's not there yet (and as a few others have mentioned, KDevelop is probably slightly more "mature" right now, since it has been going longer and may have the larger development team), but the more people use it an propose improvements, the better we can make it.
-Vercingetorix
"Necessitas non habet legem." -St. Augustine
I think that you need to decide how to support a product on both Win32 and Linux before you start to worry about the IDE you'll use.
...)
Which languages are portable between the two (Java, Object Pascal, C++, perl,...) and do they suit your application (you need to tell us that too -- is it a desktop app, web based
If you need a UI, how will you do that? (Swing, QT, Tk...)
Then you can look for the best IDE's for Win32 and Linux for the environment you have chosen.
If it turns out to be vi and make for GNU/Linux, that's OK, as long as the combination of language and UI toolkit you've chosen is otherwise portable.
Tom
I have discovered a wonderful
Watch out, the latest komodo drops spyware!
Time to shut off all of the daemons / helper programs you're running in the background. It's painful with 128 MB RAM (on a K6-3/400) under win98. Bumping that up to 256 and defragging the hard drive made it work pretty nicely. Not as fast as a native app, but pretty darned fast for a relly big java app. I developed several small projects with Forte recently, and, after the memory upgrade, didn't have a problem with it. With the same amoutn of memory in my dual celeron 500 linux box it starts and runs at about the same speed. Therefore, if it's painful on a P3 with 1GB RAM, it's time to fix the broken system, or maybe get lower expectations of a poop language (as far as speed is concerned) like Java. :)
They also make cross-platform development easier, there are some tradeoffs neccisary.
But you don't have to know anything about XML (I don't), and I've also found that GTK and Glade/Gladelib work nicely with C++.
Kylix (or Delphi for Linux as some people call it) has a native code compiler, and CLX, which is Borland's Component Library for Cross Platform, which can be found in both Kylix and Delphi 6. Write once, (tweak a little), then deploy on both Windows and Linux. It also has a very nice interface for RAD development. Kylix uses Object Oriented Turbo Pascal, has a native code compiler, and in my opinion kicks arse. But you know what they say about opinions. People developing open source won't really find this a popular solution because you might have to distribute closed source libraries with it, but if you're developing closed source applications, then this is a moot point. http://www.borland.com/kylix
2 important things come from Berkeley..
BSD and LSD. This is not a coincidence...
//rdj
No one can understand the truth until he drinks of coffee's frothy goodness.
--Sheikh Abd-Al-Kadir, 1587
please, someone enlighten me.
right now, all I can think of is some sort of abbreviation for "a dyslexic idiot".
ed is the standard!
Actually, if you like Pascal you should get ready to buckle down and learn a new language as well.
"I'd crawl over an acre of 'Visual This++' and 'Integrated Development That' to get to gcc, Emacs, and gdb. Thank you."
(By Vance Petree, Virginia Power)
Does vi/(X)Emacs support Code Completion, Class Browser or jump_to_declaration? (not talking about tag-creation beforehand) Is there a possiblity to use this comfortably? I think this are the really comfortable features of VC and Delphi/Kylix. For everything else (GUI aside) gcc is doing the job.
The non-beauty of VI is that the learning curve is steep. Read any UI design guide and you could probably write another book on what VI did wrong. VI is a hold over from a time when everybody worked on dumb terminal TTYs, and its now archaic interface reflects that.
Why isn't ctrl-s mapped to save in vi? Well, that's because ctrl-s is the TTY suspend flow control character. Why isn't ctrl-z mapped to undo? ctrl-z is usually the process suspend control character. VI worked around the limitations of dumb terminals and met the needs of file editing by implementing its modal editing interface.
How do you delete a word in vi? "dw". How do you delete a line in vi? "dd". I see the pattern, so to delete a character you type d... uh... oh wait, you type "x" with no "d". This is inconsistent interface but was done because deleting one character should not take two keystrokes. What if I want to turn two lines into one by deleting the new line character? That's only one character, can I hit x to delete it? If y means "yank" and d means "delete", what does "$" mean? It means "end of line" except sometimes it means "end of file".
VI is full of issues like this. It is unlikely that any user will find that the interface makes sense. People keep saying "you should learn vi" as if reading a book on vi will solve your difficulties. You don't learn vi, you memorize it. Once you have developed the brain and muscle memory behind things like "yanking" instead of copying and ":8,$/foo/s//bar/g" then I'm sure that vi appears to be "easy".
Education is a better safeguard of liberty than a standing army.
Edward Everett (1794 - 1865)
Ditto, while a tad pricey, there is very little (really nothing I can think of, but im sure somebody could name something) that this program can't do. And even then you can use the built in language to make it do it!
pGina, http://www.xpasystems.com - Making the big boys play nice.
If you're speaking strictly from an editing standpoint, you can also check out Code Crusader.
It's not quite a fully featured IDE (its an editor, with function/header/class browsing features and the ability to run/capture compile ouput), but the one upside is that if youre working in an environment with tons of C++ and lots of objects, it's got one of the most kickin' class browsers and method locators I've run into.
If you're also talking about toolkits for GUI for linux/windows, QT is pretty elegant and cross-platform. The look'n'feel of QT's widget set is about as close as it gets to Windows (which, sigh, does have the best ui widget look'n'feel IMHO).
"Old man yells at systemd"
If you like C++, go with KDevelop.
If you prefer C and can do XML, go with a combination of a good editor, gcc and Glade.
If you like Pascal, go with Kylix.
If you like Java, there's Forte (don't know anything about it).
If you like Visual Basic, get ready to buckle down and learn a new language...
Also, consider giving Emacs a whirl. It's scary as all git, but it does just about everything short of fixing you a sandwhich.
--------
Bleah! Heh heh heh... BLEAH BLEAH!!! Ha ha ha ha...
Wrong. "dd" for the whole line, "dw" for the word, and "dl" for the letter. How do you do that with the keyboard in a windows program?
"x" is cut the letter, as in "p" will paste it. Would you feel better about "x" or "p" if you had to hold down the Control key at the same time?
You don't learn vi, you memorize it.
True. Just like any other UI. Put someone who has never used MS Word in front of a machine running it after removing all help files... they will probably be able to type, but anything else is unlikely without at least some windows experience (aka memorization).
C++ builder for linux? where might I see something semi official regarding this?
-- Who is the bigger fool? The fool or the fool who follows him? --
but seriosly learn vi
this is because it is one of the more comman text editor and WHY because it is VERY good for seraching and writeing documents in plaintext (which I assume is what your C/C++/^*somethinglang%&^ is in)
I love vi, but it obviously doesn't help you spell, eh? It's too bad, because an otherwise useful post like this is practically unintelligible when you have to figure out the true meaning of every other word.
The revolution will NOT be televised.
If you're at all language agnostic, there are good offerings that will work on both Windows and Linux, for example Cincom VisualWorks (Smalltalk) and XAnalys Lispworks (Common Lisp), both of which have fine IDEs.
Time to sell your business if Microsoft is entering your area. You will not survive. Did you know that Microsoft can decompile any program written using one of their products (VC++,VB,...). They own your code.
Please someone enlighten me on vi .. for me its the most disturbing edtior i ever meet .. for example the 2 edit modes .. way too confusing. why can't i move curser around ? why del key is not working, etc ?
.. i want a honest answer. I did grew up with wordstar compatible editors (TurboPascal 3 on CP/M .. call me oldtimer ;),
...
I'm not flaming
so my favorite editor is joe now
Their FAQ has the following to say about the relationship between Forte and Netbeans:
The Forte for Java product line is based on NetBeans. Forte for Java Community Edition is a productized version of NetBeans and will continue to be free. The relationship between NetBeans and Forte for Java Community Edition is similar to that between Linux and companies such as Red Hat, Caldera, SuSE, Debian, etc. - a productized version of an open source project.
Cheers //Johan
Installed the Bubblemon yet?
Because vi was invented as Berkeley, where people did a lot of drugs. That pretty much explains everything. Also, Bill Joy is a crackhead. Emacs all the way.
If you haven't tried them already, I would seriously check out the Delphi/Kylix combination. The IDE and the Visual Development tools in particular are IMO a class apart from Visual Studio, and certainly far superior to any of the free tools available. Not to knock the others, but Borland know how to make development tools like nobody else.
:-)
Also the fact that you get sub-second compiles for large projects is rather sweet
Code that you produce with the Borland CLX toolkit should be portable across Linux and Windows. Also, the forthcoming iterations of C++ Builder (essentially Delphi for C++) will be Delphi/Kylix compatible as well. For obvious reasons, Borland have always stayed very Microsoft-compatible and support for things like COM objects, creating DLLs and linking with C/C++ etc. is very good.
The fact that Delphi/Kylix use Object Pascal is frequently raised as an objection which I appreciate may be a concern. However, Object Pascal is a very powerful Pascal derivative that is easy to learn and any competent coder should have no trouble making the transition. I find that I code better in Object Pascal if only because the compiler is much more smart at picking up dubious code.
Even if you don't eventually use Kylix, I would strongly suggest downloading the free Open Edition just to give it a test drive. It's quite an experience that may change your views on how development ought to be done.....
VisualAge for Java takes a few days to get used to, but you'll never go back.
Having the version control tightly integrated and finely grained is sooooo nice.
Disclaimer: I am employeed by IBM.
Lasers Controlled Games!
The beauty of VI is your hands never leave the key board, and you never have to hit 2 keys at once (except maybe shift).
:)
Plus you then add in the power of regular expresion matching and you begin to see the value of vi.
Once practiced in VI you can very rapidly make changes.
Eg Windows Notepad to delete a line:
"HOME" - "SHIFT" and "END" then "Delete"
in VI
"ESC"-"d"-"d"
note that in Notepad you must move your right hand off the keyboard to get to the home,end, and delete keys. Where as VI your hands never leave typing position.
Now add delete two lines:
Notepad: add a down arrow after the delete
vi: add a 2 before the first d.
I really recommend visiting a VI tutorial such as http://www.eng.hawaii.edu/Tutor/vi.html.
And Yes I use WinVi when I have to use Windows
$sig=$1 if($brain =~
To answer the question, I may not be a developer, but I have heard good things about KDevelop.
Although I've never used their products for anything but Mac and Palm development, I've had lots of success with Metrowerks Codewarrior. They have Win32, Mac, Solaris and Linux versions available (...and versions for the PS2, Nintendo 64, etc).
Doh!
Very nice development environment. Runs on linux, solaris, windows, and about half a dozen other platforms. Was not ported to unix as an afterthought. Slickedit definitely helps my productivity. I use it on Linux and on Windows. I am not associated with Microedge, the manufacturer, in any way other than a very satisified customer. http://www.slickedit.com Doug
Komodo from Activestate is very "Visual Studio"-ish and supports PERL, Python, PHP, and a lot more.
You might look at Sun's Forte as well.
Is there a way to do this in just vi/vim, or do you have to modify the base keyboard map?
Sounds damn useful...
is already great.
The next generation of KDevelop will make you forget Studio.
...what's an "ISV"?
Anyway, ignoring that question, as far as Integrated Development Environments go, do they really get any better than Borland's Kylix?
Wouldn't WordXP provide a more suitable comparison?
You speak as if learning a new programming language is a major life change, like changing a career. It can be a pain, and time consuming (which is why I groan whenever I read about a new language), and you wouldn't want to do more than, say, once ever two or three years. But it's not that big a deal. Especially if you have a good IDE to help generate boilerplate code.
In particular, I don't see that much difficulty in shifting from VB to Object Pascal. Once your get past a few basic weirdnesses, things are just not that different. The biggest basic difference is that OP has all the missing OOP features, like inheritance and polymorphism. But that's not important unless you're building your own components.
Your C++ --> KDevelop inference doesn't make any sense either. KDevelop uses the Qt API, which needs language features that C++ doesn't provide -- you have to use the moc preprocessor. Not a big deal, but if you're assuming that programmers are two lazy to learn new language features....
It is true that "big" languages like C++ and Perl have tons of features that it takes years to learn. But how many programmers ever bother?
Hi!
:)
The one thing I mostly miss when using a gcc/make-environment instead of visualC is the ability to inspect values of variables, stack trace, walk into structures and follow pointers to other structures even in templates, etc.. in vitro. This is a very useful ability in VC - you can often find bugs directly just by clicking around a few seconds. GDB certainly doesn't come close to the power of VC here. Are there any projects going on to replace GDB with something stronger, more modern?
I don't care much for breakpoints - printf() and assert() is what I use. I can live very well without the wizards and that crap in VC. But no deacent post-crash debugger wastes plenty of time. Oh, and Intellisense (that godly autocompletion) is a must-must. Once you've used it you can't think about living without it. Just imagine disabling tab-completion or the history in bash, right?
...is "make", with a little bit of vi thrown in.
Oh, and if you're looking for some tips to make tools for Windows programmers, then I'd really like to see something like "MS Edit". Now there's a programming environment.
Last post!
We've been using jEdit at work for about a year now, and we really like it quite a bit. It's java based, so it can be a tad slow on an under powered box. Many, many languges supported, and a boat-load of plugins.
It's kind of nice to have one IDE for C,Java, and PHP.
I can be found at http://www.jedit.org/
"They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety" - BF
"Slow as hell?" It runs ok on my PII-266 laptop w/128 meg of RAM. It really wants at least 256 megs of RAM, but I'd think it would run great on a configuration like yours. James
Since you said you needed to support the same product on Linux and Windows, I suggest that you use Kylix if your product is written in Delphi, or, if it is written in C/C++ (I'm not going to touch VB :-)), I recommend that you use QT because it makes cross plattform development much easier. And PLEASE, stay away from wine if you plan to do more than a quick and dirty port for PR reasons (AKA Corel, MusicMatch,...).
Kylix already has an IDE (a good one), and KDevelop is also good (especially for QT development).
Another choice is Vim.
If you like Pascal, go with Kylix.
Kylix will do more than Pascal...it will do C++ as well.
If you like Java, there's Forte (don't know anything about it).
Isn't there also a Forte C++ compiler/IDE? Or am I thinking of commercial Unix?
My journal has hot
If you give Emacs a honest 2 weeks, it will be repaid. If you give Emacs a year watch out. Forget everything you've heard and try it. Flexibility is its strongest asset. If you want the editor to be able to do something it doesn't do now you can change it.
Over time your Emacs becomes your version of Emacs tailored to your preferences. And speed and convenience are the result.
Try it, you'll like it. Mikie did.
You are not wrong, although vi might beat edlin all the way, it is not suited for modern computers.
Even experienced people using vi are far less eficient than joe & I are at simple task as editing a config file. vi does look as a nice try, but others have succeded in making a fast, powerful editor, yet much easier to learn. WordStar-like editors, like TP4, beat vi all the way, and joe's shortcuts are really useful and easy to learn.
Let's face it, nobody wants to spend more than 10 minutes learning how to use a text editor, time must be spent thinking about your code, not the tool you use.
I think the only reason why vi is still used is that old timers promote its use by not installing a good editor in their systems, while vi is found on every system.
That is sooooo wrong.
Just because it is a pain to learn, it does not mean that you accomplish anything once yo do it. I am yet to find an experienced vi user as fast as I am (not a fast typist, nor an experienced joe user) at editing text.
It is just painful to see them struggle through complicated keystrokes, and modes.
That sounds like a challenge. Lets go.
But seriously. I can't say I'm the most experienced VI user, as I've seen many people faster than myself, but I am faster than anyone else I've seen using another editor.
That said you must use the editor thats right for you. You may be the fastest when using editor X. Then use editor X until you find a reason to do other wise. I only suggest people learn vi because it works for me, and many others.
You be you, I'll use vi.
$sig=$1 if($brain =~