They missed Scheme, one of the most elegant and powerful languages in existence.
But they did mention Hy, a lisp dialect written in Python. I find this hy-larious. It certainly is one way to learn Python better as you'll be working, indirectly, in its abstract syntax tree. You can do this in plain Python but the ast module is woefully under-documented and rarely used.
Languages to improve your Python
21–30 of 31 posts
Re: Languages to improve your Python
#22Earlier quoted context omitted.
Not just Scheme, but given how important metaprogramming is to Python, I was hoping there would be more Lisp dialects in the list.
How important is metaprogramming to Python? Frankly, in my 16+ years as Python developer, I have never seen anything that can be remotely described as metaprogramming in Python, except in academic code and experimental GitHub projects.
The ABC module, collections, frozenset. Basically anywhere we add custom types or generate new classes to instantiate.
Re: Languages to improve your Python
#23Fortran is also one the primary languages in which statistical algorithms have been coded.
Re: Languages to improve your Python
#24Here is what got me off the ground. The first unit is learning ML and the second unit was Racket. https://www.youtube.com/user/afigfigueira/playlists?shelf_id...
This is from a Coursera Course that is not being offered right now. It covers a lot of different languages but the Racket and ML parts are a great starting point.
I liked this book - http://www.amazon.com/Realm-Racket-Learn-Program-Game-ebook/...
If that is too simple there always is http://www.amazon.com/How-Design-Programs-Introduction-Progr...
I prefer seeing people code and talk about it so the videos are great.
Re: Languages to improve your Python
#25They missed Scheme, one of the most elegant and powerful languages in existence.
- It is really easy to download, install, and be coding in 5 minutes.
- There's a nice GUI IDE, if that's your cup of tea. (Also I maintain racket-mode for Emacs.)
- It is "batteries included" (maybe not compared to Python (!), but definitely compared to most Schemes).
- You can write everything from command-line programs that launch quickly, to GUI apps, to web apps.
And particularly why I mention it here:
- You can explore many approaches mentioned in the OP: functional, gradual typing, object-oriented, lazy evaluation, datalog, and more. (Ultimately, Racket is "a programming-language programming language". Although you can ignore that level of abstraction and simply use it as a very nice lisp.)
Re: Languages to improve your Python
#26SQL is missing from their list. A solid understanding of its capabilities is important. Developers should know when to use it and when not to.
Re: Languages to improve your Python
#27Earlier quoted context omitted.
How important is metaprogramming to Python? Frankly, in my 16+ years as Python developer, I have never seen anything that can be remotely described as metaprogramming in Python, except in academic code and experimental GitHub projects.
You've probably used it without knowing. It's not typically useful in application code but quite useful in libraries. The ABC module, collections, frozenset. Basically anywhere we add custom types or generate new classes to instantiate.
Re: Languages to improve your Python
#28Earlier quoted context omitted.
You've probably used it without knowing. It's not typically useful in application code but quite useful in libraries. The ABC module, collections, frozenset. Basically anywhere we add custom types or generate new classes to instantiate.
That surprises me. What does frozenset have to do with metaprogramming? I thought it was just a variant of a hash table or something like that.
frozenset is just a built-in immutable set type with a nice hashing algorithm for the kinds of workloads you'd expect. It's defined in Objects/setobject.c and is a nice read.
I was just rambling and I've used frozenset in metaprogramming code when constructing classes via decorators to implement Lattice types with decorated monotone/morphism methods.
Sorry for the confusion!
Re: Languages to improve your Python
#29I like too the fair descriptions of the major Python's alternative programming approaches and languages, even if this list is incomplete.
Re: Languages to improve your Python
#30Earlier quoted context omitted.
How important is metaprogramming to Python? Frankly, in my 16+ years as Python developer, I have never seen anything that can be remotely described as metaprogramming in Python, except in academic code and experimental GitHub projects.
That seems like a pretty fair label for what decorators do.