Thread: Design patters/discussion

  1. #1
    Registered User jeffcobb's Avatar
    Join Date
    Dec 2009
    Location
    Henderson, NV
    Posts
    875

    Design patters/discussion

    Most of the questions on this board involve direct questions about code (why doesn't X compile, etc). However some might be interested in a pure-design oriented thread where people could give or discuss different design strategies....sometimes solving the hard problems simple call for a different perspective...

    If not enough folks hold any interest in it I will let it drop. That is one thing I miss when telecommuting/etc is being able to bounce design ideas off of peers...
    C/C++ Environment: GNU CC/Emacs
    Make system: CMake
    Debuggers: Valgrind/GDB

  2. #2
    C++まいる!Cをこわせ!
    Join Date
    Oct 2007
    Location
    Inside my computer
    Posts
    24,654
    But people do like to discuss such things here, as well. You got something? Start a thread about some design, and people will reply.
    Quote Originally Posted by Adak View Post
    io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.
    Quote Originally Posted by Salem View Post
    You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.

    Outside of your DOS world, your header file is meaningless.

  3. #3
    l'Anziano DavidP's Avatar
    Join Date
    Aug 2001
    Location
    Plano, Texas, United States
    Posts
    2,743
    Personally I find the study and discussion of design patterns extremely boring.

    Sure, it's important to know some techniques to make life easier and make code simpler, but who would really want to devote their life to design patterns?

    ew
    My Website

    "Circular logic is good because it is."

  4. #4
    (?<!re)tired Mario F.'s Avatar
    Join Date
    May 2006
    Location
    Ireland
    Posts
    8,446
    As Elysia says. There's plenty of questions of that nature. Besides, the concept is awfully broad and extends well beyond what was defined by the GoF. There's no way a thread could be built about this and still remain informative after a few pages. Better wait for specific questions.
    Originally Posted by brewbuck:
    Reimplementing a large system in another language to get a 25% performance boost is nonsense. It would be cheaper to just get a computer which is 25% faster.

  5. #5
    Registered User VirtualAce's Avatar
    Join Date
    Aug 2001
    Posts
    9,607
    I have books on design patterns and that is about all I can stand. Extremely boring literature but very helpful when I need them for some pattern I want to use or research. We get all kinds of questions about design patterns here. Unless we are applying a pattern to solve a specific problem I fail to see how a discussion of it helps anyone.

  6. #6
    spurious conceit MK27's Avatar
    Join Date
    Jul 2008
    Location
    segmentation fault
    Posts
    8,300
    Hmmm.

    Being an ignorant little twerp, I could give a rat's rear end about design patterns, but bear with me anyway.

    I just got a job where I have to transfer a MVC style web app into a "Semantic MediaWiki". MediaWiki is the software used with Wikipedia, it is kind of MVC anyway. Semantic MediaWiki is a new fangled variation that involves more advanced queries:

    Help:Introduction to Semantic MediaWiki - semantic-mediawiki.org

    So I've been doing various kinds of reading to get oriented. Interesting to learn that "wikis" originated as online software re-visioning systems implemented by Ward Cunningham (who I think coined the term "design pattern" ?) c. 1995. If you haven't noticed, all the previous versions of a wiki page are available via the "history" tab.

    It has totally got me thinking that a wiki would be a great thing to have alongside a forum* (I'm sure these already exist, I just don't know of any) because it is better suited to the kind of thing jeffcobb is proposing, whereas the forum is better suited to more impromptu realtime discussion, and questions about things that may fall thru the cracks. So the feedback between a forum and a wiki would be fantastic, methinks. Wikis are collaborative and produced by communities of members just like forums are. I believe a lot of software involved companies (eg, IBM) already use private wikis for their staff.

    I'm not necessarily suggesting cboard get a wiki, altho since there are a lot of tutorial pages it might be a better way to organize those and open them up to contributions from the general membership. Hmmm. Maybe I am suggesting that...

    Anyway, sometime in the near future I will probably want to go forward with something of this sort. My initial idea was a "Linux Development Wiki" since AFAIK there is not actually a central resource for linux programmers the way that there is for windows programmers.

    But I don't want to do that myself or even be in charge, and there is the hosting question, I'm just throwing the idea out and anyone who's interested. Since cboard is probably one of the "premiere" resources for beginning C/C++ programmers on the www, an associated C/C++ Wiki might be great.

    In the meantime Jeff you can always write a little bit about design patterns, it might prompt further discussion and the material could be useful elsewhere later. And sorry if I seem to be hijacking your thread

    * since I have to tool around with one at home, I'm probably gonna set it up here as a note taking tool...if you've never done it, writing/editing a wiki article is dead simple and about as time consuming as posting to a forum thread.
    Last edited by MK27; 02-10-2010 at 05:10 PM.
    C programming resources:
    GNU C Function and Macro Index -- glibc reference manual
    The C Book -- nice online learner guide
    Current ISO draft standard
    CCAN -- new CPAN like open source library repository
    3 (different) GNU debugger tutorials: #1 -- #2 -- #3
    cpwiki -- our wiki on sourceforge

  7. #7
    (?<!re)tired Mario F.'s Avatar
    Join Date
    May 2006
    Location
    Ireland
    Posts
    8,446
    There's been an effort to create a cboard wiki before.

    It failed miserably.

    And it failed exactly because wikis are collaborative projects and people have better things to do... even when they think they don't. The only successful wiki I know of is Wikipedia and the reason it is so is because it was a novelty, gained momentum and adopted a digital sharecropping model. Nothing of this represents cboard and its members.

    All other wikis I know of, or have seen through the years, are total fails. They reveal the great weaknesses of the whole Wiki culture: they don't survive too well unless supported by very large communities on the backs of sharecroppers and they have an absurd, almost offensive, complete lack of search and indexing features which render them all but completely useless tools. If you know what you are searching for, odds are a community of 1,000 individuals hasn't yet created an article for it. If you don't know what you are looking for, then don't even think about finding it.

    Semantic wiki is just an absurd answer to the problem. It pretends to solve the problem by adding semantical context to articles and text within articles. Problem is that it still relies on whether or not such text is added by the article writers/editors and, of course, the relevance of those semantic keywords.

    Full text search, or its lacks thereof, is the actual problem. As is lack of indexing features. Semantic wiki only partially answers the latter.

    I'm not a fan of wikis. It's obvious. But I know of no other such absurd idea that has been so hyped in the web and keeps being hyped while providing near 0 effective results. People don't use wikis. When they see wikis, they shun knowing the chance of finding what they want very slim, and finding what they don't know how to search completely impossible. The only people using wikis are those who collaborate in them thinking everyone else is using them.
    Originally Posted by brewbuck:
    Reimplementing a large system in another language to get a 25% performance boost is nonsense. It would be cheaper to just get a computer which is 25% faster.

  8. #8
    spurious conceit MK27's Avatar
    Join Date
    Jul 2008
    Location
    segmentation fault
    Posts
    8,300
    Quote Originally Posted by Mario F. View Post
    There's been an effort to create a cboard wiki before.

    It failed miserably.
    I can believe that, that's why it might be better as a separate entity easily used by cboard members to (eg) save time repeating the same answers over and over. Really the Linux Dev wiki is the most interesting idea to me personally.

    the great weaknesses of the whole Wiki culture: they don't survive too well unless supported by very large communities on the backs of sharecroppers and they have an absurd, almost offensive, complete lack of search and indexing features which render them all but completely useless tools
    Yeah, that's the point of a semantic wiki.

    Kind of strange you refer to "other wikis I know of, or have seen through the years, are total fails" -- I seem to run into them flourishing on a daily basis, usually they are API centric. Perhaps this is more of an open source community phenomenon, since that's where it started.

    Full text searching as part of the wiki itself would be redundant and superfluous since search engines already provide this.

    Of course if you don't like wikis, you don't like wikis -- move on.
    Last edited by MK27; 02-10-2010 at 06:04 PM.
    C programming resources:
    GNU C Function and Macro Index -- glibc reference manual
    The C Book -- nice online learner guide
    Current ISO draft standard
    CCAN -- new CPAN like open source library repository
    3 (different) GNU debugger tutorials: #1 -- #2 -- #3
    cpwiki -- our wiki on sourceforge

  9. #9
    Registered User jeffcobb's Avatar
    Join Date
    Dec 2009
    Location
    Henderson, NV
    Posts
    875
    Quote Originally Posted by DavidP View Post
    Personally I find the study and discussion of design patterns extremely boring.

    Sure, it's important to know some techniques to make life easier and make code simpler, but who would really want to devote their life to design patterns?

    ew
    Then don't participate. Problem solved. Some of us are interested in new ways of architecting non-trivial systems.

    As for the rest (thread too vague, etc) I was floating a trial balloon to see if there would be any interest in debating different approaches to specific design issues.

    Another reason I did that is to make sure a design discussion (which by definition doesn't involve source code) doesn't get flushed because someone doesn't know that I am not fishing for someone to do the coding. More I could see value in any solutions being discussed to be described in pseudo-code at most, leaving the actual implementation open to C, C++, C# or literally any civilized language.
    C/C++ Environment: GNU CC/Emacs
    Make system: CMake
    Debuggers: Valgrind/GDB

  10. #10
    spurious conceit MK27's Avatar
    Join Date
    Jul 2008
    Location
    segmentation fault
    Posts
    8,300
    Okay so what is "Extreme programming" and how long will it take for me to get big air that way?
    C programming resources:
    GNU C Function and Macro Index -- glibc reference manual
    The C Book -- nice online learner guide
    Current ISO draft standard
    CCAN -- new CPAN like open source library repository
    3 (different) GNU debugger tutorials: #1 -- #2 -- #3
    cpwiki -- our wiki on sourceforge

  11. #11
    (?<!re)tired Mario F.'s Avatar
    Join Date
    May 2006
    Location
    Ireland
    Posts
    8,446
    I don't mind discussing it, jeff. I don't find the theme particularly boring (although I'd agree it's more fun to discuss algorithms). But I don't know of any other way to discuss design patterns in general than just do a recount of what is already written about it. And a general discussion was what you first post gave an impression of.
    Originally Posted by brewbuck:
    Reimplementing a large system in another language to get a 25% performance boost is nonsense. It would be cheaper to just get a computer which is 25% faster.

  12. #12
    and the hat of sweating
    Join Date
    Aug 2007
    Location
    Toronto, ON
    Posts
    3,545
    Quote Originally Posted by Mario F. View Post
    All other wikis I know of, or have seen through the years, are total fails. They reveal the great weaknesses of the whole Wiki culture: they don't survive too well unless supported by very large communities on the backs of sharecroppers and they have an absurd, almost offensive, complete lack of search and indexing features which render them all but completely useless tools. If you know what you are searching for, odds are a community of 1,000 individuals hasn't yet created an article for it. If you don't know what you are looking for, then don't even think about finding it.
    My company uses an internal Wiki to document all their products and other stuff, and although it's not quite as informative and up to date as Wikipedia, it's better than searching for documents on a file server...
    "I am probably the laziest programmer on the planet, a fact with which anyone who has ever seen my code will agree." - esbo, 11/15/2008

    "the internet is a scary place to be thats why i dont use it much." - billet, 03/17/2010

  13. #13
    spurious conceit MK27's Avatar
    Join Date
    Jul 2008
    Location
    segmentation fault
    Posts
    8,300
    Quote Originally Posted by cpjust View Post
    My company uses an internal Wiki to document all their products and other stuff, and although it's not quite as informative and up to date as Wikipedia, it's better than searching for documents on a file server...
    One thing I've noticed with the API sites that use a wiki is the most concise/up-to-date/useful info is in the wiki, most likely because a lot more people 1) are able, and 2) feel free, to correct, update, and expand the info, whereas normative documentation is often just auto-generated and left to gather dust.

    To be honest, just in general looking around for code samples and algorithm descriptions: I'll spend an hour looking thru all kinds of half-baked and incomplete blogs or tutorials by individuals, then I head to wikipedia and bingo: exactly what I wanted.

    Still think it's interesting that the same guy came up with both the wiki concept and the design pattern concept. Maybe this is the missing link:

    http://en.wikipedia.org/wiki/WikiWikiWeb

    The WikiWikiWeb's current WelcomeVisitors page contains the following description:

    Our site's primary focus is PeopleProjectsAndPatterns in SoftwareDevelopment. Nevertheless, it is much more than just an InformalHistoryOfProgrammingIdeas.
    I suppose he's serious tho.
    Last edited by MK27; 02-10-2010 at 10:13 PM.
    C programming resources:
    GNU C Function and Macro Index -- glibc reference manual
    The C Book -- nice online learner guide
    Current ISO draft standard
    CCAN -- new CPAN like open source library repository
    3 (different) GNU debugger tutorials: #1 -- #2 -- #3
    cpwiki -- our wiki on sourceforge

  14. #14
    Woof, woof! zacs7's Avatar
    Join Date
    Mar 2007
    Location
    Australia
    Posts
    3,459
    Yes shame the wiki failed. Not that I contributed. A wiki has a time and a place. Something that is forgotten often.

    I'd say Design Patterns are far more interesting than the maths behind CS. Seriously, yawn. I'll learn as much as required to be a good SE. But it stops there

  15. #15
    and the hat of sweating
    Join Date
    Aug 2007
    Location
    Toronto, ON
    Posts
    3,545
    I love this Uncyclopedia wiki though: Uncyclopedia
    "I am probably the laziest programmer on the planet, a fact with which anyone who has ever seen my code will agree." - esbo, 11/15/2008

    "the internet is a scary place to be thats why i dont use it much." - billet, 03/17/2010

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Game Engine Design
    By IceDane in forum Game Programming
    Replies: 2
    Last Post: 01-17-2010, 02:47 PM
  2. which design is better to wrap another class instance
    By George2 in forum C++ Programming
    Replies: 7
    Last Post: 04-13-2008, 12:27 AM
  3. any comments about a cache design?
    By George2 in forum C Programming
    Replies: 6
    Last Post: 09-14-2006, 12:53 PM
  4. Implementing Inheritence into your design
    By bobthebullet990 in forum C++ Programming
    Replies: 6
    Last Post: 08-05-2006, 04:40 PM