Archived

This topic is now archived and is closed to further replies.

On D, Linux, and .NET...

This topic is 5125 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

This may seem a little pretentious at first, but sometimes you have a hunch that you have to talk about. I think that in 3-5 years time, C# will overtake C/C++ on Windows. Rightfully so, I might add, and this is nothing new. Longhorn''s adoption will definitely increase the acceptance rate. I do feel that this poses a big threat to Linux application development. C# is more elegant and thought-out than C++ hopes to be, and it seems like the Linux community doesn''t have a language that match up quite as well. I think that maybe D will be that language. Once D support is in gcc then people may start becoming interested in it. D is pretty similar to C# (from a cursory glance) but runs on Linux. I think what Linux needs is something similar to the .NET class libraries. Ready-made components that are well-designed and completely free. Qt seems to be the best that Linux has to offer, and it is C++-based. I can''t help but feel that Qt''s need to support ancient compilers held them back (think of the MOC implementation of signals and slots when Boost does it fine with native C++). This is one reason I think it is better just to go on with D instead of continuing to bolt solutions onto a crusty language. I will continue to research and talk to people about this, but I wanted to get some commentary from people here as well.

Share this post


Link to post
Share on other sites
I am a happy user of C# - on Linux.

The Mono project (www.go-mono.com), a .NET implementation effort for Linux and other OS-es, is already far on its way to became mature. I have to say, since version .24 I never had any serious problem with it.

GTK# is a very very nice toolkit for making graphical user interfaces for both Windows and Linux, and it adapts to the visual style of the os (that is, GTK on Linux and native Windows on Windows).

For 2D game programming, SDL.NET is quite good already. I have commited some patches to make it binary compatible on both Windows and Linux, so one can ship the original DLL for both OS-es.

Thw only thing I am currently worried about is OpenGL. I really would like to see some simple OpenGL wrapper for .NET, that works without a native dll/so's (except for OpenGL itself ofcourse) on Windows and Linux.

Oh, 1 thing. My simple 2D demo (www.wpws.nl/~sijmen/sneeuw-0.2.zip) written in C# works both on Windows and Linux with exactly the same files and without recompilation. Also, on Linux it runs (on my pc) 1.5/2x as fast as on Windows!

-
CL Game Studios. Probably.

[edited by - Sijmen on November 28, 2003 3:01:24 PM]

Share this post


Link to post
Share on other sites
quote:
Original post by Imperil
Linux C# support is almost as good as proprietary Microsoft support... so I wouldn''t count on this "D" language going anywhere =]


yes, D will not go anywhere. it has no reason to leave, as it is yet here and gets more and more strong:D

no, really. D is great, and i''m happy it exists. it provides an alternative, and nobody want a monopole anywhere..

it could get a .NET compiler frontend, now that would be cool:D




If that''s not the help you''re after then you''re going to have to explain the problem better than what you have. - joanusdmentia

davepermen.net

Share this post


Link to post
Share on other sites
quote:

I don''t see any practic advance C# should have over Java. And Java did not take over C/C++. So why should C# do?


Because it was made by M$, and because when the longhorn sdk gets here native win32 code will acually run slower than .NET code.

Share this post


Link to post
Share on other sites
quote:
Original post by brassfish89
Because it was made by M$, and because when the longhorn sdk gets here native win32 code will acually run slower than .NET code.

Because its made by microsoft is not an argument... and if i think C#-written .NET applications might be... 30% faster than conventional win32 ones, the conventional application still is faster because the time that is spent to "comunicate" with the .NET-framework isn''t compareable to the remaining time a larger program spends on doing other things - which have nothing to do with .NET ...

quote:
Original post by The Orange Peanut
C# is faster than Java, I believe. Java is ran through a virtual machine, which has one more step in running an application than Microsofts JIT compiler.



gcj ( the java compiler of the gcc-suite ) converts java code to machine code, which then is faster than that one generated by C# compilers...

maybe i''m wrong with that, but i think a compiled C# program runs only on a single architecture/operating system...
so i may compare c# performance with gcj''s java performance...

Share this post


Link to post
Share on other sites
quote:
Original post by brassfish89
quote:

I don''t see any practic advance C# should have over Java. And Java did not take over C/C++. So why should C# do?


Because it was made by M$, and because when the longhorn sdk gets here native win32 code will acually run slower than .NET code.


Everytime I see an M followed by a dollar sign I just say "oh god" and go to the next post.

James Simmons
MindEngine Development
http://medev.sourceforge.net

Share this post


Link to post
Share on other sites
No, C# is compiled Just in Time. That means that it is compiled on the target platform for the target platform, and as long as the .Net implementation on the target is working correctly and the program doesn''t try to make any calls to a native API it should work on the target.

The main difference between Java and .Net is that Java is only one language: only those people who know Java can program in it. .Net is only a framework, and works with every language that has been created for it so far. That includes the popular languages of the day: C/C++/Java/Visual Basic. You can even get a lot of the less standard languages.

Share this post


Link to post
Share on other sites
C# has a better chance on Linux than D, as it several orders of magnitude more mindshare.

On the other hand, though, D is lighter (no runtime), and is better at those neat low level things that geeky coders like to mess with.

There''s also the fact that, since C# doesn''t connect the rubber to the road, so to speak, something needs to be able to bring MSIL and the hardware together.

But this is all supposing that a good GCC frontend for D were released. D is completely screwed without that. It''s also supposing that C++ is going anywhere at all, and that D and C# are the only candidates to fill the gap.

"Without deviation, progress itself is impossible." -- Frank Zappa

Share this post


Link to post
Share on other sites
quote:

Because its made by microsoft is not an argument... and if i think C#-written .NET applications might be... 30% faster than conventional win32 ones, the conventional application still is faster because the time that is spent to "comunicate" with the .NET-framework isn't compareable to the remaining time a larger program spends on doing other things - which have nothing to do with .NET ...


What orange peanut said is what I meant to say:
quote:

Being backed by Microsoft and using the .NET framework replace Win32 as native API isnt hurting, either.


I just happened to word it poorly.
quote:

quote:Original post by brassfish89

quote:
I don't see any practic advance C# should have over Java. And Java did not take over C/C++. So why should C# do?


Because it was made by M$, and because when the longhorn sdk gets here native win32 code will acually run slower than .NET code.


Everytime I see an M followed by a dollar sign I just say "oh god" and go to the next post.


I cracked up the minute I read that, so I'm putting it in my sig.
--------
"Hey, what about those baggy pants you kids are wearin' these days? Aren't they hip and cool and poppin' fresh?"-Peter Griffin
"Everytime I see an M followed by a dollar sign I just say "oh god" and go to the next post."-Neurokaotix
the D programming language

[edited by - brassfish89 on November 28, 2003 9:40:23 PM]

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
"Because its made by microsoft is not an argument"

Actually, it is. No matter how hard it might be to swallow for your pride, more than 90% of the world''s programmers program for Microsoft platforms. If Microsoft wants to ram something down people''s throats, you''d better get used to it or get out. I make no value judgement about this; it''s simply a statement of fact.

Anyway, "D" is horribly designed. It has lots of ambiguities in the spec. It has lots of features that aren''t that well thought out, and it tries to solve a bunch of non-problems, while losing some of the things that gave C and C++ such acceptance. It seems to me as if the "D" spec is written by someone who has worked on a C++ compiler for a while, is jelaous of the brief fame that Java had, but doesn''t actually understand formal language specification.

Share this post


Link to post
Share on other sites
quote:
Original post by brassfish89
quote:

I don''t see any practic advance C# should have over Java. And Java did not take over C/C++. So why should C# do?


Because it was made by M$, and because when the longhorn sdk gets here native win32 code will acually run slower than .NET code.


Share this post


Link to post
Share on other sites
Is C# that of a significant improvement over C++ that it varrants a switch from C++? I question if the benefit of switching to C# outweights its cost. I could see how going to C++ from C was justified as it was a paradigm shift. Going from C to C++ was an evolutionary path and I feel C#/Java provide a parallel path rather than evolutionary to C++.

