hat is *terrible*
practice in a modern high-level language. Use the library functions. They
will take proper account of the character set being used (which you
shouldn't even have to know for a task like this, let alone make unsafe
assumptions about).
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
l the best people I've ever known have had experience
> with quite a lot of languages.
I know 10 languages. But I'm not telling you what base that number is :)
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
eful to be sure that something can't change.
In particular, efficient dictionary implementations need the keys to
be immutable, because it you change a key it /really/ fouls up the
look-up.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
u lose compiler checks. That's the right balance for
a lot of applications, but not for all. If it's really critical that
the program be correct then you'll want a bondage-and-discipline
language that does masses of check, you might even do separate static
analysis, and you'll *st
ctfully suggest that in *all* cases you do whatever is
*clearest*, then switch to the other one if and only if performance is
unacceptable *and* profiling reveals this to be the bottleneck? That
avoids your deadlock (or is it livelock?) state.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
But my point remains that the authors of index
can't know whether the item not being in the list is an error or not,
can't know how to handle that case, and so passing it to the client as
an exception is an appropriate response.
> No, it's not being killed from outside the program -- it's being
> *interrupted* from *inside* the program by the user.
Who -- unless AI has advanced further than I thought -- is *outside*
the program.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
propriate. Same with warnings; they
*probably* shouldn't happen but only the application programmer can
know whether they should or not.
The point is that an exception causes a change in program flow, so of
course they're used for flow control. It's what they do. The question
is in wh
ppened that shouldn't have". If one uses it when something has
happened that *should* have, because it happens to have the right
behaviour (even if the overhead doesn't matter), then one is
misrepresenting the program logic.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
ry, not merely the only clean way to exit.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
2009/10/11 Philip Semanchuk :
> IMHO, break, goto, etc. have their place, but they're ripe for abuse which
> leads to spaghetti code.
Unrestricted goto can leat to spaghetti code, but surely break can't?
AFAICS, any break construct will still be H-K reducible.
--
T
cannot decrease indefinitely, if you can define
a loop variant then you gurantee that the loop will terminate.
Even if you are not being formal, just considering what the loop
variants and invariants can save no end of trouble with tricky loops.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
eption )
And with enough static analysis to guarantee that the break will be
reached? I think it would be a bit much to expect Python to solve the
halting problem!
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
gt; And I know somebody, in other languages, thinks it's
> a Best Practice to avoid using exceptions for flow control.
>
> Thankfully, python programmers are less dogmatic, and use whatever makes
> sense to use. I hope.
Absolutely. And it doesn't make sense to use exceptions for flow control :-)
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
a fucking idiot...
> motherfucking aggresive
> it's just few of priest fuckheads
> look at lojban's motherfucking idiotic logo
If you really knew anything about social function you would be able to
work out why people think you are a troll.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
I was only 3 when it was released.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
er with tentacles and fangs, that my language doesn't
have a word for and that I have never seen. On your theory, how come I
am thinking about it?
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
2009/7/31 Steven D'Aprano :
> On Thu, 30 Jul 2009 18:47:04 +0100, Tim Rowe wrote:
>
>> That and the fact that I couldn't stop laughing for long enough to learn
>> any more when I read in the Pragmatic Programmer's Guide that "Ruby,
>> unlike less flexi
2009/7/30 superpollo :
> Tim Rowe wrote:
>> Any language that gets any sort of real use has to have. For instance,
>> I love Ada's numeric types (you can specify either the minimum number
>> of significant figures or the maximum delta for a real type, and it
>> wil
or me.
That and the fact that I couldn't stop laughing for long enough to
learn any more when I read in the Pragmatic Programmer's Guide that
"Ruby, unlike less flexible languages, lets you alter the value of a
constant." Yep, as they say "Bug" = "Undocumented feature"!
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
builds *very* heavily on the concept of dictionaries it's not obscure
at all!
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
in Ada. I shall now enter a period of self-refelection to
try to work out why I am so inconsistent :-)
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
but if they're any use at all
in the production run-time then there's something wrong with your
development and testing processes.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
a
classic from a programming guru of old. An automatic checker that just
checks that the comment exists without understanding its contents
simply is not adding value but is rather petty bureaucracy that will
annoy the programmers.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
are that you *don't* care about correctness.
You *know* the input is often wrong, but you're not bothering to check
it?
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
fostering good habits for the rest of their careers.
Any hostility from the OP seems to be a response to the persistent
refusal to accept his assurances that he is not using the assertions
for run-time error checking, nor teaching the students to do that,
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
The hostility you've
received to that idea is saddening, and indicative of why there's so
much buggy software out there.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
2009/5/6 Dennis Lee Bieber :
> (the "near" is because I feel Ada is
> stricter than any other language)
Try SPARK -- it's Ada based, but /much/ stricter. It's just right for
some really critical stuff, but is no sort of an answer to "Which one
is best Python or Jav
top of that. Most Ada MS Windows thick wrappers (ie, ones that feel
natural to Ada) are built on top of Win32Ada, which stays as close to
the underlying C interface as it can.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
:
int
frodo()
{
int rval = 0;
if ((bilbo() == 0) || (gandalf() == 0)
{
/* lot's of code here */
}
else rval = -1;
return rval;
}
I'd be inclined to do it that way even if multiple exits were allowed;
it just seems so much clearer.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
lear
that you know the difference. Sorry for the confusion.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
umps are bad.
And then by showing the conclusion is false, you believe you have
shown a contradiction? Try looking up "Affirming the consequent"!
GOTO is an /unstructured/ jump. Raise, break, continue, if, for and so
an are all /structured/ jumps.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
27;ll see that it pretty much *is* Modula2". So whether Modula2 was a
direct influence or not, it seems to have found its way in.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
y evidence for that? There's a lot of typing in Ada (it shows
its Pascal roots) but in all the studies I've seen Ada production code
has consistently shown fewer errors than the more concise C/C++ family
of languages.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
which case there would be
no reason for him not to cut his Python teeth (fangs?) on it.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
2009/4/17 Michael Torrie :
> Spaghetti code can be written in *any* language.
I challenge you to write spahgetti code in SPARK!
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
ithout actually having done anything wrong. Check
> first.
Quite -- but I'd add that if you haven't identified the safety
significance of the software, or haven't kept an audit trail to show
that you have applied techniques appropriate to the safety
significance, then you /have
tions (and for specific development processes), or you
could find yourself either with an application you can't use or a very
big lawsuit and possibly jail if it goes wrong.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
2009/4/9 Miles :
> Clearly, any comparison with a boolean literal should be illegal. ;)
Hey, we could have strict type checking at compile time of /all/
operations, couldn't we? Anybody care to join me over at the Ada list?
;-)
--
Tim Rowe
--
http://mail.python.org/mailman/listinf
of the resulting classes will be too trivial, and it won't
give you the derived classes you need, but it's a good first step to
breaking a problem down, and might help break your one big class
habit.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
2009/4/1 Carl Banks :
> I am also an engineer, and I can tell your idea of intuitive is not
> universal, even among engineers. I certainly do not lean toward one-
> based indexing.
Another engineer here who finds 0-based indexing more intuitive than
1-based indexing.
--
Tim Row
2009/3/20 Hendrik van Rooyen :
> A joke based on the Monty Python series is BY DEFINITION not stupid!
But may get /too/ silly.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
optimum for all possible applications, each one has
different compromises. You've just discovered one of Python's.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
ou worry about
> the format that you want to display it in.
Nothing in the proposal being considered addresses any of that.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
ness in
presenting those numbers. If "Finance users and non-professional
programmers find the locale approach to be frustrating, arcane and
non-obvious" then by all means propose a way of making it simpler and
clearer, but not a bodge that will increase the amount of bad software
in the w
nate) problems caused by dot and comma
confusion..
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
2009/3/8 Tim Roberts :
> Tim Rowe wrote:
>>
>>I don't think the article is right that "it's silly to have some
>>expression/statement groupings indentation based and some grouped by
>>enclosing tokens" -- provided it's done right. The OCAML-bas
t
fractions that can be expressed exactly in decimal can end up as
recurring decimals in binary. 0.8 looks nice and tidy, but in binary
(if I get this right) it's 0.1100110011001100..., recurring ad
infinitum. The computer has to truncate it somewhere.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
low learning curve -- a reasonable programmer
can become productive in Python very quickly. For one programmer's
experience of learning Python have a look at
http://www.python.org/about/success/esr/ (although I grant that Eric
Raymond might count slightly higher than just a /reasona
not necessary (but still legal). That seems
to me to work pretty cleanly.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
hon (and probably in Ruby too) is to get
the code working, then if there are any *measured* bottlenecks to
optimise them in C++. That means that in practice there won't be a
perceptible speed difference for the user.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
hashes are not collisions but
genuine duplicates you can throw them away as soon as they're checked,
so with some clever buffering you can stop them from clogging up the
buffer. The worst case is if there are a lot of genuine collisions, in
which case it's probably not a very good hash.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
ords,
and it won't all fit into memory. So your observation is pertinent.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
rations and so is
likely to be faster still. I think there are a couple that Python
works well with, but I've never looked into that -- others will no
doubt be along with recommendations now I've raised the subject.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
son will
> ask an enlightening question; but, sometimes they just make
> unhelpfull wisecracks. It's a tough choice.
I used to use a baby, which avoids the embarrassment but can be just
as problematic to order on the internet.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
p it simple, the way you have been so far.
4. If you want to be a wise guy, ask your tutor why he/she got you to
convert the whole phrase to upper case, wasting a whole pile of
character conversion operations under the hood, because it's only the
acronym that needs to be converted :-)
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
; they would get much the same answer for the first question
(immutability is handled differently, I think, but it's there) but a
totally different answer to the second.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
't have an expectation, why
are you interpreting it as a Boolean?
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
lar kernel.
What would you expect the output to be if the data set were
[10,30,20,20,11,12,13] and the tolerance were 2?
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
rovide threads and processes and
> programmer choose the way. I really believe that GIL is a design
> error.
It's only an error if it gets in the way. It's the experience of a lot
of programmers that it doesn't, so it's not an error.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
on. Not speed of /execution/ that is.
Different languages have different trade-offs. Python's trade-offs
suit us. If they don't suit you, use a language with trade-offs that
do.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
ty will depend on the project.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
language. I
think it will be a long search.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
es, defined in
an XML script, was a dream in Python when I'd probably still be coding
it today in C++. Horses for courses. It's almost always wrong to say
that language A is better than language B; the most you can say is
that language A is better than language B for some specific task.
-
ded. For those few cases where threading is a genuine advantage,
Python is not ideal. But in the real world I doubt they're enough to
make a significant dent in Python's popularity.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
2009/2/12 km :
> Hi,
>
> you could do it this way also :
>
> if i in [3,5]:
> do something...
True, you could do it, but it would be wrong. The original is true for
i = 6, 9, 10, 12 and so on, but yours doesn't seem to be...
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
w how
to do it without using a while loop, but to help you we need to know
what *you* know). Like: do you understand what a while loop does? And
so on.
We're a pretty friendly bunch in here, but most of us believe in
"tough love" (http://en.wikipedia.org/wiki/Tough_love).
--
backwards.
What's awful about it? Except in the sense of inspiring awe, of
course. No, Steven's example isn't broken, it works as the epydoc
authors intended.
> (it's still in 3).
Good.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
stay clear of the os module :-)
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
ging in a position that
could modify the "unfriendly" text?
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
2009/2/5 mk :
>
> (duck)
>
> 542 comp.lang.python rtfm
>
> 467 comp.lang.python shut+up
>
> 263 comp.lang.perl rtfm
>
> 45 comp.lang.perl shut+up
Yes, but is there any real traffic on comp.lang.perl nowadays?
Sorry, cheap shot ;-)
--
Tim Rowe
--
http://mail.pyth
or the
bit shifting because I think it's clearer. And I'd want a word with a
tutor who insisted on premature optimisation ("The root of all evil",
according to C A R Hoare), especially in a scripting language!
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
member a programming exercise when I was an undergraduate and anyone
> who *didn't* use that trick got marked down for writing inefficient code.
Is adding and a modulus *really^ more efficient than flipping a bool
as I suggested? I think I'd want to see measurements!
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
ht like to think
about what should happen if a user enters a negative value, but the
present behaviour -- when fixed -- may be what you need.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
on
2.6 yet, never mind 3.0). Unless all you want is in the standard
library, I think it's worth the general user holding back for a while
whilst the tool providers catch up.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
r in the string -- there's
your loop -- and if (there's your if) it's a "1" change the truth
value of even:
even = !even.
If it is a number rather than a string, you want to do much the same
thing but you'll need the >> and & operators.
Chris has already
2009/2/5 :
> On Feb 5, 11:14 am, Tim Rowe wrote:
>
> ...
>
>> On an MS Windows system, os.uname()[0] raises an AttributeError -- sys
>> doesn't seem to contain uname. Is that a Linux thing? Would os.name
>> work on Linux? Or would one have to use exception han
2009/2/5 Scott David Daniels :
> And, of course he is right (and didn't even whomp on my typo of "makes"
> as "mes in the first line quoted above).
A typo for "makes" didn't bother me. Non-associativity of the real
numbers under addition risked making my
when I'm trying to get to grips with the differences
between versions..
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
have to use exception handling and catch
the Windows case?
That's the trouble with using anything in os, of course -- it's os
dependent, which is why it's there! :-)
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
2009/2/4 Scott David Daniels :
Thanks for that. It makes me feel guilty to point out that:
> addition is not associative in real numbers
should presumably be "addition is not associative in floating point numbers".
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
ppily do sys.float_info.max/(2*sys.float_info.epsilon) and will
give me the answer "inf") so presumably he's trying to protect against
divide by zero. So my next question is whether there is any x that can
be returned by float() such that x != 0 but some_number / (2 * x)
raises a
e
value less than sys.float_value.epsilon other than 0.0 (which I think
all representations can represent exactly). What am I missing here?
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
2009/2/3 Jervis Whitley :
> real programmers use ed.
Ed? Eee, tha' were lucky. We had to make holes in Hollerith cards wi'
our bare teeth...
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
2009/2/2 Russ P. :
> On Feb 2, 2:46 pm, Tim Rowe wrote:
>> No, we're supposed to believe that the designers of C++, Java, Ada,
>> and Scala are all designers of languages that are not Python. If all
>> languages had the same philosophy what would be the point of dif
hilosophy what would be the point of different
languages? Is it worth mentioning (again) that Python is not Java?
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
e how it would be any different to any other
language. Admittedly I use the IDE because I like IDE's, but I don't
see why it wouldn't work with a text editor and make -- the command
line compiler is there.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
2009/1/30 Scott David Daniels :
> Be careful with your assertion that a regex is faster, it is certainly
> not always true.
I was careful *not* to assert that a regex would be faster, merely
that it was *likely* to be in this case.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/
bit of extra insurance against false positives.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
de to conform to an
object oriented design (Python doesn't). So the answer to "Is Python
Object-Oriented" is either "yes" or "no", depending on what you're
/really/ asking.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
is part of what being a grown-up programmer is about. One size does
not fit all, one language is not ideal for all applications.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
so Hungarian /can/ be useful. At this level I don't recognise a
difference between System and Applications Hungarian, by the way --
the difference is eliminated if you declare types corresponding to the
"meanings", which is commonplace in, for example, Ada.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
erating
system that treats '\n' as a terminator (eg, Linux) rather than as a
separator (eg, MS DOS/Windows).
Perhaps what you don't /really/ want to be reminded of is the
existence of operating systems other than your preffered one?
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
o go through a proper
specification change procedure if the team (not the organisation) is
more than a few people.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
2009/1/23 Martin P. Hellwig :
> Or you can argue that even when an argument is repeated indefinitely it
> doesn't make it suddenly right.
No, but it makes for a confirmation of Schluehr's law :-)
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
urely know about Schluehr's
Law? ;-)
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
2009/1/23 Kay Schluehr :
> Whatever sufficiently sophisticated topic was the initially discussed
> it ends all up in a request for removing reference counting and the
> GIL.
Well, maybe, but it seems to me that the real issue here is that we
need to remove reference counting and the GIL.
the maximum response
time is tolerable. The loop variant can help with that, too.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
Turing-complete. Specifically, all
loops that are required to terminate require a loop variant to be
defined. Typically the loop variant is a finite non-negative integer
that provably decreases on every pass of the loop, which makes halting
decidable.
--
Tim Rowe
--
http://mail.python.org/mailman/li
although I've always
wondered how much of that is because of language differences and how
much is because Ada tends to be used on critical projects that also
tend to get a lot more attention to development standards.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
smatch.
I was actually at the European Space Agency's Toulouse site the week
after the Ariane 5 incident. I've been at jollier funerals. I can't
help thinking that thinking that the team would have benefited from
reading David Parnas's work on the specification of the A-7E avionics.
--
Tim Rowe
--
http://mail.python.org/mailman/listinfo/python-list
1 - 100 of 152 matches
Mail list logo