
Python 1.0.0 is out (1994) - sndean
https://groups.google.com/forum/?hl=en#!topic/comp.lang.misc/_QUzdEGFwCo
======
keypusher
I think it's interesting to note the primary usecases / benefits mentioned:
more readable than perl, better syntax than bash, easy to follow stacktraces.
In short: an object-oriented scripting language. In that respect I think
python has succeeded, probably beyond even the author's wildest dreams. And I
love python, it's a language I use almost every day. The areas where it falls
short are those which it was never designed for, as this announcement reminds
us.

~~~
e12e
Also interesting that the first discussion is about the number tower, along
with a reference to scheme...

------
trendia
> "Python has been used by hundreds of happy users"

Hundreds!

> "Please don't ask me to mail it to you -- at 1.76 Megabytes it is unwieldy
> at least..."

I can not even figure out if this means email or snail mail.

~~~
davesque
You're probably joking but, just for kicks and to provide some historical
context, my guess is email. I seem to recall that attachment sizes would have
been limited to something less than that back then. Also, 1.76 MB could have
fit onto two HD floppies which would have made it easy to snail mail. Although
it wouldn't have been all that hard to download with a 14.4 modem.

~~~
xtracto
Also to give more context: Back in the late 90s I remember I had a
linuxmail.org web-mail account. It featured a whooping 4MB of space. 4MB!

That's why when Google released GMail with 1GB of storage in 2004 (
[https://slashdot.org/story/04/04/01/0038200/googles-gmail-
to...](https://slashdot.org/story/04/04/01/0038200/googles-gmail-to-offer-1gb-
e-mail-storage) ) it really blew everybody's mind.

~~~
bdr
In fact 1GB was so mind-blowing that people thought it was an April fools
joke.

------
thinkpad20
Interesting to read his description of the language, which sounds pretty much
exactly like python is now. It’s a pretty good testament to why python gained
and retained popularity. Though not without fault, python is certainly one of
the best-designed languages ever created, in my opinion.

~~~
kumarvvr
It may not be the most efficient one out there, but it certainly is the most
productive, atleast for me.

God I love the language. The only language, that allows my thoughts to flow
alongside writing code that allows my thoughts to manifest.

I am well experienced with C# as well, but something about statically typed
stuff (I worked with C# before the dynamic stuff wasn't added to it) breaks
the flow of thoughts.

With python, it's like designing systems on paper. Friction-free.

~~~
willtim
C# does not in any way represent the best that static typing has to offer. Try
F#, Haskell or OCaml seriously before discounting static typing. These
functional languages offer much better safety (e.g. no nulls, no casts, case
exhaustiveness) and are as succinct as Python. They also generalise a lot of
features that are ad-hoc in C# and Python (e.g. async-await is a library in F#
and Haskell). For me, using Haskell is also like "designing a system in paper,
friction free". In fact, I tend to write down the types and type check them,
before I attempt to fill in any implementation.

Truth be told, I am not a Python fan. I am seeing it take over in my industry,
because it's superficially 'easy' and it's popular. The lack of static typing
only later becomes a big problem when large codebases start to appear with
many contributors.

~~~
e12e
I think the closest thing to "python with types" is probably Julia:
[https://julialang.org/](https://julialang.org/)

I think the efforts of adding type/type hints to python are interesting - but
there's a tension between "weee! Look at me ducktyping, metaprogramming all
the prototypes!!"-design and leveraging types _as part of your design_.
Haskell/f#/ml are great languages, but they feel very different from python
(ml maybe less so,but afaik there are no full featured implementations with
areasonable standard lib...).

If Python is the starting point, I think there's probably four approaches that
makes sense if python ends up being limited (in part due to lack of typing):
move to a language like Julia, proto-type in python; re-employment in go,
prototype in python; reimplement _parts_ in cython and/or rust, add type hints
on top of python.

[ed: almost forgot, secret option number five: use restricted-python and the
pypy framework to implement a language suited to the problem domain..]

~~~
benji-york
Every time I look at Julia, I like it a lot, right up to the point where I
remember that indexing is 1-based and I loose the will to go on.

~~~
newen
_Rolls eyes_. 0 or 1 based indexing is one of the smallest thing to worry
about in a programming language.

~~~
renox
I disagree when you're used to 0based array languages and you use a 1based
array language (or vice versa of course), you have a high risk of 'off by one'
errors.

------
kalefranz
Want to play with it?

    
    
      conda create -n py1 python=1.0
      source activate py1
      python
    
      Python 1.0.1 (Mar 26 2014)
      Copyright 1991-1994 Stichting Mathematisch Centrum, Amsterdam
      >>>
    

Sorry Windows, only on macOS and Linux.

~~~
meatbundragon
Does this not work with Ubuntu on Windows? I've been using it as my primary
development environment and it seems to work perfectly with the mainstream
Ubuntu/linux software I deal with. [https://docs.microsoft.com/en-
us/windows/wsl/about](https://docs.microsoft.com/en-us/windows/wsl/about)

~~~
RayDonnelly
While we fix bugs in our Linux packages so they work on USW/WSL this one
appears to have problems (and I do not expect I will look into them any time
soon):

    
    
      Python 1.0.1 (Mar 26 2014)
      Copyright 1991-1994 Stichting Mathematisch Centrum, Amsterdam
      Segmentation fault (core dumped)
    

.. I did capture the backtrace though; for what it's worth:

    
    
      (gdb) bt
      #0  0x00000000004212bb in do_mkvalue ()
      #1  0x00000000004210a7 in do_mktuple ()
      #2  0x00000000004211a8 in do_mkvalue ()
      #3  0x00000000004213f2 in vmkvalue ()
      #4  0x00000000004214a1 in mkvalue ()
      #5  0x0000000000422438 in err_input ()
      #6  0x000000000042258c in parse_file ()
      #7  0x00000000004226ae in run_file ()
      #8  0x0000000000422bf3 in run_script ()
      #9  0x000000000042232a in realmain ()
      #10 0x00000000004039f4 in main ()

~~~
KindOne
Do a 'bt full'?

~~~
RayDonnelly
There is no symbol table:

    
    
      bt full
      #0  0x00000000004212bb in do_mkvalue ()
      No symbol table info available.
      #1  0x00000000004210a7 in do_mktuple ()
      No symbol table info available.
      #2  0x00000000004211a8 in do_mkvalue ()
      No symbol table info available.
      #3  0x00000000004213f2 in vmkvalue ()
      No symbol table info available.
      #4  0x00000000004214a1 in mkvalue ()
      No symbol table info available.
      #5  0x0000000000422438 in err_input ()
      No symbol table info available.
      #6  0x000000000042258c in parse_file ()
      No symbol table info available.
      #7  0x00000000004226ae in run_file ()
      No symbol table info available.
      #8  0x0000000000422bf3 in run_script ()
      No symbol table info available.
      #9  0x000000000042232a in realmain ()
      No symbol table info available.
      #10 0x00000000004039f4 in main ()
      No symbol table info available.

------
ponytech
My favorite part:

> "If you have a WWW viewer"

------
elSidCampeador
> "If you have a WWW viewer ..."

Just curious, had the term "browser" not caught on by then?

~~~
xjlin0
gopher? lynx?

~~~
davesque
I thought lynx was a terminal based web browser or am I wrong?

------
senatorobama
The most successful language in the last twenty years.

~~~
danieldk
Arguably, that would be Java, which was introduced in 1995. For whatever hey
are worth, most language popularity indexes (TIOBE, LangPop) place Java above
Python with quite a large margin.

Java may not get much exposure here or in startups, but if you go out in the
real world of 'boring' business applications, Java is pretty much the defacto
language (together with C#).

~~~
kumarvvr
I don't get why Python can't replace Java in almost all domains. It's
exceptionally well structured and fast enough for most use cases.

~~~
foepys
Java's tooling support blows Python's tooling support right out of the water.
The static type system of Java allows faster refactoring and IMHO makes
development of large applications easier and less error prone.

I use Python for simple scripts and often for data transformation. But e.g. at
work we have a few million lines of C# that I would never ever want to manage
if it was written in Python.

~~~
nhumrich
One might argue that Python doesnt need as much tooling. In java you need
tools to autogenerate code, refactor, etc. Because its so strict. But with
python, you can use the language itself to do things, such as adding a
parameter to a function without actually modifying any existing references. In
other words, in java, the language is the canvas and the ide is the
paintbrush, but in Python, your editor is the canvas, and the language is the
paintbrush.

~~~
Can_Not
That works for single developers and tiny codebases, but for large teams and
long term maintainence, Java's tooling is superior.

------
triangleman
Wow it's much older than I thought. As it says in the post, if you want to a
view the online doc's just fire up Mosaic. Then compile it on your IRIX box.
Those were the days.

~~~
bdcravens
Most languages are. Javascript, Ruby, Java, PHP, ColdFusion - all mid-90s
languages.

------
troyharvey
Wow. What a gift this language has been. Thanks Guido! I'm using it this
morning with GAE. I was using it last night to write a Luigi ingestor for
Redis. It's my favorite language.

------
breatheoften
A good automatic code formatter (like JavaScript’s/typescript’s prettier)
really really breaks the arguments used by significant white space supporters
...

I use a code formatting tool in my python work flow as well but it’s nowhere
near as nice/fun as with a non-significant white space language ...

------
NelsonMinar
Guido took a lot of ideas for Python from ABC, a language he worked on
previously.
[https://en.wikipedia.org/wiki/ABC_(programming_language)](https://en.wikipedia.org/wiki/ABC_\(programming_language\))

------
AlexCoventry
Been using python since 1996/7\. Just picked up python 3 and mypy. It's been
quite a ride.

------
jwilk
This can be viewed without JS enabled:

[https://groups.google.com/forum/?_escaped_fragment_=topic/co...](https://groups.google.com/forum/?_escaped_fragment_=topic/comp.lang.misc/_QUzdEGFwCo)

------
redstripe
Was there ever a DOS binary? That would be worth firing up a VM for.

~~~
zephyrfalcon
There was. I used to maintain one for a while, compiled with DJGPP, long ago
(obviously). Links might still work:
[https://web.archive.org/web/20080828160609/http://zephyrfalc...](https://web.archive.org/web/20080828160609/http://zephyrfalcon.org/labs/pythondx.html)

------
timpattinson
Pls add (1994)

------
dis-sys
Python 1.0 is great because back then you don't need to worry about the
Python2/3 issue. :)

~~~
davesque
Is it still an issue really? :/

Have been using Python 3 exclusively in production since about a year ago and
it really seems like the whole 2/3 thing is starting to blow over.

I haven't found any packages I need that aren't 3 compatible and porting to 3
was really way easier than people had made it out to be.

~~~
IshKebab
Yes. Very much still an issue. There's mountains of Python 2 code still out
there and loads of software starts with Python 2 and then maybe adds Python 3
support later. Hopefully.

For example [issue
#1]([https://github.com/tensorflow/tensorflow/issues/1](https://github.com/tensorflow/tensorflow/issues/1))
for Tensorflow - one of the most popular Python packages out there is "add
Python 3 support".

It's one of the biggest reasons not to use Python IMO. No other popular
language has this issue. The other reasons I wouldn't use Python:

1\. Difficult to distribute standalone programs. You end up having to bundle
an interpreter which is a pain. 2\. So many programs include python
interpreters you end up with insane path issues, especially on windows. 3\.
It's still slow.

~~~
davesque
> It's one of the biggest reasons not to use Python IMO. No other popular
> language has this issue.

No other popular language struggles with issues of backwards incompatibility?
That's a huge exaggeration.

> Difficult to distribute standalone programs. You end up having to bundle an
> interpreter which is a pain.

I guess then you generally prefer not to use interpreted languages?

> So many programs include python interpreters you end up with insane path
> issues...

How is that? There's usually a system Python which system programs should
reference explicitly if they care. If you code up a Python program without
being careful about its dependencies, then yeah you're asking for trouble. But
that's true of any program, whether it needs to locate an interpreter or be
compiled against a shared library.

None of the pain points you mention are inherently specific to Python. But
maybe Python's huge success and ubiquity trick people into conflating general
software development issues with Python issues; rather like how people start
confusing popular brand names with actual products (e.g. Band-Aids).

~~~
IshKebab
> No other popular language struggles with issues of backwards
> incompatibility? That's a huge exaggeration.

Pretty much true. As far as I know C, C++, Java, C#, Javascript, etc. have
never broken backwards compatibility. At least not in a serious way (like
changing how `print` works).

> There's usually a system Python which system programs should reference
> explicitly if they care.

Not on Windows.

