Heh, most coders that I've known of, hate documentation as well . I kinda like writing documentation, sometimes just to relax a bit and not have to be super-focused in.I *love* writing documentation for my code. Part of my development approach is what some calls it "document-driven development". It's part of my thought process. I put my thoughts as comments as I write code, and those comments ultimately become the documentation.
What's you favorite and most hated part of coding?
I can't decide what I like best about coding. Writing the engine from scratch is very exciting, especially when it's cross platform and requires little modification to get it running on multiple OSes and devices. Another thing I really take much interest in and really enjoy is (get ready to cringe), multi-threading! I'm not a multithreading god, but I'm getting much better with thread synchronization, management, priorities, mutexes/events, but still haven't grasped semaphores, and I constantly forget what I learned about APCs.
What I absolutely hate is debugging, especially memory corruption related things. Those tend to be the most annoying of them all. Other than that, a second would be reading other people's code, especially when it's not commented, unorganized and OOP crazy like a C++ n00b. Lastly, what I hate about coding is the fact that C# exists. I'm sorry, but I hate it with a passion.
Shogun.
you hate debugging memory corruption and C#. Sounds like an oxymoron.
I think there are good and bad points of C# IMO.
good points:
reasonably clean language design and not nearly as annoying to write code in IMO as Java;
compiles faster than C or C++;
bounds-checked arrays and similar;
doesn't require being recompiled per-target;
...
weak points:
it is overly pedantic regarding type conversions ("type-safety" == "casts everywhere");
its support on various non-Windows OS's is a bit weak (worse in embedded);
some nifty core language features in C or C++ have to be built manually in C#;
it is more annoying to declare immediate arrays or objects (vs C++);
a lot of trivial tasks require writing more code than in C or C++;
...
I still personally more prefer to use C and C++ with a custom script-language (though, C# and .NET were design influences regarding the script language and VM, ...).
Current Status / Downloads: http://cr88192.mooo.com:8080/wiki/index.php/BGB_Current_Status
YouTube Channel: http://www.youtube.com/user/BGBTech
Main Page: http://cr88192.mooo.com:8080/wiki/index.php/Main_Page
I'm... confused by this statement... what do you mean by a 'trivial task' in this context?a lot of trivial tasks require writing more code than in C or C++;
Thing I dislike : becoming Future Rob and realising that Past Rob is a jerk for leaving me with stuff to sort out
Anyone who thinks C# is a bad language has never used LINQ to write a data mining app in an afternoon.
Good fucking luck touching that kind of productivity in C++.
Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]
I like writing gameplay logic and I hate writing foundational stuff.
Basically the airy imaginative fun stuff I like and the dull, mostly been done 1000x and better than I can be bothered to stuff I hate.
Also I hate UI. Just like, shoot myself in the foot to numb the pain of writing UI level hate.
I'm... confused by this statement... what do you mean by a 'trivial task' in this context?a lot of trivial tasks require writing more code than in C or C++;
things like signal processing / codec style tasks, which involve a lot of intensive array-walking and fixed-point arithmetic and similar.
say, for example, writing code for a video codec in C#.
stuff like this is slightly more painful in C# than in C or C++, due to minor differences related to handling of types and things like arrays and pointers.
some of it can be wrapped over, but then adds the cost of writing the wrapper code.
though, I would still quickly choose C# over Java for these tasks...
basically, all the little things like:
"int[] blk=new int[64];" vs "int blk[64];";
"for(i=0; i<n; i++)ct[b+i]=Foo(cs[b+i]);" vs "while(cs<cse)*ct++=Foo(*cs++);";
"ct=(byte)((((int)cs)*xsc+2048)>>12);" vs "*ct++=((*cs++)*xsc+2048)>>12;"
...
granted, there are things which C# does pretty good at as well.
for example, GUI and using databases and similar are much nicer in C#.
so, in cases where one is making a tool which uses GUI or similar, and for which OS portability isn't a huge concern, C# does well...
Current Status / Downloads: http://cr88192.mooo.com:8080/wiki/index.php/BGB_Current_Status
YouTube Channel: http://www.youtube.com/user/BGBTech
Main Page: http://cr88192.mooo.com:8080/wiki/index.php/Main_Page
Don't forget that C# actually has pointers. For example..."for(i=0; i<n; i++)ct[b+i]=Foo(cs[b+i]);" vs "while(cs<cse)*ct++=Foo(*cs++);";
"ct=(byte)((((int)cs)*xsc+2048)>>12);" vs "*ct++=((*cs++)*xsc+2048)>>12;"
Learn all about my current projects and watch some of the game development videos that I've made.
Don't forget that C# actually has pointers. For example..."for(i=0; i<n; i++)ct[b+i]=Foo(cs[b+i]);" vs "while(cs<cse)*ct++=Foo(*cs++);";
"ct=(byte)((((int)cs)*xsc+2048)>>12);" vs "*ct++=((*cs++)*xsc+2048)>>12;"
yep, but I meant without needing to use 'unsafe'...
also cool would have been, say, if there were something which could have some of the "look and feel" of pointers, while still being optionally bound-checked and type-safe (note: probably box-pointers or fat-pointers).
Current Status / Downloads: http://cr88192.mooo.com:8080/wiki/index.php/BGB_Current_Status
YouTube Channel: http://www.youtube.com/user/BGBTech
Main Page: http://cr88192.mooo.com:8080/wiki/index.php/Main_Page