[gameprogrammer] Re: "Mission Efficiency" - Blue Collar coding
- From: David Olofson <david@xxxxxxxxxxx>
- To: gameprogrammer@xxxxxxxxxxxxx
- Date: Fri, 7 May 2004 11:44:34 +0200
On Friday 07 May 2004 08.46, grant hallman wrote:
> At 12:26 PM 06-05-04 +0200, you wrote:
> >On Thursday 06 May 2004 11.48, grant hallman wrote:
> >[...]
> >
> >> You're entitled to your opinion. Mine is the exact reciprocal.
> >
> >Now, that one's interesting! "Opposite" is easy - but how do you
> >define the *reciprocal* of an opinion? :-)
>
> Fair question. I shall illustrate:
>
> Your statement:
> "the number of real coding tasks that should _not_ be OO is very
> low"
>
> Its opposite:
> "the number of real coding tasks that should _not_ be OO is _not_
> very low"
>
> Its reciprocal:
> "the number of real coding tasks that should be OO is very low"
Ah, I see. :-)
> (That, and - well, notice the time on my posts. After 5 am, i start
> making up words i need. ;)
Ok... *hehe*
> >Anyway, I totally agree with the rest of your post.
>
> Ok, so you agree with my entire argument that OO is a bloated
> overvalued ivory-tower monstrosity with the same relationship to
> real life programming as training wheels have to motorcycles,
Basically, yes, if we're talking about OO as a religion, rather than
just another tool in the design toolbox. Not everything is a nail -
and either way, you certainly don't need a remote controlled robot
with a nailgun just because you sometimes deal with nails. ;-)
> *and*
> you think it should be used pretty much everywhere...
Hmm... When did I say that? :-)
I think OO *philosophy* makes sense at times, as a design tool, but I
wouldn't take it much further than the idea of grouping related data
and code together somehow, when it makes sense. Naming conventions,
and the habit of passing the "primary" object as the first argument.
I've done it in 68k asm, x86 asm, C, Pascal, Object Pascal, C++ and
probably some others I forgot. Conditionals, function pointers or
VMTs (hidden or explicit) - they're all the same to me; just ways of
implementing polymorphism. I tend to prefer the more explicit
methods.
As you might have noticed, I've been using C almost exclusively for
new code the last few years - especially if it's supposed to be
portable and/or Free/Open Source. It's a small and simple language,
it covers the low level stuff that I'm doing a lot of (accessing h/w,
pixel pushing, DSP, ...), it's easy to hack RT safe code (no
heavyweight datatypes or hidden invocations of arbitrary code) - and
I know it pretty well, so I can focus on the actual problem.
Of course, a real HLL (*) could come in handy at times, but so far, I
haven't found one that doesn't have problems with the requirements of
most of the code I hack. Most of my code needs to be somewhere in the
range firm RT through hard RT, and some of it must run fast on low
end h/w. Meanwhile, most real HLLs have GC memory management, and the
implementations are generally far from suitable for RT apps. (Right;
I haven't done much GUI coding lately, except for some work related
Delphi stuff. My future plans involve scripting languages...)
(*) That is, not C++, which lacks most of the features I'm
*really* missing in C, while it providies plenty of tools
that can easilly take one's leg off without really being
as useful as one would think.
> that's
> actually fine with me. I have no objection to anyone using OO, as
> long as _i_ don't have to. It's just that there's not a viable dev
> env left where i don't have to.
Well, these days, I just use cooledit and hack makefiles or autotools
scripts manually... Once you know these tools, I don't think
automating stuff like that saves much time. 99% of the time is spent
hacking and debugging actual code anyway, and the messing with build
scripts is mostly about detecting and dealing with quirks of various
platforms - a concept that is totally foreign to most IDEs anyway.
Ok, I rather like Delphi when I need to quickly slap some GUI app
together. However, in real life, it turns out that most of the time
is spent hacking real code anyway - not placing widgets on forms.
(You can do that just fine with some external tool. Actually, that's
much more robust, as the layout data isn't somehow mysteriously
hidden in binary files in your project.) Also, in real applications,
it turns out that making event handlers members of inherited widgets
is plain stupid. You end up using those functions as proxies to pass
the events on to the actual application code. (Or you end up with one
h*ll of a mess...) That code belongs in the *model* - not the
view/controller combo! Newer versions have action lists and stuff to
counter this, but the whole idead is backwards to begin with.
So, while Delphi (and similar visual RAD tools) give you this warm,
fuzzy feeling when you get something "working" in a matter of
minutes, when you dive in, you quickly discover that it's only the
surface water that is warm... "Been there, done that." It seemed nice
at first, but I don't really miss it. H*ll, I had the nice stuff -
the visual GUI editing - in my 100% asm GUI toolkit I did for an
Amiga tracker project. *That's* the part I miss - but I don't need a
five ton IDE for that; especially not one that dictates toolkit and
language.
> >*pulls the launch key out of the lock and wanders off for some
> > coffee*
>
> I'd be worried, but i know that both your launch computers and your
> onboard flight guidance computers are rigorously OO-compliant, so
> nothing would actually reach me - altho i'm sure the code itself is
> a model of probity and decorum ;-)
Yeah, I know... Should have programmed the darn things myself! ;-)
> PS: I just noticed your sig, wonder if u know of a decent free
> audio toolset? I'm trying to make mp3 copies of our CD collection,
> so we can listen to them at the cabin as well as home w/out
> carrying 30 lbs of CDs back and forth. I got "supersonic", not too
> bad, but it turns out to be use-limited (no warning, i hate that!).
> All i need right now is a way to rip about 50 CDs into mp3 files,
> with minimal uner intervention (yes, i'm willing to swap CDs and
> name the destination file ;)
Well, I don't do that kind of stuff much, but it just happens I wanted
to rip my Fear Factory CDs the other week. I googled around and found
"grip"; a GUI ripper for GNOME, which did the job just fine. It can
rip and encode (mp3, ogg or flac) single or partial tracks and entire
CDs with just a few clicks, and lots of other stuff. It can also get
track names from the 'net and generate names and ID3 tags, so you
don't have to name the files manually.
http://nostatic.org/grip/
However, that probably won't help much unless you have a Un*x box
around... I'd think there has to be some Free (or at least FreeWare)
apps that do this on Windows, but I'm afraid I can't point you at
one, as I very rarely use Windows these days. :-/
//David Olofson - Programmer, Composer, Open Source Advocate
.- Audiality -----------------------------------------------.
| Free/Open Source audio engine for games and multimedia. |
| MIDI, modular synthesis, real time effects, scripting,... |
`-----------------------------------> http://audiality.org -'
--- http://olofson.net --- http://www.reologica.se ---
- Follow-Ups:
- [gameprogrammer] Re: "Mission Efficiency" - Blue Collar coding
- From: Sebastian Beschke
- References:
- [gameprogrammer] Re: "Mission Efficiency" - Blue Collar coding
- From: grant hallman
- [gameprogrammer] Re: "Mission Efficiency" - Blue Collar coding
- From: grant hallman
Other related posts:
- » [gameprogrammer] "Mission Efficiency" - Blue Collar coding
- » [gameprogrammer] Re: "Mission Efficiency" - Blue Collar coding
- » [gameprogrammer] Re: "Mission Efficiency" - Blue Collar coding
- » [gameprogrammer] Re: "Mission Efficiency" - Blue Collar coding
- » [gameprogrammer] Re: "Mission Efficiency" - Blue Collar coding
- » [gameprogrammer] Re: "Mission Efficiency" - Blue Collar coding
- » [gameprogrammer] Re: "Mission Efficiency" - Blue Collar coding
- » [gameprogrammer] Re: "Mission Efficiency" - Blue Collar coding
- » [gameprogrammer] Re: "Mission Efficiency" - Blue Collar coding
- » [gameprogrammer] Re: "Mission Efficiency" - Blue Collar coding
- » [gameprogrammer] Re: "Mission Efficiency" - Blue Collar coding
- » [gameprogrammer] Re: "Mission Efficiency" - Blue Collar coding
- » [gameprogrammer] Re: "Mission Efficiency" - Blue Collar coding
- » [gameprogrammer] Re: "Mission Efficiency" - Blue Collar coding
- » [gameprogrammer] Re: "Mission Efficiency" - Blue Collar coding
- » [gameprogrammer] Re: "Mission Efficiency" - Blue Collar coding
- » [gameprogrammer] Re: "Mission Efficiency" - Blue Collar coding
- » [gameprogrammer] Re: "Mission Efficiency" - Blue Collar coding
- » [gameprogrammer] Re: "Mission Efficiency" - Blue Collar coding
- » [gameprogrammer] Re: "Mission Efficiency" - Blue Collar coding
- » [gameprogrammer] Re: "Mission Efficiency" - Blue Collar coding
- » [gameprogrammer] Re: "Mission Efficiency" - Blue Collar coding
- » [gameprogrammer] Re: "Mission Efficiency" - Blue Collar coding
- » [gameprogrammer] Re: "Mission Efficiency" - Blue Collar coding
- » [gameprogrammer] Re: "Mission Efficiency" - Blue Collar coding
- » [gameprogrammer] Re: "Mission Efficiency" - Blue Collar coding
- » [gameprogrammer] Re: "Mission Efficiency" - Blue Collar coding
- » [gameprogrammer] Re: "Mission Efficiency" - Blue Collar coding
- [gameprogrammer] Re: "Mission Efficiency" - Blue Collar coding
- From: Sebastian Beschke
- [gameprogrammer] Re: "Mission Efficiency" - Blue Collar coding
- From: grant hallman
- [gameprogrammer] Re: "Mission Efficiency" - Blue Collar coding
- From: grant hallman