Advertisement

What's you favorite and most hated part of coding?

Started by April 04, 2013 08:10 AM
48 comments, last by ysg 11 years, 5 months ago

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.

Heh, most coders that I've known of, hate documentation as well smile.png . I kinda like writing documentation, sometimes just to relax a bit and not have to be super-focused in.

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, ...).

Advertisement

a lot of trivial tasks require writing more code than in C or C++;

I'm... confused by this statement... what do you mean by a 'trivial task' in this context?
Thing I like : saying 'screw this noise, Future Rob can sort this problem out...'
Thing I dislike : becoming Future Rob and realising that Past Rob is a jerk for leaving me with stuff to sort out sad.png

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.

Advertisement

a lot of trivial tasks require writing more code than in C or C++;

I'm... confused by this statement... what do you mean by a 'trivial task' in this context?

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...

"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;"

Don't forget that C# actually has pointers. For example...
Maybe I'm in the minority, but I find programming to be quite relaxing. It's almost like an escape. I feel this way even when I'm tracking down bugs in my 3D game. Of course this may be because I teach children for a living.

Learn all about my current projects and watch some of the game development videos that I've made.

Squared Programming Home

New Personal Journal

"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;"

Don't forget that C# actually has pointers. For example...

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).

This topic is closed to new replies.

Advertisement