On Mon, May 24, 2010 at 10:24:17AM +0100, Chris Cannam wrote:
On Mon, May 24, 2010 at 8:58 AM, torbenh
<torbenh(a)gmx.de> wrote:
well... for me, saying c++, is saying boost.
boost and modern c++ is what
makes c++ better than java.
java is a pretty great language nowadays (with generics and annotators
and stuff). my big problem with java is that its stdlib is really a big mess.
I always thought the big chunk of new stuff added in Java 1.5 was a
really bad idea. That took a compact, comprehensible language that
lacked a number of convenient features but at least had a single
"school of practice", and gave it the capacity for the same sort of
fragmentation as you have in C++. But I haven't done Java development
in earnest since that stuff became widespread, so I don't know whether
that's really happened in practice.
i dont know which features you mean.
but not having typesafe containers like pre generics, puts the language
on par with python for me. (except that in python i dont need to cast
everything to the correct type after pulling it out of a container :S
Reading a language is (for most projects) more
important than writing
it. You yourself took the jackdmp code (in C++) and ported it back to
good old C because it was written "from the wrong school of C++" and
you found C easier to work with. Jackdmp is not exactly weird code --
it's written rather like pre-1.5 Java -- but its C++ is just not the
same C++ as you use. Similarly, for someone like me who has used Qt
for many years, Boost has always seemed largely superfluous and the
language that for you "is C++" is for me something a little bit alien.
the language i am referring too is termed "modern c++"
also i didnt port the jackdmp code.
tschack is pretty different from jack2.
i also only used boost because these parts of boost are going to show up
in the STL.
modern c++ heavily leverages templates and they were anticipating
concepts to show up in c++0x which would have improved the error
messages associated with template code.
we wont have concepts. thats a bit sad. but this doesnt stop people
from writing code in a concept oriented way.
Is it possible to write C++ in such a way that every
competent C++
developer is happy to work with the results without some sort of
re-education?
classic C++ and "modern c++" are two pairs of shoes.
if your afraid of writing templates. modern c++ is not for you.
for me templates are an integral part of c++. but i am also pretty
annoyed if i read the compiler output asm and directly see somthing i
could do better when i wrote the asm myself.
i only do that for inner loops. but i also stop the heavy templating at
some point and just write rather classic gui code then, or just wrap the
whole bunch into a python extension.
--
torben Hohn