[Csnd] Is Bjarne Stroustrup wronge?
Date | 2012-04-09 23:03 |
From | Cacophony7 |
Subject | [Csnd] Is Bjarne Stroustrup wronge? |
I saw a video of Bjarne Stroustrup, the creator of C++, at least IMPLYING that the original C is obsolete. Is he correct or is he just being esoteric and stupid? Csound is written in C. If C is obsolete, is there going to be a C++sound? -- View this message in context: http://csound.1045644.n5.nabble.com/Is-Bjarne-Stroustrup-wronge-tp5628494p5628494.html Sent from the Csound - General mailing list archive at Nabble.com. |
Date | 2012-04-09 23:14 |
From | Victor Lazzarini |
Subject | Re: [Csnd] Is Bjarne Stroustrup wronge? |
If he said that, he is wrong. On 9 Apr 2012, at 23:03, Cacophony7 wrote: > I saw a video of Bjarne Stroustrup, the creator of C++, at least IMPLYING > that the original C is obsolete. > Is he correct or is he just being esoteric and stupid? > > Csound is written in C. If C is obsolete, is there going to be a C++sound? > > -- > View this message in context: http://csound.1045644.n5.nabble.com/Is-Bjarne-Stroustrup-wronge-tp5628494p5628494.html > Sent from the Csound - General mailing list archive at Nabble.com. > > > Send bugs reports to the Sourceforge bug tracker > https://sourceforge.net/tracker/?group_id=81968&atid=564599 > Discussions of bugs and features can be posted here > To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe csound" > Dr Victor Lazzarini Senior Lecturer Dept. of Music NUI Maynooth Ireland tel.: +353 1 708 3545 Victor dot Lazzarini AT nuim dot ie |
Date | 2012-04-09 23:19 |
From | Jacob Joaquin |
Subject | Re: [Csnd] Is Bjarne Stroustrup wronge? |
I'm pretty neutral in the whole C vs C++ debate, but I do enjoy this post from Linus Torvalds from 2007: http://harmful.cat-v.org/software/c++/linus Also, this fake interview was a cause of a big flame war back in the day: http://www.ariel.com.au/jokes/An_Interview_with_Bjarne_Stroustrup.html On Mon, Apr 9, 2012 at 3:14 PM, Victor Lazzarini |
Date | 2012-04-09 23:41 |
From | Steven Yi |
Subject | Re: [Csnd] Is Bjarne Stroustrup wronge? |
I was just writing an email that mentioned that Torvalds post. :P I think C is going to be around for a very long time and is hardly obsolete. The Linux kernel, most compilers, and decades worth of software is built in C. Even most higher-level languages end up using C in their compilers or runtimes. As for Csound, there is some C++ being used, but not within the core. It's primarily used in some wrapper classes that are used with SWIG to generate the interfaces used Python, Java, and other languages. There are also some C++ opcodes as well. I think as Csound 6 comes along, there will be some more work done in C++ for wrappers, but I don't think there'd be much benefit from moving Csound's core to C++. On Mon, Apr 9, 2012 at 11:19 PM, Jacob Joaquin |
Date | 2012-04-10 01:51 |
From | Erik de Castro Lopo |
Subject | Re: [Csnd] Is Bjarne Stroustrup wronge? |
Steven Yi wrote: > I think C is going to be around for a very long time and is hardly > obsolete. I think thats unfortunate but true. > The Linux kernel, Writing OS kernels in C makes sense. > most compilers, But C is a horrible language for writing compilers. I have written or hacked on compilers written in C, C++, Ocaml and Haskell. Compilers written in the later two langauges are and order of magnitude easier to work on and less error prone. When writing real compilers (ie ones that generate native code) in Ocaml and Haskell, a very small portion of the code still needs to be written in C, but lexing, parsing, semantic checking/analysis, optimisation and code generation are all better in Ocaml or Haskell. The only bits that require C is the run time support for the language. Erik -- ---------------------------------------------------------------------- Erik de Castro Lopo http://www.mega-nerd.com/ |
Date | 2012-04-10 02:26 |
From | Michael Gogins |
Subject | Re: [Csnd] Is Bjarne Stroustrup wronge? |
I have an engineering observation, a sociological/business observation, and a personal observation to make about programming languages. The engineering observation is that C and C++ compile to distinctly the fastest runtimes of any language, except possibly hand-tuned assembler or (for some numerical purposes) Fortran. The difference between C and C++ is not significant, that is, for all practical purposes C++ is as fast as C. The sociological/business observation is that the majority of commercial music software, the majority of computer games, the majority of contemporary avionics software, a considerable amount of life-critical embedded systems software, the majority of physics data analysis software, and of course the majority of shrink-wrap consumer software is written in C++. The personal observation is that, although choice of programming language is apparently a matter of personal taste and custom rather than engineering reason, having had the opportunity to learn a large number of programming languages in the course of a life spent writing software for a living and for making music, I use C++ when I can -- which is pretty much always. That includes, now, writing music compositions as C++ programs. I would like to add that the addition of new features such as lambdas and closures, the auto keyword, a new threading-oriented memory model and threads library, and so on make it distinctly easier to write good C++ code than with older versions. Regards, Mike On Mon, Apr 9, 2012 at 8:51 PM, Erik de Castro Lopo |
Date | 2012-04-10 02:39 |
From | Steven Yi |
Subject | Re: [Csnd] Is Bjarne Stroustrup wronge? |
Hi Erik, I won't argue what is better for compilers, just that I've found that most compilers are written in C: gcc, the D language compiler, clisp, Google's go language tools are examples. I took a look and was curious to find llvm and clang are in C++. Other higher level languages like python, ruby, tcl, perl have core parts written in C. There's simply a lot of tools and programs out there written in C, such that I see it being used for a very long time. steven On Tue, Apr 10, 2012 at 1:51 AM, Erik de Castro Lopo |
Date | 2012-04-10 02:44 |
From | Erik de Castro Lopo |
Subject | Re: [Csnd] Is Bjarne Stroustrup wronge? |
Michael Gogins wrote: > I have an engineering observation, a sociological/business > observation, and a personal observation to make about programming > languages. > > The engineering observation is that C and C++ compile to distinctly > the fastest runtimes of any language, except possibly hand-tuned > assembler or (for some numerical purposes) Fortran. The difference > between C and C++ is not significant, that is, for all practical > purposes C++ is as fast as C. > > The sociological/business observation is that the majority of > commercial music software, the majority of computer games, the > majority of contemporary avionics software, a considerable amount of > life-critical embedded systems software, the majority of physics data > analysis software, and of course the majority of shrink-wrap consumer > software is written in C++. You miss one very large software segment where C and C++ is almost never used, back end web applications. For backend web its Perl, Python, Ruby, Java, PHP, C# etc etc. > I would like to add that the addition of new features such as lambdas > and closures, the auto keyword, a new threading-oriented memory model > and threads library, and so on make it distinctly easier to write good > C++ code than with older versions. I will point you to: http://fpcomplete.com/the-downfall-of-imperative-programming/ Erik -- ---------------------------------------------------------------------- Erik de Castro Lopo http://www.mega-nerd.com/ |
Date | 2012-04-10 03:05 |
From | Erik de Castro Lopo |
Subject | Re: [Csnd] Is Bjarne Stroustrup wronge? |
Steven Yi wrote: > I won't argue what is better for compilers, just that I've found that > most compilers are written in C: gcc, the D language compiler, clisp, > Google's go language tools are examples. Well in the case of gcc, clisp, they were started so long ago that C was the obvious choice. Since the D compler was written by the guy behind the Digital Mars C and C++ compiler, that is surprising. Since the go compiler was written by Rob Pike with is history of C and Unix, again, this is not a surprise. > I took a look and was > curious to find llvm and clang are in C++. Other higher level > languages like python, ruby, tcl, perl have core parts written in C. The Ocaml compiler is mostly written in Ocaml (with some runtime support written in C). There are a number of compiles written in Ocaml, including the compiler for HaXe (https://en.wikipedia.org/wiki/HaXe). The GHC Haskell compiler is written in Haskell, and since I had a copy handy I can give some numbers: Language Lines of code Haskell 247890 C headers 17558 C implementaton 74142 There are about about a dozen other compilers I know of which are also written mostly in Haskell, but mostly for obscure research languages. Erik -- ---------------------------------------------------------------------- Erik de Castro Lopo http://www.mega-nerd.com/ |
Date | 2012-04-10 06:49 |
From | Jeremy Henty |
Subject | Re: [Csnd] Is Bjarne Stroustrup wronge? |
Attachments | None |
Date | 2012-04-10 06:59 |
From | Jeremy Henty |
Subject | Re: [Csnd] Is Bjarne Stroustrup wronge? |
Attachments | None |
Date | 2012-04-10 10:11 |
From | Richard Dobson |
Subject | Re: [Csnd] Is Bjarne Stroustrup wronge? |
There is of course a further criterion of special interest to audio - languages that can be used in a real-time audio thread or callback. It is already generally known, for example, that Objective-C calls must be avoided in CoreAudio/iOS callbacks; and that in the more general case anything that might attract the attention of a garbage collector is not a desirable thing to have in a callback. Any language that one way or another manages memory opaquely may be very convenient indeed for general application programming, but as usual the requirements for real-time audio with strict deadlines are somewhat "special". At Bath we coined a name for this - HiPAC: High-Performance Audio Computing. This embraces the question of languages for true parallel processing, when the core count (even within one box) has risen to double and even triple and quadruple figures. I think it remains very much to be seen if even the new threads support in the latest C++ can really scale up that far. Derivative/extended languages focused on large-scale concurrency include Cilk++ and Charm++. And Occam is still very much around. Audio and video people are always going to have a big interest in hardware performance, in real-time constraints, and of course all with low and predictable latency. Richard Dobson On 10/04/2012 01:51, Erik de Castro Lopo wrote: > Steven Yi wrote: > >> I think C is going to be around for a very long time and is hardly >> obsolete. > > I think thats unfortunate but true. > >> The Linux kernel, > > Writing OS kernels in C makes sense. > >> most compilers, > > But C is a horrible language for writing compilers. I have written > or hacked on compilers written in C, C++, Ocaml and Haskell. Compilers > written in the later two langauges are and order of magnitude easier > to work on and less error prone. When writing real compilers (ie ones > that generate native code) in Ocaml and Haskell, a very small portion > of the code still needs to be written in C, but lexing, parsing, > semantic checking/analysis, optimisation and code generation are all > better in Ocaml or Haskell. The only bits that require C is the > run time support for the language. > > Erik |
Date | 2012-04-10 10:20 |
From | Erik de Castro Lopo |
Subject | Re: [Csnd] Is Bjarne Stroustrup wronge? |
Jeremy Henty wrote: > Andrew Morton (a *very* important Linux kernel developer) once said he > saw no reason not to have C++ in the kernel but that it would likely > never happen due to the developer culture. I have a friend who did indeed write a rather large Linux kernel driver in C++. However it required large amounts of tricky to debug helper code to provide support for C++ features like exceptions, new/delete, static object initialisation etc. > There was recently serious discussion of writing parts of gcc in C++. That actually did go ahead from what I remember hearing. Erik -- ---------------------------------------------------------------------- Erik de Castro Lopo http://www.mega-nerd.com/ |
Date | 2012-04-10 10:49 |
From | Richard Dobson |
Subject | Re: [Csnd] Is Bjarne Stroustrup wronge? |
On 10/04/2012 10:20, Erik de Castro Lopo wrote: > Jeremy Henty wrote: > >> Andrew Morton (a *very* important Linux kernel developer) once said he >> saw no reason not to have C++ in the kernel but that it would likely >> never happen due to the developer culture. > > I have a friend who did indeed write a rather large Linux kernel > driver in C++. However it required large amounts of tricky to > debug helper code to provide support for C++ features like > exceptions, new/delete, static object initialisation etc. > Hmm, indeed; I am Luddite enough (and/or ignorant enough) to think that C++ is highly ~unsuited~ to kernel-level work, exceptions being certainly one of the many issues. C++ was ostensibly designed for writing ~large~ application-level projects (where data has to last at most for the lifetime of the application session), which is not how I would characterise the typical kernel driver module (where data and state for all interested clients may have to last until the next reboot). Richard Dobson |
Date | 2012-04-10 11:15 |
From | Michael Gogins |
Subject | Re: [Csnd] Is Bjarne Stroustrup wronge? |
Avionics and other life critical software tends to avoid the use of exceptions. On Apr 10, 2012 5:20 AM, "Erik de Castro Lopo" <mle+la@mega-nerd.com> wrote:
Jeremy Henty wrote: |
Date | 2012-04-10 11:17 |
From | Michael Gogins |
Subject | Re: [Csnd] Is Bjarne Stroustrup wronge? |
That is to say, when written in c++. On Apr 10, 2012 6:15 AM, "Michael Gogins" <michael.gogins@gmail.com> wrote:
|
Date | 2012-04-10 11:18 |
From | Victor Lazzarini |
Subject | Re: [Csnd] Is Bjarne Stroustrup wronge? |
A functional alternative is of course Faust, which compiles down to C++ code. You have to trust that the Faust compiler is as good as claimed, of course. I think their approach is probably the correct one and I like the economy of the language. In general, I think functional programming is nice, but I am not too keen on the complexity of languages like Haskell. I am still not convinced anyone has had the solution for the fine-grain needed for audio processing in parallel, but maybe someone has. I see reports on papers of stuff running on GPUs etc, but no analysis of latency and other timing issues that are important for music. Victor On 10 Apr 2012, at 10:11, Richard Dobson wrote: > There is of course a further criterion of special interest to audio - languages that can be used in a real-time audio thread or callback. It is already generally known, for example, that Objective-C calls must be avoided in CoreAudio/iOS callbacks; and that in the more general case anything that might attract the attention of a garbage collector is not a desirable thing to have in a callback. Any language that one way or another manages memory opaquely may be very convenient indeed for general application programming, but as usual the requirements for real-time audio with strict deadlines are somewhat "special". At Bath we coined a name for this - HiPAC: High-Performance Audio Computing. > > This embraces the question of languages for true parallel processing, when the core count (even within one box) has risen to double and even triple and quadruple figures. I think it remains very much to be seen if even the new threads support in the latest C++ can really scale up that far. Derivative/extended languages focused on large-scale concurrency include Cilk++ and Charm++. And Occam is still very much around. Audio and video people are always going to have a big interest in hardware performance, in real-time constraints, and of course all with low and predictable latency. > > Richard Dobson > > > On 10/04/2012 01:51, Erik de Castro Lopo wrote: >> Steven Yi wrote: >> >>> I think C is going to be around for a very long time and is hardly >>> obsolete. >> >> I think thats unfortunate but true. >> >>> The Linux kernel, >> >> Writing OS kernels in C makes sense. >> >>> most compilers, >> >> But C is a horrible language for writing compilers. I have written >> or hacked on compilers written in C, C++, Ocaml and Haskell. Compilers >> written in the later two langauges are and order of magnitude easier >> to work on and less error prone. When writing real compilers (ie ones >> that generate native code) in Ocaml and Haskell, a very small portion >> of the code still needs to be written in C, but lexing, parsing, >> semantic checking/analysis, optimisation and code generation are all >> better in Ocaml or Haskell. The only bits that require C is the >> run time support for the language. >> >> Erik > > > > Send bugs reports to the Sourceforge bug tracker > https://sourceforge.net/tracker/?group_id=81968&atid=564599 > Discussions of bugs and features can be posted here > To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe csound" > Dr Victor Lazzarini Senior Lecturer Dept. of Music NUI Maynooth Ireland tel.: +353 1 708 3545 Victor dot Lazzarini AT nuim dot ie |
Date | 2012-04-11 00:53 |
From | Jeremy Henty |
Subject | Re: [Csnd] Is Bjarne Stroustrup wronge? |
Attachments | None |
Date | 2012-04-11 02:26 |
From | Michael Gogins |
Subject | Re: [Csnd] Is Bjarne Stroustrup wronge? |
My experience with C++ is that it actually makes it easier to avoid subtle bugs. I have experience with both C and C++ in both financial and musical applications. The main reason C++ makes it easier to avoid bugs is the C++ Standard Library. I don't have to re-invent data structures and algorithms, and usually the adaptations are straightforward and work as advertised. I don't use C++ exceptions much. Regards, Mike On Tue, Apr 10, 2012 at 7:53 PM, Jeremy Henty |
Date | 2012-04-12 19:07 |
From | Aaron Krister Johnson |
Subject | Re: [Csnd] Is Bjarne Stroustrup wronge? |
All I can tell you is that C++ is one of the ugliest, crappiest languages out there in terms of syntax. Give me C anyday (hardly optimal in the same regard, but leagues better) rather than the ridiculous mental contortions of C++.... All languages should aspire to the perfection of clarity and syntactic beauty that is Python. Thankfully, most folks don't have to leave Python, and with the help of tools like Psycho, etc, even getting very fast code from it is possible.
AKJ
On Tue, Apr 10, 2012 at 8:26 PM, Michael Gogins <michael.gogins@gmail.com> wrote: My experience with C++ is that it actually makes it easier to avoid Aaron Krister Johnson http://www.akjmusic.com http://www.untwelve.org |
Date | 2012-04-15 04:06 |
From | Michael Mossey |
Subject | Re: [Csnd] Is Bjarne Stroustrup wronge? |
I think haskell makes python look ugly. Sent from phone, that's why it is short On Apr 12, 2012 11:08 AM, "Aaron Krister Johnson" <aaron@akjmusic.com> wrote:
All I can tell you is that C++ is one of the ugliest, crappiest languages out there in terms of syntax. Give me C anyday (hardly optimal in the same regard, but leagues better) rather than the ridiculous mental contortions of C++.... |