Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon.

Pages: 1-

Why C++

Name: Anonymous 2013-01-13 2:42

Why C++

C++ is the best general purpose programming language. In a happy coincidence, it is also the most popular programming language. C++ is a multiparadigm language. It supports not only object-oriented programming, but functional, generic, and traditional structured programming. It supports combinations of those styles. You can attack a problem with the style that best suits it. In fact, When All Else Fails, you can turn to low-level, unstructured constructs. It's not pretty, but the language does not artificially restrict you from getting the job done. I will not argue too strongly here why C++ is the best general purpose programming language, but two deviations in particular need to be addressed.

Why Not C

First, C. C is the second best general purpose programming language, but there is a far cry between the second best and the best. C has a wonderful machine model and it is a very small language. The problem with C is that it is so small that it doesn't contain enough support for modern programming techniques. C has insufficient support for object-oriented programming and no support for generic programming. It's a great structured language, but that's all. Unfortunately, C is still with us today. C was very popular; Unix was written in C. For some insane reason, GNU/Linux and most GNU/Linux programs are still written in C. I believe that the underlying reason is lack of vision. Anyways, C should not be used in this day and age. C should not be learned. C should not be taught. C is not a stepping stone to learning C++; it is a detour. I myself learned C two years before learning C++, and this was a mistake. It is best to learn C++ directly and to never waste time with C. If for some reason you must later program in C, you can quickly learn to give up the conveniences of C++ and learn C style. There won't be unlearning involved, because C simply doesn't support C++ techniques. If you learn C before C++, as I did, you will have to unlearn C style and C constructs. While I am a rapid unlearner, you probably aren't, and in any case you shouldn't waste your time with it.

Why Not Java

Second, Java. Java is a terrible programming language developed by incompetent programmers. It is not an undue exaggeration to say that everything Java does is wrong. There is nothing interesting that can be learned from Java, except how such an awful programming language can become so popular. Java is said to increase programmer productivity, but this is a half-truth. Java increases the productivity of incompetent programmers; it harms the productivity of excellent programmers. Since 90% of programmers are incompetent, the overall effect is that Java increases programmer productivity. I submit that this is the exact opposite of a good thing. Do not waste time with Java; let the incompetent programmers revel in their miserable language while you embrace the wonder that is C++.

Name: Anonymous 2013-01-13 3:20

Any good link to learn C++ ?

Name: Anonymous 2013-01-13 3:34

I often find that programmers are also not using C++ to its full potential, by treating it as another version of C. Not like an object orientated language which C++ is. I learnt C++ first, and I found gasping the concepts of C easy, while using the OOP concepts of C++ as well.

Name: Anonymous 2013-01-13 4:33

C has insufficient support for object-oriented programming ...
Fortunately, programming is very possible without the object oriented paradigm.

and no support for generic programming.
Function pointers? Pointer to void? I'm sure what you're talking about is something specific, like templates, but are functions like qsort and bsearch not generic enough for you?

There isn't really anything else worth commenting on in the author's paragraph of C; the rest is just an ego trip. If you like ego trips and you want an alternative perspective, go read some of the crap Torvalds wrote on using C++ in his projects. It's really not much different to this, except Torvalds' criticism has slightly more substance to it.

Name: Anonymous 2013-01-13 5:08

C is relative simple, low level and offers a certain level of fine grained control. C++ has many features and this makes the language far more complex to use and comprehend for everybody. C is a fine language to use as the core of systems programming so that's why it is used there.

I use R6RS and Haskell in my application level projects.

