Re: Why [did you choose] C# ?
Who's that administrator or moderator who think it's okay to change the titles of threads? What a stupid thing to do. I don't need some loser to better my writing. Now change it back immediately or I'll spank your sorry azz to a color YOU didn't choose.
Re: Why [did you choose] C# ?
Quote:
Templates and generics have different purposes. You cannot accomplish with generics what you can do with templates. Templates are probably the single most important addition to C++ ever.
Concrete samples are everywhere. The C++ standard library depends on them. Boost depends on them. Another good example is Modern C++ Design by Alexandrescu presenting a concept called policy based class design. The book has resulted in a C++ library called Loki.
I agree with your statements, and an very familiar with Alexandrescu's work.
However your points ignore two thirds of my original post..
Quote:
combine generics with reflection and dynamic code generation
I have not had any problems implementing all of the functionallity of STL, as well as having implemented many of Alexandresci's concepts (the ones which rely on the pre-processor were the most difficult). So I have still not seen a concrete [itpost or link to actual code] example of some template based construct which can not be accomplished in C# effectively.
Re: Why [did you choose] C# ?
Quote:
Originally Posted by _uj
I'm not complaining. I'm trying to compare the pros and cons of C# and C++/CLI.
Muahhhs, but surely you see that in some ways this is comparing the pros and cons of chalk and cheese? If you have a tummy upset, eat chalk. If youre having a glass of wine, try the cheese :)
Quote:
And I actually was negative towards Java in my post #102. Have a look. It was a reply to you.
I caught it (in the try..catch sense ;) ), cheers :P
In your day job, do you work in politics? I just wonder because you never seem to give a direct answer to a direct question :)
Quote:
I wouldn't call it snobbery. In a sense complexity equals freedom. It gives you many options and I like that.
Following this rule, if you write in assembler, you will have ultimate complexity and ultimate freedom..
Why not write in assembler?
Probably because it's too hard.. Or it's beyond that point of economical time spend.. You dont need that level of complexity, or freedom..
Consider thus, that the afficionados of C# dont need that extra level of complexity of C++ or the freedom it grants (and their replies here loosely summarise to them not seeing the benefit of the extra freedom, given the extra complexity).
Again you state that you like something, or that you make a choice based on "like" versus "need". If you didnt need to go any more complex than C#, would you still go more complex and use C++ because you "like" it?
If so, then there is no further purpose to this thread; you have made your decision.
Re: Why [did you choose] C# ?
Quote:
Why not write in assembler?
Probably because it's too hard..
No that is too easy. Just write in hex machine code either to disk using a hex file editor, or to ROM's using a ROM programmer.
Nw that FUN!!! :D
Re: Why [did you choose] C# ?
Quote:
Originally Posted by TheCPUWizard
No that is too easy. Just write in hex machine code either to disk using a hex file editor, or to ROM's using a ROM programmer.
Nw that FUN!!! :D
Heh:
A9 00
60
IIRC that's 'return 0' in C64 machine code.
:D
Re: Why [did you choose] C# ?
Quote:
Originally Posted by TheCPUWizard
I have not had any problems implementing all of the functionallity of STL, as well as having implemented many of Alexandresci's concepts (the ones which rely on the pre-processor were the most difficult). So I have still not seen a concrete [itpost or link to actual code] example of some template based construct which can not be accomplished in C# effectively.
C++/CLI has templates and C# has not. This difference isn't outweighted by your claim to not needing them because you're able to accomplish the same thing using generics. You can come close but you cannot fully replace templates. That's because the key feature of templates is that binding takes place at compile time and you cannot accomplish that with generics which binds at runtime. This gives templates the advantage of static typechecking something you miss out on with generics.
Programmers use available language features to simulate missing features all the time. But that's no strong argument against introducing the missing feature in it's own right if it's considered worthy. So who knows, one day C# may have templates too and then you won't have to work your azz off to simulate them any longer. Or you could escape this hardship right now by using C++/CLI instead of C#.
Re: Why [did you choose] C# ?
Quote:
Originally Posted by cjard
Quote:
And I actually was negative towards Java in my post #102. Have a look. It was a reply to you.
I caught it (in the try..catch sense ;) ), cheers :P
Well, if you don't understand something I write then please don't hessitate to ask. Is it the RAII idiom that's problematic? Just give me a hint and I'll explain it to you.
Re: Why [did you choose] C# ?
Quote:
Originally Posted by cjard
Quote:
I wouldn't call it snobbery. In a sense complexity equals freedom. It gives you many options and I like that.
Following this rule, if you write in assembler, you will have ultimate complexity and ultimate freedom..
Why not write in assembler?
Probably because it's too hard.. Or it's beyond that point of economical time spend.. You dont need that level of complexity, or freedom..
Consider thus, that the afficionados of C# dont need that extra level of complexity of C++ or the freedom it grants (and their replies here loosely summarise to them not seeing the benefit of the extra freedom, given the extra complexity).
Again you state that you like something, or that you make a choice based on "like" versus "need". If you didnt need to go any more complex than C#, would you still go more complex and use C++ because you "like" it?
If so, then there is no further purpose to this thread; you have made your decision.
I was saying that I personally don't mind some extra complexity if it offers something tangible in return. For example I've used Java a lot and I appreciate C# for its somewhat higher complexity. Examples could be value types, the RAII idiom and runtime generics, something Java is lacking.
I like complexity but I'm no junkie for it. The extra complexity of C++/CLI won't shy me away but I won't pick C++/CLI just because of it.
To me personally the complexity difference between C++/CLI and C# is not a decisive factor in the choise between them. Other programmers may think differently. And many, maybe most, don't really have a choise. C# was picked for them because managers considered it a good idea to not give them too much complexity to do damage with. One should remember that the advent of C# has a lot to do with the needs of business to have access to a large pool of unsophisticated programmers willing to become cheap labour chained to their keybords in coding sweatshops.
So dear fellow C# programmer, break out of your misery and enjoy the freedom of C++/CLI in all its complexity! :)
Re: Why [did you choose] C# ?
I found the Visual C++ team statement (see #97) disappointing so I've asked a follow up question over at the Microsoft forums. I'm interested in under what circumstances the Visual C++ team recommends that Visual C# is rather used?
-------------------------------------------------------------------
>> The Visual C++ team
Thank your for this statement althought I find it disappointing. I would have hoped for C++/CLI to be a first class .NET citizen. Or maybe it still is? Visual C++ is an IDE after all and not the C++/CLI language itself.
So what does the statement actually imply for C++/CLI as a language. Has it now reached its final form and will there be no further evolution at all? I understand that C# maybe will develop faster and that more avant-garde features will be introduced, but what about C++/CLI? Will it be "as is" for the foreseeable future and improvements and enhancements won't even be considered?
And regarding the status of Visual C++ as an IDE for the development of managed applications. Lets say I wanted to develop a new large .NET managed application and an important part of the application will be native classic C++ (although with a thin interop interface). I also want the option of easy interoping with native C++ code should the need arise. Say I like C++/CLI as a language and I don't need lots of fancy stuff like visual GUI editors, just a decent coding environment.
Under the above circumstances do you recommend I rather use Visual C# than Visual C++?
Re: Why [did you choose] C# ?
Quote:
Originally Posted by _uj
Well, if you don't understand something I write then please don't hessitate to ask. Is it the RAII idiom that's problematic? Just give me a hint and I'll explain it to you.
When I said "I caught it, in the try..catch sense" I meant
Code:
try{
cjard.GetRespose(_uj, "java")
}catch(Exception){
}
There are many things I dont understand, but I dont feel that it limits me.. Though I understand RAII, I dont quite understand your point about it, or the disparity between your assertion that youre a capable programmer who loves complexity, but cannot remember (or decide when) to dispose her objects that need disposing and hence must use a language that disposes everything, automatically, just incase..
You derise languages that do not offer complexity, then praise a language that hides complexity by arranging operations automatically?
It seems somewhat hypocritical to me. Perhaps you can explain this aspect of your argument?
Quote:
Originally Posted by _uj
I like complexity but I'm no junkie for it. The extra complexity of C++/CLI won't shy me away but I won't pick C++/CLI just because of it.
To me personally the complexity difference between C++/CLI and C# is not a decisive factor in the choise between them.
It almost feels like youre going back on yourself? Previously you were asserting that C++ would be your choice because you value the freedom you perceive the extra complexity brings you.. Now youre saying the extra complexity wouldnt make you choose the language?
Quote:
Lets say I wanted to develop a new large .NET managed application and an important part of the application will be native classic C++ (although with a thin interop interface). I also want the option of easy interoping with native
C++ code should the need arise.
Eaahhah. That tickled me. Lets say your local council wanted to build a large, brand new swimming pool and an important part of the new pool will actually be the old pool because it has really nice tiles and.. um.. they spent a lot of money on them 25 years ago. And they quite like them. They also are still good buddies with the contractor who installed them as a personal favour and want the option of not upsetting that contractor so they can carry on using them.
If you want to develop a new, large .NET app, reusing a huge block of old code wont make it a new application, any more than some VB6 old timer uses the Upgrade Wizard to bring his old app into VB.NET, recompile it and say "woo, look. I made a new .NET app", relying on the Microsoft.VisualBasic.dll to make all the legacy calls work.
However, this is the first moment in this thread that I've started to see an acknowledgement from you that you might consider using a tool appropriate for a job, rather than the tool you quite like?
Quote:
Say I like C++/CLI as a language and I don't need lots of fancy stuff like visual GUI editors, just a decent coding environment
No need to use the IDE then? Youre only tied to the VisualC++ team because you like the language they are implementing, not the IDE. The other thing that puzzles me; you talk about language features like templates, that basically do a good job of writing code for you, then bash the IDE, which doesnt do much more than provide a nice place to write code and a couple of visual editors that also (just like templates) write some pretty good code for you. Volumes of it..
What exactly are you looking to bash here?
Quote:
Originally Posted by _uj
So who knows, one day C# may have templates too and then you won't have to work your azz off to simulate them any longer. Or you could escape this hardship right now by using C++/CLI instead of C#.
Crikey, you bang on about language features C++ has, that X doesnt have as though all X programmers are up in arms that they dont have them, and labour away for days implementing them over and over. I dont recall ever switching language because the new one was sexier than the old one, or had X, Y and Z features.. All my language switches have been based on the job requirement*, or prudence within context.
*perhaps with the exception of using C# despite being told to use VB.NET because VB.NET is a dirrrty language
Tell me; who is the more capable programmer: The one who is told "welcome to your new job. this year we have decided to move to vb.net." Is it
a) the one that responds "ok, i never used it but i dont think that will stop me writing good code" or
b) "ooh, you dont want to use that crap, use something powerful like C++/CLI because it is complex beyond your wildest dreams and you can do everything with it. it rocks, and I wont use anything less"
Quote:
Originally Posted by _uj
So dear fellow C# programmer, break out of your misery and enjoy the freedom of C++/CLI in all its complexity
Lmao..
"When I want your opinion, I'll give it to you" -- ulrika ;)
I'm a fellow programmer? You mean you use C#? But I thought you used C++/CLI because C# was too n00bish for you? I get more amusingly confused by the minute.. ;)
I'm not actually in any misery, C# doesnt make me suffer, I find the C++ syntax significantly more misery invoking than the C# but I'm intrigued to find out why you dont.. Are you a good teacher? you answer technical questions pretty well but that's not usually an indicator..
One quick question though; once I embrace the religion of C++hristianity, and all is light and my problems go away, will I spend my life preaching this new-found religion to other, significantly more inept and uneducated serfs, plebs and other such C# programmers? :)
Re: Why [did you choose] C# ?
ps, if this was a wikipedia article, it would probably look like:
"C# was picked for them because managers considered it a good idea to not give them too much complexity to do damage with [citation needed] . One should remember that the advent of C# has a lot to do with the needs of business to have access to a large pool of unsophisticated programmers willing to become cheap labour chained to their keybords in coding sweatshops[citation needed] . "
Re: Why [did you choose] C# ?
Quote:
Originally Posted by cjard
ps, if this was a wikipedia article, it would probably look like:
"C# was picked for them because managers considered it a good idea to not give them too much complexity to do damage with [citation needed] . One should remember that the advent of C# has a lot to do with the needs of business to have access to a large pool of unsophisticated programmers willing to become cheap labour chained to their keybords in coding sweatshops[citation needed] . "
Are you stunned by the naked truth? I just expressed bluntly what everybody knows except maybe naive programmers who think "programmer safety" is a concern for their well-being. The citations you feel is missing could be measured in tons. I won't pursue this though because it was just a joke really. :)
Re: Why [did you choose] C# ?
Quote:
Originally Posted by cjard
There are many things I dont understand, but I dont feel that it limits me.. Though I understand RAII, I dont quite understand your point about it, or the disparity between your assertion that youre a capable programmer who loves complexity, but cannot remember (or decide when) to dispose her objects that need disposing and hence must use a language that disposes everything, automatically, just incase..
Everybody makes mistakes and the more unlikely a mistake is the harder it is to find. So both experienced programmers and newbies benefit from built-in language safety.
Quote:
You derise languages that do not offer complexity, then praise a language that hides complexity by arranging operations automatically?
It seems somewhat hypocritical to me. Perhaps you can explain this aspect of your argument?
There's often a tradeoff between on one hand simplicity and safety, and on the other hand efficiency and flexibility (and thus complexity).
I've said (many times now) that I personally don't mind more complexity if it also delivers some tangible benefits (in the form of higher efficiency and more flexibility). I don't think I can express this clearer now.
Re: Why [did you choose] C# ?
Quote:
Originally Posted by cjard
It almost feels like youre going back on yourself?
And I feel you've entered on a nitpicking path here. If you have something you want to discuss please say what it is and be specific. I don't have time to consider general rantings about everything. I've made lots of replies directly to you but you just leave them without comment. To discuss I need some structure otherwise this isn't going anywhere.
Re: Why [did you choose] C# ?
Quote:
Originally Posted by _uj
And I feel you've entered on a nitpicking path here. If you have something you want to discuss please say what it is and be specific. I don't have time to read through and make sense of general rantings.
Wha? But you have time to complain repeatedly that an admin has changed the title of your post.