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
310
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
280
REST in Flask (And small client-side intro)
nimnull
10
1.7k
Other Decks in Programming
See All in Programming
Fixstars高速化コンテスト2024準優勝解法
eijirou
0
190
Alba: Why, How and What's So Interesting
okuramasafumi
0
210
CQRS+ES の力を使って効果を感じる / Feel the effects of using the power of CQRS+ES
seike460
PRO
0
240
AWSのLambdaで PHPを動かす選択肢
rinchoku
2
390
情報漏洩させないための設計
kubotak
5
1.3k
[JAWS-UG横浜 #80] うわっ…今年のServerless アップデート、少なすぎ…?
maroon1st
0
100
見えないメモリを観測する: PHP 8.4 `pg_result_memory_size()` とSQL結果のメモリ管理
kentaroutakeda
0
940
技術的負債と向き合うカイゼン活動を1年続けて分かった "持続可能" なプロダクト開発
yuichiro_serita
0
300
PHPで学ぶプログラミングの教訓 / Lessons in Programming Learned through PHP
nrslib
4
1.1k
20年もののレガシープロダクトに 0からPHPStanを入れるまで / phpcon2024
hirobe1999
0
1k
React 19でお手軽にCSS-in-JSを自作する
yukukotani
5
570
shadcn/uiを使ってReactでの開発を加速させよう!
lef237
0
300
Featured
See All Featured
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
192
16k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.8k
Testing 201, or: Great Expectations
jmmastey
41
7.2k
How STYLIGHT went responsive
nonsquared
96
5.3k
The Power of CSS Pseudo Elements
geoffreycrofte
74
5.4k
KATA
mclloyd
29
14k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.4k
Designing Experiences People Love
moore
139
23k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
500
Designing for Performance
lara
604
68k
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
Спасибо за внимание! И какие есть вопросы?