Video summary

برنامه‌نویسی به زبان پایتون |‌ Python Versions

Main summary

Key takeaways

Educational

Main ideas and lessons

  • Python has multiple versions, similar to how other software (e.g., Telegram, Photoshop, games) has different releases.
  • The video focuses on why Python versions change, what differs between them, and which versions matter for learners.
  • A common expectation is addressed:
    • People wonder “Why isn’t Python 4 coming?”
    • The answer: Python evolves through releases and maintenance, and a major version jump may not happen for a long time (or may never happen soon) due to compatibility concerns and the scale of existing code.

Python 1, 2, and 3: timeline and purpose

  • Python 1

    • Released in 1994
    • Initially described as having many incomplete/unstable aspects (less mature than later versions).
  • Python 2

    • Released in 2000
    • Became popular and a standard for many developers.
    • Continued receiving updates for a very long time:
      • Updates stopped in 2020
    • Key takeaway: Python 2 is no longer supported/maintained and new features will not be added.
    • Existing Python 2 code may still run, but developers must switch for future work.
  • Python 3

    • Released in 2008
    • Created to address issues in Python 2, including:
      • Fixing design problems
      • Improving performance
      • Improving Unicode support
      • Simplifying parts of syntax
    • Compatibility behavior:
      • Major version changes break backward compatibility
      • Moving from Python 2 → Python 3 is treated as a major shift, so code/features can be incompatible.
    • Coexistence period:
      • Python 2 and Python 3 existed side-by-side for ~12 years (from 2008 onward)
      • Compared to how operating systems linger (e.g., XP not disappearing overnight)

How versioning and compatibility works (as explained)

  • Minor version changes (example given: 1 → 1.5 or 1.5 → 1.6)

    • Typically preserve compatibility (described as backward compatibility).
  • Major version changes (example implied: Python 2 ↔ Python 3)

    • Typically remove compatibility assumptions:
      • Code and modules built for one may not run in the other
      • The video suggests Python 2 code generally won’t run in Python 3 and vice versa.
  • “Not overnight” upgrades

    • Ecosystems (like OSes and deployed software) adopt updates gradually, so older versions remain in use for a long time.

Current versions mentioned in the course

  • The instructor references the official Python website to determine the latest version.
  • Versions discussed:
    • Python 12
      • Described as the latest available on the official site
      • Not stable
    • Python 11
      • In a bug-fixing phase
      • Close to stable, but not fully ready yet
    • Python 10
      • The version used in the course
      • Described as stable
    • Python pre-release (general concept)
      • “Works,” but not suitable for serious work
  • Final course statement (as stated in the subtitles):
    • The course uses Python 3 and Python 10 to stay aligned with the newest stable syntax/features.

Why Python 4 might not arrive soon (and why changes are hard)

The video argues Python 4 is difficult because:

  • Python is extremely popular
  • Millions of developers and organizations depend on it
  • Python has huge legacy codebases (billions of lines are mentioned)
  • A drastic rewrite would force migration, breaking old code

Analogy for change

  • Prefer “reform”: small steps and gradual changes while possible.
  • Eventually, if the ecosystem becomes incompatible with future needs (example scenario: by 2040 certain apps can no longer be developed), then a “revolution” (a major version like Python 4) would be required.

Course promise / what learners should expect

  • The course will teach new and interesting syntax/features from the chosen stable version.
  • It aims to be more modern than last year’s courses, aligned with current stable Python capabilities.

Methodology / instructional structure (explicit or implied)

  • Check official Python sources for the latest released/beta versions:
    • Use the official Python website to see current latest versions and their stability status.
  • Choose stable versions for serious development/learning:
    • Use a stable release (here, Python 3 + 10, per the video).
    • Avoid pre-release versions for serious work even if they can run.
  • Learn with compatibility expectations in mind:
    • Understand that major version changes (Python 2 ↔ Python 3) can break compatibility.
    • Expect coexistence of versions during transitions rather than immediate replacement.

Speakers / sources featured

  • Speaker/Instructor: The narrator/instructor speaking throughout the subtitles (no name provided).
  • Source referenced: Official Python website (where the latest version is checked).

Original video