Name: Anonymous 2013-01-13 5:17


    Why LISP

    LISP is the best general purpose programming language. In a happy coincidence, it is also the most popular programming language. LISP is a multiparadigm language. It supports not only object-oriented programming, but functional, generic, and traditional structured programming. It supports combinations of those styles. You can attack a problem with the style that best suits it. In fact, When All Else Fails, you can turn to low-level, unstructured constructs. It's not pretty, but the language does not artificially restrict you from getting the job done. I will not argue too strongly here why LISP is the best general purpose programming language, but two deviations in particular need to be addressed.

    Why Not Scheme

    First, Scheme. Scheme is the second best general purpose programming language, but there is a far cry between the second best and the best. Scheme has a wonderful machine model and it is a very small language. The problem with Scheme is that it is so small that it doesn't contain enough support for modern programming techniques. Scheme has insufficient support for object-oriented programming and no support for generic programming. It's a great structured language, but that's all. Unfortunately, Scheme is still with us today. Scheme was very popular; nothing was written in Scheme. For some insane reason, nothing and most nothing programs are still written in Scheme. I believe that the underlying reason is lack of vision. Anyways, Scheme should not be used in this day and age. Scheme should not be learned. Scheme should not be taught. Scheme is not a stepping stone to learning LISP; it is a detour. I myself learned Scheme two years before learning LISP, and this was a mistake. It is best to learn LISP directly and to never waste time with Scheme. If for some reason you must later program in Scheme, you can quickly learn to give up the conveniences of LISP and learn Scheme style. There won't be unlearning involved, because Scheme simply doesn't support LISP techniques. If you learn Scheme before LISP, as I did, you will have to unlearn Scheme style and Scheme constructs. While I am a rapid unlearner, you probably aren't, and in any case you shouldn't waste your time with it.

    Why Not C++

    Second, C++. C++ is a terrible programming language developed by prematurely optimizing programmers. It is not an undue exaggeration to say that everything C++ does is wrong. There is nothing interesting that can be learned from C++, except how such an awful programming language can become so popular. C++ is said to increase programmer productivity, but this is a half-truth. C++ increases the productivity of prematurely optimizing programmers; it harms the productivity of excellent programmers. Since 90% of programmers are prematurely optimizing, the overall effect is that C++ increases programmer productivity. I submit that this is the exact opposite of a good thing. Do not waste time with C++; let the prematurely optimizing programmers revel in their miserable language while you embrace the wonder that is LISP.

Name: Anonymous 2013-01-13 6:16

Why Not C++

C++ is a horrible language. It's made more horrible by the fact that a lot of substandard programmers use it, to the point where it's much much easier to generate total and utter crap with it. Quite frankly, even if the choice of C were to do *nothing* but keep the C++ programmers out, that in itself would be a huge reason to use C.

C++ leads to really really bad design choices. You invariably start using the "nice" library features of the language like STL and Boost and other total and utter crap, that may "help" you program, but causes infinite amounts of pain when they don't work (and anybody who tells me that STL and especially Boost are stable and portable is just so full of BS that it's not even funny)

In other words, the only way to do good, efficient, and system-level and portable C++ ends up to limit yourself to all the things that are basically available in C. And limiting your project to C means that people don't screw that up, and also means that you get a lot of programmers that do actually understand low-level issues and don't screw things up with any idiotic "object model" crap.

Name: Anonymous 2013-01-13 6:58

[…] Operator overloading and other features sure make C++ equally adaptable to any problem domain. This is achieved by making it the wrong tool for every job.

Name: Anonymous 2013-01-13 7:21

Why not Delphi?

Name: Anonymous 2013-01-13 16:50

>C is relative simple
wrong

C++ has many features and this makes the language far more complex to use and comprehend for everybody.
wrong

C is a fine language to use as the core of systems programming so that's why it is used there.
wrong

I use R6RS and Haskell in my application level projects.
LOL

Name: Anonymous 2013-01-13 17:00

>>10
First post? Welcome to /prog/. All threads will be replied to. [b][o]BACK TO REDDIT[/o][/b]

Name: Anonymous 2013-01-13 17:12

>>11
LLLLLEEEEEEEEEEELLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
>LE BACVK TO LE REDIT
>EWGIN POST
>LEEEELLLL
>MFW LE TRELLLEEELLLLEELLLLLLLLLLLLLLLL

Name: Anonymous 2013-01-13 17:23

>>10
>wrong
wrong

>wrong
wrong

>wrong
wrong

>LOL
LOL

>>12
E/
12 Name: Anonymous : 2013-01-13 17:12
      >>11
      LLLLLEEEEEEEEEEELLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
      >LE BACVK TO LE REDIT
      >EWGIN POST
      >LEEEELLLL
      >MFW LE TRELLLEEELLLLEELLLLLLLLLLLLLLLL
/IN!

Don't change these.
Name: Email:
Entire Thread Thread List