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
Yehor Nazarkin
August 12, 2013
Programming
0
6.2k
Write once, run everywhere
Доклад Игоря Новикова на kharkivpy #8
Yehor Nazarkin
August 12, 2013
Tweet
Share
More Decks by Yehor Nazarkin
See All by Yehor Nazarkin
Flask, гордость и предубеждения
nimnull
0
330
Python non-mainstream web
nimnull
0
150
Агрегация и обработка статистики
nimnull
0
5.7k
GPU Computing in Python
nimnull
1
5.7k
To Flask or not to Flask
nimnull
5
630
MongoDB Без ORM
nimnull
0
300
REST in Flask (And small client-side intro)
nimnull
10
1.7k
Other Decks in Programming
See All in Programming
Webinar: AI-Powered Development: Transformiere deinen Workflow mit Coding Tools und MCP Servern
danielsogl
0
110
CEDEC2025 長期運営ゲームをあと10年続けるための0から始める自動テスト ~4000項目を50%自動化し、月1→毎日実行にした3年間~
akatsukigames_tech
0
120
抽象化という思考のツール - 理解と活用 - / Abstraction-as-a-Tool-for-Thinking
shin1x1
1
950
実践!App Intents対応
yuukiw00w
1
220
マイコンでもRustのtestがしたい その2/KernelVM Tokyo 18
tnishinaga
2
1.8k
Flutterと Vibe Coding で個人開発!
hyshu
1
240
CEDEC 2025 『ゲームにおけるリアルタイム通信への QUIC導入事例の紹介』
segadevtech
3
820
Claude Code で Astro blog を Pages から Workers へ移行してみた
codehex
0
180
Vibe coding コードレビュー
kinopeee
0
430
Jakarta EE Meets AI
ivargrimstad
0
650
AIコーディングエージェント全社導入とセキュリティ対策
hikaruegashira
16
9.6k
オホーツクでコミュニティを立ち上げた理由―地方出身プログラマの挑戦 / TechRAMEN 2025 Conference
lemonade_37
2
460
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
134
9.5k
Balancing Empowerment & Direction
lara
1
540
Documentation Writing (for coders)
carmenintech
73
5k
How STYLIGHT went responsive
nonsquared
100
5.7k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
Code Reviewing Like a Champion
maltzj
524
40k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Building Applications with DynamoDB
mza
96
6.5k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
How to Think Like a Performance Engineer
csswizardry
25
1.8k
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
Спасибо за внимание! И какие есть вопросы?