I disagree on Java being less verbose. I can almost always tell the C/C++ programmers who've come from a java background, they always have TheseInsaneFunctionNamesThatAreHalfAScreenWideAndReallyMakeItHardToWorkOutWTFIsGoingOn.
I meant the language itself, and the general method names in the libraries for C#. I didn't say anything about the programming practices of Java/C# programmers as a group. You definitely get a lot with crap for style.
Can't say my style is particularly good (since I tend to copy whatever the original author's is), but there is a limit to my patience for long variable names.
The C++ standards committe really just needs to give in and include a GC into the spec and the compilers can have it enablable/disablable based on compile flags like they do the dynamic type information; so it can get turned off for the really performance anal, and everyone else can just cope with whatever else. It's not as if there isn't already a half dozen GCs out there already available for both C and C++...
Yeah, this is true. But even if they did that, I still wouldn't like the language. I don't like having to mess with separate header files, I don't like how long it takes to compile/link, I don't like a lot of the syntax (-> is really hard to type fast for me), and I don't like how many lines of code it takes to accomplish a number of should-be-simple things. For me, C# is ideal because it has the power to go pretty low-level when I really need to (and sometimes I do), but otherwise it keeps things at a conversational level that keep the code leaner and moving along. But, of course, this is mostly a matter of preference and familiarity on both sides, yes?
Ironicly, one of my main grips with C is the continual need for ->, since in C++ I'll use references (which are addressed with "."), or shared pointers (which can also be "." addressed), and the like.
Compile/link is always a bit of a pain, but I must admit I really do miss #defines/#includes in pretty much any other language, since they can really fix up annoying language/library flaws really easily, and I've never seen a language get that sort of flexability without it.
I actually don't mind C#, it's just that it's only really supported under windows (MS's attempts to persuade people otherwise not withstanding), and I spend way too much time on everything-but-windows at the moment.
It seems to have learnt a lot from Java's failures, but on the other hand it dragged in a little too much of C's crufty syntax that Java had enough common sense to avoid (assignment inside an if() statement being one of the more "doctor it hurts when I do this"/"well don't do that then!" problems
).
Then again I've just started enjoying reading old x86 (of the 286/pre-32bit-protected-mode era) assembler books recently and really enjoying them, so maybe I'm just a little weird.
As someone who's job used to be (and to a certain extent still is), building and maintaining code in any language it happens to be in; after a while they all rather merge into being the language groups with minor different syntax. At one point I was using a different programming language every couple of days for a month as there were a couple of dozen various scripting/compiled programs that needed to be updated/moved to a different server, and of course this being a university they were all written in the student's/professor's/staff member's preferred language. Swapping between 10 or 11 different languages in a month was fun.
Yeah, I know what you mean. I work in about 4 or 5 languages on a weekly basis, and there are about 10 or 11 in all that I am at least reasonably proficient at. I actually prefer C or ASM to C++, oddly. I guess my main beef with C++ is that its not quite C, and it's not quite C#, and for me it doesn't fill the middle ground the way I would want. Again, all just down to preference. Anything is better than having to work in VB or VBA, at least, haha.
Unfortunately I must agree with the "anything but VB". I mean I grew up with BASICA/GWBASIC/MS-licenced-basic-on-various-computers, then VB, but when they added the pseudo-OO stuff it really went pearshaped, and the latest .NET version doesn't seem to be any better despite the fact the update broke pretty much every program in existance.
Oddly I prefer ASM over C, simply because at least there's no pretence of ASM being easily maintainable.
After a while you get sick and tired of basic stuff like strings and variable arrays not being included in the language specification when you're doing maintenance programming; because everyone needs them, and everyone has their own-damned-implementation of them with subtle bugs which is usually why you're in there fixing it.
This is probably about the only real reason I use C++ actually.
I should start writing code in raw MSIL just to really confuse people.