▲ 82 r/Python

What do you love and dislike the most about Python? (beginners and long-time devs)

Hi! I'm really interested in Python's design and its tradeoffs. I'm trying to really understand what people love about Python (what makes it great), and what causes the most frustration for Python devs.

So what features do you really cherish and what problems/limitations really frustrate you?

I'm especially interested in experiences from ultra-beginners and people who've used Python for a long time. I know broad questions like this come across as super generic, but I'm genuinely interested in hearing about concrete experiences.

My goal is understanding which parts of Python's design are most valuable and most "adored" by the community, and which parts really aren't and frustrate people the most. My goal with this information is to identify meaningful problems. Right now I'm not trying to solve anything or sell a solution.

Thanks for your time!

reddit.com
u/horace_h — 9 days ago
▲ 38 r/Compilers+1 crossposts

Keel 0.2 (alpha) - a fast, statically typed interpreted language written in Rust - structs, error handling, an embedding API, a new handwritten parser, and performance improvements

Keel 0.2 (alpha) is out!

Keel is a fast, statically typed interpreted programming language written in Rust that tries to combine Rust-like syntax with Python's ease of use.

Since the last version, structs, error handling, and an experimental embedding API have been added, and the module system has been improved, along with multiple syntax changes, and many performance improvements & bug fixes. The parser has also been rewritten from the ground up (it previously used LALRPOP). It's now handwritten and with a lexer that uses logos. It's also much smaller and ~20x faster. memchr, lexical_core, and zmij are now used to speed up string operations and number<->string conversions.

The latest release now also contains both the Keel CLI (what most people want to download) and Keel as a dynamic library to make it easy to embed it.

Behind the scenes, Keel uses a register machine with NaN-boxing, a mark-and-sweep GC, and can natively call C/dynamic library functions thanks to libffi. The compiler does constant folding, literal pooling, full type inference (without annotations), and monomorphization, along with other aggressive compile-time optimizations. In benchmarks, it's roughly 2-15x faster than Python and competitive with LuaJIT (-joff).

Questions are welcome!

Repo | Latest release | Website | Online playground

Disclaimer: I previously used AI to write some code comments, which I've since removed and rewritten myself. All of the code and architecture is designed and written by me.

u/horace_h — 1 month ago
▲ 20 r/ProgrammingLanguages+1 crossposts

Keel, a fast, statically-typed interpreted language written in Rust

https://github.com/horacehoff/keel

I've been building Keel for a while, it's a statically typed interpreted programming language written in Rust. The idea behind it was to make something with Python's ease of use, but much faster, and with a syntax that's similar to other low level languages, which is something that annoyed me when I started using other languages than Python.

Behind the scenes, it's a register machine with NaN boxing. The compiler does constant folding, constant propagation, and monomorphization. In benchmarks it's roughly 2-10x faster than Python and competitive with LuaJit (-joff). That being said, it's still experimental, and the standard library is quite small.

u/horace_h — 20 days ago