Article of interest: Python pros/cons for the enterprise

Jeff Schwab jeff at schwabcenter.com
Sat Feb 23 06:15:47 EST 2008


Bruno Desthuilliers wrote:
> Jeff Schwab a écrit :
>> Bruno Desthuilliers wrote:
>>> Carl Banks a écrit :
>>>> On Feb 20, 8:58 am, Tim Chase <python.l... at tim.thechases.com> wrote:
>>>>>> You Used Python to Write WHAT?
>>>>>> http://www.cio.com/article/185350
>>>>> """
>>>>> Furthermore, the power and expressivity that Python offers means
>>>>> that it may require more skilled developers.
>>>>> [...down to the summary...]
>>>>> Python may not be an appropriate choice if you:
>>>>> [...]
>>>>> *  Rely on teams of less-experienced programmers. These
>>>>> developers may benefit from the wider availability of training
>>>>> for languages like Java and are less likely to make mistakes with
>>>>> a compile-time, type-checked language.
>>>>> """
>>>>>
>>> (snip)
>>>>
>>>> C++ is a compile-time, type-checked language, which means it is
>>>> totally safer for newbies than Python.  Yep, your big company is
>>>> totally safe with newbie C++ programmers.
>>>>
>>>
>>> Mouarf ! Brillant demonstration, thanks Carl !-)
>>>
>>> (and BTW, +1 QOTW)
>>
>>
>> NB:  This is not a troll.  (Please, nobody try to be cute with a "yes 
>> it is" reply.)
> 
> NB : standard disclaimer about all the following being MVHO.
> 
>> c.l.python seem to be about the most close-minded of any of the 
>> currently popular language-specific news groups. 
> 
> May I suggest you take a tour on c.l.lisp then ?-)
> 
>> It's just taken for granted that Perl and C++, two of my personal 
>> favorite things in this world, inherently favor ugly, buggy code. 
> 
> I wouldn't say so.
> 
> It's a fact that C++ is a really complex language with quite a lot of 
> room for BigMistakes(tm), and that there's something like a 
> 'my-code-is-more-cryptic-than-yours' culture in Perl. You cannot 
> seriously argue on this.

I'm not going to argue, because I'm tired of arguing.  But I think 
you're SeriouslyMistaken(tm).


> Now this has nothing to do with the respective merits of both languages 
> (FWIW, Perl, as a 'Practical Extracting and Reporting Language', beats 
> any other language I know pants down), and I'd be sorry if you were to 
> confuse what is mostly on the friendly jokes side with mere bashing. You 
> may not have noticed, but quite a lot of people here have a working 
> experience with either C++ and/or Perl.

Yes.  These "jokes" don't strike me as friendly, though.  They strike me 
as ignorant and hostile.


> As for my above comment, it doesn't imply anything else than the fact 
> that C++ is way harder to learn than Python (or Ruby etc...), and that 
> bugs in C++ code are likely to have way more nasty results.

Both of which I disagree with.  I don't see how the same brain can 
believe it's much harder to do good things, yet much easier to do bad 
things, in the same language.


> The joke is 
> not "against" C++, but about people asserting than static type checking 
> is safer than dynamic type checking without realizing that what is 
> really important is*runtime type checking - something C++ doesn't provide.

C++ does provide some run-time type-checking, whereas Python offers 
virtually no static type-checking.  Clearly, C++ does not natively have 
a run-time environment as powerful as Python's, and that's one of the 
primary reasons to use Python.  If you need a heavyweight runtime 
environment available from C++, you have to provide one.  This is a 
direct consequence of early design decisions intended to make C++ 
competitive with C.  I have yet to see a runtime-heavy C++ library I 
really like, whereas Python, Ruby, and Java all have fantastic sets of 
run-time facilities.


> NB : As a side note, and while being myself a bit passionated when it 
> comes to languages and my job in general, I would not go as far as 
> labelling any language or technology as "one of my favorite things in 
> this world".

That's OK. :)  I really do feel that way, though.  Call me a dork.


>> That is the farthest thing from the truth as I see it.  You can (and 
>> plenty of people will) write terrible code in any language, including 
>> Python.
> 
> Indeed. Bad coders write bad code, period. And I think we've all been 
> bad coders one day, and that we're all still bad coders sometimes.

Aha!  Now we're getting somewhere!


>> To use Python effectively, you have to know something about how it 
>> works, and the same is true of Perl and C++. 
> 
> And of any other language. Now a decent C++ or Perl programmer can be 
> proficient in Python in a couple weeks and become a master within a year 
> at worst. And it seems that non-professional, occasional programmers 
> (hobbyists, gamers, scientists, and any other kind of power user) are 
> able to get their job done in Python without much pain.

They can get their jobs done with C++ without much pain, too, given even 
a little bit of decent guidance.  It's true that you *can* shoot 
yourself in the foot with C++, but you kind of have to work at it.  (One 
good way is to write C code, and think it's C++.)


>> But a newbie who's learning from a decent source (avoid the "C++ for 
>> Morons" style books) is likely (I contend) to be writing semi-useful 
>> programs about as fast as with Python,  and to be writing heavy-duty 
>> work-horse programs far
>> sooner.
> 
> Sorry but I don't buy this.

OK...


>> Perl is, and always has been, a language for getting your job done; 
>> when everything else failed, Perl and C++ got me through some of the 
>> toughest tasks of my life.  Translating file formats, automating 
>> system-level tasks...  And now that the C++ standard library is 
>> getting regular expressions, I can replace plenty of glued-together 
>> scripts with single-language, cohesive applications.
>>
>> I like Python, and I think it's got a brilliant future ahead of it.  
>> It is rapidly becoming the dynamic language of choice, especially for 
>> C++ projects.  I am glad that Python can be extended straightforwardly 
>> in any C-linkable language.  But this bashing of other powerful 
>> languages on the basis that they're hard to read and hard to use 
>> correctly is, frankly, nonsense.
> 
> Stating the obvious is not bashing. In my last shop I was working with 
> (very talented BTW) Perl programmer, and he was the first to make jokes 
> on Perl's abuse of cryptic syntax.

It's not abuse.  It's meaningful and compact.  The $scalars are 
intuitive to anybody who has ever written a shell script, the @arrays 
are immediately recognizable...  I agree it takes some getting used to, 
but then it becomes clear as day.



More information about the Python-list mailing list