Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c++ > #85833

Re: To C or not to C++

From David Brown <david.brown@hesbynett.no>
Newsgroups comp.lang.c++
Subject Re: To C or not to C++
Date 2022-08-10 10:13 +0200
Organization A noiseless patient Spider
Message-ID <tcvpc2$1p184$1@dont-email.me> (permalink)
References <2868500762@darkrealms.ca> <tcsrs5$tnp$1@gioia.aioe.org> <ygah72lu6nv.fsf@akutech.de> <tcutte$11jl$1@gioia.aioe.org>

Show all headers | View raw


On 10/08/2022 02:25, Manfred wrote:
> On 8/9/2022 11:07 AM, Ralf Fassel wrote:
>> * Juha Nieminen <nospam@thanks.invalid>
>> | I have never even heard of the "sketch" language so I can't comment.
>> | If I had to make a completely wild guess it's probably some kind of
>> | "higher-level" language with its own pros and cons compared to both
>> | C and C++.
>>
>> On the Arduino, you usually only write the loop() (in C/C++)
> 
> Note that the expression (C/C++) is considered a Bad Word nowadays.

That wording implies that it was once a more acceptable term - I don't 
think anyone knowledgable in the two languages has been happy about 
conflating them.  (It's fine to say "C /and/ C++", or "C /or/ C++".)

But a lot of people with less knowledge and experience do mix the 
language names, and think of them as variants or at least that C++ is 
just "C with some extra features".  And the Arduino targets relative 
beginners, and goes out of its way to try to hide that kind of 
"complexity" from users.

> The fact is that, even if in principle a C code fragment can be compiled 
> as C++ code, which might suggest the two languages are closely related, 
> in truth they are now very different languages, so that they can't be 
> mixed with each other.

They /are/ very closely related languages - and most well-written C code 
can be turned into working C++ code with only a few changes (such as 
casting the result of calls to malloc - the casts are perfectly fine in 
C, but not idoimatic) and without a change in functionality.  C is the 
base language on which C++ builds.

And yes they /can/ be mixed, and they /are/ mixed.  C++ is designed to 
be easy to mix with C, and incompatibilities are not made without good 
reason.  Indeed, a good deal of the things people dislike about C++, or 
that are not "good modern language design", trace back to compatibility 
with C.

One area of programming where C and C++ are regularly mixed, is 
resource-constrained embedded systems.  You can easily have a project 
with an RTOS in C90, some libraries in C99, application code in C++ of 
some sort, drivers in modern C - a full mix.  Typically the only code 
that is compiled as both C and C++ is the C headers, but you sometimes 
get more complicated headers that provide different features depending 
on the language at the time.


> If you are writing code that compiles both as C and C++, then you are in 
> fact writing C code, not C++.

That's just silly.  You are, in fact, writing code that is C code /and/ 
C++ code.  It might not be idiomatic code, but it is perfectly valid.

Some people are under the mistaken impression that to be "real" C++, you 
need to use lots of C++ features - that code is not "real" C++ unless it 
has classes (preferably with lots of inheritance, virtual methods, 
etc.), templates, standard library container classes, and the like. 
That's nonsense.  /Real/ programmers - i.e., people who make a living as 
programmers - know there are many ways to design code and many ways to 
implement it, with different pros and cons.  C++ is a multi-paradigm 
language designed to support a huge range of different styles of code. 
If the only difference between your C code and your C++ code is that you 
use "enum class" instead of "enum" to make your code safer, you are 
writing C++ code.

> 
> It may or may not be important to you, but if you show up at a job 
> interview talking about C/C++, you will effectively show up as someone 
> who does not know what they are talking about, so beware.
> 

That is perhaps true for technical interviews, but before you get to 
that stage you often have to pass through layers of HR folk who really 
do think there is a language called "C/C++" (and who also want 
candidates with 10 years of Rust experience).

>   which
>> handles incoming events, plus interrupt functions etc, whereas main() is
>> provided by the IDE.
>>
>> This code piece is called a 'sketch', which you compile and download to
>> the arduino.
>>
>> R'
> 

Back to comp.lang.c++ | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

To C or not to C++ NOSPAM.Alan.Beck@darkrealms.ca (Alan Beck) - 2022-08-08 09:43 +0000
  Re: To C or not to C++ Paavo Helde <eesnimi@osa.pri.ee> - 2022-08-08 20:02 +0300
  Re: To C or not to C++ Juha Nieminen <nospam@thanks.invalid> - 2022-08-09 05:38 +0000
    Re: To C or not to C++ Ralf Fassel <ralfixx@gmx.de> - 2022-08-09 11:07 +0200
      Re: To C or not to C++ Manfred <noname@add.invalid> - 2022-08-10 02:25 +0200
        Re: To C or not to C++ Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2022-08-09 17:52 -0700
          Re: To C or not to C++ Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2022-08-09 21:39 -0700
            Re: To C or not to C++ Muttley@dastardlyhq.com - 2022-08-10 07:45 +0000
          Re: To C or not to C++ scott@slp53.sl.home (Scott Lurndal) - 2022-08-10 19:50 +0000
            Re: To C or not to C++ Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2022-08-10 13:13 -0700
            Re: To C or not to C++ Manfred <noname@add.invalid> - 2022-08-11 04:29 +0200
        Re: To C or not to C++ Juha Nieminen <nospam@thanks.invalid> - 2022-08-10 02:41 +0000
        Re: To C or not to C++ Muttley@dastardlyhq.com - 2022-08-10 07:39 +0000
          Re: To C or not to C++ Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2022-08-10 10:11 -0700
            Re: To C or not to C++ Muttley@dastardlyhq.com - 2022-08-12 08:23 +0000
              Re: To C or not to C++ Juha Nieminen <nospam@thanks.invalid> - 2022-08-12 12:12 +0000
                Re: To C or not to C++ Muttley@dastardlyhq.com - 2022-08-12 14:41 +0000
                Re: To C or not to C++ Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2022-08-12 12:09 -0700
                Re: To C or not to C++ David Brown <david.brown@hesbynett.no> - 2022-08-13 10:28 +0200
                Re: To C or not to C++ Muttley@dastardlyhq.com - 2022-08-13 09:37 +0000
              Re: To C or not to C++ Paavo Helde <eesnimi@osa.pri.ee> - 2022-08-12 15:55 +0300
                Re: To C or not to C++ Muttley@dastardlyhq.com - 2022-08-12 14:43 +0000
                Re: To C or not to C++ Paavo Helde <eesnimi@osa.pri.ee> - 2022-08-12 18:07 +0300
                Re: To C or not to C++ Muttley@dastardlyhq.com - 2022-08-12 15:14 +0000
                Re: To C or not to C++ Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2022-08-12 12:11 -0700
                Re: To C or not to C++ Muttley@dastardlyhq.com - 2022-08-13 09:38 +0000
                Re: To C or not to C++ David Brown <david.brown@hesbynett.no> - 2022-08-13 17:56 +0200
                Re: To C or not to C++ Paavo Helde <eesnimi@osa.pri.ee> - 2022-08-24 11:32 +0300
                Re: To C or not to C++ Ben Bacarisse <ben.usenet@bsb.me.uk> - 2022-08-24 11:33 +0100
                Re: To C or not to C++ Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2022-08-24 04:37 -0700
                Re: To C or not to C++ Ben Bacarisse <ben.usenet@bsb.me.uk> - 2022-08-24 13:31 +0100
                Re: To C or not to C++ Muttley@dastardlyhq.com - 2022-08-24 14:09 +0000
                Re: To C or not to C++ Ben Bacarisse <ben.usenet@bsb.me.uk> - 2022-08-24 15:31 +0100
                Re: To C or not to C++ Muttley@dastardlyhq.com - 2022-08-24 14:38 +0000
                Re: To C or not to C++ Ben Bacarisse <ben.usenet@bsb.me.uk> - 2022-08-24 15:57 +0100
                Re: To C or not to C++ Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2022-08-24 10:41 -0700
                Re: To C or not to C++ Ben Bacarisse <ben.usenet@bsb.me.uk> - 2022-08-24 21:48 +0100
                Re: To C or not to C++ "Alf P. Steinbach" <alf.p.steinbach@gmail.com> - 2022-08-25 07:34 +0200
                Re: To C or not to C++ Ben Bacarisse <ben.usenet@bsb.me.uk> - 2022-08-25 11:29 +0100
                Re: To C or not to C++ Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2022-08-25 04:14 -0700
                Re: To C or not to C++ Ben Bacarisse <ben.usenet@bsb.me.uk> - 2022-08-25 12:36 +0100
                Re: To C or not to C++ Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2022-08-25 05:16 -0700
                Re: To C or not to C++ Ben Bacarisse <ben.usenet@bsb.me.uk> - 2022-08-25 17:16 +0100
                Re: To C or not to C++ David Brown <david.brown@hesbynett.no> - 2022-08-25 20:35 +0200
                [OT] Bad CS course, no cookie (Was: To C or not to C++) Ben Bacarisse <ben.usenet@bsb.me.uk> - 2022-08-25 21:32 +0100
                Re: [OT] Bad CS course, no cookie (Was: To C or not to C++) David Brown <david.brown@hesbynett.no> - 2022-08-25 23:16 +0200
                Re: [OT] Bad CS course, no cookie Ben Bacarisse <ben.usenet@bsb.me.uk> - 2022-08-26 00:33 +0100
                Re: [OT] Bad CS course, no cookie David Brown <david.brown@hesbynett.no> - 2022-08-26 10:39 +0200
                Re: [OT] Bad CS course, no cookie Ben Bacarisse <ben.usenet@bsb.me.uk> - 2022-08-26 10:57 +0100
                Re: [OT] Bad CS course, no cookie David Brown <david.brown@hesbynett.no> - 2022-08-26 12:49 +0200
                Re: To C or not to C++ Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2022-08-25 19:56 -0700
                Re: To C or not to C++ David Brown <david.brown@hesbynett.no> - 2022-08-26 10:47 +0200
                Re: To C or not to C++ Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2022-08-26 02:48 -0700
                Re: To C or not to C++ David Brown <david.brown@hesbynett.no> - 2022-08-26 13:02 +0200
                Re: To C or not to C++ Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2022-08-26 04:57 -0700
                Re: To C or not to C++ David Brown <david.brown@hesbynett.no> - 2022-08-26 14:55 +0200
                Re: To C or not to C++ Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2022-08-26 06:20 -0700
                Re: To C or not to C++ Manfred <noname@add.invalid> - 2022-08-27 18:44 +0200
                Re: To C or not to C++ David Brown <david.brown@hesbynett.no> - 2022-08-28 11:30 +0200
                Re: To C or not to C++ Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2022-08-25 10:06 -0700
                Re: To C or not to C++ Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2022-08-25 10:32 -0700
                Re: To C or not to C++ Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2022-08-25 11:36 -0700
                Re: To C or not to C++ David Brown <david.brown@hesbynett.no> - 2022-08-25 20:47 +0200
                Re: To C or not to C++ Manfred <noname@add.invalid> - 2022-08-26 03:11 +0200
                Re: To C or not to C++ David Brown <david.brown@hesbynett.no> - 2022-08-25 09:21 +0200
                Re: To C or not to C++ scott@slp53.sl.home (Scott Lurndal) - 2022-08-25 12:58 +0000
                Re: To C or not to C++ Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2022-08-25 10:23 -0700
                Re: To C or not to C++ David Brown <david.brown@hesbynett.no> - 2022-08-25 20:51 +0200
                Re: To C or not to C++ Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2022-08-25 12:14 -0700
                Re: To C or not to C++ scott@slp53.sl.home (Scott Lurndal) - 2022-08-24 13:56 +0000
                Re: To C or not to C++ Paavo Helde <eesnimi@osa.pri.ee> - 2022-08-24 17:18 +0300
                Re: To C or not to C++ Muttley@dastardlyhq.com - 2022-08-24 14:25 +0000
                Re: To C or not to C++ scott@slp53.sl.home (Scott Lurndal) - 2022-08-12 16:46 +0000
                Re: To C or not to C++ Juha Nieminen <nospam@thanks.invalid> - 2022-08-15 06:16 +0000
                Re: To C or not to C++ Muttley@dastardlyhq.com - 2022-08-15 19:01 +0000
                Re: To C or not to C++ Bo Persson <bo@bo-persson.se> - 2022-08-15 22:22 +0200
                Re: To C or not to C++ David Brown <david.brown@hesbynett.no> - 2022-08-16 08:48 +0200
                Re: To C or not to C++ Muttley@dastardlyhq.com - 2022-08-16 19:19 +0000
                Re: To C or not to C++ Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2022-08-16 12:56 -0700
                Re: To C or not to C++ Muttley@dastardlyhq.com - 2022-08-17 18:47 +0000
                Re: To C or not to C++ Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2022-08-17 14:49 -0700
                Re: To C or not to C++ Muttley@dastardlyhq.com - 2022-08-18 14:49 +0000
                Re: To C or not to C++ Manfred <noname@add.invalid> - 2022-08-19 03:10 +0200
                Re: To C or not to C++ d thiebaud <thiebauddick2@aol.com> - 2022-08-18 22:12 -0400
                Re: To C or not to C++ Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2022-08-18 20:08 -0700
                Re: To C or not to C++ Muttley@dastardlyhq.com - 2022-08-19 10:39 +0000
                Re: To C or not to C++ Juha Nieminen <nospam@thanks.invalid> - 2022-08-17 06:45 +0000
                Re: To C or not to C++ Muttley@dastardlyhq.com - 2022-08-17 18:48 +0000
                Re: To C or not to C++ Muttley@dastardlyhq.com - 2022-08-16 19:16 +0000
              Re: To C or not to C++ Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2022-08-12 12:03 -0700
        Re: To C or not to C++ David Brown <david.brown@hesbynett.no> - 2022-08-10 10:13 +0200
          Re: To C or not to C++ Manfred <noname@add.invalid> - 2022-08-11 04:25 +0200
            Re: To C or not to C++ Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2022-08-11 01:03 -0700
            Re: To C or not to C++ Juha Nieminen <nospam@thanks.invalid> - 2022-08-11 08:11 +0000
            Re: To C or not to C++ David Brown <david.brown@hesbynett.no> - 2022-08-11 13:53 +0200
              Re: To C or not to C++ Manfred <noname@add.invalid> - 2022-08-13 04:13 +0200
                Re: To C or not to C++ David Brown <david.brown@hesbynett.no> - 2022-08-13 21:13 +0200
                Re: To C or not to C++ Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2022-08-13 12:29 -0700
                Re: To C or not to C++ Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2022-08-13 13:12 -0700
                Re: To C or not to C++ David Brown <david.brown@hesbynett.no> - 2022-08-14 00:44 +0200
            Re: To C or not to C++ Öö Tiib <ootiib@hot.ee> - 2022-08-12 02:54 -0700
              Re: To C or not to C++ Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2022-08-12 12:12 -0700
                Re: To C or not to C++ Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2022-08-12 16:22 -0700
                Re: To C or not to C++ Öö Tiib <ootiib@hot.ee> - 2022-08-12 17:49 -0700
                Re: To C or not to C++ Manfred <noname@add.invalid> - 2022-08-13 03:16 +0200
                Re: To C or not to C++ Öö Tiib <ootiib@hot.ee> - 2022-08-13 09:08 -0700
                Re: To C or not to C++ Tim Rentsch <tr.17687@z991.linuxsc.com> - 2022-08-15 14:44 -0700
        Re: To C or not to C++ Ralf Fassel <ralfixx@gmx.de> - 2022-08-10 12:06 +0200
        Re: To C or not to C++ Juha Nieminen <nospam@thanks.invalid> - 2022-08-11 07:04 +0000
  Re: To C or not to C++ Bonita Montero <Bonita.Montero@gmail.com> - 2022-08-09 12:31 +0200
    Re: To C or not to C++ Muttley@dastardlyhq.com - 2022-08-09 15:59 +0000
    Re: To C or not to C++ Frederick Virchanza Gotham <cauldwell.thomas@gmail.com> - 2022-08-19 04:09 -0700
  Re: To C or not to C++ "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2022-08-13 12:17 -0700
  Re: To C or not to C++ "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2022-08-27 23:15 -0700

csiph-web