Choice of C++ for application development...

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • NUPUL

    Choice of C++ for application development...

    Hi,

    I have a few questions to ask with the use of C++ per se:

    1. For what type of applications is C++ actually used/preferred/
    chosen?
    2. ANSI C++ doesn't have any support for GUI libraries...usu ally we
    use Qt/Windows API etc..Then when/where do we use C++ in it's "pure"
    form (no linking to "any" 3rd party lib)
    3. Consider a 3 tier application (MVC architecture):

    Presentation
    |
    Business Logic
    |
    Data Access Layer

    Most architectures today follow this (very generic) pattern...usual ly.
    Where and how does C++ fit in? Could you please give me example
    applications?

    I hope I have been clear with what my doubt exactly is...I have been
    using C++ for 5 years...but primarily from an academic
    perspective...I 'd basically like to know it's application from a
    professional/industrial/Application-specific point of view.

    Thanks.

    Nupul.

  • Victor Bazarov

    #2
    Re: Choice of C++ for application development...

    NUPUL wrote:
    I have a few questions to ask with the use of C++ per se:
    >
    1. For what type of applications is C++ actually used/preferred/
    chosen?
    All kinds. It is a general purpose language. Isn't that what your
    favourite C++ book say about it?
    2. ANSI C++ doesn't have any support for GUI libraries...usu ally we
    use Qt/Windows API etc..Then when/where do we use C++ in it's "pure"
    form (no linking to "any" 3rd party lib)
    In utilities. Or libraries (to be used as 3rd party lib). Compilers
    come to mind...
    3. Consider a 3 tier application (MVC architecture):
    >
    Presentation
    |
    Business Logic
    |
    Data Access Layer
    >
    Most architectures today follow this (very generic) pattern...usual ly.
    Where and how does C++ fit in? Could you please give me example
    applications?
    It "fits" on all levels. Through available libraries any of those
    areas can be programmed in C++. Examples? Just pick your favourite
    image processor.
    I hope I have been clear with what my doubt exactly is...
    "Doubt"? What "doubt"? You just asked to do your homework for you,
    that's all. It's alright. Don't feel bad.
    I have been
    using C++ for 5 years...but primarily from an academic
    perspective...
    What in the world does that mean? "Used primarily from an academic
    perspective"... You either used it or you didn't.
    I'd basically like to know it's application from a
    professional/industrial/Application-specific point of view.
    Sure.

    V
    --
    Please remove capital 'A's when replying by e-mail
    I do not respond to top-posted replies, please don't ask


    Comment

    • Nick Keighley

      #3
      Re: Choice of C++ for application development...

      On 19 Apr, 05:15, NUPUL <nupul.kukr...@ gmail.comwrote:

      <snip>
      3. Consider a 3 tier application (MVC architecture):
      >
      Presentation
      |
      Business Logic
      |
      Data Access Layer
      >
      Most architectures today follow this (very generic) pattern...usual ly.
      really? Do you have statistics that demonstrate this?

      <snip>


      --
      Nick Keighley

      Comment

      • =?iso-8859-1?q?Erik_Wikstr=F6m?=

        #4
        Re: Choice of C++ for application development...

        On 19 Apr, 06:15, NUPUL <nupul.kukr...@ gmail.comwrote:
        Hi,
        >
        I have a few questions to ask with the use of C++ per se:
        >
        1. For what type of applications is C++ actually used/preferred/
        chosen?
        For most applications I write, though I've looked some on C# recently
        I do believe that I prefer C++/CLR if those kinds of stuff are needed.
        2. ANSI C++ doesn't have any support for GUI libraries...usu ally we
        use Qt/Windows API etc..Then when/where do we use C++ in it's "pure"
        form (no linking to "any" 3rd party lib)
        For things that you want to keep portable among other things, I'm
        currently working on an application where the backend is pure C++
        (except for one file for exporing functions when compiled as a DLL).
        That way I will be quite easy to port the important parts to a unix-
        like system if needed in the future.
        3. Consider a 3 tier application (MVC architecture):
        >
        Presentation
        |
        Business Logic
        |
        Data Access Layer
        >
        Most architectures today follow this (very generic) pattern...usual ly.
        Where and how does C++ fit in? Could you please give me example
        applications?
        Except from the fact that many of those applications are written in C+
        + there's not so much a question about fitting or not. Most languages
        can be used for any of the layers and it's mostly a question about
        choosing the right language for the job, and C++ often is.

        --
        Erik Wikström

        Comment

        • Michael

          #5
          Re: Choice of C++ for application development...

          On Apr 18, 9:33 pm, "Victor Bazarov" <v.Abaza...@com Acast.netwrote:
          NUPUL wrote:
          ....
          I hope I have been clear with what my doubt exactly is...
          >
          "Doubt"? What "doubt"? You just asked to do your homework for you,
          that's all. It's alright. Don't feel bad.
          Victor, surely you've been reading this newsgroup to know that in
          certain parts of the English speaking world (e.g., India), the word
          "doubt" is synonymous with "question." Every other day or so, someone
          posts something like "Doubt about template instantiation" or "Doubt
          about virtual destructor."

          Michael

          Comment

          • Alf P. Steinbach

            #6
            Re: Choice of C++ for application development...

            * Michael:
            On Apr 18, 9:33 pm, "Victor Bazarov" <v.Abaza...@com Acast.netwrote:
            >NUPUL wrote:
            ...
            >>I hope I have been clear with what my doubt exactly is...
            >"Doubt"? What "doubt"? You just asked to do your homework for you,
            >that's all. It's alright. Don't feel bad.
            >
            Victor, surely you've been reading this newsgroup to know that in
            certain parts of the English speaking world (e.g., India), the word
            "doubt" is synonymous with "question." Every other day or so, someone
            posts something like "Doubt about template instantiation" or "Doubt
            about virtual destructor."
            By correcting the language Victor helps the poster learn something new
            and useful, and helps the poster not spreading his or her misconceptions
            further.

            If only more people could do as Victor did here.

            If nobody had corrected me I'd still be saying "toy" when I meant
            "chewing gum", because that's what I learned as a child. Later on, as a
            teenager, I learned that in London they just don't understand that
            "blitz" means a (camera) flash lamp, or that an "eliminator " is a power
            adapter. Stupid grunts, they should use /my/ words!

            --
            A: Because it messes up the order in which people normally read text.
            Q: Why is it such a bad thing?
            A: Top-posting.
            Q: What is the most annoying thing on usenet and in e-mail?

            Comment

            • =?iso-8859-1?q?Erik_Wikstr=F6m?=

              #7
              Re: Choice of C++ for application development...

              On 20 Apr, 03:36, "Alf P. Steinbach" <a...@start.now rote:
              * Michael:
              >
              On Apr 18, 9:33 pm, "Victor Bazarov" <v.Abaza...@com Acast.netwrote:
              NUPUL wrote:
              ...
              >I hope I have been clear with what my doubt exactly is...
              "Doubt"? What "doubt"? You just asked to do your homework for you,
              that's all. It's alright. Don't feel bad.
              >
              Victor, surely you've been reading this newsgroup to know that in
              certain parts of the English speaking world (e.g., India), the word
              "doubt" is synonymous with "question." Every other day or so, someone
              posts something like "Doubt about template instantiation" or "Doubt
              about virtual destructor."
              >
              By correcting the language Victor helps the poster learn something new
              and useful, and helps the poster not spreading his or her misconceptions
              further.
              >
              If only more people could do as Victor did here.
              It would all be so true if that is how you look at it. Personally I
              can't see what Victor did as correcting his usage of the language, to
              me it looks more like he's ridiculing NUPUL. When writing to someone
              who hasn't got a perfect grip of the English language (which most of
              us don't) you need to be extra careful with how you express yourself,
              he could have just said "When you say doubt did you mean question?"

              --
              Erik Wikström

              Comment

              • zeppe

                #8
                Re: Choice of C++ for application development...

                Michael wrote:
                Victor, surely you've been reading this newsgroup to know that in
                certain parts of the English speaking world (e.g., India), the word
                "doubt" is synonymous with "question." Every other day or so, someone
                posts something like "Doubt about template instantiation" or "Doubt
                about virtual destructor."

                Sorry guys, now I'd have an OT question... why should the previous
                sentence be wrong? I'm not a native speaker, but until now I thought
                that "I have a doubt about something" would be definitely meaningful,
                and not with doubt as a synonym of "question", but of "uncertaint y".

                Probably in english language there are better ways to express such a
                concept, but can't I have a doubt about virtual destructors?

                So, to me the guy was just uncertain about the use of c++, I can't see
                what was wrong with this...

                Thank you

                Zeppe

                Comment

                • Lionel B

                  #9
                  Re: Choice of C++ for application development...

                  On Fri, 20 Apr 2007 03:36:33 +0200, Alf P. Steinbach wrote:
                  * Michael:
                  >On Apr 18, 9:33 pm, "Victor Bazarov" <v.Abaza...@com Acast.netwrote:
                  >>NUPUL wrote:
                  >...
                  >>>I hope I have been clear with what my doubt exactly is...
                  >>"Doubt"? What "doubt"? You just asked to do your homework for you,
                  >>that's all. It's alright. Don't feel bad.
                  >>
                  >Victor, surely you've been reading this newsgroup to know that in
                  >certain parts of the English speaking world (e.g., India), the word
                  >"doubt" is synonymous with "question." Every other day or so, someone
                  >posts something like "Doubt about template instantiation" or "Doubt
                  >about virtual destructor."
                  >
                  By correcting the language Victor helps the poster learn something new
                  and useful, and helps the poster not spreading his or her misconceptions
                  further.
                  I disagree. Michael was pointing out that in some English variants (and
                  isn't every local usage of a language a "variant", including US English,
                  UK English, Jamaican English, ...?) a certain word has different
                  connotations. So Victor was not "correcting " the language - he was
                  (understandably ) misunderstandin g a perfectly valid local usage (of which
                  I too was unaware, as it happens).
                  If only more people could do as Victor did here.
                  Not so sure... perhaps, rather, it is Victor (and myself) who have learnt
                  something "new and useful"; i.e. the existence of an interesting local
                  usage.
                  If nobody had corrected me I'd still be saying "toy" when I meant
                  "chewing gum", because that's what I learned as a child.
                  Ah, but that's (probably) not a recognised usage in *any* English variant!
                  Later on, as a
                  teenager, I learned that in London they just don't understand that
                  "blitz" means a (camera) flash lamp, or that an "eliminator " is a power
                  adapter. Stupid grunts, they should use /my/ words!
                  :) In England it is not uncommon for a word to mean something different
                  in the next village...

                  Another classic case is Latin American vs. Castillian Spanish; eg. the
                  perfectly normal sentence "Voy a coger el autobus" probably sounds
                  humorously "off" to a South American Spanish speaker...

                  --
                  Lionel B

                  Comment

                  • Michael Ekstrand

                    #10
                    [OT] Re: Choice of C++ for application development...

                    On Fri, 20 Apr 2007 09:33:34 +0100, zeppe wrote:
                    Michael wrote:
                    >Victor, surely you've been reading this newsgroup to know that in
                    >certain parts of the English speaking world (e.g., India), the word
                    >"doubt" is synonymous with "question." Every other day or so, someone
                    >posts something like "Doubt about template instantiation" or "Doubt
                    >about virtual destructor."
                    >
                    >
                    Sorry guys, now I'd have an OT question... why should the previous
                    sentence be wrong? I'm not a native speaker, but until now I thought
                    that "I have a doubt about something" would be definitely meaningful,
                    and not with doubt as a synonym of "question", but of "uncertaint y".
                    >
                    Probably in english language there are better ways to express such a
                    concept, but can't I have a doubt about virtual destructors?
                    >
                    So, to me the guy was just uncertain about the use of c++, I can't see
                    what was wrong with this...
                    At least in midwestern American English usage, the word "doubt" connotes
                    dubiousness. One has an uncertainty if they don't understand something
                    and are looking to; one has a doubt if they aren't persuaded that
                    something is true. The concepts often can and do overlap, but in this
                    context "doubt" is not the appropriate word IMHO. "Doubt about template
                    instantiation" implies that the writer doesn't believe something about
                    template instantiation, and the phrase does not contain sufficient
                    information to determine what exactly they are doubting. To me, with the
                    English usage to which I am accustomed, that subject line is saying half
                    of the user not being persuaded of either the existence or utility of
                    template instantiation.

                    But bear in mind, this is all IMHO and in my experience. English as
                    spoken in different parts of the world is, well, different; it may be
                    that, in India, "doubt" is fully synonymous with question or uncertainty.
                    Sure makes things confusing sometimes, though.

                    - Michael

                    Comment

                    • Glen Dayton

                      #11
                      Re: Choice of C++ for application development...

                      Erik Wikström wrote:
                      On 19 Apr, 06:15, NUPUL <nupul.kukr...@ gmail.comwrote:
                      >Hi,
                      >>
                      >I have a few questions to ask with the use of C++ per se:
                      >>
                      > 1. For what type of applications is C++ actually used/preferred/
                      >chosen?

                      Why do these sort of questions keep coming up? C++ is a
                      compiled multiple paradigm language. It is really good at
                      problems requiring a compiled multiple paradigm language. As a
                      statically compiled language it purposely lacks features present
                      in more dynamic languages because those features would
                      compromise performance. If you need more dynamic language
                      features, use a different language. If you need to use remote
                      procedure calls with dynamically determined interfaces, C++ is
                      not the best language. For any application, though, that
                      requires raw performance, I prefer C++. I've used C++ at
                      several companies for many different applications including
                      database manager implementation, business data analysis, orbital
                      analysis, and office collaboration software. We chose C++
                      because it is a compiled language so we could get decent
                      performance, and the expressiveness of the language allowed us
                      to rapidly develop quality programs.

                      C++ does have a steep learning curve. It is not obvious that
                      you should obey the law of threes, religiously use RAII, and
                      avoid inheriting from non-abstract classes. Once you learn the
                      rules, though, the language actually helps prevent errors.

                      My rule of thumb concerning language include the following:

                      -- If you want it slow but fancy, use Java.
                      -- If you want it broken, use Perl or Python.
                      -- If you want to be locked into a single platform, use C#.
                      -- If you know what you're doing, use C++.
                      > 2. ANSI C++ doesn't have any support for GUI libraries...usu ally we
                      >use Qt/Windows API etc..Then when/where do we use C++ in it's "pure"
                      >form (no linking to "any" 3rd party lib)
                      >
                      For things that you want to keep portable among other things, I'm
                      currently working on an application where the backend is pure C++
                      (except for one file for exporing functions when compiled as a DLL).
                      That way I will be quite easy to port the important parts to a unix-
                      like system if needed in the future.
                      Of course C++ supports GUI libraries. Major parts of those
                      libraries are written in C++.

                      >
                      > 3. Consider a 3 tier application (MVC architecture):
                      >>
                      >Presentation
                      > |
                      >Business Logic
                      > |
                      >Data Access Layer
                      >>
                      >Most architectures today follow this (very generic) pattern...usual ly.
                      >Where and how does C++ fit in? Could you please give me example
                      >applications ?
                      >
                      You are mixing architectural models. MVC is
                      Model-View-Controller architecture, which is different from
                      typical enterprise software 3-tier architectures.

                      Using your layers, we usually use Java and PHP for the
                      presentation. For everything else we use C++ because of
                      scalability and performance issues with any other choice of
                      language.

                      /Glen Dayton

                      Comment

                      Working...