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
320
Python non-mainstream web
nimnull
0
140
Агрегация и обработка статистики
nimnull
0
5.7k
GPU Computing in Python
nimnull
1
5.7k
To Flask or not to Flask
nimnull
5
620
MongoDB Без ORM
nimnull
0
290
REST in Flask (And small client-side intro)
nimnull
10
1.7k
Other Decks in Programming
See All in Programming
State of Namespace
tagomoris
4
760
「影響が少ない」を自分の目でみてみる
o0h
PRO
2
990
アプリを起動せずにアプリを開発して品質と生産性を上げる
ishkawa
0
2.6k
Building a macOS screen saver with Kotlin (Android Makers 2025)
zsmb
1
140
データベースエンジニアの仕事を楽にする。PgAssistantの紹介
nnaka2992
9
4.5k
エンジニア未経験が最短で戦力になるためのTips
gokana
0
260
Chrome Extension Techniques from Hell
moznion
1
160
Agentic Applications with Symfony
el_stoffel
2
270
API for docs
soutaro
1
700
趣味全開のAITuber開発
kokushin
0
190
MCP世界への招待: AIエンジニアが創る次世代エージェント連携の世界
gunta
4
880
[NG India] Event-Based State Management with NgRx SignalStore
markostanimirovic
1
110
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
251
12k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Side Projects
sachag
452
42k
The World Runs on Bad Software
bkeepers
PRO
67
11k
Gamification - CAS2011
davidbonilla
81
5.2k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
650
Reflections from 52 weeks, 52 projects
jeffersonlam
349
20k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
Stop Working from a Prison Cell
hatefulcrawdad
268
20k
Building an army of robots
kneath
304
45k
4 Signs Your Business is Dying
shpigford
183
22k
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
Спасибо за внимание! И какие есть вопросы?