You are not logged in.
Why the hell is the OSS community so fast to embrace C#? Seriously, why not use GCJ, Java-Gnome, etc.? There's already at least one C# virus out there already, and no Java viruses. Java's already well established as a safe high-level language. C#, on the other hand, comes from a company infamous for caring nothing at all about security or stability. Seriously, which one do you think should be used?
And while we're at it, I might as well as add that programs written using using C# and Mono are sloooowwwww...
[/rant]
Offline
*shrugs*
Microsoft is a powerful company with a lot of users and pseudo-developers (real devs don't use MS, of course). A lot of people are learning C# and dot net right now. These people will never switch to Linux if their development environment isn't supported. Then there's the users who might want to port dot net apps to linux.
Its kind of like asking why part of the OSS community supports Java, what's wrong with GCC or Python? There's a lot of Java devs out there.
Having said that, what makes you say the OSS community is embracing C#? I don't know of any Linux apps coded in C#. I'd personally never use one, but that's preference. I don't install Gnome apps as a general rule either.
I'm curious about this statement that there are no Java viruses. I've never thought about it before, but it would be a wonderful way to create a cross platform virus.... wonder how it would work, attack the interpreter, or attack an actual Java application... hmm.
Dusty
Offline
Having said that, what makes you say the OSS community is embracing C#? I don't know of any Linux apps coded in C#. I'd personally never use one, but that's preference. I don't install Gnome apps as a general rule either.
Beagle, Cowbell (I think that's the name anyway - it's an ID3 tagger), Muine, Blam, iFolder, F-Spot, Tomboy, Banshee - all written in C#. There's even a live CD dedicated to Mono-based apps.
Offline
You can write a virus in most languages. Just because there haven't been any (that we know if) in Java doesn't mean it *can't* happen.
I don't know why it's gaining popularity. I expect that like Java, the C# class library is very rich and therefore it can make writing large programs relatively easily. Mono has done a great job of creating an open implementation.
Maybe it's because MS did a good job in designing C#? I don't know, I've never learnt it properly. At the end of the day, as a programmer, you often what to get the task implemented in the most suitable language for that task. Ideology can become a luxary when spare time is scarce.
Offline
I spent some time learning C# before I switched to linux, even spent a bit of time porting some of it's basic objects to PHP It's actually a very nice language, huge class library, good community and it's not too difficult to learn.
C#, on the other hand, comes from a company infamous for caring nothing at all about security or stability
If that was true then they wouldn't be implementing a new permissions system in Vista and for most 2000 and XP are just as stable as my current linux install. Microsoft-bashing is becoming boring, do you have any better arguments?
Offline
Mono should be embraced because it allows use to "stick it to Microsoft" in one more way. Look at it this way: now the Linux community can say to C# devs: "You know, Linux has excellent support for C# through a program called Mono, so there's no need to have Windows".
On the other side of the fence, in a round about way, Mono is supporting Microsoft by extending C# to Linux. It's a two-edged sword I'm afraid, and there aren't any good answers yet.
·¬»· i am shadowhand, powered by webfaction
Offline
Well see, the difference is that people often like to have some free RAM that is not actively in use, and Java is very detrimental to free RAM. C#'s syntax is stupid(too anal with the caps and such), but if it works without slaughtering RAM and people make good stuff with it then who should care?
Offline
Mono is of 'questionable' legality. It could be possible for MS to 'bring the hammer down' on *some* aspects of the C# implementation. C# is an open spec, but like many of MS's 'open specs' parts of it are heavily patented..with a "we will be nice and not sue right now" type lisence.
At least, that is what was told to me a while back. I did some mono devel for web apps (mono c#.net). It is just another language.. I personally dont care for it. But I don't like java anymore either.
"Be conservative in what you send; be liberal in what you accept." -- Postel's Law
"tacos" -- Cactus' Law
"t̥͍͎̪̪͗a̴̻̩͈͚ͨc̠o̩̙͈ͫͅs͙͎̙͊ ͔͇̫̜t͎̳̀a̜̞̗ͩc̗͍͚o̲̯̿s̖̣̤̙͌ ̖̜̈ț̰̫͓ạ̪͖̳c̲͎͕̰̯̃̈o͉ͅs̪ͪ ̜̻̖̜͕" -- -̖͚̫̙̓-̺̠͇ͤ̃ ̜̪̜ͯZ͔̗̭̞ͪA̝͈̙͖̩L͉̠̺͓G̙̞̦͖O̳̗͍
Offline
I personally dont care for it. But I don't like java anymore either.
Dynamic languages have that effect on people. 8)
Dusty
Offline
I agree - way too many people are digging into the C# world. I work in the .NET platform, and have done so for about 5-6 years now (I was working in it while 1.0 was still beta). Personally, I feel it is too restrictive, and a bit clunky. I really don't like certain things, like delegates, for instance, but that's mainly due to the fact that, at heart, I'm a C++ guy, and the "delegate" issue is solved so much more elegantly in C++ with generic programming:
template <typename DelegateType>
void call_delegate(DelegateType& delegate)
{
delegate(12,"hello",2.3); //calls DelegateType(int,const char*, float);
}
Now of course I've neglected some code as this isn't a real delegate, but I wanted to illustrate a point - use a template, you can pass anything you want to "call_delegate", including a class instance, or a function pointer. The compiler will attempt to compile the (12,"hello",2.3) call however it can and if the function params are off, or the class does not support the proper operator()(int,const char*,double) call, compilation fails.
But I'm running around the point here - I think most people latch on to C# for the following reasons:
Many people in the linux world have had touch-and-go C/C++ experience, and have seen gcc errors, and have looked at patches, and seen the source. However, not having experience in something like that, it is hard to pick up. There's alot of nuances to these two which you don't get elsewhere (null references, dangling points, seg faults, memory leaks, etc). When one of these people comes across C#, they see similar syntax to what they're used to, along with none of the "flaws" (I'll hold my tounge here....). Admittedly, Java is the same. However, I seriously think that having "C" in the name draws people to it, along with the fact that, about 5 years ago, java was considered "slow" (it is not slow anymore, but the VM still uses alot of RAM, but then again, python eats up more ram than X for me).
HIJACK!
No matter how much you polish a turd, it's still a turd
I personally like:
"You don't have to eat the whole turd to know it's not a crab cake" - Orson Scott Card, Ender's Shadow
Offline
about 5 years ago, java was considered "slow" (it is not slow anymore, but the VM still uses alot of RAM, but then again, python eats up more ram than X for me).
The JVM is a RAM hog - Sun needs to slim it down a bit, IMHO. I'm not sure how GCJ compares, but the tgz file is 10 megs smaller, so I'm guessing it's probably a bit less of a pig.
(The problem is that GCJ doesn't come with a Mozilla plugin. Not that there's any reason it couldn't, AFAIK.)
BTW, do you guys think there's a dynamic language out there that could replace Java for things like embedded applets on web pages?
Offline
Do we want to replace those? I dont think there is much to be gained from the use of embedded applets. Most applets I have ever seen were for relatively silly things like making webpages look like they have water ripples on them, image mouseover effects, and so forth. Much of that can be easily done in flash these days..
And with the impending advent of svg (which can be programattically updated with javascript, i believe), flash will have some native competition.
I really don't see why applets and activeX were such great things in the first place. If you need an app to interface with an update service (like windows update), then write one!
"Be conservative in what you send; be liberal in what you accept." -- Postel's Law
"tacos" -- Cactus' Law
"t̥͍͎̪̪͗a̴̻̩͈͚ͨc̠o̩̙͈ͫͅs͙͎̙͊ ͔͇̫̜t͎̳̀a̜̞̗ͩc̗͍͚o̲̯̿s̖̣̤̙͌ ̖̜̈ț̰̫͓ạ̪͖̳c̲͎͕̰̯̃̈o͉ͅs̪ͪ ̜̻̖̜͕" -- -̖͚̫̙̓-̺̠͇ͤ̃ ̜̪̜ͯZ͔̗̭̞ͪA̝͈̙͖̩L͉̠̺͓G̙̞̦͖O̳̗͍
Offline
Do we want to replace those? I dont think there is much to be gained from the use of embedded applets.
Yes, I like to replace anykind of a plugin that beats mozillas RAM usage hands down
Most applets I have ever seen were for relatively silly things like making webpages look like they have water ripples on them, image mouseover effects, and so forth. Much of that can be easily done in flash these days..
There are really useful JAVA-Applications in Websites, which come close to
a real application(rather than an applet) eg. http://www.uk.map24.com/
While I must say, Gmaps implementation with JavaScript is also nice.
And with the impending advent of svg (which can be programattically updated with javascript, i believe), flash will have some native competition.
Lately, I was toying around with mtasc and swfmill. This still uses the
proprietary Flash format, but the flexibility is just great! Flash's
performance is imho the biggest advantage when compared with SVG
(speaking of arguments for production issues and not of the fact that Open
Source should be preferred)
-neri
Offline
If your like me and are too lazy for C C++ then C# is a good cheap thrill.
fck art, lets dance.
Offline
[
There are really useful JAVA-Applications in Websites, which come close to
a real application
here's one:
http://online.thinkfree.com/learnmore/index.jsp
I suspect Java webstart will eventually put the need for applet-like applications to the software museum.
Dusty
Offline
My personal experience has been that a Gtk# app is alot quicker then a Java Swing app.
Also, I do believe C# was originally designed by some random startup that Microsoft bought. The C# language is standardized and open. The legal fog is around Windows Forms: The C# wrapper of GDI (or whatever C api windows uses for drawing).
So if microsoft decided to start getting all protective about WinForms, it wouldn't affect apps written in strict C# and Gtk# or whatever.
Also, C# slaps Java around all silly like. C# alows implicit boxing so you can store an int inside an object type and pass it around all happy like. Java you have to cast EVERYTHING. That and the jvm really is slow and clunky.
Just my two cents.
Offline
JVM is a bloody pig, but there are alternate implimentations... Like, for example, GCJ, which Fedora Core uses.
As for startup times - even Muine takes as long to start up as Azureus. Seriously, something needs to be done about these startup times.
Also, let me echo... Why not use Python? Why not use Ruby? Why not use something else, for God's sake?
Offline
Also, C# slaps Java around all silly like. C# alows implicit boxing so you can store an int inside an object type and pass it around all happy like. Java you have to cast EVERYTHING.
That's not true.
dusty:~ $ cat test.java
public class test {
public static void main(String[] args) {
int i = new Integer(5);
Integer I = 6;
System.out.println("i = " + i + "I = " + I);
}
}
dusty:~ $ javac test.java
dusty:~ $ java test
i = 5I = 6
Guess you don't really know much about Java and your 2 cents are worthless.
But Python's better, you don't have to cast anything. ever.
Dusty
Offline
ecoffey wrote:Also, C# slaps Java around all silly like. C# alows implicit boxing so you can store an int inside an object type and pass it around all happy like. Java you have to cast EVERYTHING.
That's not true.
It's also not the right terminology - "boxing" is the MSDN term for "casting" - and, come on, if they had to invent a new term for it, it's bad.
boxing:
System.Something.MyBaseType mbt = ((System.Something.MyBaseType)myDerivedThing);
Offline
It's also not the right terminology - "boxing" is the MSDN term for "casting" - and, come on, if they had to invent a new term for it
Then they can claim they invented it
fck art, lets dance.
Offline
I'm a programmer, and i have tried C# for some time, and i think it is nice when you do gui-programs like Beagle or something...
But for programs that are using C-libraries it doesn't feel right for me...
So i'm a little sceptic about mono
When death smiles at you, all you can do is smile back!
Blog
Offline
I'm a programmer, and i have tried C# for some time, and i think it is nice when you do gui-programs like Beagle or something...
But for programs that are using C-libraries it doesn't feel right for me...
So i'm a little sceptic about mono
Well ther is a project out there which tries to combine thos two:
mono for the GUI and gstreamer for the operations, It's called diva iirc.
(i havn't tried it, yet)
-neri
Offline
It's also not the right terminology - "boxing" is the MSDN term for "casting" - and, come on, if they had to invent a new term for it, it's bad.
Boxing refers to the storing of a primitive data type within an object. Not just casting. Autoboxing hides this from the developer.
Also, I do believe C# was originally designed by some random startup that Microsoft bought.
Really? I was always under the impression that Anders Hejlsberg designed it.
Offline
It's also not the right terminology - "boxing" is the MSDN term for "casting" - and, come on, if they had to invent a new term for it, it's bad.
*cough* in python arrays are called lists *coughs*
*cough* in python hashes are called dictionaries *coughs*
"Be conservative in what you send; be liberal in what you accept." -- Postel's Law
"tacos" -- Cactus' Law
"t̥͍͎̪̪͗a̴̻̩͈͚ͨc̠o̩̙͈ͫͅs͙͎̙͊ ͔͇̫̜t͎̳̀a̜̞̗ͩc̗͍͚o̲̯̿s̖̣̤̙͌ ̖̜̈ț̰̫͓ạ̪͖̳c̲͎͕̰̯̃̈o͉ͅs̪ͪ ̜̻̖̜͕" -- -̖͚̫̙̓-̺̠͇ͤ̃ ̜̪̜ͯZ͔̗̭̞ͪA̝͈̙͖̩L͉̠̺͓G̙̞̦͖O̳̗͍
Offline