Linked by Eugenia Loli on Sun 16th Dec 2007 00:04 UTC, submitted by obsethryl
Gentoo A relatively lengthy Q&A with Ciaran McCreesh about Paludis, the Portage alternative for Gentoo.
Thread beginning with comment 291243
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE: was a long time gentoo fan...
by skynexus on Sun 16th Dec 2007 10:42 UTC in reply to "was a long time gentoo fan..."
Member since:

I love the prospect of Paludis written in C++

I still remember how underwhelmed I was when hearing about this the first time. Before condemning the choice of language, I tried to find out why they chose C++ to begin with. This is what they say on their FAQ:

Because we don't have the time or the manpower to write it in C.

However, as python would have allowed them to write Paludis ridiculously faster than using C++, that line of reasoning seemed questionable. Especially as emerge was itself written in python. Poking around the website, I also came across this item on their list of features:

Low dependency bloat. No Python, no big external crypto libraries.

So I assumed the "bloat" aspect was another rationale. But given the advantages of Python, I find it hard to take that argument seriously. Apparently, McCreesh now also said the following about scripting languages in the article:

The tradeoffs, of course, being a much lower level of static checking, a much higher risk of buggy code slipping through and much higher testing requirements to meet release standards ...

Since when does C++ deliver reduced risk of buggy code slipping through when compared to, say, Python? This fantastic claim seems to contradict common sense. Choosing the right language for the job is important, and C++ has always seemed to me as a horrible choice. Everything they say to rationalize their choice simply acerbates this impression.

Reply Parent Score: 5

nighty5 Member since:

Maybe just love C++ like me?

Maybe its all about having fun with what you are good at?

There is no need for people these days to stand idle and have a language pissing match - there is way too much choice these days, so you just pick what you think will do you well at.

I congratulate the authors of Paludis because they have done something that clearly they love without compromising on their dream to improve Gentoo. Even I can't make that claim ;)

Reply Parent Score: 1

Bending Unit Member since:

Since when does C++ deliver reduced risk of buggy code slipping through when compared to, say, Python?

You catch a great deal of errors at compile time.

Reply Parent Score: 5

agrouf Member since:

You can compile python source.

Reply Parent Score: 1

Redeeman Member since:

the simple fact is, python allows ALOT more weird errors to happen because it doesent require as much from the developer as c++, and as stuff builds up, its just harder to know wtf is going on, if the application is written in python, and someone made an ugly mistake.

Reply Parent Score: 2

MORB Member since:

"Since when does C++ deliver reduced risk of buggy code slipping through when compared to, say, Python?"

The curse of C++ is to forever be judged negatively by people who have no idea what the language is about.

C++ is all about static typing and catching as many error as possible at compilation time (as in, many things that would not work or lead to bugs shouldn't compile).

Of course, since it's backward compatible with C it also provides many ways to force your bad code through and many unsafe legacy alternative ways to do things (pointer arithmetic, c-style arrays, managing strings as manually allocated byte arrays etc.) that people incorrectly consider the "normal" way to do things in C++.

If people stopped considering C++ as "C with additional stuff" and teaching it as such, maybe more people would see the language for what it is.

Reply Parent Score: 3

sanctus Member since:

Of course it will catch as many error as possible, but when you compare python with C++ (or any compile vs runtime language), it's not accurate to say that all the errors you'll find will be somewhere undetected in a python program.

Just to bring one, there's many type in C++ that needed to be check where in python it doesn't matter at all. Like integer, in C++ the compiler need to check for int, long, unsigned, etc. In python, who cares? it's an integer. If you do some mixing in C++, the compiler will complain, but these errors are irrelevent in python. So as many errors in C++ are far less in python. (but I agree that some will not be check)

At the end it is a matter of design and the quality of code. Bad python code will end on error, bad c++ might throw a buffer overflow.

the first problem for portage that he said is :

Firstly, because Portage is a collection of procedural hacks thrown together over time with no underlying design.

I think this is the real issue. Not C++ or Python or whatever.

Reply Parent Score: 1