Share this post


Link to post
Share on other sites
It depends on the application, for a run-of-mill user-mode desktop application, .Net/GC/VM/C# is an evolutionary step and makes sense. As of this time, come Longhorn (2005) you don''t have much choice. (Which is trouble for us, maybe by then all PCs will be hypo-threaded and the CLR will use the SMP version).

But C++ covers more territory than that. Our latest project use C++ for much of it, but Delphi for the front-end. In the future, the front-end will probably be written with Delphi.Net.

Share this post


Link to post
Share on other sites
quote:
Original post by jonnii
with mono .net apps can finally be really truely cross platform. one binary for both operating systems. surely this is revolutionary in itself.


Java's been doing that for years dude

edit: there's also more than 2 operating systems in the world

[edited by - sark on November 29, 2003 12:15:22 PM]

Share this post


Link to post
Share on other sites
quote:
Original post by Sijmen
Thw only thing I am currently worried about is OpenGL. I really would like to see some simple OpenGL wrapper for .NET, that works without a native dll/so''s (except for OpenGL itself ofcourse) on Windows and Linux.
[edited by - Sijmen on November 28, 2003 3:01:24 PM]

What about Tao?

http://www.randyridge.com/Tao/Default.aspx

Share this post


Link to post
Share on other sites
quote:

Java''s been doing that for years dude


But, java can''t be compiled to native code then. Therefore making it slower than C#. And if you do compile it, then it''s not cross platform anymore.
daerid:
My left eye in the second frame is smaller than the right (I must be a freak or something ). Btw, what''s a palladium? All I got was this:

palladium
n : a sliver-white metallic element of the platinum group that
resembles platinum; occurs in some copper and nickel
ores; does not tarnish at ordinary temperatures and is
used (alloyed with gold) in jewelry [syn: Pd, atomic
number 46
]


Source: Webster''s Revised Unabridged Dictionary (1913)

Palladium \Pal*la"di*um\, n. [L., fr. Gr. ?, fr. ?, ?, Pallas.]
1. (Gr. Antiq.) Any statue of the goddess Pallas; esp., the
famous statue on the preservation of which depended the
safety of ancient Troy.

2. Hence: That which affords effectual protection or
security; a sateguard; as, the trial by jury is the
palladium of our civil rights. --Blackstone.

Palladium \Pal*la"
di*um\, n. [NL.] (Chem.)
A rare metallic element of the light platinum group, found
native, and also alloyed with platinum and gold. It is a
silver-white metal resembling platinum, and like it permanent
and untarnished in the air, but is more easily fusible. It is
unique in its power of occluding hydrogen, which it does to
the extent of nearly a thousand volumes, forming the alloy
Pd2H. It is used for graduated circles and verniers, for
plating certain silver goods, and somewhat in dentistry. It
was so named in 1804 by Wollaston from the asteroid Pallas,
which was discovered in 1802. Symbol Pd. Atomic weight,
106.2.


Source: Elements database 20001107

palladium
Symbol: Pd
Atomic number: 46
Atomic weight: 106.4
Soft white ductile transition element. Found with some copper and nickel
ores. Does not react with oxygen at normal temperatures. Dissolves slowly
in hydrochloric acid. Discovered in 1803 by W.H. Wollaston.


I could''ve sworn I''ve heard that word before.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
quote:
Original post by JD
Is C# that of a significant improvement over C++ that it varrants a switch from C++?
What I''d like to know is if C# is that of a significant improvement over Java that it warrants a switch from Java.

Share this post


Link to post
Share on other sites
All other things being equal, I would say yes. C# does lots of nice things that Java doesn''t, like boxing, operator overloading, delegates, and so forth. Also, managed C++ lets you mix native and managed code freely, which makes it really easy to mingle C++ and C#.

If you already have a significant amount of code, though, screw it. C# is a good improvement over Java, but still merely an incremental one. (on the other hand, that means that a switch would be relatively easy, as the syntaxes are very similar)

"Without deviation, progress itself is impossible." -- Frank Zappa

Share this post


Link to post
Share on other sites