A link and a complaint

Published July 02, 2006
Advertisement
Quick post for me, general update of sorts rather than something new [smile]

Congratulations to Mr. Steve Macpherson (who may, or may not be evil) on getting re-awarded MVP status for the 2006-2007 year. Examine his public profile and either laugh at his photo or print it out and frame it from here. (apologies, Evil Steve!)

Not sure when/how he got confirmation, but technically my 2005-2006 award expired on Friday. I've not heard anything from Microsoft about getting a 2006-2007 renewal; but I guess it is a weekend. Having said that, my passwords still work, so I guess thats a good sign. If I didn't get back in, I've had an indescribably awesome year, so I won't complain.

Wonder if the list of DirectX MVP's will change this time around. The only other person I know who was up for renewal was Simon (GDNet), hopefully he'll stick around as he's so damned knowledgeable it'd be a shame to lose him from the club!

Then there are always other members of the community who might've joined... Whilst I don't get to decide such things (that resides with the powers up in Redmond!) I'm sure there are a couple of people who'd deserve to join the club. Of course, only if they could withstand the intense initiation ceremony... [evil]

Anyway, enough MVP stuff...

I suggested to Ralf Demirug Kornmann that he start a blog about his Direct3D 10 projects. I'd go so far as to say he's one of the few public figures really pushing the new API and without a doubt knows what he's talking about. He's told me (via PM's) a few of his projects and they're ambitious but very interesting. Make sure you check out what he's got to say [wink]

I had grand plans of being up there with the best when it came to D3D10, but they broke it for me. Several builds worked absolutely fine on my HDD/IDE/SATA config and then it just died [sad]. I've yet to try the 1007 BIOS (seems I have 1005) due to not owning a single floppy disk. Funny that - the relic from the 1980's/1990's comes back to haunt me for a 2007 OS [rolleyes]

In closing, on this originally "quick" update...

[flaming] [flaming]

I bitched about C#'s lack of const-correctness and DBC support. I figured I was being a n00b that was trying to write C# like I write C++ (thanks to Scet for pointing that possibility out!), but in the ensuing discussion it seems I wasn't really "wrong". C# does not support const as parameter arguments. I'm sorry, but that abso-f***ing-lutely sucks. In fact it both sucks and blows in a way that no scientist could ever hope to achieve.

Admittedly, what C# has might well be less dangerous than C++ such that the lack of const-correctness isn't such a biggy, but that is no excuse. If I pass a parameter into a function I want to know with a compile or runtime guarantee whether it will or will not be modified. Documentation is nice, but its not good enough - I won't believe a single person who reads this and says they've NEVER come across partial/incomplete/incorrect/vague documentation before.

I'm sorry, but C# is a nice language but it just took a big red X from me.

If, as Muhammad suggested, its due to compatability with VB.Net then thats just f***ing ridiculous.

[flaming] [flaming]
0 likes 15 comments

Comments

Scet
Aw giving up so soon? I don't know why you thanked me after reading that, you didn't listen to what I said. It's a new language, it is not C++. OK so it's missing one of C++'s functions, trust me .Net and the boost in productivity make the switch worth it. You didn't even try.

(Wow that sounded mean, oh well) Flame on!
July 02, 2006 09:17 PM
jollyjeffers
Quote:Original post by Scet
Aw giving up so soon?
No way - I aint giving up! I'm just stamping my feet and having a good old fashioned sulk/tantrum [razz]

Quote:Original post by Scet
OK so it's missing one of C++'s functions, trust me .Net and the boost in productivity make the switch worth it.
I originally started in VB6 which is closer to .NET than C/C++ is, and I generally prefer the RAD and high-level approach. Sure, I'm missing some creature comforts but overall my impression of C# is still positive [smile]

Cheers,
Jack

July 02, 2006 09:28 PM
Scet
Oh OK, well that's definatly NOT how it sounded in your journal entry. Good luck then, sorry about my mean post.

It's just after using C# for a while the C++ vs C# and C++ zealots get to you.
July 02, 2006 09:32 PM
Daerax
imho, bleh. const is just syntatic sugar taken to another level...too far. Also as Muhammad mentioned, and I am blatantly taking out of context, in C++ const is fake since it can be casted away so really, there is no gurantee. Nyaa :P

This is quite some interesting reading. Although I do not agree with what seem to be its premise. Just dotting and dotting on the programmers, spoiling them hmmph. Why in my day the was no gurantee that the code you were looking at was the one you were working on...
July 03, 2006 12:15 AM
remigius
Quote:If I pass a parameter into a function I want to know with a compile or runtime guarantee whether it will or will not be modified. Documentation is nice, but its not good enough - I won't believe a single person who reads this and says they've NEVER come across partial/incomplete/incorrect/vague documentation before.


"Real programmers don't document. If it was hard to write, it should be hard to understand." [wink]


But seriously, I thought my final suggestion of using interfaces wasn't that shabby or as unscalable as Muhammad pointed out. Sure, there are funner things to do than write read-only interfaces to your object's properties, but you only have to do that for some data objects and then only those where you'd really have to worry about them not getting modified.

I agree that the const modifier could come in handy, but:


1. Value-types are passed by value anyway

2. Strings are already immutable

3. For objects you could use those interfaces


In the design-by-contract paradigm you pointed out, interfaces are the main vehicle anyway to 'define the contract' in early stages of the project, especially when working on larger projects with multiple programmers. So, laying out the design consistently in interfaces beforehand would give you the same functionality as const without much extra work and with more control.

C# isn't flawless, but this const complaint is a bit subjective IMO. Coming from Java I never used it and never had any serious trouble without it, so I guess it all depends on what other language you're coming from. If so many libraries have their const-correctness broken, then I'd have to say I wonder about it's practicality.

Ah well, hopefully the other flashy features in C# can make up for this little slip [smile]
July 03, 2006 01:21 AM
Evil Steve
Quote:Congratulations to Mr. Steve Macpherson (who may, or may not be evil) on getting re-awarded MVP status for the 2006-2007 year. Examine his public profile and either laugh at his photo or print it out and frame it from here. (apologies, Evil Steve!)

Not sure when/how he got confirmation, but technically my 2005-2006 award expired on Friday. I've not heard anything from Microsoft about getting a 2006-2007 renewal; but I guess it is a weekend. Having said that, my passwords still work, so I guess thats a good sign. If I didn't get back in, I've had an indescribably awesome year, so I won't complain.
*scream* [smile]

I got an e-mail sent to me with the title "[MVP] Congratulations! You have received the Microsoft MVP Award", the same as last year - giving me my MVP number and password to access the MVP award site. I guess you'll get yours soon, and I'd be amazed if you didn't. You could try E-mailing Lorna and asking when you should hear by if you're worried.
July 03, 2006 07:15 AM
Muhammad Haggag
Quote:Original post by remigius
But seriously, I thought my final suggestion of using interfaces wasn't that shabby or as unscalable as Muhammad pointed out. Sure, there are funner things to do than write read-only interfaces to your object's properties, but you only have to do that for some data objects and then only those where you'd really have to worry about them not getting modified.

[...]

In the design-by-contract paradigm you pointed out, interfaces are the main vehicle anyway to 'define the contract' in early stages of the project, especially when working on larger projects with multiple programmers. So, laying out the design consistently in interfaces beforehand would give you the same functionality as const without much extra work and with more control.

I've never been a fan of the "Write all the interfaces in the beginning, and then never change them" camp. Maybe they're all hotshot programmers and I'm not, but the code I work on often changes. Refactoring. It's not just the implementation--often, working a bit into the project gives a better understanding and suggests a better organization of functionality into different interfaces.

Interfaces change. Implementation changes. Everything changes. That's one of the things that sucked about C/C++ header/implementation file paradigm--you always kept changing the same thing twice. The suggested interface/implementation work-around for lack of constness does exactly that, in my opinion. Duplication of effort.

By the way, another advantage of const that hasn't been mentioned is about code optimization. When a compiler sees an object passed to a function as a const reference/pointer, it can safely assume it won't be changed. The same can't generally be said when there's no const. It could be that the easier and simpler syntax of C# allows optimizers to infer such information, but I have no idea.

Quote:C# isn't flawless, but this const complaint is a bit subjective IMO. Coming from Java I never used it and never had any serious trouble without it, so I guess it all depends on what other language you're coming from. If so many libraries have their const-correctness broken, then I'd have to say I wonder about it's practicality.

I didn't say there were "so many" broken libraries. Of the commercial/professional libraries I worked with, only MsgConnect was. As for practically, it's practical because you have const_cast to fix such broken libraries.

Finally, const is but one tool at one's disposal. It's not a huge deal when it goes missing. C# does offer a multitude of improvements over C++ in other aspects that, overall, it's a net gain for regular Windows application development.
July 03, 2006 08:40 AM
remigius
Quote:Original post by Muhammad Haggag
I've never been a fan of the "Write all the interfaces in the beginning, and then never change them" camp

...

Interfaces change. Implementation changes. Everything changes. That's one of the things that sucked about C/C++ header/implementation file paradigm--you always kept changing the same thing twice. The suggested interface/implementation work-around for lack of constness does exactly that, in my opinion. Duplication of effort.


I do agree to this, one of my former colleagues even pointed out once that I must have some refactoring tool in my brain, since at one point I was refactoring code on a daily basis as the implementation came together (and yes, I've always taken that as a compliment [wink]).

What I was saying was that for guiding collaboration on bigger projects, you'll most likely already have interfaces defined on the crucial points where parts of the implementation are stitched together (true to DBC), so why not use them to your advantage to get around this issue there? I also agree it obviously requires more effort, but the VS2005 refactoring tools can take away much of the pain here for you.

Anyway, I'm just trying to offer Jack an alternative here and highlight the advantages the 'interface approach' might offer compared to the catch-all const modifier. Since I haven't ever used the const modifier myself (and since I generally suck at C++ since I never bothered to learn it properly), I'm not even remotely qualified to take up an in-depth discussion of this C++ modifier itself [smile]
July 03, 2006 10:43 AM
jollyjeffers
Thanks for the comments - Seems like I opened a whole can of worms with this (and previous) journal entries [lol]

Quote:Oh OK, well that's definatly NOT how it sounded in your journal entry. Good luck then, sorry about my mean post.

It's just after using C# for a while the C++ vs C# and C++ zealots get to you.
On re-reading my journal it does sound a LOT harsher than intended [smile]

Quote:"Real programmers don't document. If it was hard to write, it should be hard to understand." [wink]
[lol]

Quote:interfaces are the main vehicle anyway to 'define the contract' in early stages of the project
I won't disagree with that [smile]

Quote:hopefully the other flashy features in C# can make up for this little slip
I'm sure they will, as I commented on before, C# still as a general from me despite my ranting about const...
Quote:I'm just trying to offer Jack an alternative here and highlight the advantages the 'interface approach' might offer compared to the catch-all const modifier
I guess I'll take a look into this side of things. The next area of C# I'm planning on messing around with is the OOP stuff - partial classes look like a very nifty feature.

Quote:another advantage of const that hasn't been mentioned is about code optimization.
That is indeed another good thing about these sorts of modifiers. I figure that if I can better convey my intentions to the compiler it will be able to produce a better result for me.

Quote:I got an e-mail sent to me with the title "[MVP] Congratulations! You have received the Microsoft MVP Award", the same as last year
Nope, not got that yet (and its already CoB on Monday). If I've not heard anything by the end of the week then I'll see about chasing it up [smile]

Cheers,
Jack
July 03, 2006 11:45 AM
Muhammad Haggag
Quote:Original post by jollyjeffers
Quote:I got an e-mail sent to me with the title "[MVP] Congratulations! You have received the Microsoft MVP Award", the same as last year
Nope, not got that yet (and its already CoB on Monday). If I've not heard anything by the end of the week then I'll see about chasing it up [smile]

Chasing on what, you turd. It's a clear win--you've posted like, what, 500000000000000 posts this year? I hear they were running out of space at the internet HQ already.
July 03, 2006 12:44 PM
jollyjeffers
Quote:Original post by Muhammad Haggag
Chasing on what, you turd. It's a clear win--you've posted like, what, 500000000000000 posts this year?
[lol] Well it's only 2,050 posts in the DirectX forum....

Whilst I haven't had renewal confirmed they haven't said that I wouldn't be... [grin]

Cheers,
Jack
July 03, 2006 01:10 PM
Pipo DeClown
I think they're just teasing you. Psychological threats now and then, make you produce even more DX articles the coming year.
July 03, 2006 05:16 PM
ET3D
I'm a July awardee and got my mail on July 1st. Could it be that something along the way catalogued the mail as spam?
July 04, 2006 04:58 AM
S1CA
Quote:Original post by jollyjeffers
Quote:Original post by Muhammad Haggag
Chasing on what, you turd. It's a clear win--you've posted like, what, 500000000000000 posts this year?
[lol] Well it's only 2,050 posts in the DirectX forum....

Whilst I haven't had renewal confirmed they haven't said that I wouldn't be... [grin]

Cheers,
Jack


Just got back last night from a long weekend of fun [in the sun] in Amsterdam - I recieved a renewal email on Saturday. [smile] Haven't yet had a chance to sign the eNDA etc.

If you were at risk of not being renewed, you would have recieved an email a while ago warning you that you might not be renewed. You've been a million times more active than I have in the DirectX community this past year - you shouldn't have any problem with not being renewed IMO. Eric handles the renewals for us lot - if the MVPGA renewal email didn't get through to you, I'm sure he can put your mind at rest/sort it out. [smile]
July 04, 2006 08:02 AM
jollyjeffers
Thanks for the comments - as I've just posted in my next entry, it seems to have been an email problem at my end. The email did indeed get sent out, just it got re-routed to some internet blackhole for a few days [lol]

Cheers,
Jack
July 04, 2006 03:31 PM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Advertisement
Advertisement