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