Archived

This topic is now archived and is closed to further replies.

ddn3

Improving the Software Development Process

Recommended Posts

ddn3    1610
I was just thinking about programming lately, and have been brainstorming alittle. I would like to present some ideas, and hopefully get some feed back on them.. 1) public peer review source. Bascially it''s a concept common within scientific academica, where people publish their papers and findings and their peers review and reproduce it. What if developers publish snippets of their source and let others peer review it. There are issues with propriraty code, but i think a blind submission where blocks of the code are disassocaited and then mixed in with other snippets, would make it impossible to reassemble a complete program from mix of blocks. Though the blocks would still have to sufficent coherent to be peer reviewed. 2)A programming lanugage with testing built into the framework. Like how C++ is built upon the OOP paradimes, what if this new language was built around writting testable code, at all levels, automatically. It would be based upon C++, but have extensions for testing ( such as autoamted unit testing hooks, conditionally compiled low level debug dumps, etc.. ) 3)Writting programs through meta programs. I''ve been working with template programming for awhle now, and think this is possible. Using a combiniation of AI techonology and a sufficenltly expressive meta language describing progams you want to create, we can let computers handle the low level codeing and we would write meta programs to generate applications we want. So there are some ideas, any suggestions or extentions? -ddn

Share this post


Link to post
Share on other sites
JD    208
Sadly, none apply to game development. Reasons:

1)proprietary code ie. $$$
2)not feasible due to frequent changes because of hw or complexity
3)good in theory but too complex to be practical, hw changes too much so do features

Have you done a modern renderer lately? It''s anything but trivial, not good enough for OO due to speed problems and loss of expressive power. It''s too damn complex.

Share this post


Link to post
Share on other sites
JD    208
What I actually think we all want is top level code design decisions that others have made and the reasons for them. This is abstract enough that anyone can pitch in and not complex enough that it gets too long and boring ie. loosing everyone because of minute details for one type of situation.

Share this post


Link to post
Share on other sites
Zahlman    1682
quote:
Original post by ddn3
1) public peer review source. Bascially it''s a concept common within scientific academica, where people publish their papers and findings and their peers review and reproduce it. What if developers publish snippets of their source and let others peer review it. There are issues with propriraty code, but i think a blind submission where blocks of the code are disassocaited and then mixed in with other snippets, would make it impossible to reassemble a complete program from mix of blocks. Though the blocks would still have to sufficent coherent to be peer reviewed.


It''s called open source, and game people seem not to like it. Too bad for them. At least they''ll be able to sell the product without people saying "omfg you n00b, I can compile that for free, I''m not paying you".

I''m still trying to figure out how exactly ESR got rich.

quote:
2)A programming lanugage with testing built into the framework. Like how C++ is built upon the OOP paradimes, what if this new language was built around writting testable code, at all levels, automatically. It would be based upon C++, but have extensions for testing ( such as autoamted unit testing hooks, conditionally compiled low level debug dumps, etc.. )


Have you tried looking up things like cppunit/junit, etc.? They might be adequate for your needs. I can''t really imagine how to build that sort of thing *right into the language*, although I have to admit it''d be kinda cool.

quote:
3)Writting programs through meta programs. I''ve been working with template programming for awhle now, and think this is possible. Using a combiniation of AI techonology and a sufficenltly expressive meta language describing progams you want to create, we can let computers handle the low level codeing and we would write meta programs to generate applications we want.


Generated code is ugly. Probably the single thing I hate most about C++ (and I hate it a lot) is that the templates are pretty much just glorified macro expansion - except that when I write #defines they tend to *compile* and *work* the first time. I may be alone on this one, but I find templated code to be absolute hell to debug.

Though looking at it from another angle - aren''t computers already doing the "low level coding" when we feed our "meta program" source to a compiler? Naturally, new programming languages will work at progressively higher levels. Heck, the line between compiled and interpreted languages is already pretty much completely blurred out.

The idea of throwing AI in there kinda creeps me out though. I''d like my compilation/interpretation procedure to remain deterministic, thanks.

Share this post


Link to post
Share on other sites
Zahlman    1682
quote:
Original post by JD
What I actually think we all want is top level code design decisions that others have made and the reasons for them. This is abstract enough that anyone can pitch in and not complex enough that it gets too long and boring ie. loosing everyone because of minute details for one type of situation.


*cough* Portland Pattern Repository wiki, often referred to as "Ward''s wiki" or "the c2 wiki". http://c2.com/cgi/wiki .

(Disclaimer: I don''t work for those people, and don''t want to give the impression of spamming or anything. It''s just a really good resource that very nicely matches the description of what''s wanted.)

Share this post


Link to post
Share on other sites