Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Write once, run everywhere
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Yehor Nazarkin
August 12, 2013
Programming
6.3k
0
Share
Write once, run everywhere
Доклад Игоря Новикова на kharkivpy #8
Yehor Nazarkin
August 12, 2013
More Decks by Yehor Nazarkin
See All by Yehor Nazarkin
Flask, гордость и предубеждения
nimnull
0
340
Python non-mainstream web
nimnull
0
170
Агрегация и обработка статистики
nimnull
0
5.7k
GPU Computing in Python
nimnull
1
5.7k
To Flask or not to Flask
nimnull
5
640
MongoDB Без ORM
nimnull
0
320
REST in Flask (And small client-side intro)
nimnull
10
1.7k
Other Decks in Programming
See All in Programming
脅威をエンジニアリングの糧にして――現場編 / Turning Threats into Engineering Fuel — Field Edition
nrslib
0
220
AI駆動開発で崩れていくコードベースを立て直す
kyoko_nr_nr
1
390
サーバーレスで作る、動画データ管理基盤
oyasumipants
0
320
柔軟なPDFレイアウトエディタを支える型システム設計 — Discriminated UnionとConditional Typeの実践
minako__ph
4
1.2k
TSKaigi2026-静的解析への投資がAI時代のコード品質を支える ── カスタムESLintルールの設計と運用
hayatokudou
6
1.3k
プロパティの順序で型推論が壊れる!? TypeScript6.0の修正からContext-Sensitivityの仕組みを追う
bicstone
2
1.2k
権限チェックの一貫性を型で守る TypeScript による多層防御
mnch
4
970
RTSPクライアントを自作してみた話
simotin13
0
320
要はバランスからの卒業 #yumemi_grow
kajitack
0
200
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
340
Technical Debt: Understanding it Rightly, Engaging it Rightly #LaravelLiveJP
shogogg
0
170
ビジネスモデルから紐解く、AI+型駆動開発
hirokiomote
2
4k
Featured
See All Featured
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
470
Visualization
eitanlees
152
17k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
420
How GitHub (no longer) Works
holman
316
150k
The SEO identity crisis: Don't let AI make you average
varn
0
480
Claude Code のすすめ
schroneko
67
220k
Optimizing for Happiness
mojombo
378
71k
The SEO Collaboration Effect
kristinabergwall1
1
470
The Spectacular Lies of Maps
axbom
PRO
1
770
Transcript
- почем опиум для народа? (с) Остап Бендер Write once
run anywhere
Основные десктопные системы MacOS X Windows Linux
Виджетсеты платформ Carbon/Cocoa WinAPI Gtk+/Qt
Биндинги к Python PyObjC pywin32 PyGtk
Механизм работы биндингов Platform API Python native extension Python API
Native side Python side
Три независимых проекта, использующих платформенно-специфические биндинги: ! • на Windows
- pywin32 • на MacOS X - PyObjC • на Linux - PyGtk Самый надежный путь, но при этом самый затратный
Казалось бы, что может быть проще? Правильно выбранный тулкит и
мультиплатформенное приложение готово!
• Tkinter • PyQt • PyGtk • wxpython МУЛЬТИПЛАТФОРМЕННЫЕ ТУЛКИТЫ
Tkinter - стандартный тулкит для Python биндинг к Tcl/Tk
None
Внутренняя структура Tkinter Tkinter Native extension _tkinter TCL Tk Basic
platform API
Tkinter
PyQt
PyQt SWIG interfaces Native SWIG interfaces Qt library Basic platform
API Внутренняя структура PyQt
Tkinter PyQt
PyGtk
Native python extension Gtk library Basic platform API Внутренняя структура
PyGtk
None
Tkinter PyQt PyGtk
wxWidgets
wxpython SWIG interfaces Native SWIG interfaces wxWidgets Platform controls Внутренняя
структура wxPython
Tkinter PyQt PyGtk wxpython
"Что делать?" (с) и кто виноват :)
Abstract API PyObjC pywin32 PyGtk Возможный вариант создания полноценного мультиплатформенного
тулкита
None
Спасибо за внимание! И какие есть вопросы?