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

For me python's killer feature is readability years later.

I've gone back to websites and tools YEARS later and the code as quick to pickup and easy to modify.

35 years of programming and I've never met a language so well integrated with my mind.



Any language with static types should be easier to make sense of, though. I get it's faster to write dynamically typed code, but your point is specifically about reading code, which I can't follow.

Of course Python nowadays has support for static types too.


I program in Python professionally, and I agree with your sentiment in general. Dynamic types hurt readability. Also, in general, Python is faster to develop with than most statically typed languages. There are two nits that I’d like to pick: the first and lesser is that Python’s static typing story is in an alpha stage. It’s not ready for prime time (but I’m cheering it on) and Python shouldn’t be considered as having a static type system yet.

The second is that I realized that Go is a statically typed language that is quite a lot easier to develop with than Python and other dynamic languages. It strikes a good balance between protecting you from mistakes while not making it hard to express your intent (most of the time, anyway). As I advance and become more concerned about my time, I find myself reaching for Go more often because the static type system has my back. I spend less time writing unit tests or iteratively running my code to make sure things still work. (People said this about Haskell and Rust and OCaml too, so I understand the skepticism dynamic language proponents have for claims like these). The deployment, dependency management, and performance stories are also quite a lot nicer in Go, and these are undervalued components of “developing velocity” as well, especially if you’re on a small team. It really changes the calculus for static vs dynamic language discussions.


>I get it's faster to write dynamically typed code

I would dispute that, but I guess it depends on one's workflow. Different workflows work better with different kinds of type systems.


> 35 years of programming and I've never met a language so well integrated with my mind.

That's a pretty good way to put it - and mirrors my feelings. I've been programming for 20+ years (with breaks here and there), and it took a while for me to find Python. But when I found it, it's like I finally found the language that my brain thinks in.


Personal anecdote as well, but I think you nailed one of the reasons I love Python.. It's the way the language was designed (PEP 20)

I had written some POC scientific code for my undergrad thesis, but the thesis was sidetracked for about a year or so due to real-life issues. When I went back, I could try and test things again in just a day or two, in comparison to much more detailed documented Matlab and C code.

- There should be one-- and preferably only one --obvious way to do it.

- Simple is better than complex.


I was just talking to my friend about how in python I can just write "and" "or" "not" instead of the symbol orgy in almost every other language xD


You'd probably love COBOL too, it's closer to plain English than most other programming languages out there.


I would seriously recommend Swift for this reason. It's the most self-documenting language I have worked with.


This is also what i love most about go. The code is so easy to read and thanks to `go fmt` everyone's code is structured the same way.




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

Search: