CodeGym University
Java FullStack
Learning
Courses
Tasks
Surveys & Quizzes
Games
Help
Schedule
Community
Users
Forum
Chat
Articles
Success stories
Activity
Reviews
Subscriptions
Light theme
Java Blog
Reviews
About us
Start
Start learning
Start learning now
Articles
Authors
All groups
All Articles List
You must belong to more groups
Create article
All groups
New
Milan Vucic
Learning Python
June 25, 2026 at 10:08 AM
PEP 703 Free-Threaded Python: What It Means and When It Lands
The Global Interpreter Lock is the most-discussed limitation of CPython for thirty years. Every "why is threading slow in Python" article points to the GIL. Every workaround (multiprocessing, asyncio, C extensions that release the GIL) exists because of it.
Milan Vucic
Learning Python
June 25, 2026 at 9:48 AM
Threads vs Processes vs asyncio: Choosing Python Concurrency Models in 2026
Python ships three concurrency models in the standard library: threading, multiprocessing, and asyncio. They look like they're competing, but they actually solve different problems. The choice depends on two axes: whether your work is CPU-bound or I/O-bound
Milan Vucic
Learning Python
June 24, 2026 at 5:28 PM
What's New in Python 3.14: Features Worth Adopting in 2026
Python 3.14 released October 7, 2025, ending a development cycle dominated by free-threading work and template strings. Eight months later, the ecosystem has caught up: most major libraries ship 3.14-compatible wheels, the experimental free-threaded build is official
Milan Vucic
Learning Python
June 24, 2026 at 4:44 PM
Pydantic vs dataclasses vs attrs vs TypedDict: When to Use Each
Four tools, four genuine niches. The reason "which one should I use" is the most-asked Python typing question in 2026 is that the answer actually depends on context. Pydantic is the right choice for HTTP boundaries and untrusted input.
Milan Vucic
Learning Python
June 24, 2026 at 4:17 PM
mypy vs Pyright vs Pyrefly: Choosing a Python Type Checker in 2026
The Python type-checker market changed more in the last 18 months than in the previous decade. mypy and Pyright held a comfortable duopoly through 2024; in May 2026 Meta released Pyrefly 1.0 (written in Rust, 10-50x faster than the incumbents), and Astral's ty (also Rust) followed close behind in alpha.
Milan Vucic
Learning Python
June 24, 2026 at 9:39 AM
The async/await Mental Model: What Asynchronous Python Actually Does
The most common mistake developers make with Python's async/await is thinking it's threading. It isn't. async/await is cooperative scheduling: a single thread runs an event loop that hands control to one coroutine at a time, and each coroutine voluntarily yields control back at await points so the loop can run someone else.
Milan Vucic
Learning Python
June 23, 2026 at 4:01 PM
Python Type Hints in 2026: What's Worth Adopting (and What's Not)
Type hints in Python have grown from an experimental 2014 addition (PEP 484) into a near-universal baseline by 2026. The major libraries ship types: FastAPI is built on them, Pydantic v2 depends on them, SQLAlchemy 2.0 treats them as the primary API, mypy and Pyright analyze billions of lines of typed Python every day.
Lihu Zhai
Learning Python
June 23, 2026 at 2:26 PM
Python OOP Complete Guide: The 10 Questions That Actually Matter
Most Python OOP tutorials make one of two mistakes: they stop at "class Dog: pass" and call it complete, or they dump every dunder and metaclass concept on the reader without a path through. This guide is built around the 10 questions that actually come up when you write real Python code.
Lihu Zhai
Learning Python
June 22, 2026 at 2:03 PM
What Metaclasses Actually Are in Python (and When You Genuinely Need One)
"Metaclasses are deeper magic than 99% of users should ever worry about. If you wonder whether you need them, you don't (the people who actually need them know with certainty that they need them, and don't need an explanation about why)." That's Tim Peters, in one of the most-quoted Python aphorisms ever written.
Lihu Zhai
Learning Python
June 22, 2026 at 1:08 PM
@dataclass in Python: From Boilerplate to Frozen and Slots
Before PEP 557 landed in Python 3.7, every value class meant writing the same five methods by hand: __init__ to assign the fields, __repr__ for debuggable output, __eq__ for value comparison, often __hash__ to keep dict-key usage working, sometimes the ordering dunders for sorting. Thirty lines of boilerplate for what felt like four attributes.
Lihu Zhai
Learning Python
June 19, 2026 at 12:47 PM
Abstract Base Classes (ABC) and Protocols in Python: Interfaces Done Right
Python has two ways to express the idea "this class implements an interface", and they look superficially similar but enforce the contract at completely different moments. Abstract Base Classes (abc.ABC + @abstractmethod) have been around since Python 2.6 (PEP 3119, 2007); they use nominal subtyping, where a class IS an implementer only if it inherits from the ABC, and enforce the contract at instantiation time by raising TypeError
Lihu Zhai
Learning Python
June 19, 2026 at 11:40 AM
Composition vs Inheritance in Python: When to Favor Each
The Gang of Four's Design Patterns (1994) buried one rule in the introduction so deep that most readers miss it, even though it's the most-cited line in the book: favor object composition over class inheritance. Thirty years later it's still the right default, and Python's culture has internalized it more than Java's or C++'s.
Show more
1
2
3
4
...
83
Please enable JavaScript to continue using this application.