Python Bytes is a weekly podcast hosted by Michael Kennedy and Brian Okken. The show is a short discussion on the headlines and noteworthy news in the Python, developer, and data science space.

#317 Most loved and most dreaded dev tools of 2022

January 03, 2023 00:48:31 41.51 MB Downloads: 0
Watch on YouTube

About the show

Sponsored by Microsoft for Startups Founders Hub.

Connect with the hosts

Michael #1: StackOverflow 2022 Developer Survey

  • Last year we saw Git as a fundamental tool to being a developer. This year it appears that Docker is becoming a similar fundamental tool for Professional Developers, increasing from 55% to 69%.
  • Language: Rust is […] the most loved language with 87% of developers saying they want to continue using it.
  • JS Frameworks: Angular.js is in its third year as the most dreaded.
  • Let me Google that for you: 62% of all respondents spend more than 30 minutes a day searching for answers or solutions to problems. 25% spending more than an hour each day.
  • The demise of the full-stack developer is overrated.
  • I do wish there were more women in the field.
  • Databases: Postgres is #1 and MongoDB is still going strong.
  • The “which web framework do you use?” question is a full on train wreck. Why is this so hard for people to write the question? Node.js or Express (built on Node) vs. FastAPI or Flask (but no Python?)
  • Most wanted / loved language is Rust (wanted) and Python/Rust tied for most wanted.
  • Worked with vs. want to work with has some interesting graphics.

Brian #2: PePy.tech - PyPI download stats with package version breakdown

  • Petru Rares Sincraian
  • We’ve discussed pypistats.org before, which highlights
    • daily downloads
    • downloads per major/minor Python version
    • downloads per OS
  • PyPy is a bit more useful for me
    • default shows last few versions and total for this major version
    • “select versions” box is editable.
      • clicking in it shows dropdown with downloads per version already there
      • you can add * for graph of total
      • or other major versions if you want to compare
    • daily/weekly/monthly is nice, to round out some noise and see larger trends
    • Oddity I noticed - daily graph isn’t the same dates as the table.
      • off by a day on both sides
      • not a big deal, but I notice these kinds of things.

Michael #3: Codon Python Compiler

  • via Jeff Hutchins and Abdulaziz Alqasem
  • A high-performance, zero-overhead, extensible Python compiler using LLVM
  • You can scale performance and produce executables, even when using third party libraries such as matplotlib.
  • It also supports writing and executing GPU kernels, which is an interesting feature.
  • See how it works at exaloop.io
  • BTW, really terrible licensing.
    • Free for non-commercial (great)
    • “Contact us” for commercial use (it’s fine to charge, but give us a price)

Brian #4: 8 Levels of Using Type Hints in Python

  • Yang Zhou (yahng cho)
  • A progression of using type hints that seems to track how I’ve picked them up
  1. Type Hints for Basic Data Types.
    • x: int
  2. Define a Constant Using Final Type
    • DB: Final = '``PostgreSQL'
    • (ok. I haven’t used this one at all yet)
  3. Adding multipe type hints to one variable.
    • int | None
  4. Using general type hints.
    • def func(nums: Iterable)
    • Also using Optional
  5. Type hints for functions
    • def func(name: str) → str:
    • (I probably would put this at #2)
  6. Alias of type hints (not used this yet, but looks cool) PostsType = dict[int, str]

    new_posts: PostsType = {1: 'Python Type Hints', 2: 'Python Tricks'}

  7. Type hints for a class itself, i.e. Self type from typing import Self

    class ListNode: def __init__(self, prev_node: Self) -> None: pass

  8. Provide literals for a variable. (not used this yet, but looks cool) from typing import Literal weekend_day: Literal['Saturday', 'Sunday'] weekend_day = 'Saturday' weekend_day = 'Monday' # will by a type error

Extras

Brian:

  • I hear a heartbeat for Test & Code, so it must not be dead yet.

Michael:

Joke: vim switch