Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I think you are underestimating python developers. When python became popular popular languages did not have such expressive type systems. Java and perl were popular then.

Also, here it is claimed the library should be part of the language, and at the same time it us assumed it is too complicated for the users to understand. It seems like the feature being a library solves this, if we let go of the self-imposed requirement of it being part of the language.



When Python started to become popular as Perl alternative, and Zope became a thing to be aware of, I already learned about Caml Light, Objective Caml, Miranda, Standard ML, and the new kind in town Haskell.

Also, even within the constrains of C++98 type system, expressivness wasn't something C++ was lacking.


> When python became popular popular languages did not have such expressive type systems. Java and perl were popular then.

I really like some of the languages you mention, but most of them were not popular, especially in Python domain at the time (scripts and web servers).

The main contenders against Python then were Perl (timtowtdi vs Python one way) and Java.

Java and C++ were strongly typed, but lacking most of the nice things of Haskell etc (at least Java). C++ is very expressive (prob more because of templates than the type system, but I will happily concede this one).

For scripts and web backends, C++ and Haskel/ml were not popular. This leaves Java, perl, php and similar, and at the time neither had advanced type systems in the ergonomic way that it is now expected.


> I think you are underestimating python developers.

There are a lot of people out there writing Python, and a lot of them identify as analysts, (non-software) engineers, scientists, and so on. Not developers. Some of them write immaculate code. Some of them don’t know about git, functions, or commandline arguments, so their code is one long script with big chunks they comment or uncomment depending on what they’re trying to do. The latter are a big constituency for me. Plain type annotations are great in this context, because they place no burden on the user at all. All they have to do is ignore them. Best case, they notice that function f returns a list of floats rather than an ndarray and that saves me having to explain what’s going on.


Usually syntax makes things easier, certainly for types. That's why we have syntax.

I don't claim Python developers cannot understand it. But every additional thing adds to the cognitive burden.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: