SlideShare une entreprise Scribd logo
1  sur  29
Télécharger pour lire hors ligne
Arun Thondapu
Eclipse SWT Project Co-Lead
Equinox (Launcher) Committer
IBM
arunkumar.thondapu@in.ibm.com
3/12/2015EclipseCon NA 2015
1
 Motivation
 Evolution of GTK+
 Porting SWT to GTK+ 3
 Challenges
 Solutions
 Collaboration
 WIP
 What’s Next ??
 Wayland support
 Broadway, HTML 5
 GTK+ 4
3/12/2015EclipseCon NA 2015 2
 Linux vs Others
 Significant changes in underlying windowing system (GTK+)
 Separate API and ABI incompatible streams
 How to be on the “bleeding edge”
 Need parallel streams of development and maintenance
 Open and diverse nature of Linux distributions = support for a large range of GTK+
versions
3/12/2015EclipseCon NA 2015 3
3/12/2015EclipseCon NA 2015 4
"GTK+ software architecture" by Shmuel Csaba Otto Traian. Licensed under CC BY-SA 4.0 via Wikimedia Commons -
http://commons.wikimedia.org/wiki/File:GTK%2B_software_architecture.svg#mediaviewer/File:GTK%2B_software_architecture.svg
 Originally designed and used in the GNU Image Manipulation Program (GIMP) as
a replacement of the Motif toolkit.
 GTK+ 2.0
 improved text rendering using Pango
 a new theme engine
 improved accessibility using ATK
 complete transition to Unicode using UTF-8 strings
 more flexible API and new widgets
 usage of Cairo graphics library for rendering vector graphics (since version 2.8)
3/12/2015EclipseCon NA 2015 5
 GTK+ 3
 cairo drawing throughout, GDK no longer wraps the antiquated X11 drawing API
 modern input device handling via XInput2
 new theming API with CSS syntax for theme configuration and animations
 multiple backend support for GDK (including experimental support for Wayland and
HTML5)
 integration of D-Bus support in GIO
 use GIO for launching applications
 new widgets, such as a switch and an application chooser
 improved support for touch and gestures
3/12/2015EclipseCon NA 2015 6
 Primary goal was a seamless user experience on a wide variety of Linux versions
irrespective of underlying versions of GTK+ shipped by them.
 to be as backward compatible as possible
 in contrast to most native GTK+ apps including GNOME
3/12/2015EclipseCon NA 2015 7
libgtk-x11-2.0.so.0
libswt-pi-gtk-****.so libswt-pi3-gtk-****.so
libgtk-3.so.0
 Do not include individual headers
 Do not use deprecated symbols
 Use accessor functions instead of direct access
 Replace GDK_<keyname> with GDK_KEY_<keyname>
 Use GIO for launching applications instead of the gdk_spawn family of functions
 Use cairo for drawing
 GdkGC and GdkImage are removed
 gdk_draw family of functions are gone
 GtkWidget “expose-event” signal has been replaced by a new “draw” signal
3/12/2015EclipseCon NA 2015 8
 The modern GTK+ drawing model
3/12/2015EclipseCon NA 2015 9
 Many great and diverse contributions
from community (led by Red Hat
team) towards the GTK+ 3 port
 Much more stable and usable now
 Please continue to test, report bugs
and contribute patches!
3/12/2015EclipseCon NA 2015 10
 Working on resolving most major outstanding problems before Mars
 Bugzilla summary tags – GTK3, GTK 3.10
 Lots more stuff being deprecated and replaced by GTK+
 GdkColor is being replaced by GdkRGBA
 Many enhancements as well but we may not be able to adopt right now, stability is
the major concern
 Lack of backwards-compatibility in major updates continues to be an issue
 Can we aggressively drop support for older versions of GTK+ 2.x?
3/12/2015EclipseCon NA 2015 11
 Mars drops support for GTK+ < 2.18
 How to find out which version of GTK+ is being used by my Eclipse or SWT
application?
 Use the Java property org.eclipse.swt.internal.gtk.version
 Prevent linking against GTK+ 2.x and GTK+ 3.x in the same process
 Leads to unexpected hangs or hard-to-diagnose crashes
3/12/2015EclipseCon NA 2015 12
 Eclipse Mars
 GTK+ 3 always (assuming it is installed and available)
 Eclipse Luna, SR1 & SR2
 GTK+ < 3.10 => GTK3
 GTK+ >= 3.10 => GTK2
3/12/2015EclipseCon NA 2015 13
 Webkit is embedded by default on Linux but XULRunner is also supported
 libwebkitgtk-1.0-0 vs. libwebkitgtk-3.0-0
 libwebkitgtk-1.0-0 is not installed by default on some distros => Luna and
earlier do not have an active browser in Eclipse!
 libwebkit2gtk-3.0-25 vs. libwebkit2gtk-4.0-37
 XULRunner does not have a GTK+ 3 port yet…
3/12/2015EclipseCon NA 2015 14
 Wayland is intended as a simpler replacement for X, easier to develop and
maintain.
 Origins in initial effort towards X12.
 Hardware and applications are constantly evolving, X11 extensions are unable to
fill in the gaps anymore.
 Design and build a new display server from scratch focusing on modern platforms.
3/12/2015EclipseCon NA 2015 15
 Wayland is a display protocol for a compositor to talk to its clients as well as a C
library implementation of that protocol.
 Weston reference implementation is the only Wayland compositor as of now.
 Eliminates needless complexity and improves performance compared to X11.
 Smaller footprint.
 Designed to work well with non-PC interfaces (embedded devices, tablets and phones).
 Shipped on a number of embedded products, phones, and tablets.
 For the desktop, GNOME and KDE ports to Wayland (and of course the protocol
itself) are currently WIP.
3/12/2015EclipseCon NA 2015 16
3/12/2015EclipseCon NA 2015 17
3/12/2015EclipseCon NA 2015 18
3/12/2015EclipseCon NA 2015 19
• Rudimentary support available at
this stage
• Google Summer of Code 2014
project by Joshua Barkovic
3/12/2015EclipseCon NA 2015 20
 GDK Broadway backend provides support for displaying GTK+ applications in a
web browser, using HTML5 and web sockets.
 GDK_BACKEND = broadway
 http://127.0.0.1:8080
 Works only with GTK3
 Use multiple GTK+ applications in the same web browser window, by using the
Broadway server, broadwayd, that ships with GTK+.
 broadwayd :5
 BROADWAY_DISPLAY - Specifies the Broadway display number.
 BROADWAY_DISPLAY=:5 gedit
3/12/2015EclipseCon NA 2015 21
3/12/2015EclipseCon NA 2015 22
 Can SWT itself use web (HTML5) based elements to build the UI of the application
instead of the OS's native widgets?
 Eclipse running inside a web browser?
 Allows CSS customization of UI.
 Eclipse integration with Orion and Flux in a browser.
3/12/2015EclipseCon NA 2015 23
 Animations
 Effects
 Transformations
 Event bubbling
 No more GDK windows
 Multimedia
3/12/2015EclipseCon NA 2015 24
 Scene graph
 Improved CSS support
 Better cross-platform story
 Better support for application
development
 Touch and gesture support
 Focus on HIG
3/12/2015EclipseCon NA 2015 25
“GTK+ 4 shall be as
rock-stable (and
hence "boring") as
GTK+ 2”
3/12/2015EclipseCon NA 2015 26
3/12/2015EclipseCon NA 2015 27
3/12/2015EclipseCon NA 2015 28
+1 0 -1
Sign in:
www.eclipsecon.org
Evaluate the sessions
3/12/2015EclipseCon NA 2015
29

Contenu connexe

Tendances

Qt for beginners part 5 ask the experts
Qt for beginners part 5   ask the expertsQt for beginners part 5   ask the experts
Qt for beginners part 5 ask the expertsICS
 
Convert Your Legacy OpenGL Code to Modern OpenGL with Qt
Convert Your Legacy OpenGL Code to Modern OpenGL with QtConvert Your Legacy OpenGL Code to Modern OpenGL with Qt
Convert Your Legacy OpenGL Code to Modern OpenGL with QtICS
 
CNCF: Cross-cloud CI Dashboard v1.0.0 Release 01-26-2018
CNCF: Cross-cloud CI Dashboard v1.0.0 Release 01-26-2018CNCF: Cross-cloud CI Dashboard v1.0.0 Release 01-26-2018
CNCF: Cross-cloud CI Dashboard v1.0.0 Release 01-26-2018Lucina Stricko, CSPO
 
Community based software development: The GRASS GIS project
Community based software development: The GRASS GIS projectCommunity based software development: The GRASS GIS project
Community based software development: The GRASS GIS projectMarkus Neteler
 
Qt for beginners part 1 overview and key concepts
Qt for beginners part 1   overview and key conceptsQt for beginners part 1   overview and key concepts
Qt for beginners part 1 overview and key conceptsICS
 
Building Cross-Platform Apps using Qt and Qyoto
Building Cross-Platform Apps using Qt and QyotoBuilding Cross-Platform Apps using Qt and Qyoto
Building Cross-Platform Apps using Qt and QyotoJeff Alstadt
 
Chromium Ozone
Chromium OzoneChromium Ozone
Chromium OzoneIgalia
 
State of the Art OpenGL and Qt
State of the Art OpenGL and QtState of the Art OpenGL and Qt
State of the Art OpenGL and QtICS
 
Putting the Fun into Functioning CI/CD with JHipster
Putting the Fun into Functioning CI/CD with JHipsterPutting the Fun into Functioning CI/CD with JHipster
Putting the Fun into Functioning CI/CD with JHipsterGerard Gigliotti
 
Migrating from Photon to Qt
Migrating from Photon to QtMigrating from Photon to Qt
Migrating from Photon to QtJanel Heilbrunn
 
WKP 2.4 Delivers GitOps Anywhere
WKP 2.4 Delivers GitOps AnywhereWKP 2.4 Delivers GitOps Anywhere
WKP 2.4 Delivers GitOps AnywhereWeaveworks
 
WebKit, HTML5 media and GStreamer on multiple platforms
WebKit, HTML5 media and GStreamer on multiple platforms WebKit, HTML5 media and GStreamer on multiple platforms
WebKit, HTML5 media and GStreamer on multiple platforms philn2
 
A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...
A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...
A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...Igalia
 
Driving and virtualizing control systems: the Open Source approach used in Wh...
Driving and virtualizing control systems: the Open Source approach used in Wh...Driving and virtualizing control systems: the Open Source approach used in Wh...
Driving and virtualizing control systems: the Open Source approach used in Wh...Igalia
 
Building a Browser for Automotive: Alternatives, Challenges and Recommendations
Building a Browser for Automotive: Alternatives, Challenges and RecommendationsBuilding a Browser for Automotive: Alternatives, Challenges and Recommendations
Building a Browser for Automotive: Alternatives, Challenges and Recommendationsjuanjosanchezpenas
 
Chromium on Wayland Desktop (BlinkOn 7)
Chromium on Wayland Desktop (BlinkOn 7)Chromium on Wayland Desktop (BlinkOn 7)
Chromium on Wayland Desktop (BlinkOn 7)Igalia
 

Tendances (20)

Qt for beginners part 5 ask the experts
Qt for beginners part 5   ask the expertsQt for beginners part 5   ask the experts
Qt for beginners part 5 ask the experts
 
了解 Qt
了解 Qt了解 Qt
了解 Qt
 
Convert Your Legacy OpenGL Code to Modern OpenGL with Qt
Convert Your Legacy OpenGL Code to Modern OpenGL with QtConvert Your Legacy OpenGL Code to Modern OpenGL with Qt
Convert Your Legacy OpenGL Code to Modern OpenGL with Qt
 
CNCF: Cross-cloud CI Dashboard v1.0.0 Release 01-26-2018
CNCF: Cross-cloud CI Dashboard v1.0.0 Release 01-26-2018CNCF: Cross-cloud CI Dashboard v1.0.0 Release 01-26-2018
CNCF: Cross-cloud CI Dashboard v1.0.0 Release 01-26-2018
 
Community based software development: The GRASS GIS project
Community based software development: The GRASS GIS projectCommunity based software development: The GRASS GIS project
Community based software development: The GRASS GIS project
 
Qt for beginners part 1 overview and key concepts
Qt for beginners part 1   overview and key conceptsQt for beginners part 1   overview and key concepts
Qt for beginners part 1 overview and key concepts
 
Qt
QtQt
Qt
 
Gitops Hands On
Gitops Hands OnGitops Hands On
Gitops Hands On
 
Building Cross-Platform Apps using Qt and Qyoto
Building Cross-Platform Apps using Qt and QyotoBuilding Cross-Platform Apps using Qt and Qyoto
Building Cross-Platform Apps using Qt and Qyoto
 
Chromium Ozone
Chromium OzoneChromium Ozone
Chromium Ozone
 
State of the Art OpenGL and Qt
State of the Art OpenGL and QtState of the Art OpenGL and Qt
State of the Art OpenGL and Qt
 
Putting the Fun into Functioning CI/CD with JHipster
Putting the Fun into Functioning CI/CD with JHipsterPutting the Fun into Functioning CI/CD with JHipster
Putting the Fun into Functioning CI/CD with JHipster
 
Migrating from Photon to Qt
Migrating from Photon to QtMigrating from Photon to Qt
Migrating from Photon to Qt
 
WKP 2.4 Delivers GitOps Anywhere
WKP 2.4 Delivers GitOps AnywhereWKP 2.4 Delivers GitOps Anywhere
WKP 2.4 Delivers GitOps Anywhere
 
WebKit, HTML5 media and GStreamer on multiple platforms
WebKit, HTML5 media and GStreamer on multiple platforms WebKit, HTML5 media and GStreamer on multiple platforms
WebKit, HTML5 media and GStreamer on multiple platforms
 
A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...
A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...
A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...
 
Driving and virtualizing control systems: the Open Source approach used in Wh...
Driving and virtualizing control systems: the Open Source approach used in Wh...Driving and virtualizing control systems: the Open Source approach used in Wh...
Driving and virtualizing control systems: the Open Source approach used in Wh...
 
Building a Browser for Automotive: Alternatives, Challenges and Recommendations
Building a Browser for Automotive: Alternatives, Challenges and RecommendationsBuilding a Browser for Automotive: Alternatives, Challenges and Recommendations
Building a Browser for Automotive: Alternatives, Challenges and Recommendations
 
DockerCon 2016 Recap
DockerCon 2016 RecapDockerCon 2016 Recap
DockerCon 2016 Recap
 
Chromium on Wayland Desktop (BlinkOn 7)
Chromium on Wayland Desktop (BlinkOn 7)Chromium on Wayland Desktop (BlinkOn 7)
Chromium on Wayland Desktop (BlinkOn 7)
 

Similaire à How to keep Eclipse on the bleeding edge in the Linux world

Gtk development-using-glade-3
Gtk development-using-glade-3Gtk development-using-glade-3
Gtk development-using-glade-3caezsar
 
Developing and Benchmarking Qt applications on Hawkboard with Xgxperf
Developing and Benchmarking Qt applications on Hawkboard with XgxperfDeveloping and Benchmarking Qt applications on Hawkboard with Xgxperf
Developing and Benchmarking Qt applications on Hawkboard with XgxperfPrabindh Sundareson
 
Flux is incubating + the road ahead
Flux is incubating + the road aheadFlux is incubating + the road ahead
Flux is incubating + the road aheadLibbySchulze
 
Using Web Software Architecture in Traditional Desktop App Development
Using Web Software Architecture in Traditional Desktop App DevelopmentUsing Web Software Architecture in Traditional Desktop App Development
Using Web Software Architecture in Traditional Desktop App DevelopmentBen Lau
 
GTK+ 2.0 App - Desktop App Chooser
GTK+ 2.0 App - Desktop App ChooserGTK+ 2.0 App - Desktop App Chooser
GTK+ 2.0 App - Desktop App ChooserWilliam Lee
 
Graphics Programming in C under GNU Linux (Ubuntu distribution)
Graphics Programming in C under GNU Linux (Ubuntu distribution)Graphics Programming in C under GNU Linux (Ubuntu distribution)
Graphics Programming in C under GNU Linux (Ubuntu distribution)Tushar B Kute
 
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolution
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 RevolutionWebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolution
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolutionjuanjosanchezpenas
 
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolutio...
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolutio...WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolutio...
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolutio...Igalia
 
Quick Review of Desktop and Native Apps using Javascript
Quick Review of Desktop and Native Apps using JavascriptQuick Review of Desktop and Native Apps using Javascript
Quick Review of Desktop and Native Apps using JavascriptRobert Ellen
 
GitBucket: Open source self-hosting Git server built by Scala
GitBucket: Open source self-hosting Git server built by ScalaGitBucket: Open source self-hosting Git server built by Scala
GitBucket: Open source self-hosting Git server built by Scalatakezoe
 
Igalia and WebKit: Status update and plans
Igalia and WebKit: Status update and plansIgalia and WebKit: Status update and plans
Igalia and WebKit: Status update and plansIgalia
 
Add the power of the Web to your embedded devices with WPE WebKit
Add the power of the Web to your embedded devices with WPE WebKitAdd the power of the Web to your embedded devices with WPE WebKit
Add the power of the Web to your embedded devices with WPE WebKitIgalia
 
Reconcile Terraform Resources the GitOps Way with Priyanka Ravi
Reconcile Terraform Resources the GitOps Way with Priyanka RaviReconcile Terraform Resources the GitOps Way with Priyanka Ravi
Reconcile Terraform Resources the GitOps Way with Priyanka RaviWeaveworks
 
Gitlab ci e kubernetes, build test and deploy your projects like a pro
Gitlab ci e kubernetes, build test and deploy your projects like a proGitlab ci e kubernetes, build test and deploy your projects like a pro
Gitlab ci e kubernetes, build test and deploy your projects like a prosparkfabrik
 
DIY: Computer Vision with GWT.
DIY: Computer Vision with GWT.DIY: Computer Vision with GWT.
DIY: Computer Vision with GWT.JooinK
 
DIY- computer vision with GWT
DIY- computer vision with GWTDIY- computer vision with GWT
DIY- computer vision with GWTFrancesca Tosi
 

Similaire à How to keep Eclipse on the bleeding edge in the Linux world (20)

Gtk development-using-glade-3
Gtk development-using-glade-3Gtk development-using-glade-3
Gtk development-using-glade-3
 
Developing and Benchmarking Qt applications on Hawkboard with Xgxperf
Developing and Benchmarking Qt applications on Hawkboard with XgxperfDeveloping and Benchmarking Qt applications on Hawkboard with Xgxperf
Developing and Benchmarking Qt applications on Hawkboard with Xgxperf
 
Flux is incubating + the road ahead
Flux is incubating + the road aheadFlux is incubating + the road ahead
Flux is incubating + the road ahead
 
Using Web Software Architecture in Traditional Desktop App Development
Using Web Software Architecture in Traditional Desktop App DevelopmentUsing Web Software Architecture in Traditional Desktop App Development
Using Web Software Architecture in Traditional Desktop App Development
 
GTK+ 2.0 App - Desktop App Chooser
GTK+ 2.0 App - Desktop App ChooserGTK+ 2.0 App - Desktop App Chooser
GTK+ 2.0 App - Desktop App Chooser
 
Using Qt under LGPLv3
Using Qt under LGPLv3Using Qt under LGPLv3
Using Qt under LGPLv3
 
Treinamento Qt básico - aula I
Treinamento Qt básico - aula ITreinamento Qt básico - aula I
Treinamento Qt básico - aula I
 
Graphics Programming in C under GNU Linux (Ubuntu distribution)
Graphics Programming in C under GNU Linux (Ubuntu distribution)Graphics Programming in C under GNU Linux (Ubuntu distribution)
Graphics Programming in C under GNU Linux (Ubuntu distribution)
 
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolution
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 RevolutionWebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolution
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolution
 
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolutio...
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolutio...WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolutio...
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolutio...
 
Quick Review of Desktop and Native Apps using Javascript
Quick Review of Desktop and Native Apps using JavascriptQuick Review of Desktop and Native Apps using Javascript
Quick Review of Desktop and Native Apps using Javascript
 
GitBucket: Open source self-hosting Git server built by Scala
GitBucket: Open source self-hosting Git server built by ScalaGitBucket: Open source self-hosting Git server built by Scala
GitBucket: Open source self-hosting Git server built by Scala
 
Igalia and WebKit: Status update and plans
Igalia and WebKit: Status update and plansIgalia and WebKit: Status update and plans
Igalia and WebKit: Status update and plans
 
Add the power of the Web to your embedded devices with WPE WebKit
Add the power of the Web to your embedded devices with WPE WebKitAdd the power of the Web to your embedded devices with WPE WebKit
Add the power of the Web to your embedded devices with WPE WebKit
 
Cross Platform Qt
Cross Platform QtCross Platform Qt
Cross Platform Qt
 
Reconcile Terraform Resources the GitOps Way with Priyanka Ravi
Reconcile Terraform Resources the GitOps Way with Priyanka RaviReconcile Terraform Resources the GitOps Way with Priyanka Ravi
Reconcile Terraform Resources the GitOps Way with Priyanka Ravi
 
Gitlab ci e kubernetes, build test and deploy your projects like a pro
Gitlab ci e kubernetes, build test and deploy your projects like a proGitlab ci e kubernetes, build test and deploy your projects like a pro
Gitlab ci e kubernetes, build test and deploy your projects like a pro
 
Qt for S60
Qt for S60Qt for S60
Qt for S60
 
DIY: Computer Vision with GWT.
DIY: Computer Vision with GWT.DIY: Computer Vision with GWT.
DIY: Computer Vision with GWT.
 
DIY- computer vision with GWT
DIY- computer vision with GWTDIY- computer vision with GWT
DIY- computer vision with GWT
 

Dernier

DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 

Dernier (20)

Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 

How to keep Eclipse on the bleeding edge in the Linux world

  • 1. Arun Thondapu Eclipse SWT Project Co-Lead Equinox (Launcher) Committer IBM arunkumar.thondapu@in.ibm.com 3/12/2015EclipseCon NA 2015 1
  • 2.  Motivation  Evolution of GTK+  Porting SWT to GTK+ 3  Challenges  Solutions  Collaboration  WIP  What’s Next ??  Wayland support  Broadway, HTML 5  GTK+ 4 3/12/2015EclipseCon NA 2015 2
  • 3.  Linux vs Others  Significant changes in underlying windowing system (GTK+)  Separate API and ABI incompatible streams  How to be on the “bleeding edge”  Need parallel streams of development and maintenance  Open and diverse nature of Linux distributions = support for a large range of GTK+ versions 3/12/2015EclipseCon NA 2015 3
  • 4. 3/12/2015EclipseCon NA 2015 4 "GTK+ software architecture" by Shmuel Csaba Otto Traian. Licensed under CC BY-SA 4.0 via Wikimedia Commons - http://commons.wikimedia.org/wiki/File:GTK%2B_software_architecture.svg#mediaviewer/File:GTK%2B_software_architecture.svg
  • 5.  Originally designed and used in the GNU Image Manipulation Program (GIMP) as a replacement of the Motif toolkit.  GTK+ 2.0  improved text rendering using Pango  a new theme engine  improved accessibility using ATK  complete transition to Unicode using UTF-8 strings  more flexible API and new widgets  usage of Cairo graphics library for rendering vector graphics (since version 2.8) 3/12/2015EclipseCon NA 2015 5
  • 6.  GTK+ 3  cairo drawing throughout, GDK no longer wraps the antiquated X11 drawing API  modern input device handling via XInput2  new theming API with CSS syntax for theme configuration and animations  multiple backend support for GDK (including experimental support for Wayland and HTML5)  integration of D-Bus support in GIO  use GIO for launching applications  new widgets, such as a switch and an application chooser  improved support for touch and gestures 3/12/2015EclipseCon NA 2015 6
  • 7.  Primary goal was a seamless user experience on a wide variety of Linux versions irrespective of underlying versions of GTK+ shipped by them.  to be as backward compatible as possible  in contrast to most native GTK+ apps including GNOME 3/12/2015EclipseCon NA 2015 7 libgtk-x11-2.0.so.0 libswt-pi-gtk-****.so libswt-pi3-gtk-****.so libgtk-3.so.0
  • 8.  Do not include individual headers  Do not use deprecated symbols  Use accessor functions instead of direct access  Replace GDK_<keyname> with GDK_KEY_<keyname>  Use GIO for launching applications instead of the gdk_spawn family of functions  Use cairo for drawing  GdkGC and GdkImage are removed  gdk_draw family of functions are gone  GtkWidget “expose-event” signal has been replaced by a new “draw” signal 3/12/2015EclipseCon NA 2015 8
  • 9.  The modern GTK+ drawing model 3/12/2015EclipseCon NA 2015 9
  • 10.  Many great and diverse contributions from community (led by Red Hat team) towards the GTK+ 3 port  Much more stable and usable now  Please continue to test, report bugs and contribute patches! 3/12/2015EclipseCon NA 2015 10
  • 11.  Working on resolving most major outstanding problems before Mars  Bugzilla summary tags – GTK3, GTK 3.10  Lots more stuff being deprecated and replaced by GTK+  GdkColor is being replaced by GdkRGBA  Many enhancements as well but we may not be able to adopt right now, stability is the major concern  Lack of backwards-compatibility in major updates continues to be an issue  Can we aggressively drop support for older versions of GTK+ 2.x? 3/12/2015EclipseCon NA 2015 11
  • 12.  Mars drops support for GTK+ < 2.18  How to find out which version of GTK+ is being used by my Eclipse or SWT application?  Use the Java property org.eclipse.swt.internal.gtk.version  Prevent linking against GTK+ 2.x and GTK+ 3.x in the same process  Leads to unexpected hangs or hard-to-diagnose crashes 3/12/2015EclipseCon NA 2015 12
  • 13.  Eclipse Mars  GTK+ 3 always (assuming it is installed and available)  Eclipse Luna, SR1 & SR2  GTK+ < 3.10 => GTK3  GTK+ >= 3.10 => GTK2 3/12/2015EclipseCon NA 2015 13
  • 14.  Webkit is embedded by default on Linux but XULRunner is also supported  libwebkitgtk-1.0-0 vs. libwebkitgtk-3.0-0  libwebkitgtk-1.0-0 is not installed by default on some distros => Luna and earlier do not have an active browser in Eclipse!  libwebkit2gtk-3.0-25 vs. libwebkit2gtk-4.0-37  XULRunner does not have a GTK+ 3 port yet… 3/12/2015EclipseCon NA 2015 14
  • 15.  Wayland is intended as a simpler replacement for X, easier to develop and maintain.  Origins in initial effort towards X12.  Hardware and applications are constantly evolving, X11 extensions are unable to fill in the gaps anymore.  Design and build a new display server from scratch focusing on modern platforms. 3/12/2015EclipseCon NA 2015 15
  • 16.  Wayland is a display protocol for a compositor to talk to its clients as well as a C library implementation of that protocol.  Weston reference implementation is the only Wayland compositor as of now.  Eliminates needless complexity and improves performance compared to X11.  Smaller footprint.  Designed to work well with non-PC interfaces (embedded devices, tablets and phones).  Shipped on a number of embedded products, phones, and tablets.  For the desktop, GNOME and KDE ports to Wayland (and of course the protocol itself) are currently WIP. 3/12/2015EclipseCon NA 2015 16
  • 20. • Rudimentary support available at this stage • Google Summer of Code 2014 project by Joshua Barkovic 3/12/2015EclipseCon NA 2015 20
  • 21.  GDK Broadway backend provides support for displaying GTK+ applications in a web browser, using HTML5 and web sockets.  GDK_BACKEND = broadway  http://127.0.0.1:8080  Works only with GTK3  Use multiple GTK+ applications in the same web browser window, by using the Broadway server, broadwayd, that ships with GTK+.  broadwayd :5  BROADWAY_DISPLAY - Specifies the Broadway display number.  BROADWAY_DISPLAY=:5 gedit 3/12/2015EclipseCon NA 2015 21
  • 23.  Can SWT itself use web (HTML5) based elements to build the UI of the application instead of the OS's native widgets?  Eclipse running inside a web browser?  Allows CSS customization of UI.  Eclipse integration with Orion and Flux in a browser. 3/12/2015EclipseCon NA 2015 23
  • 24.  Animations  Effects  Transformations  Event bubbling  No more GDK windows  Multimedia 3/12/2015EclipseCon NA 2015 24  Scene graph  Improved CSS support  Better cross-platform story  Better support for application development  Touch and gesture support  Focus on HIG
  • 26. “GTK+ 4 shall be as rock-stable (and hence "boring") as GTK+ 2” 3/12/2015EclipseCon NA 2015 26
  • 29. +1 0 -1 Sign in: www.eclipsecon.org Evaluate the sessions 3/12/2015EclipseCon NA 2015 29