To STL or not to STL

Discussion in 'C++' started by Allan Bruce, Oct 16, 2003.

  1. Allan Bruce

    Allan Bruce Guest

    Hi there,

    I am interested to know if there are any C++ programmers who do not use STL.
    I have been coding in C++ for a year or so now, although only recently have
    I started a large(ish)-scale project. I do not use any STL, and I was
    wondering if there are any others out there that program in C++ without
    using STL? (Just to see if I am being stupid by not using it)

    Thanks
    Allan

    --
    Allan Bruce
    Dept. of Computing Science
    University of Aberdeen
    Aberdeen AB24 3UE
    Scotland, UK
     
    Allan Bruce, Oct 16, 2003
    #1
    1. Advertising

  2. Allan Bruce <> wrote:
    > I am interested to know if there are any C++ programmers who do not use STL.


    Can't speeak for the others by I certainly do not build all the general
    purpose containers myself. Why should I?

    Andre'
     
    =?iso-8859-1?Q?Andr=E9_P=F6nitz?=, Oct 16, 2003
    #2
    1. Advertising

  3. Allan Bruce <> spoke thus:

    > I am interested to know if there are any C++ programmers who do not use STL.
    > I have been coding in C++ for a year or so now, although only recently have
    > I started a large(ish)-scale project. I do not use any STL, and I was
    > wondering if there are any others out there that program in C++ without
    > using STL? (Just to see if I am being stupid by not using it)


    FWIW, the director of programming at my company is an old DOS h4x0r, and he
    long ago wrote code that completely wraps/replaces (I can't say which...) the
    STL. His reasoning is that the STL (std::vectors, particularly), didn't
    behave like he wanted, and anyway he's a real "reinvent a better wheel" type
    of guy.

    --
    Christopher Benson-Manica | I *should* know what I'm talking about - if I
    ataru(at)cyberspace.org | don't, I need to know. Flames welcome.
     
    Christopher Benson-Manica, Oct 16, 2003
    #3
  4. Allan Bruce wrote:
    >
    > Hi there,
    >
    > I am interested to know if there are any C++ programmers who do not use STL.
    > I have been coding in C++ for a year or so now, although only recently have
    > I started a large(ish)-scale project. I do not use any STL, and I was
    > wondering if there are any others out there that program in C++ without
    > using STL? (Just to see if I am being stupid by not using it)
    >
    > Thanks
    > Allan
    >

    I'd say that the biggest group of programmers that don't use the
    standard library would have to be those writing Windows apps using the
    MFC library. Since MFC provides similar types of classes (strings,
    containers), the majority of programmers that I know have little
    knowledge of the standard library.
     
    Graeme Cogger, Oct 16, 2003
    #4
  5. Allan Bruce

    d2003xx Guest

    "Allan Bruce" <> wrote in message news:<bmlqta$4gb$2surf.net>...
    > Hi there,
    >
    > I am interested to know if there are any C++ programmers who do not use STL.
    > I have been coding in C++ for a year or so now, although only recently have
    > I started a large(ish)-scale project. I do not use any STL, and I was
    > wondering if there are any others out there that program in C++ without
    > using STL? (Just to see if I am being stupid by not using it)


    me. Because it slows down the compilation too much (I hate waiting..)
     
    d2003xx, Oct 16, 2003
    #5
  6. Allan Bruce

    Ron Natalie Guest

    "Allan Bruce" <> wrote in message news:bmlqta$4gb$2surf.net...
    > Hi there,
    >
    > I am interested to know if there are any C++ programmers who do not use STL.


    I'm assuming by STL we're talking about the standard C++ library (as opposed to
    the old thing called the STL which precedes it).

    If they never use it, they've got their head stuck some where.

    > I have been coding in C++ for a year or so now, although only recently have
    > I started a large(ish)-scale project. I do not use any STL, and I was
    > wondering if there are any others out there that program in C++ without
    > using STL? (Just to see if I am being stupid by not using it)
    >

    Yes you are. If there is a feature supported by the library, you're better
    off using it than rolling your own. They make things much simpler. For
    example, vector and string both have reasonable copy/assignment/destruction
    behavior which means you don't have to sit there managing memory with new and
    delete.
     
    Ron Natalie, Oct 16, 2003
    #6
  7. Allan Bruce

    Ron Natalie Guest

    "Christopher Benson-Manica" <> wrote in message news:bmm46e$grp$...

    > behave like he wanted, and anyway he's a real "reinvent a better wheel" type


    What makes you think his reinvented wheel is better?
    ..
     
    Ron Natalie, Oct 16, 2003
    #7
  8. Allan Bruce

    Ron Natalie Guest

    "Graeme Cogger" <> wrote in message news:...

    > I'd say that the biggest group of programmers that don't use the
    > standard library would have to be those writing Windows apps using the
    > MFC library. Since MFC provides similar types of classes (strings,
    > containers), the majority of programmers that I know have little
    > knowledge of the standard library.


    The majority of people who think the world ends at the MFC boundary
    perhaps. I wouldn't say a majority of C++ programmers.
     
    Ron Natalie, Oct 16, 2003
    #8
  9. Ron Natalie <> spoke thus:

    > What makes you think his reinvented wheel is better?


    Nothing, necessarily. His philosophy is that he'd rather debug his own code
    rather than someone else's. I think the main reason we don't use the STL is
    that he started writing code 20 years ago, and back then I imagine his code
    may very well have been superior to the STL. One advantage is that when I
    want a "standard" class to do something different, I've got the implementor of
    the class sitting two desks away, and in 10 minutes I have what I want. The
    disadvantage, of course, is that should I find employment elsewhere, my new
    boss probably will not be pleased that I know nothing about the standard
    template library.

    --
    Christopher Benson-Manica | I *should* know what I'm talking about - if I
    ataru(at)cyberspace.org | don't, I need to know. Flames welcome.
     
    Christopher Benson-Manica, Oct 16, 2003
    #9
  10. Allan Bruce

    Ron Natalie Guest

    "Christopher Benson-Manica" <> wrote in message news:bmmm1c$iet$...
    > Ron Natalie <> spoke thus:
    >
    > > What makes you think his reinvented wheel is better?

    >
    > Nothing, necessarily. His philosophy is that he'd rather debug his own code
    > rather than someone else's.


    My philosophy is that the standard library is usually already debugged. Certainly
    any bugs in it are much easier to deal with than reimplementing it and debugging
    and providing ongoing support for an equivelent amout of code.

    > I think the main reason we don't use the STL is
    > that he started writing code 20 years ago, and back then I imagine his code
    > may very well have been superior to the STL.


    That is true. C++ wasn't really usable more than about 10 years ago. I've been
    programming in C since 1977. Times change. He needs to shed his antiquated
    belief systems. Many people who transition to C++ suffer from this brain damage.

    > The
    > disadvantage, of course, is that should I find employment elsewhere, my new
    > boss probably will not be pleased that I know nothing about the standard
    > template library.


    Absolutely, you'd have extreme difficulty with an interview here.
     
    Ron Natalie, Oct 16, 2003
    #10
  11. Allan Bruce

    Mike Wahler Guest

    "Ron Natalie" <> wrote in message
    news:3f8ec2de$0$69313$...
    >
    > "Graeme Cogger" <> wrote in message

    news:...
    >
    > > I'd say that the biggest group of programmers that don't use the
    > > standard library would have to be those writing Windows apps using the
    > > MFC library. Since MFC provides similar types of classes (strings,
    > > containers), the majority of programmers that I know have little
    > > knowledge of the standard library.

    >
    > The majority of people who think the world ends at the MFC boundary
    > perhaps. I wouldn't say a majority of C++ programmers.


    I write quite a bit of Windows code myself, at first it was
    only in C, but now moreso in C++. Guess what I use for string
    handling, containers, and much of the i/o? Standard Library.
    MFC? Ten-foot-pole, and all that. :)

    -Mike
     
    Mike Wahler, Oct 16, 2003
    #11
  12. Allan Bruce

    Mike Wahler Guest

    "Ron Natalie" <> wrote in message
    news:3f8ec298$0$69369$...
    >
    > "Allan Bruce" <> wrote in message

    news:bmlqta$4gb$2surf.net...
    > > Hi there,
    > >
    > > I am interested to know if there are any C++ programmers who do not use

    STL.
    >
    > I'm assuming by STL we're talking about the standard C++ library (as

    opposed to
    > the old thing called the STL which precedes it).
    >
    > If they never use it, they've got their head stuck some where.
    >
    > > I have been coding in C++ for a year or so now, although only recently

    have
    > > I started a large(ish)-scale project. I do not use any STL, and I was
    > > wondering if there are any others out there that program in C++ without
    > > using STL? (Just to see if I am being stupid by not using it)
    > >

    > Yes you are. If there is a feature supported by the library, you're

    better
    > off using it than rolling your own. They make things much simpler. For
    > example, vector and string both have reasonable

    copy/assignment/destruction
    > behavior which means you don't have to sit there managing memory with new

    and
    > delete.


    Also IMO equally important, not only is the code portable to
    other platforms without all the 'hand rolled' baggage, but it's
    also 'comprehension portable'. Any good C++ programmer recognizes
    e.g. std::vector<std::string> as quickly and readily as he does
    e.g. a 'for' loop.

    One might compare this concept with e.g. the consistent sizes,
    shapes, and colors of various types of road signs as in the
    U.S., IMO a Good Thing(tm). "Everybody knows what they mean."

    Who needs to pause to actually *read* the word "stop" on a
    stop-sign? A red and white octagon at an intersection immediately
    conveys the message, allowing one to focus on other important
    things, such as keeping an eye on that child on a bicycle riding
    on the shoulder.

    Those little rascals are just like program bugs, they'll dart
    out in front of you with no warning. (Happened to me this morning,
    that's what evoked the analogy.) Other than being a bit rattled
    by the tire screech and my scolding, he's OK. :)

    -Mike
     
    Mike Wahler, Oct 16, 2003
    #12
  13. Mike Wahler wrote:
    >
    >
    > Also IMO equally important, not only is the code portable to
    > other platforms without all the 'hand rolled' baggage, but it's
    > also 'comprehension portable'. Any good C++ programmer recognizes
    > e.g. std::vector<std::string> as quickly and readily as he does
    > e.g. a 'for' loop.
    >
    > One might compare this concept with e.g. the consistent sizes,
    > shapes, and colors of various types of road signs as in the
    > U.S., IMO a Good Thing(tm). "Everybody knows what they mean."
    >


    Aaahhhh. You mean the white "PED XING" painted on the street :)
    I had quite a funny time figuring out what that could mean when
    visiting the US the first time. (Keep in mind: I am not a native
    english speaker)

    --
    Karl Heinz Buchegger
     
    Karl Heinz Buchegger, Oct 16, 2003
    #13
  14. Allan Bruce

    lilburne Guest

    Allan Bruce wrote:
    > Hi there,
    >
    > I am interested to know if there are any C++ programmers who do not use STL.
    > I have been coding in C++ for a year or so now, although only recently have
    > I started a large(ish)-scale project. I do not use any STL, and I was
    > wondering if there are any others out there that program in C++ without
    > using STL? (Just to see if I am being stupid by not using it)
    >


    We don't use the standard library. Because when the decision
    to move to C++ was made in 1990 the standard library didn't
    exist. Most compilers didn't support templates, and as they
    became available they was buggy, poorly implemented and non
    standard across different platforms. Basically you couldn't
    write a portable system that used templates.

    Lists, sets, vectors, maps, strings, smart pointers etc were
    developed in-house using the generic macros that were the
    forerunners to templates. By the time the standard library
    was stable enough to use, we had our own variants that had
    been used throughout the company for a number of years.

    If we were starting out today then we would use the standard
    library, but currently there is no incentive to use the
    standard library when our own variant already does the job.
     
    lilburne, Oct 16, 2003
    #14
  15. Allan Bruce

    Guest

    "Allan Bruce" <> wrote in message news:<bmlqta$4gb$2surf.net>...
    [to STL or not as the subject says]

    Think of it this way:
    - The STL is available to anybody with a recent C++ compiler.
    - The STL is far more likely to be transportable than any code
    you write to replace it.
    - The STL is documented in several very good texts.
    - The previous includes how to make the STL peform efficiently
    in very many common situations and applications.
    - Also included is how to choose the right container for the job.
    - Also included are many considerations on how to avoid trouble,
    what contained objects are required to do or provide, how to
    debug trouble, how to instrument things to see how things are
    doing, how to prevent resource leaks, etc. etc.
    - There are several good places to discuss the STL with experts,
    one such place being here.
    - There is an absolute boatload of available examples in STL.
    - There are many experienced STL users. New team members are likely
    to already be experienced with STL.
    - There are web sites that compare compilers based on, among other
    things, how well they implement the STL.
    - Learning the STL, and learning it well, is likely to make you a
    more attractive member of future development teams.

    So, if you hack together some cobbled kludge to replace the STL:
    - You won't find any examples.
    - You will have to provide your own documentation.
    - You won't get much help from experts.
    - If you want to hire somebody to help on your project, you will
    have to train them up in your hacked kludge.
    - If it runs slowly, you won't get help on making it faster.
    - If you have memory leaks, space issues, etc., there won't be
    any articles in magazines to help you.
    - Your experience with this hack is unlikely to make you a more
    attractive member of future software development teams.

    In other words, this is one of those cases where standardization
    is a very good thing. As somebody else said, the only reason not
    to use the STL would be if you were handed an existing library
    that provided all the functionality you needed. For example,
    MFC based apps might not use the STL. Though I usually do anyway,
    on those occasions I write an MFC app.
    Socks
     
    , Oct 16, 2003
    #15
  16. Allan Bruce

    WW Guest

    Mike Wahler wrote:
    > MFC? Ten-foot-pole, and all that. :)


    What does that mean?

    --
    WW aka Attila he Englishly challenged :)
     
    WW, Oct 16, 2003
    #16
  17. Allan Bruce

    WW Guest

    Karl Heinz Buchegger wrote:
    > Aaahhhh. You mean the white "PED XING" painted on the street :)
    > I had quite a funny time figuring out what that could mean when
    > visiting the US the first time.


    Cross your legs? ;-)

    --
    WW aka Attila
     
    WW, Oct 16, 2003
    #17
  18. Allan Bruce

    Mike Wahler Guest

    Re: [OT] To STL or not to STL

    "Karl Heinz Buchegger" <> wrote in message
    news:...
    >
    > Mike Wahler wrote:
    > >
    > > Also IMO equally important, not only is the code portable to
    > > other platforms without all the 'hand rolled' baggage, but it's
    > > also 'comprehension portable'. Any good C++ programmer recognizes
    > > e.g. std::vector<std::string> as quickly and readily as he does
    > > e.g. a 'for' loop.
    > >
    > > One might compare this concept with e.g. the consistent sizes,
    > > shapes, and colors of various types of road signs as in the
    > > U.S., IMO a Good Thing(tm). "Everybody knows what they mean."

    >
    > Aaahhhh. You mean the white "PED XING" painted on the street :)


    As I'm sure you've figured out by now, that's "Pedestrian
    Crossing." But those are usually only found in the more
    urban or suburban areas. "Stop signs" appear at any intersection
    without electric light signals, urban area or not (with some
    exceptions, e.g. "Yield" signs on lower traffic roads, again
    with a standard color and shape -- yellow triangle.) Both
    those types of sign, and many others, also often appear on
    the bedroom doors or walls of juvenile delinquents. :)

    [End of driving lesson.] :)

    > I had quite a funny time figuring out what that could mean when
    > visiting the US the first time. (Keep in mind: I am not a native
    > english speaker)


    It means "Don't Zing the Peds" :)

    My mother recounted many such comprehension 'adventures'
    during her six-month stay in Paris. (And she had taken
    two years of French lessons in preparation for the trip. :))

    -Mike
     
    Mike Wahler, Oct 16, 2003
    #18
  19. Allan Bruce

    Moonlit Guest

    Hi,

    STL. It's fast to code, it is fast code.

    A few reasons and examples from real life:

    Even today just 1.5 hour before I would left work, a colleage came over he
    had to figure out what records had been sent to another system. Now I'm
    talking about millions of records. After figuring out that the first 30
    characters for the where unique. I created a program with a set (this sorted
    automatically so it can do a binary search), corrected headers and footers
    in the file. I was finished with testing the program actually in 1.5 hours
    (including the little research for uniqueness, creating the numbers file
    etc.) Debugging time was nearly zero (ok, I forget about the headers at one
    time). I was surprised about the speed myself since it had to do a lookup in
    about 40 megabyte of data loaded in the set.

    I have programmed in pure C and this would have taken a lot longer than
    this.

    I have never encountered a bug in the STL (and I use it all the time).

    Sure, it does take a while before you get used to using it. But once you do
    you will program faster than anyone in plain C. Not only that, I at
    sometime, compared 20 lines of code almost entirely of STL stuff (with the
    SGI hash_map) with someone else highly optimized C code of three pages long
    (it performed the same function). I talked to him how much microseconds his
    lookups took because I was very curious about that. The answer he gave was
    nearly the same as I had (I believe it was something like 45 and 47), but I
    am quite sure that coding 20 lines take less time than 3 pages of code not
    to mention the latter takes more time to read and to debug.

    At some time I had to maintain a program without manuals but with a lot of
    code. I wondered how to get it up in case it would crash (management decided
    no backups since the data was expendible). I read through the code, since
    they used the STL a lot, this was reasonably to do. It would have been much
    more difficult if I would have to dig through three times the code necessary
    to acomplish the same without the STL.

    Therefore I would say use and or learn STL, you will do yourself and others
    a favor (and you look up to date with your C++ knowledge).

    http://www.sgi.com/tech/stl/


    Regards, Ron AF Greve


    "Allan Bruce" <> wrote in message
    news:bmlqta$4gb$2surf.net...
    > Hi there,
    >
    > I am interested to know if there are any C++ programmers who do not use

    STL.
    > I have been coding in C++ for a year or so now, although only recently

    have
    > I started a large(ish)-scale project. I do not use any STL, and I was
    > wondering if there are any others out there that program in C++ without
    > using STL? (Just to see if I am being stupid by not using it)
    >
    > Thanks
    > Allan
    >
    > --
    > Allan Bruce
    > Dept. of Computing Science
    > University of Aberdeen
    > Aberdeen AB24 3UE
    > Scotland, UK
    >
    >
     
    Moonlit, Oct 16, 2003
    #19
  20. Allan Bruce

    Mike Wahler Guest

    "WW" <> wrote in message
    news:bmmsmr$nrn$...
    > Mike Wahler wrote:
    > > MFC? Ten-foot-pole, and all that. :)

    >
    > What does that mean?


    A colloquialism (I don't know the origin). Referring to
    something or someone considered undesirable, "I wouln't
    touch that with a ten-foot-pole." Meaning essentially
    "I would not touch that, or even go within ten feet of it."
    (about three metres to you. :))

    -Mike
     
    Mike Wahler, Oct 16, 2003
    #20
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Replies:
    4
    Views:
    816
    Daniel T.
    Feb 16, 2006
  2. Replies:
    2
    Views:
    563
    klaus hoffmann
    Feb 22, 2006
  3. Replies:
    5
    Views:
    518
    Markus Schoder
    Apr 16, 2006
  4. Steve
    Replies:
    2
    Views:
    518
    Andre Kostur
    Nov 6, 2007
  5. Andrey Vul
    Replies:
    6
    Views:
    582
    James Kanze
    Oct 22, 2009
Loading...

Share This Page