What is different with Python ?

D

david.tolpin

The best I've heard is "Informatics" -- I have a vague impression
that this is a more European name for the field.

The word "Informatics" had been invented by a Soviet computer scientist
Andrey Ershov several decades ago as a name for his view on
Information Theory. In Russian, it is Информатика,
Informatika, by analogy with Mathematics, Математика. It is
widely used ever since both in russian-language literature and in many
other languages and countries.

It is a better name than either Information Theory or Computer Science
for the discipline.
 
A

Andrew Dalke

Terry said:
Of course, since children are vastly better at learning
than adults, perhaps adults are stupid to do this. ;-)

Take learning a language. I'm learning Swedish. I'll
never have a native accent and 6 year olds know more
of the language than I do. But I make much more
complicated sentences than 6 year olds. (Doesn't mean
they are grammatically correct, but I can get my point
across given a lot of time.)
Quantum mechanics notwithstanding, I'm not sure there
is a "bottom" "most-reduced" level of understanding. It's
certainly not clear that it is relevant to programming.

I agree. That's why I make this thread branch. I think
learning is often best taught from extending what you know
and not from some sort of top/bottom approach. I'm also
one who bristles at hierarchies. Maybe that's why I like
Python and duck typing. :)

Some learning works by throwing yourself in the deep end.
Languages are sometimes learned that way. The Suzuki method
extends that to music, though that's meant for kids.
Python is actually remarkably good at solving things in a
nearly optimal way.

Have you read Richard Gabriel's "Worse is Better" essay?
http://www.dreamsongs.com/WIB.html
Section "2.2.4 Totally Inappropriate Data Structures"
relates how knowing the data structure for Lisp affects
the performance and seems relevant to your point.

Andrew
(e-mail address removed)
 
A

Andrea Griffini

Learning is investigating.

Yeah, after thinking to this phrase I've to agree.
Sometimes learning is investigating, sometimes it's
building. Since I discovered programming I've spent
most time just building, but I started on a quite
concrete floor (assembler).
Sometimes, for example when I recently dedicated some
time to functional languages, it's more investigating.
Functional languages is not something I've used extensively,
I've no real experience with them... and at least at
the application level for me is pure magic.
I mean that I can understand how the language is
implemented itself, what is just amazing for me is how
can you build a program for a computer - an incredibly
complex state based machine - with a language where
state is not your guide but your enemy.
Don't nail me down on that stupid string, I know it's immutable but
didn't think about it when answering your post. Take <some mutable
replacement> instead.

Forgive me, I didn't resist :)... it was such a juicy hit.

But this very fact shows that when programming
you cannot just skim over the details. You can only
avoid using the conscious mind to check the details
if you are so confident with them to leave important
checks (like actual praticality of a solution) to
your subconscius mind.

That strings in python are immutable it's surely
just a detail, and it's implementation specific,
but this doesn't means it's not something you can
ignore for a while. If you use python this is a
*fundamental* property.

That deleting the first element of a list in python
is a slow operation is also a detail and very
implementation specific, but ignore it and your
programs will be just horrible.

Often when I think to a problem I find myself saying
"oh... and for that I know I'll find a good solution"
without actually thinking one. I *know* I can solve
that problem decently because I've been around there.
I do not need to check because my experience tells me
I can first check where I want to go from there first
because getting in that direction is not going to be
a problem. Without this experience and conscious or
subconscious attention to details you'll find yourself
saying "oh... and we could go over there" pointing at
the sun and then blaming your "technicians" because
there are a few little "details" that you didn't
consider.

Andrea
 
A

agriff

Andrea said:
That strings in python are immutable it's surely
just a detail, and it's implementation specific,
but this doesn't means it's not something you can
ignore for a while. If you use python this is a
*fundamental* property.

My communication ability is dropping every day at
an incredible rate (it's getting so bad I've been
seriously in doubt about physiological problems).
In the above phrase there is a "not" in excess; I
meant to write

... but this doesn't means it's something you can
ignore for a while. If you use python this ...


May indeed be I'm just *realizing* how low are my
communication skills...

Andrea
 
R

Roy Smith

Andrea Griffini said:
That strings in python are immutable it's surely
just a detail, and it's implementation specific,
but this doesn't means it's not something you can
ignore for a while.

I disagree. It is indeed something you can ignore for a while. The first
program you teach somebody to write is going to be:

print "Hello, world"

To get that to work, you need to figure out how to run the python
interpreter, and how to edit a program source file. You also learn some
basic python syntax like how to form strings, that the print statement
gives you a carriage return for free, and you don't need a ";" at the end.

It would be a mistake to mention now that "Hello, world" is an immutable
object. That's just not important at this point in the learning process.
Eventually, you're going to have to introduce the concept of immutability.
That point may not be much beyond lesson 2 or so, but it doesn't have to be
lesson 1.
 
T

Tom Anderson

Computer programming is a trade skill, not a science. It's like
being a machinist or a carpenter --- a practical art.

A lot of universities teach 'software engineering'. I draw a distinction
between this and real computer science - computer science is the abstract,
mathematical stuff, where you learn to prove your programs correct,
whereas software engineering is more practical, where you just learn to
write programs that work. Of course, CS does have quite a practical
element, and SE has plenty of theory behind it, but they differ in
emphasis. SE departments tend to grow out of electronics engineering
departments; CS departments tend to bud off from maths departments.
Unfortunately, our society has a very denigrative view of craftsmen, and
does not pay them well enough, so computer programmers have been
motivated to attempt to elevate the profession by using the appellative
of "science".

How different would the world be if we (more accurately) called it
"Computer Arts"?

At one point, a friend and i founded a university to give our recreational
random hackery a bit more credibility (well, we called ourself a
university, anyway; it was mostly a joke). We called the programming
department 'Executable Poetry'.

tom
 
J

Jeffrey Maitland

Well as for the communication skills dropping. I highly doubt that, if
anything you are just picking up on things you never noticed before (and
your communication skills far surpass the average person that writes
anything in todays' society).

A good example for me is that I am noticing that I seem to type the like hte
often, yes a spell checker picks it up but when writing code it's sometimes
not available.

Also I think the fact that you think your were diteriating just goes to show
how dedicated you are to detail, and making sure you give the right advice
or ask the right question.

Jeff
 
C

Claudio Grondi

My communication ability is dropping every day at

Probably no reason to worry. Reading your post I haven't
even noticed the unnecessary "not", because the message
was clear as intended even with it, anyway.
Should I start to be seriously in doubt about own
physiological problems only because overseeing
it? I think no.
I think also, that many people here would confirm,
that your posts are on a very high communication level
showing much insight.
May indeed be I'm just *realizing* how low are my
communication skills...
That's another story - moving to the next level of insight
is usually a pain, because one detects how "stupid"
one was before.

Claudio
 
C

Claudio Grondi

"Also I think the fact that you think your were diteriating just goes to
show [...]"
should be probably:
"In my opinion the fact that you consider you were deteriorating just
shows [...]"
but it can be understood as it is anyway, right?
Written maybe exactly as it is, with the only purpose:
to encourage you, Andrea.

Claudio
 
A

Andrea Griffini

Also I think the fact that you think your were diteriating just goes to show
how dedicated you are to detail, and making sure you give the right advice
or ask the right question.

[totally-OT]

Not really, unfortunately. I found not long ago that I used the
very same word eight times in two consecutive sentences, plus
similar words and words with similar endings. Re-reading that
phrase the day later it seemed like something got stuck in my
brain while I was writing that. Sure more or less the idea was
there, and IMO clear enough to be understood, but the form and
the choice of words seemed incredibly poor.
I was curious of this strange fact and I checked out other text
I was writing in that period. What really scared me is that
this word repeating seemed a quite evident problem. This *both*
in italian (my native language) and in english.

Googling for old posts I however found that years ago my
english was even worse than it is now... but this repetition
was not present (not that evident, that is).
Needless to say I spent some hours googling for informations
about this kind of word repetition problem :D

Anyway after some time things got better.

I always thought about our intellect being something "superior"
to this world made of fragile bones and stinking flesh.
However I realized that there's probably no real magic in
it... knowing there are pills to make you happy is sort of
shocking from a philosophical point of view :)

