
Python itu udah punya fitur `async`/`await` sejak 2015, udah sepuluh tahun lebih malah. Tapi kok ya kayaknya nggak sepopuler yang dibayangkan ya? Padahal kan keren buat bikin program lebih responsif. Salah satu alasannya, `asyncio` itu paling jago kalau buat ngurusin *input/output* yang berhubungan sama jaringan. Contohnya kayak ngirim email, akses website, atau *chatting*. Di situ, `asyncio` bisa diandalkan banget karena tugasnya banyak yang dibantu sama sistem opeasi.
Tapi, kalau buat urusan *file system* atau hal lain yang *blocking*, `asyncio` masih agak keteteran. Solusi kayak `aiofiles` pun cuma pindahin tugasnya ke *thread pool*, jadi bukan *true async* banget. Nah, ini juga yang bikin banyak *library* dan *framework* yang dukungannya masih setengah-setengah. FastAPI sih udah *full async*, tapi yang lain kayak Django masih banyak yang *sync*, atau Flask yang punya alternatif Quarts buat yang mau *async*. Jadinya, developer sering bingung mana yang udah async, mana yang belum. Belum lagi soal *Global Interpreter Lock* (GIL) yang masih jadimomok.
Walaupun pakai *thread*, GIL ini bikin *multithreading* di Python jadi nggak bisa *truly parallel* kalau cuma buat ngurusin CPU. Tapi, sebentar lagi Python 3.14 mau keluar nih, bawa kabar gembira. Ada PEP 779 soal "Free-Threading" yang katanya bisa ngilangin GIL.
Terus ada juga PEP 734 buat "Multiple Interpreters". Ini bisa jadi solusi buat masalah *CPU-bound* yang selama ini bikin *asyncio* nggak maksimal. Dengan adanya *free-threading* dan *multiple interpreters* ini, kita bisa punya pilihan baru.
Buat I/O jaringan yang ringan, `asyncio` tetap oke. Tapi buat yang butuh *multithreading* beneran buat ngurusin CPU, nanti bisa pakai cara yang baru ini. Intinya sih, `asyncio` udah makin matang buat *network I/O*, tapi keterbatasannya, GIL, dan *overhead* perawatannya bikin adopsinya belum luas. Python 3.14 ini bisa jadi titik balik buat bikin paralelisme yang lebih umum, jadi kita bisa pilih mana yang paling pas buat kebutuhan kita.