M
Michele Simionato
Eiffel: Design by contract. The book to read is Meyer's "Object-
Oriented Software Construction". Full of interesting stuff, if you can
stand his self-importance ;-)
I couldn't!
Eiffel: Design by contract. The book to read is Meyer's "Object-
Oriented Software Construction". Full of interesting stuff, if you can
stand his self-importance ;-)
Donn said:Python has the advantage of a clean start, but
from a software engineering standpoint it really seems like a
hacker language.
Donn Cave said:Quoth Paul Rubin <http://[email protected]>:
...
| The one attempt I know of to write a substantial Python application
| competitive with similar applications written in C was the Grail web
| browser, and AFAIK that was a complete failure. However, for small to
| medium sized projects which don't have to run fast, Python is great. [...]
But at any rate, I thought we were talking about huge projects
involving many programmers, and I don't think Grail was of that
sort at all.
I don't know what kind of programmer resources were
allocated to it,
but I bet it was actually a smashing success in
those terms. As for its size, I'd have to look, I have the code
around somewhere, but I'd guess it was smaller than Mailman or Zope.
Small enough that one programmer could become pretty thoroughly
acquainted with the whole thing.
Peter Hansen said:Ohh.... nice controversial statement.
I would strongly disagree with the above statement for a number
of reasons, including (random thoughts):
- packages
- interactive interpreter
- no static typing
- high productivity
- ease of testing
- flexibility
- extremely broad library support
- low learning curve
and probably a dozen others. I think this has all been discussed before,
though, so I won't belabour the point. Basically, as a software engineer
(nominally a "Systems Design Engineer") I find Python to be hands down
*the* best language I've encountered for use in serious work. I can't
actually think of another which excels on so many fronts.
.Ohh.... nice controversial statement.
I would strongly disagree with the above statement for a number
of reasons, including (random thoughts):
- packages
- interactive interpreter
- no static typing
- high productivity
- ease of testing
- flexibility
- extremely broad library support
- low learning curve
and probably a dozen others. I think this has all been discussed before,
though, so I won't belabour the point. Basically, as a software engineer
(nominally a "Systems Design Engineer") I find Python to be hands down
*the* best language I've encountered for use in serious work. I can't
actually think of another which excels on so many fronts.
Paul Rubin said:It makes some feeble ones but is somewhat hobbled by its origins as a
scripting or "glue" language.
[...]Also, Python is really still in its
infancy. Maybe after PyPy is completed, someone can try writing a
serious compiler for it, and the issues brought out by writing the
compiler can drive the design of a successor language, Python II or
whatever.
Derek said:Point taken. I once worked on a project where we implemented a
production system in C++ and then implemented it again in Python for
QA purposes. It took about 150k lines of C++ code and 10k lines of
Python. Python took less code because so many modules are bundled
with the language, but the C++ system ran many times faster. It's all
about picking the right tool for the job.
I couldn't!
David M. Cook said:You could casually pick up enough Python to be useful in a week or so of
evenings.
Perl is not much harder,
It *seems* so when you first learn it...
but has a lot of "gotchas".
.... and they never end! Ilya Zakharevich (a "Perl God"):
http://www.google.com/[email protected]
[...][...]Let me reiterate my current opinion on the topic: the reason for my
puzzlement (and your trouble) is the difference between Perl as a
scripting language and Perl as a programming language. Perl is
absolutely fine as a scripting language. Perl is pretty unusable as a
programming language.
I'm not sure I'd go quite as far as that, but it's not a million miles
from the truth. Why saddle yourself with the costs of Perl when
Python demonstrates there are no significant associated benefits?
(I'm talking about "programming" not "scripting" here, using Ilya's
language, though I'd argue Python is just as good for scripting as
Perl)
John
Donn Cave said:code that all these teams is writing will eventually come
together and work like it's supposed to, and from that
point of view it's tempting to look for some support for
architectural consistency, like "interfaces" and that sort
of thing.
Right. Wasn't it a research project? In any case, hardly a
large-scale programming effort along the lines of Mozilla!
Donn said:But your list describes the perfect hacker language, at
least on some counts. I'm nominally a Software Engineer
myself, but I have no formal CS education and have never
worked on a large project, so I feel right at home with
the hacker culture here. But help me out here, suppose
we're going to go in and develop one of those massive
projects - I don't know, say the IRS needs a new computer
system - what on that list would we care about?
Maybe vague promises like high productivity and ease of
testing would be attractive, but anyone can say that for
some ideal context.
Library support is probably not even on the charts.
I would think a major consideration at
the outset of a project like this would be whether the
code that all these teams is writing will eventually come
together and work like it's supposed to, and from that
point of view it's tempting to look for some support for
architectural consistency, like "interfaces" and that sort
of thing.
John J. Lee said:[...]Point taken. I once worked on a project where we
implemented a production system in C++ and then
implemented it again in Python for QA purposes. It took
about 150k lines of C++ code and 10k lines of Python.
Python took less code because so many modules are bundled
with the language, but the C++ system ran many times
faster. It's all about picking the right tool for the
job.
Well, that's a banal truism obscuring the fact that, for the
great majority of projects, optimisation does not require
implementation of the *entire* system in a language like
C++. The sum of C++ and Python is greater than the parts.
Peter Hansen said:Presumably the IRS requires networking, some user interface
capabilities, probably a bunch of database interfaces, really
sophisticated testing, and these days maybe even some standardization
in the area of, say, XML or something like that.
John J. Lee said:[...]Point taken. I once worked on a project where we
implemented a production system in C++ and then
implemented it again in Python for QA purposes. It took
about 150k lines of C++ code and 10k lines of Python.
Python took less code because so many modules are bundled
with the language, but the C++ system ran many times
faster. It's all about picking the right tool for the
job.
Well, that's a banal truism obscuring the fact that, for the
great majority of projects, optimisation does not require
implementation of the *entire* system in a language like
C++. The sum of C++ and Python is greater than the parts.
Python and C++ can also be a bigger mess than sum of either part.
Take your pick.
Jp said:Look at how many modules in the stdlib are not implemented in
Python. Look at all the builtin types. It *can* and *does* work, and
with very little mess, if you know what you're doing.
John J. Lee wrote in message said:Forgot to add: what happened to all those Python interface proposals?
At least one was PEPed, wasn't it?
I suppose it's waiting for Guido-bandwidth.
Is it true that the original Google spider was written in Python?
It would seem like the poster boy example for using Python in some
respects, if true.
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.