If you'll see me walking around with an esoskeleton and an
happy face it will mean I tried the chemical approach ;)
(don't try to understand this phrase, either you know what I
mean - and you like dilbert strips - or it can't make sense).

Andrea
 
A

Andrea Griffini

I disagree. It is indeed something you can ignore for a while. The first
program you teach somebody to write is going to be:

print "Hello, world"

I mean that the fact that strings are immutable is
one key aspect that cannot be worked around.
Python is this way and in this very fact is different
from e.g. C++. The ripple effect that this very little
"detail" can have is not local. There are design
based on strings that just do not make sense in python
for this fact. It's not something you can "fix" later...
if you need mutability you must simply not use strings
for that (and this can have a serious impact on the
source code).

Of course there are programs in which that strings
are immutable or not is irrelevant. But if you don't
know what are the implications (e.g. how "is" works
for strings in python) and you still don't run into
problems it's just pure luck.
The normal reaction I observed is that when they find
a problem the result is a "python is buggy" idea.
It would be a mistake to mention now that "Hello, world" is an immutable
object. That's just not important at this point in the learning process.
Eventually, you're going to have to introduce the concept of immutability.
That point may not be much beyond lesson 2 or so, but it doesn't have to be
lesson 1.

I must agree *if* you're teaching python first.
I also *completely* agree if you're doing this just to
get the appetite.

What I don't agree is that starting from this level
and going up is a good approach (with lously placed
bricks you'll just not be able to hold the construction).
To be able to build you'll need to memorize without a
rationalization too many "details" that just do not
make sense if you start from an ideal python world.

I also must note that I, as a fourteen, found terribly
interesting the idea of programming a computer even
if the only things I could do were for example turning
on and off pixels (blocks?) on a screen with resolution
40x50. Probably nowdays unless you show them an antialiased
texture mapped 3D floating torus with their name and
face on it in live video they'll prefer exchanging
stupid messages with the mobile phone instead.

Andrea
 
M

Michele Simionato

Andrea Griffini:
I also must note that I, as a fourteen, found terribly
interesting the idea of programming a computer even
if the only things I could do were for example turning
on and off pixels (blocks?) on a screen with resolution
40x50. Probably nowdays unless you show them an antialiased
texture mapped 3D floating torus with their name and
face on it in live video they'll prefer exchanging
stupid messages with the mobile phone instead.

Well, on one hand I think that even 20 years ago 99% of people
preferred talking
about football than programming; on the other hand, I think that even
now there
is a 1% of people extremely interested in turning on or off a pixel.

I don't think anything significant changed in the percentages.

Michele Simionato
 
C

Claudio Grondi

I always thought about our intellect being something "superior"
to this world made of fragile bones and stinking flesh.
However I realized that there's probably no real magic in
it... knowing there are pills to make you happy is sort of
shocking from a philosophical point of view :)

Yes it is, but it doesn't mean, that this well known
insight has an effect on what people think about
themselves, the religion and the Universe.

For an example of what I try to say here, see the
"What Deep Blue showed was that chess is
not a game of true intelligence"
discussion thread in rec.games.chess.computer
and track what meaning people assign to
the concept of Artificial Intelligence since the term
was coined.
As long as a machine can't replicate itself and defend
its own existance, its intelligence will be questioned.
And even if such a machine can fight its enemies the
final answer to the question if "true intelligence" is
unique to humans can be only given in a fight, but
even then the evidence of existance of superior AI
can't be given, because only dead people are forced
to agree, but it doesn't matter to them anymore ...

Claudio
 
A

Andrea Griffini

I don't think anything significant changed in the percentages.

Then why starting from

print "Hello world"

that can't be explained (to say better it can't be
*really* understood) without introducing a huge
amount of magic and not from a simple 8 bit CPU
instead ? What are the pluses of the start-from-high-level
approach ? If one is to avoid bordeom I don't agree
as assembler is all but boring (when you start),
or at least this was what *I* experienced.

If it's about the time it will take to get a rotating
3d torus with live video on it I know for sure that most
of the programmers I know that started from high level
will probably *never* reach that point. Surely if
you start say from pull-down menus they'll be able to
do pull down menus. And IMO there are good chances
they'll stay there lifetime.

So is python the good first programming language ?
IMO not at all if you wanna become a programmer; it
hides too much and that hidden stuff will bite back
badly. Unless you know what is behind python it will
be almost impossible for you to remember and avoid
all the traps. Buf if you need to know what is behind
it then it's better to learn that stuff first, because
it's more concrete and simpler from a logical point
of view; the constructions are complex but (because)
the bricks are simpler.

But it probably all boils down to what is a programmer.

Is C++ a good first programming language ?

BWHAHAHAHAHAHAHAHA :D

