SlideShare a Scribd company logo
D e v e l o p e r S w i t c h D r e a m s
C r a f t i n g t h e G N O M E D X
Christian Hergert (christian@hergert.me)
GNOME is so much more than a desktop
What is GNOME?
●
Compositor (Mutter, Shell)
●
Project with strong design ethic (UX, Hig)
●
File Manager (Nautilus, Sushi)
●
Hardware Abstractions
(Bluetooth, Network, Disk, Media, Power, Input)
●
Graphics Toolkits (Gtk+, Clutter, St)
●
Language Enablement
(GObject, Python, JavaScript, Vala, Perl, Mono)
What is GNOME? (Continued)
●
Content Storage and Exctraction (Tracker, Gom)
●
Personal Data Management
(E-D-S, Calendar, Notes, Tasks, Todo)
●
Application Suite (Evolution, Gnumeric, GIMP, Gedit)
●
Web Browser (Epiphany, WebKitGtk)
●
IPC (D-Bus/kdbus, GVariant, Gsettings)
●
Media Framework (GStreamer, pulseaudio, rygel)
●
Translations (damned lies, gtranslator)
●
Artwork (backgrounds, iconography)
What is GNOME? (Continued)
●
Security (PolicyKit, lock screen, libsecret, seahorse, sandboxing)
●
Communications (Telepathy, farstream, empathy)
●
System Setup/Config (Initial Setup, Control Center)
●
File Formats
(libxml2, documents, json, markdown, ASN.1, desktop)
●
Standards
(wmspec, trash, mime, icons, thumbnail, sounds, recent files)
●
Documentation (yelp/mallard, gtk-doc, guides/turorials)
What is GNOME? (Continued)
●
Developer Tools
(glade, gitg, glib, devhelp, gedit, anjuta, Nemiver, Builder,
Boxes, ghex, sysprof, terminal, gtk-doc, yelp, d-feet, looking
glass, gparted, meld, memprof, vala)
GNOME is a massive achievement
But there is an elephant in the GNU/room
It's really hard to contribute to Free Software
So I did some research on why
Learning how to get started is the largest hurdle in
contributing to Free Software
We have hundreds of contributors that would be here
right now if we could bridge that gap
Clearly this is unacceptable
We built a fantastic platform
(Now let's help people build things for it)
DX = UX for Developers
DX = UX for Developers
The term “Developer” is very broad
Lots of people, lots of skill-sets, varying expertise
You shouldn't have to be an expert on every part of our
platform to begin contributing
We need to provide tools and education to go from
beginner, to intermediate, to expert
If more people try our platform,
we'll have more contributors
(It's a numbers game)
So let's make it as easy as possible to get started
Suggestion
Add “Developer Mode” switch to Control Center
Developer Mode Switch
●
GNOME SDK runtime made available
●
Developer Suite
(Builder, glade, Nemiver, gitg, code-assistance,
toolchain, gedit, devhelp, sysprof)
●
“Getting Started for Developers” guides
Suggestion
“GNOME Ambassadors” who can help point new
developers in the right direction
(For now you can just join #gnome-love)
Developers need documentation
Developers need Documentation
●
It needs to be idiomatic
●
It needs to be accurate
●
It needs to be at your fingertips when coding
Perfect documentation is improbable
(So allow developers to edit it when it's wrong)
GNOME's design patterns are fantastic
(Now let's make them easy to create)
GNOME's platform libraries are great
(Now let's make them easy to consume)
Consuming platform libraries
●
Simplify GObject, GtkWidget, GomResource creation
●
Create and consume D-Bus services with ease
●
GSettings schema designer
●
Demystify GStreamer pipeline creation
●
High quality auto-completion
(Use gir/typelib with dynamic languages)
Developers are always searching for things
(So let's make that fast and comprehensive)
Sometimes the documentation simply doesn't exist
(So provide cross-project search to fi nd code examples)
Releasing applications on distribution life-cycles is no
longer a viable strategy
Distribution Life-cycles
●
Typically 6-months to 2-years
●
Developers often rely on them for new dependencies
(And no time to build/test against unstable GNOME)
●
And now your application broke with the new release
(Everyone blames each other, ABIs insufficient)
●
Application fixed upstream, doesn't get shipped until next release
●
Repeat process
Do we ever ship a stable combination?
(Kernel, Drivers, Desktop, Applications)
Even worse, which distribution would you choose to
synchronize your releases with?
(Synchronizing with GNOME might be best option)
But what if you want to ship early, often?
Suggestion: xdg-app
xdg-app
●
Provide reliable ABI/runtime across upgrades
●
Reduce “works for me” bugs via predictable runtime
(Development closely resembles production)
●
Test application against multiple runtimes
(GNOME 3.18, GNOME 3.20, Nightly)
●
ISVs can finally ship cross-distribution software
●
Parallel installs of “GIMP Beta” finally possible!
Builder should provide an app simulator to make testing
multiple GNOME releases painless
(More GNOME Continuous testers means more bugs fi xed)
Psst! Stop testing your application in tree!
(If you're interested in testing what your users run)
Builder and xdg-app will help you do this automatically
(Eventually)
Build systems are boring
(Sorta like me)
Build Systems
●
Make autotools fast (possible!)
●
Make it more declarative (Go Philip Withnall Go!)
●
Automate what we can
●
Document what we can't automate
●
Make alternate build systems possible (cmake, meson)
Developer Outreach
GNOME has the potential to be the
“Desktop for Developers”
Developer Outreach
●
Web Development
(Django/Rails/Node, HTML/JS/CSS)
●
Emerging Languages (golang, rust)
●
Internet of Things and Embedded
●
Mobile Development
●
DevOps/Docker/Atomic
It's my opinion that improving our DX is one of the best
things we can do for the eff ectiveness and longevity of
GNOME and Free Software
Questions and Comments?
Please join us at the Builder BoF!
All day Tuesday and Wednesday
Thanks for all your support!
https://www.indiegogo.com/projects/builder-an-ide-of-our-gnome

More Related Content

What's hot (15)

ODP
Javascript in Linux Desktop
Yuren Ju
 
PDF
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet
 
PDF
GNOME 3.4 accessible: Status, news, future (FOSDEM 2012)
Igalia
 
PDF
Docker for developers
sparkfabrik
 
PPTX
High End Modeling & Imaging with Intel Iris Pro Graphics
Intel® Software
 
PDF
Opensource Software usability
Giacomo Antonino Fazio
 
KEY
Pairjour
Taylor Luk
 
PDF
Atomic Developer Bundle
Dharmit Shah
 
PDF
UI Debugging - Cocoaheads Dresden (English)
Pit Garbe
 
PDF
Hg version control bioinformaticians
Giovanni Marco Dall'Olio
 
PDF
Writing native Linux desktop apps with JavaScript
Igalia
 
PDF
Scale Big With Docker — Moboom 2014
Jérôme Petazzoni
 
PDF
Building games-with-libgdx
Jumping Bean
 
PDF
Kubernetes
Dharmit Shah
 
PDF
Lib gdx 2015_corkdevio
Luiz Fernando Teston
 
Javascript in Linux Desktop
Yuren Ju
 
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet
 
GNOME 3.4 accessible: Status, news, future (FOSDEM 2012)
Igalia
 
Docker for developers
sparkfabrik
 
High End Modeling & Imaging with Intel Iris Pro Graphics
Intel® Software
 
Opensource Software usability
Giacomo Antonino Fazio
 
Pairjour
Taylor Luk
 
Atomic Developer Bundle
Dharmit Shah
 
UI Debugging - Cocoaheads Dresden (English)
Pit Garbe
 
Hg version control bioinformaticians
Giovanni Marco Dall'Olio
 
Writing native Linux desktop apps with JavaScript
Igalia
 
Scale Big With Docker — Moboom 2014
Jérôme Petazzoni
 
Building games-with-libgdx
Jumping Bean
 
Kubernetes
Dharmit Shah
 
Lib gdx 2015_corkdevio
Luiz Fernando Teston
 

Viewers also liked (17)

PPTX
Eliana romero
elianaromeropalo
 
DOC
Susan Luley Resume
Susan Luley
 
PDF
DTM 2015 Social Media and Diabullying
Kevin McMahon
 
PDF
Skab grundlaget for individuel kommunikation
Fluid A/S
 
PDF
Hip hop kids, bicicampus i escoles esportives pasqua
Premsa Sant Cugat
 
PPSX
Cammilla rysgaards favorit ordsprog om succes
cammillarysgaard
 
PPTX
Live It Learn It Civil Rights Program Overview
liveitlearnit
 
PPT
2014 08 21_компетенц1я_компетентн1сть_основн1_тези
Igor Naida
 
PDF
Draft Litter Management Plan
Naoise
 
PDF
02 laboratory exercise 1 - RETRIEVING DATA FROM SEVERAL TABLES
Anne Lee
 
DOCX
Anita nwachuku policy paper outline
Charlene Quinn
 
PDF
05 lcd slide handout 1 - CPU SCHEDULING
Anne Lee
 
PDF
The Business Case for Workforce Management Solutions - White Paper
Infor HCM
 
ODP
lucia redes sociales 1
luciasanchez760
 
PPT
Php forms
Anne Lee
 
PPTX
Roberto Dossena - President of Ramognina
Roberto Dossena
 
PDF
Benefits of Enplug for Customers
Colin Bovet
 
Eliana romero
elianaromeropalo
 
Susan Luley Resume
Susan Luley
 
DTM 2015 Social Media and Diabullying
Kevin McMahon
 
Skab grundlaget for individuel kommunikation
Fluid A/S
 
Hip hop kids, bicicampus i escoles esportives pasqua
Premsa Sant Cugat
 
Cammilla rysgaards favorit ordsprog om succes
cammillarysgaard
 
Live It Learn It Civil Rights Program Overview
liveitlearnit
 
2014 08 21_компетенц1я_компетентн1сть_основн1_тези
Igor Naida
 
Draft Litter Management Plan
Naoise
 
02 laboratory exercise 1 - RETRIEVING DATA FROM SEVERAL TABLES
Anne Lee
 
Anita nwachuku policy paper outline
Charlene Quinn
 
05 lcd slide handout 1 - CPU SCHEDULING
Anne Lee
 
The Business Case for Workforce Management Solutions - White Paper
Infor HCM
 
lucia redes sociales 1
luciasanchez760
 
Php forms
Anne Lee
 
Roberto Dossena - President of Ramognina
Roberto Dossena
 
Benefits of Enplug for Customers
Colin Bovet
 
Ad

Similar to guadec-2015-developer-switch-dreams (20)

ODP
GNOME:nuts&bolts-MOSC
Punit Jain
 
ODP
Gnome Architecture
동수 장
 
PPTX
Linux and its fundamentals
Agreeta Sharma
 
PDF
DevOps: Arquitectura, Estrategia y Modelo
SUSE España
 
PDF
Javascript, the GNOME way (JSConf EU 2011)
Igalia
 
PDF
itft-Gnome and kde
Swati Aggarwal
 
PDF
SUSE: Alien Life Forms
Kangaroot
 
ODP
Beyond Dead Reckoning
jonmccann
 
PDF
Beyond Dead Reckoning
jonmccann
 
PDF
GTK+ 2.0 App - Desktop App Chooser
William Lee
 
PDF
A bright future for GNOME
juanjosanchezpenas
 
PDF
Enlightenment: A Cross Platform Window Manager & Toolkit
Samsung Open Source Group
 
PDF
An introduction to Gnome An introdu.pptx
JAYAVARSHINIJR
 
ODP
Amazing KDE (K Desktop Environment)
anandvaidya
 
PDF
2014 - Lumina DE Overview
Ken Moore
 
ODP
Fedora15 lovelock-pres
Julio Villarreal Pelegrino
 
ODP
How to Contribute to GNOME as an Artist
Máirín Duffy
 
PDF
What's New in RHEL 6 for Linux on System z?
IBM India Smarter Computing
 
ODP
Foss Presentation
Ahmed Mekkawy
 
PPTX
Fedora24
kamlesh chaudhari
 
GNOME:nuts&bolts-MOSC
Punit Jain
 
Gnome Architecture
동수 장
 
Linux and its fundamentals
Agreeta Sharma
 
DevOps: Arquitectura, Estrategia y Modelo
SUSE España
 
Javascript, the GNOME way (JSConf EU 2011)
Igalia
 
itft-Gnome and kde
Swati Aggarwal
 
SUSE: Alien Life Forms
Kangaroot
 
Beyond Dead Reckoning
jonmccann
 
Beyond Dead Reckoning
jonmccann
 
GTK+ 2.0 App - Desktop App Chooser
William Lee
 
A bright future for GNOME
juanjosanchezpenas
 
Enlightenment: A Cross Platform Window Manager & Toolkit
Samsung Open Source Group
 
An introduction to Gnome An introdu.pptx
JAYAVARSHINIJR
 
Amazing KDE (K Desktop Environment)
anandvaidya
 
2014 - Lumina DE Overview
Ken Moore
 
Fedora15 lovelock-pres
Julio Villarreal Pelegrino
 
How to Contribute to GNOME as an Artist
Máirín Duffy
 
What's New in RHEL 6 for Linux on System z?
IBM India Smarter Computing
 
Foss Presentation
Ahmed Mekkawy
 
Ad

guadec-2015-developer-switch-dreams

  • 1. D e v e l o p e r S w i t c h D r e a m s C r a f t i n g t h e G N O M E D X Christian Hergert ([email protected])
  • 2. GNOME is so much more than a desktop
  • 3. What is GNOME? ● Compositor (Mutter, Shell) ● Project with strong design ethic (UX, Hig) ● File Manager (Nautilus, Sushi) ● Hardware Abstractions (Bluetooth, Network, Disk, Media, Power, Input) ● Graphics Toolkits (Gtk+, Clutter, St) ● Language Enablement (GObject, Python, JavaScript, Vala, Perl, Mono)
  • 4. What is GNOME? (Continued) ● Content Storage and Exctraction (Tracker, Gom) ● Personal Data Management (E-D-S, Calendar, Notes, Tasks, Todo) ● Application Suite (Evolution, Gnumeric, GIMP, Gedit) ● Web Browser (Epiphany, WebKitGtk) ● IPC (D-Bus/kdbus, GVariant, Gsettings) ● Media Framework (GStreamer, pulseaudio, rygel) ● Translations (damned lies, gtranslator) ● Artwork (backgrounds, iconography)
  • 5. What is GNOME? (Continued) ● Security (PolicyKit, lock screen, libsecret, seahorse, sandboxing) ● Communications (Telepathy, farstream, empathy) ● System Setup/Config (Initial Setup, Control Center) ● File Formats (libxml2, documents, json, markdown, ASN.1, desktop) ● Standards (wmspec, trash, mime, icons, thumbnail, sounds, recent files) ● Documentation (yelp/mallard, gtk-doc, guides/turorials)
  • 6. What is GNOME? (Continued) ● Developer Tools (glade, gitg, glib, devhelp, gedit, anjuta, Nemiver, Builder, Boxes, ghex, sysprof, terminal, gtk-doc, yelp, d-feet, looking glass, gparted, meld, memprof, vala)
  • 7. GNOME is a massive achievement
  • 8. But there is an elephant in the GNU/room
  • 9. It's really hard to contribute to Free Software
  • 10. So I did some research on why
  • 11. Learning how to get started is the largest hurdle in contributing to Free Software
  • 12. We have hundreds of contributors that would be here right now if we could bridge that gap
  • 13. Clearly this is unacceptable
  • 14. We built a fantastic platform (Now let's help people build things for it)
  • 15. DX = UX for Developers
  • 16. DX = UX for Developers
  • 17. The term “Developer” is very broad
  • 18. Lots of people, lots of skill-sets, varying expertise
  • 19. You shouldn't have to be an expert on every part of our platform to begin contributing
  • 20. We need to provide tools and education to go from beginner, to intermediate, to expert
  • 21. If more people try our platform, we'll have more contributors (It's a numbers game)
  • 22. So let's make it as easy as possible to get started
  • 23. Suggestion Add “Developer Mode” switch to Control Center
  • 24. Developer Mode Switch ● GNOME SDK runtime made available ● Developer Suite (Builder, glade, Nemiver, gitg, code-assistance, toolchain, gedit, devhelp, sysprof) ● “Getting Started for Developers” guides
  • 25. Suggestion “GNOME Ambassadors” who can help point new developers in the right direction (For now you can just join #gnome-love)
  • 27. Developers need Documentation ● It needs to be idiomatic ● It needs to be accurate ● It needs to be at your fingertips when coding
  • 28. Perfect documentation is improbable (So allow developers to edit it when it's wrong)
  • 29. GNOME's design patterns are fantastic (Now let's make them easy to create)
  • 30. GNOME's platform libraries are great (Now let's make them easy to consume)
  • 31. Consuming platform libraries ● Simplify GObject, GtkWidget, GomResource creation ● Create and consume D-Bus services with ease ● GSettings schema designer ● Demystify GStreamer pipeline creation ● High quality auto-completion (Use gir/typelib with dynamic languages)
  • 32. Developers are always searching for things (So let's make that fast and comprehensive)
  • 33. Sometimes the documentation simply doesn't exist (So provide cross-project search to fi nd code examples)
  • 34. Releasing applications on distribution life-cycles is no longer a viable strategy
  • 35. Distribution Life-cycles ● Typically 6-months to 2-years ● Developers often rely on them for new dependencies (And no time to build/test against unstable GNOME) ● And now your application broke with the new release (Everyone blames each other, ABIs insufficient) ● Application fixed upstream, doesn't get shipped until next release ● Repeat process
  • 36. Do we ever ship a stable combination? (Kernel, Drivers, Desktop, Applications)
  • 37. Even worse, which distribution would you choose to synchronize your releases with? (Synchronizing with GNOME might be best option)
  • 38. But what if you want to ship early, often?
  • 40. xdg-app ● Provide reliable ABI/runtime across upgrades ● Reduce “works for me” bugs via predictable runtime (Development closely resembles production) ● Test application against multiple runtimes (GNOME 3.18, GNOME 3.20, Nightly) ● ISVs can finally ship cross-distribution software ● Parallel installs of “GIMP Beta” finally possible!
  • 41. Builder should provide an app simulator to make testing multiple GNOME releases painless (More GNOME Continuous testers means more bugs fi xed)
  • 42. Psst! Stop testing your application in tree! (If you're interested in testing what your users run)
  • 43. Builder and xdg-app will help you do this automatically (Eventually)
  • 44. Build systems are boring (Sorta like me)
  • 45. Build Systems ● Make autotools fast (possible!) ● Make it more declarative (Go Philip Withnall Go!) ● Automate what we can ● Document what we can't automate ● Make alternate build systems possible (cmake, meson)
  • 47. GNOME has the potential to be the “Desktop for Developers”
  • 48. Developer Outreach ● Web Development (Django/Rails/Node, HTML/JS/CSS) ● Emerging Languages (golang, rust) ● Internet of Things and Embedded ● Mobile Development ● DevOps/Docker/Atomic
  • 49. It's my opinion that improving our DX is one of the best things we can do for the eff ectiveness and longevity of GNOME and Free Software
  • 51. Please join us at the Builder BoF! All day Tuesday and Wednesday
  • 52. Thanks for all your support! https://www.indiegogo.com/projects/builder-an-ide-of-our-gnome