The Open Source IDE Sharpdevelop 2.0 has been released. This IDE not only allows you to code in c#, VB.NET, and boo, but also offers features you won’t find elsewhere: conversion between the supported programming languages, support for .Net and Mono, Winforms, and GTK#. View the full feature tour or download Sharpdevelop and start into open source development for both Windows and Linux in one IDE.
That’s what I had to say 😉
They made it look exactly like VS2005. I think it’s a great thing.
Realy ?
Could you please give me the link to linux version ?
Actually, if it really is cross-platform, you should be able to use the .exe with Mono. But on the download page it states it needs Microsoft’s .Net Framework.
A clarification: “cross platform” generally means that the compiled output can run on various platforms.
SharpDevelop as such currently runs only on Windows, as mono for now still does not have a 100% winforms implementation though I’m sure this will come. And alas, there still are a few direct system calls that need to be got rid off.
But then – compile on one platform, run on another isn’t half bad. Just imagine that you can just take any Visual Studio project and get it to run on Linux…
…..aaaaaand ?
How does my life change with this ? For a looong time we have Java, we can code easily on ${any_platform}, compile and then run on ${any_other}.
To be frank, there are many better IDEs than VS’05 (IDEA,Eclipse,even Netbeans)..
So,nothing to see here, move along.
But Java is a confused language.
It is said to be fully object orientated, but has primitive data types.
In my opinion, C# is a much nicer version of what Java should have been.
So this is great news for those that like C# and null news for those who like java.
– Jesse McNelis
But Java is a confused language.
It is said to be fully object orientated, but has primitive data types.
In my opinion, C# is a much nicer version of what Java should have been.
Err… C# has no primitive data types? Funny that…
A clarification: “cross platform” generally means that the compiled output can run on various platforms.
SharpDevelop as such currently runs only on Windows, as mono for now still does not have a 100% winforms implementation though I’m sure this will come. And alas, there still are a few direct system calls that need to be got rid off.
Nonsense. If your tool is not crossplatform you get a lot more steps in your development.
– Compile on one platform
– Copy files somewhere where other platform can access it
– Find error
– Go back on development machine and correct error
– Hope that it works and copy again
– Repeat this desperation cycle of hope until it finally works
If tool is crossplatform
– Make it for first platform
– Transfer project to another platform
– Hack on it until it works
And please, DO NOT MIX CROSSPLATFORM AND HALF ASSED CROSSPLATFORM
But then – compile on one platform, run on another isn’t half bad. Just imagine that you can just take any Visual Studio project and get it to run on Linux…
Yep, which would be valid only if you wouldn’t access filesystem, etc. Most of the things need adaption for each and every OS. Those can’t be crossplatform.
btw. Monodevelop more or less already runs on Windows and you can import VS project.
Somebody:
“Nonsense. If your tool is not crossplatform you get a lot more steps in your development.
– Compile on one platform
– Copy files somewhere where other platform can access it
– Find error
– Go back on development machine and correct error
– Hope that it works and copy again
– Repeat this desperation cycle of hope until it finally works “
This is incorrect. You can download/install Mono for Windows, and use Mono, plus GTK#, as the target in SharpDevelop when devleping/compiling/testing/debugging.
Since the resulting executable was targeted to Mono/GTK#, it will run on Mono on Linux/BSD/OSX, etc without alteration.
I’ve done exactly that, and it was quite easy.
No, SharpDevelop itself is not cross platform. But using Mono as the compiler and target platform, SharpDevelop very easily produces cross platform Mono applications.
Personally, I prefer Java as it is fully cross platform, and has full open source implementations/products, and has multi vendor support.
Plus, NetBeans is pretty awesome. Everything works out of the box, it makes it easy to produce Enterprise apps (with EJBs, Servlet/JSP/struts, etc), and the Swing GUI looks and performs great.
Don’t talk to me about Eclipse – I’m not into the self-torture of trying in futility to install and run the buggy, non-working plugins that are required to get any real world work done. Eclipse has some nice features and has an attractive GUI, and it’s plugin architecture is interesting. But it’s figgin hard and frustrating to use it for real world Java work.
I have to give MS big kudos for producing a very very nice language (C#), a very nice runtime (.Net CLR), and very nice dev tools (VS). And I congratulate MS for making C# and the CLI ECMA standards. And I give major kudos to the SharpDevelop team for producing a great, great IDE, that is almost as good as VS, and is fully free and GPL. Finally, I give major, major kudos to the Mono team for producing an awesome cross platform version of C# and the CLR, and for GTK#.
These represent great development tools.
This is incorrect. You can download/install Mono for Windows, and use Mono, plus GTK#, as the target in SharpDevelop when devleping/compiling/testing/debugging.
Nonsense. This would just mean moving my development on Windows and placing my desperation cycle to linux.
You either don’t know what you talk about, or you have really simple needs. In each case, we differentiate.
Since the resulting executable was targeted to Mono/GTK#, it will run on Mono on Linux/BSD/OSX, etc without alteration.
And other parts, like Posix support (especially users and groups, Windows has no equivalent of GetUnixUser for example)? Drastically different on Windows.
Another is accessing the devices.
Yet another is IPC. (Well, you could say “use remoting” or “use serialization”, but I need to connect it to non-.Net apps)
Filesystem incompatibility is just one of simple examples.
All those examples are usualy solved with ifdefs and carefull testing on each platform. Nothing OS specific can be generic as you say. Either like this, or you’ll be writing “Hello world!” all your life
Installing and running Mono is just the first part of application being present on OS. Integrating app in that OS is something completely different. And another feature of your app is that app becomes a good citizen that behaves good with network and other platforms.
I’ve done exactly that, and it was quite easy.
As I already stated, you probably don’t have a lot of needs.
No, SharpDevelop itself is not cross platform. But using Mono as the compiler and target platform, SharpDevelop very easily produces cross platform Mono applications.
As I already said.
Basic cross platform != Cross platform.
But real cross platform gets much easier when your development tool (yes, IDE) is runing as cross platform. Squashing bugs is so much easier.
If what you said would be true, MD would be always running on windows (and it took quite a while to get to some success). You could run banshee, beagle. Why do you think you can’t do that?
Different OS, different lower dependacies to get thing done best.
Different dependancy, different approach.
Different approach, different code.
Don’t talk to me about Eclipse -…
When did I do that??? I said I use MD.
I have to give MS big kudos for producing a very very nice language (C#), a very nice runtime (.Net CLR), and very nice dev tools (VS). And I congratulate MS for making C# and the CLI ECMA standards. And I give major kudos to the SharpDevelop team for producing a great, great IDE, that is almost as good as VS, and is fully free and GPL. Finally, I give major, major kudos to the Mono team for producing an awesome cross platform version of C# and the CLR, and for GTK#.
100% agree. A bit slow for my taste. But as long as I can combine it with C, I don’t care. C# rocks.
These represent great development tools.
As I already stated, anything not cross platform is not for me and my needs. Get over it.
Edited 2006-07-17 17:01
“As I already stated, you probably don’t have a lot of needs.”
You are correct. I’ve only ever done real basic stuff with mono / MD / SD. Just play stuff. Not as simple as “Hello World”, but certainly not anything “real world” or particularily useful.
Mostly, I play around with the stuff both out of curiosity or simply to learn the language (C#).
All of your concerns about true cross platform development, and OS specific stuff, are very legitimate and worthy of consideration. I will have to admit that doing Mono stuff in SD is probably not ready for cross platform prime-time. Also, doind stuff with Mono on Linux is also not ready for cross platform prime-time (as Mono apps like Tomboy, F-spot, Beagle, etc suggest).
For true cross-platform development, there’s Java. But even with Java, the WORA promise is not always completely fullfilled. There are still cross platform testing/tweaking concerns. Then there is QT, with is write once, compile everywhere. But even with QT, there are still OS specific concerns.
Also, doind stuff with Mono on Linux is also not ready for cross platform prime-time (as Mono apps like Tomboy, F-spot, Beagle, etc suggest).
Correction here (you seem to missunderstand my point):
Mono is ready for prime time cross platform.
Gtk is ready for prime time cross platform.
Right question here is: “Were those apps designed as cross platform in the first place?” Answer is, no, they were designed to work best in linux, with being designed as cross platform as in “maybe, when everything works”.
beagle example:
– For best integration in linux beagle uses inotify kernel hook. While it could simply use .Net System.IO.FileSystemWatcher and be cross platform as far as this problem takes, but I guess it is just more effective with inotify.
What would this kind of problem require to integrate in all OSes best:
ifdef Win32
//Use System.IO.FileSystemWatcher
ifdef linux
//Use inotify
ifdef …
//Use best approach in …
else
//Use System.IO.FileSystemWatcher
// You always use safest fallout in the end, it will give you the best result
this is real cross platform work and working on these pieces of code benefit on having cross platform IDE. And another thing about cross platform, you have to decide which parts will be most important to be system specific.
Even java is no better in this viewpoint. You can avoid these problems by choosing toolkits (and java has more of them than .Net, agreed) that already work like mentioned before. This will enable you to use single approach, but at the same time optimized for all OSes.
Then again, for one app? With how many deps will you end up? WORA, SWT, QT, GTK… just solve problems they solve, not all development problems. And failing to another dependancy as soon as first problem arrises is the worst thing you can do. The more dependancies, the more likely for your app to become unportable to some OSes
I will have to admit that doing Mono stuff in SD is probably not ready for cross platform prime-time.
Nope, all its worth goes away as soon as complexity of your app arrises beyond “trying” as you said you do.
Edited 2006-07-17 19:32
Gtk is ready for prime time cross platform.
That’s highly debatable.
That’s highly debatable.
yep, agreed. OSX and gtk do fit together as cow and toilet.
Since my cross-platform is excluding Mac (mostly for my personal reasons and grudges against Apple), I decided on GTK. But you’re right. I used to use wxWidgets, but gtk is so much nicer to work with, and since my only reason for wxWidgets over GTK was gone, I decided on GTK
Questions go for all claiming about SD being cross platform
This is incorrect. You can download/install Mono for Windows, and use Mono, plus GTK#, as the target in SharpDevelop when devleping/compiling/testing/debugging.
sorry for another answer:) but I forgot to ask two questions on this one, and I simply can’t resist.
What makes you think I couldn’t do this with VS? It works there too, just as it does with SD. VS even supports more than one version of mono at the same time.
http://www.mono-project.com/Working_with_Mono_and_Visual_Studio
As for gtk#? Can’t you use it with native .Net? I can. I could simply download http://forge.novell.com/modules/xfmod/project/?gtks-inst4win
and install with common .Net in Windows.
So what would make SD soooo cross platform? All of you were claiming diff between VS and SD is that SD is cross platform, which would lead to the assumption you claim VS is not. (fact: I don’t use VS, I use MD)
p.s. I guess you just willfully took the blue pill
Edited 2006-07-17 18:01
Looks fantastic!
I’m going to check it out ASAP.
Do anyone know if these two projects is working together? It would be kinda sad if they were both implementing the same features, instead of working together and getting a bit more done… 🙂
I’m using MonoDevelop, and I like it. Although the completion (popups with methods etc) doesn’t come up as often as I’d like.
Do anyone know if these two projects is working together? It would be kinda sad if they were both implementing the same features, instead of working together and getting a bit more done… 🙂
No, they aren’t. SD was pure GPL and MD wanted to be more free. Developers started pissing contest long ago and that contest ended in both sides going seaprate ways.
Problem with SD pure-GPL was that you could only develop pure GPL apps as required by its license.
I don’t know under which license SD is now, but I vaugely remember hearing they changed the license. If they have or not, I can’t say.
I’m using MonoDevelop, and I like it. Although the completion (popups with methods etc) doesn’t come up as often as I’d like.
yep.
Another clarification: the GPL allows the output of a GPL’d program to be used under whatever license the user desires – in this case, the compiled program written in SharpDevelop would be licensable any way you want. The point where disagreements with the MonoDevelop people (nice guys, great developers) arose was that changing the SharpDevelop source itself was governed by the GPL at that time. In brief, you couldn’t just change the core or add AddIns under an incompatible license.
Nowadays, SharpDevelop is licensed under the LGPL, making things a bit simpler.
Another clarification: the GPL allows the output of a GPL’d program to be used under whatever license the user desires – in this case, the compiled program written in SharpDevelop would be licensable any way you want. The point where disagreements with the MonoDevelop people (nice guys, great developers) arose was that changing the SharpDevelop source itself was governed by the GPL at that time. In brief, you couldn’t just change the core or add AddIns under an incompatible license.
First I’m mostly OSS devel. But I have no problems with commercial side either.
So, in that time. How could you even compile commercial add-in? You couldn’t link against SD and not taint your work. Making any add-in would mean add-in being separated into two products. One for run-time and one for add-in?
This was making commercial work inherently harder than GPL work. But then again it seems SD guys got the message as you say in your next sentence.
Nowadays, SharpDevelop is licensed under the LGPL, making things a bit simpler.
Correction: not a bit, a lot:)
Great to hear (no joke), but not interested in SD as I stated before. It is not cross platform. Too many steps in cross platform development to be acceptable.
If developers of SD get the “it is not cross platform” message then all I can say is, SD would be worth thinking over. Although I doubt I could leave MD for it. MD is already following the right track from begining, and leaving it for something new, now that it is really becoming viable tool would be like waiting for Linux to be grandma ready from 95′ and leave now for some completely new OS and wait another 10 years.
I use SharpDevelop instead of Visual Studio 2005 at work (among of other tools), because it’s damn fast and it doesn’t eat much resources.
I think that Mono is future for applications – if there’s compatible API and ABI, they can run anywhere if code doesn’t use stupid hacks. Path conversion is not an issue – it can be done on the fly if required.
If you want to know how to code a .NET project, check out SharpDevelop’s source code. It’s a beautifully designed and implemented project.
Most people want ASP.NET applications (people that pay my salary, that is). I wonder when WebForms will come to SharpDevelop? I still do some WinForms, but it is definitely decreasing.
I hope this gets ported soon, finally REAL code completion.
I have searched low and high for half decent code completion on linux, and came up pretty short. VIM had a few plugins that looked promising but they never really amounted to much unfortunatly. I wish someone with skill could create a real code completion library so many editors could use them…
No, tag files do not count