But apparently some guru I greatly respect thinks so
(I'm not kidding, http://www.spellen.org/youcandoit/).

Andrea
 
M

Michele Simionato

I fail to see the relationship between your reply and my original
message.
I was complaining about the illusion that in the old time people were
more
interested in programming than now. Instead your reply is about low
level
languages being more suitable for beginners than high level languages.
I don't see the connection.

Michele Simionato
 
P

Peter Hansen

Andrea said:
Is C++ a good first programming language ?

BWHAHAHAHAHAHAHAHA :D

But apparently some guru I greatly respect thinks so
(I'm not kidding, http://www.spellen.org/youcandoit/).

With respect to the author, and an understanding that there is probably
much that didn't go into his self-description (add "about.htm" to the
above URL), it sounds as though he knows primarily, perhaps solely, C
and C++, and has done relatively little serious development since he
seems to have spent most of his time either teaching or writing (words,
not source code).

Does he even *know* any real high level languages such as Python?

And the fact that he's teaching C++ instead of just C seems to go
against your own theories anyway... (though I realize you weren't
necessarily putting him forth as a support for your position).

-Peter
 
M

Michele Simionato

Claudio Grondi:
I am personally biased towards trying to understand
anything as deep as possible and in the past was quite
certain, that one can not achieve good results
without a deep insight into the underlying details.
I have now to admit, that I was just wrong. From my
overall experience I infer, that it is not only possible
but has sometimes even better chances for success,
because one is not overloaded with the ballast of deep
understanding which can not only be useful but also
hinder from fast progress.

FWIW, this is also my experience.

Michele Simionato
 
C

Claudio Grondi

there is a 1% of people extremely interested in turningI taught "adults" aged from 16 to 86 for some years
a course "Introduction to data processing", where I had
tried to teach the basics beginning with switching light
on and off. Having around twenty participants I
experienced from time to time one or two who found
it fascinating, so the 1% is in my eyes a good guess.
40x50. Probably nowdays unless you show them an antialiased
texture mapped 3D floating torus with their name and
face on it in live video they'll prefer exchanging
stupid messages with the mobile phone instead.
The ability of making a video (I currently experience
a run towards "equipping" videos from camcorders
showing the involved teenager fighting using ordinary
sticks with StarWars laser sword effects) when equipped
with appropriate software tool is given now even to the
not gifted 99%. After the videos are done by the a little
bit smarter ones of the entire group, it doesn't whetting
the apetite for more programming skills - it creates
traffic on ICQ and Internet by exchanging the
videos and the opinions if they are cool or not.
If it's about the time it will take to get a rotating
3d torus with live video on it I know for sure that most
of the programmers I know that started from high level
will probably *never* reach that point.
Many consider such skills as not worth to achieve,
looking for a solution to eventually raising problems
in a better computer hardware and new software
tools in case of timing problems.
Generally it appears to me, that it is true that many of
current teenagers look for authorities not for own experience
(this is nothing new) and that they perceive the world around
them through the window of the Internet browser not through
the window of the room (this is what makes the difference
compared to past time). But the current world they experience
is so different from what it was twenty years ago, that it
is today sure possible to start on a very high level and
stay there all the life never beeing able to go down to
the details without having therefore serious disadvantages
as a programmer. I experienced beeing very surprised
myself, that it is even possible to be hired as a programmer
having an IQ below the level of around 80.

I am personally biased towards trying to understand
anything as deep as possible and in the past was quite
certain, that one can not achieve good results
without a deep insight into the underlying details.
I have now to admit, that I was just wrong. From my
overall experience I infer, that it is not only possible
but has sometimes even better chances for success,
because one is not overloaded with the ballast of deep
understanding which can not only be useful but also
hinder from fast progress.

Claudio
 
D

D H

Peter said:
With respect to the author, and an understanding that there is probably
much that didn't go into his self-description (add "about.htm" to the
above URL), it sounds as though he knows primarily, perhaps solely, C
and C++, and has done relatively little serious development since he
seems to have spent most of his time either teaching or writing (words,
not source code).

Does he even *know* any real high level languages such as Python?


So you say he "has done relatively little serious development" and that
he may not even know about Python. I didn't see any evidence from those
pages to draw either conclusion. In fact the 4th paragraph quite
contradicts them both.
 

Ask a Question

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.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,483
Members
44,901
Latest member
Noble71S45

Latest Threads

Top