SlideShare ist ein Scribd-Unternehmen logo
1 von 52
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Javascript in Linux Desktop
Javascript in Linux DesktopJavascript in Linux Desktop
Javascript in Linux DesktopYuren Ju
 
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12Puppet
 
GNOME 3.4 accessible: Status, news, future (FOSDEM 2012)
GNOME 3.4 accessible: Status, news, future (FOSDEM 2012)GNOME 3.4 accessible: Status, news, future (FOSDEM 2012)
GNOME 3.4 accessible: Status, news, future (FOSDEM 2012)Igalia
 
Docker for developers
Docker for developersDocker for developers
Docker for developerssparkfabrik
 
High End Modeling & Imaging with Intel Iris Pro Graphics
High End Modeling & Imaging with Intel Iris Pro GraphicsHigh End Modeling & Imaging with Intel Iris Pro Graphics
High End Modeling & Imaging with Intel Iris Pro GraphicsIntel® Software
 
Atomic Developer Bundle
Atomic Developer BundleAtomic Developer Bundle
Atomic Developer BundleDharmit Shah
 
UI Debugging - Cocoaheads Dresden (English)
UI Debugging - Cocoaheads Dresden (English)UI Debugging - Cocoaheads Dresden (English)
UI Debugging - Cocoaheads Dresden (English)Pit Garbe
 
Writing native Linux desktop apps with JavaScript
Writing native Linux desktop apps with JavaScriptWriting native Linux desktop apps with JavaScript
Writing native Linux desktop apps with JavaScriptIgalia
 
Scale Big With Docker — Moboom 2014
Scale Big With Docker — Moboom 2014Scale Big With Docker — Moboom 2014
Scale Big With Docker — Moboom 2014Jérôme Petazzoni
 
Building games-with-libgdx
Building games-with-libgdxBuilding games-with-libgdx
Building games-with-libgdxJumping Bean
 

Was ist angesagt? (15)

Javascript in Linux Desktop
Javascript in Linux DesktopJavascript in Linux Desktop
Javascript in Linux Desktop
 
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
 
GNOME 3.4 accessible: Status, news, future (FOSDEM 2012)
GNOME 3.4 accessible: Status, news, future (FOSDEM 2012)GNOME 3.4 accessible: Status, news, future (FOSDEM 2012)
GNOME 3.4 accessible: Status, news, future (FOSDEM 2012)
 
Docker for developers
Docker for developersDocker for developers
Docker for developers
 
High End Modeling & Imaging with Intel Iris Pro Graphics
High End Modeling & Imaging with Intel Iris Pro GraphicsHigh End Modeling & Imaging with Intel Iris Pro Graphics
High End Modeling & Imaging with Intel Iris Pro Graphics
 
Opensource Software usability
Opensource Software usabilityOpensource Software usability
Opensource Software usability
 
Pairjour
PairjourPairjour
Pairjour
 
Atomic Developer Bundle
Atomic Developer BundleAtomic Developer Bundle
Atomic Developer Bundle
 
UI Debugging - Cocoaheads Dresden (English)
UI Debugging - Cocoaheads Dresden (English)UI Debugging - Cocoaheads Dresden (English)
UI Debugging - Cocoaheads Dresden (English)
 
Hg version control bioinformaticians
Hg version control bioinformaticiansHg version control bioinformaticians
Hg version control bioinformaticians
 
Writing native Linux desktop apps with JavaScript
Writing native Linux desktop apps with JavaScriptWriting native Linux desktop apps with JavaScript
Writing native Linux desktop apps with JavaScript
 
Scale Big With Docker — Moboom 2014
Scale Big With Docker — Moboom 2014Scale Big With Docker — Moboom 2014
Scale Big With Docker — Moboom 2014
 
Building games-with-libgdx
Building games-with-libgdxBuilding games-with-libgdx
Building games-with-libgdx
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Lib gdx 2015_corkdevio
Lib gdx 2015_corkdevioLib gdx 2015_corkdevio
Lib gdx 2015_corkdevio
 

Andere mochten auch

Susan Luley Resume
Susan Luley ResumeSusan Luley Resume
Susan Luley ResumeSusan Luley
 
DTM 2015 Social Media and Diabullying
DTM 2015 Social Media and DiabullyingDTM 2015 Social Media and Diabullying
DTM 2015 Social Media and DiabullyingKevin McMahon
 
Skab grundlaget for individuel kommunikation
Skab grundlaget for individuel kommunikationSkab grundlaget for individuel kommunikation
Skab grundlaget for individuel kommunikationFluid A/S
 
Hip hop kids, bicicampus i escoles esportives pasqua
Hip hop kids, bicicampus i escoles esportives pasquaHip hop kids, bicicampus i escoles esportives pasqua
Hip hop kids, bicicampus i escoles esportives pasquaPremsa Sant Cugat
 
Cammilla rysgaards favorit ordsprog om succes
Cammilla rysgaards favorit ordsprog om succesCammilla rysgaards favorit ordsprog om succes
Cammilla rysgaards favorit ordsprog om succescammillarysgaard
 
Live It Learn It Civil Rights Program Overview
Live It Learn It Civil Rights Program OverviewLive It Learn It Civil Rights Program Overview
Live It Learn It Civil Rights Program Overviewliveitlearnit
 
2014 08 21_компетенц1я_компетентн1сть_основн1_тези
2014 08 21_компетенц1я_компетентн1сть_основн1_тези2014 08 21_компетенц1я_компетентн1сть_основн1_тези
2014 08 21_компетенц1я_компетентн1сть_основн1_тезиIgor Naida
 
Draft Litter Management Plan
Draft Litter Management PlanDraft Litter Management Plan
Draft Litter Management PlanNaoise
 
02 laboratory exercise 1 - RETRIEVING DATA FROM SEVERAL TABLES
02 laboratory exercise 1 - RETRIEVING DATA FROM SEVERAL TABLES02 laboratory exercise 1 - RETRIEVING DATA FROM SEVERAL TABLES
02 laboratory exercise 1 - RETRIEVING DATA FROM SEVERAL TABLESAnne Lee
 
Anita nwachuku policy paper outline
Anita nwachuku policy paper outlineAnita nwachuku policy paper outline
Anita nwachuku policy paper outlineCharlene Quinn
 
05 lcd slide handout 1 - CPU SCHEDULING
05 lcd slide handout 1 - CPU SCHEDULING05 lcd slide handout 1 - CPU SCHEDULING
05 lcd slide handout 1 - CPU SCHEDULINGAnne Lee
 
The Business Case for Workforce Management Solutions - White Paper
The Business Case for Workforce Management Solutions - White PaperThe Business Case for Workforce Management Solutions - White Paper
The Business Case for Workforce Management Solutions - White PaperInfor HCM
 
Roberto Dossena - President of Ramognina
Roberto Dossena - President of RamogninaRoberto Dossena - President of Ramognina
Roberto Dossena - President of RamogninaRoberto Dossena
 
Benefits of Enplug for Customers
Benefits of Enplug for CustomersBenefits of Enplug for Customers
Benefits of Enplug for CustomersColin Bovet
 

Andere mochten auch (17)

Eliana romero
Eliana romeroEliana romero
Eliana romero
 
Susan Luley Resume
Susan Luley ResumeSusan Luley Resume
Susan Luley Resume
 
DTM 2015 Social Media and Diabullying
DTM 2015 Social Media and DiabullyingDTM 2015 Social Media and Diabullying
DTM 2015 Social Media and Diabullying
 
Skab grundlaget for individuel kommunikation
Skab grundlaget for individuel kommunikationSkab grundlaget for individuel kommunikation
Skab grundlaget for individuel kommunikation
 
Hip hop kids, bicicampus i escoles esportives pasqua
Hip hop kids, bicicampus i escoles esportives pasquaHip hop kids, bicicampus i escoles esportives pasqua
Hip hop kids, bicicampus i escoles esportives pasqua
 
Cammilla rysgaards favorit ordsprog om succes
Cammilla rysgaards favorit ordsprog om succesCammilla rysgaards favorit ordsprog om succes
Cammilla rysgaards favorit ordsprog om succes
 
Live It Learn It Civil Rights Program Overview
Live It Learn It Civil Rights Program OverviewLive It Learn It Civil Rights Program Overview
Live It Learn It Civil Rights Program Overview
 
2014 08 21_компетенц1я_компетентн1сть_основн1_тези
2014 08 21_компетенц1я_компетентн1сть_основн1_тези2014 08 21_компетенц1я_компетентн1сть_основн1_тези
2014 08 21_компетенц1я_компетентн1сть_основн1_тези
 
Draft Litter Management Plan
Draft Litter Management PlanDraft Litter Management Plan
Draft Litter Management Plan
 
02 laboratory exercise 1 - RETRIEVING DATA FROM SEVERAL TABLES
02 laboratory exercise 1 - RETRIEVING DATA FROM SEVERAL TABLES02 laboratory exercise 1 - RETRIEVING DATA FROM SEVERAL TABLES
02 laboratory exercise 1 - RETRIEVING DATA FROM SEVERAL TABLES
 
Anita nwachuku policy paper outline
Anita nwachuku policy paper outlineAnita nwachuku policy paper outline
Anita nwachuku policy paper outline
 
05 lcd slide handout 1 - CPU SCHEDULING
05 lcd slide handout 1 - CPU SCHEDULING05 lcd slide handout 1 - CPU SCHEDULING
05 lcd slide handout 1 - CPU SCHEDULING
 
The Business Case for Workforce Management Solutions - White Paper
The Business Case for Workforce Management Solutions - White PaperThe Business Case for Workforce Management Solutions - White Paper
The Business Case for Workforce Management Solutions - White Paper
 
lucia redes sociales 1
 lucia redes sociales 1 lucia redes sociales 1
lucia redes sociales 1
 
Php forms
Php formsPhp forms
Php forms
 
Roberto Dossena - President of Ramognina
Roberto Dossena - President of RamogninaRoberto Dossena - President of Ramognina
Roberto Dossena - President of Ramognina
 
Benefits of Enplug for Customers
Benefits of Enplug for CustomersBenefits of Enplug for Customers
Benefits of Enplug for Customers
 

Ähnlich wie guadec-2015-developer-switch-dreams

Some wonderful Linux softwares for daily use
Some wonderful Linux softwares for daily useSome wonderful Linux softwares for daily use
Some wonderful Linux softwares for daily usearun.arwachin
 
Go programming language
Go programming languageGo programming language
Go programming languageAppstud
 
Rapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWTRapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWTManuel Carrasco Moñino
 
Castle Game Engine and the joy of making and using a custom game engine
Castle Game Engine and the joy  of making and using a custom game engineCastle Game Engine and the joy  of making and using a custom game engine
Castle Game Engine and the joy of making and using a custom game engineMichalis Kamburelis
 
How To Contribute to KDE without Coding Skills
How To Contribute to KDE without Coding SkillsHow To Contribute to KDE without Coding Skills
How To Contribute to KDE without Coding SkillsStephanie Das Gupta
 
GitLab for CI/CD process
GitLab for CI/CD processGitLab for CI/CD process
GitLab for CI/CD processHYS Enterprise
 
OSGeo Live Lightening Overview
OSGeo Live Lightening OverviewOSGeo Live Lightening Overview
OSGeo Live Lightening OverviewJody Garnett
 
Flutter - Pixel by Pixel
Flutter - Pixel by PixelFlutter - Pixel by Pixel
Flutter - Pixel by PixelThomas Gazzoni
 
The Go programming language - Intro by MyLittleAdventure
The Go programming language - Intro by MyLittleAdventureThe Go programming language - Intro by MyLittleAdventure
The Go programming language - Intro by MyLittleAdventureValéry BERNARD
 
Golang - Overview of Go (golang) Language
Golang - Overview of Go (golang) LanguageGolang - Overview of Go (golang) Language
Golang - Overview of Go (golang) LanguageAniruddha Chakrabarti
 
программное обеспечение (по)
программное обеспечение (по) программное обеспечение (по)
программное обеспечение (по) victoria_4
 
GUI toolkits comparison for python
GUI toolkits comparison for pythonGUI toolkits comparison for python
GUI toolkits comparison for pythonDarren Su
 
GNOME(TM) Desktop for Everyone
GNOME(TM) Desktop for EveryoneGNOME(TM) Desktop for Everyone
GNOME(TM) Desktop for EveryoneKukuh Syafaat
 
Build beautiful native apps in record time with flutter
Build beautiful native apps in record time with flutterBuild beautiful native apps in record time with flutter
Build beautiful native apps in record time with flutterRobertLe30
 
Introducing Yeoman 1.0 beta
Introducing Yeoman 1.0 betaIntroducing Yeoman 1.0 beta
Introducing Yeoman 1.0 betadigitalzombie
 
Programming In Linux Presentation
Programming In Linux PresentationProgramming In Linux Presentation
Programming In Linux Presentationdanyal.khashabi
 

Ähnlich wie guadec-2015-developer-switch-dreams (20)

Some wonderful Linux softwares for daily use
Some wonderful Linux softwares for daily useSome wonderful Linux softwares for daily use
Some wonderful Linux softwares for daily use
 
Go programming language
Go programming languageGo programming language
Go programming language
 
Rapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWTRapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWT
 
Linux Sucks
Linux SucksLinux Sucks
Linux Sucks
 
Linux Sucks
Linux SucksLinux Sucks
Linux Sucks
 
Automated deployment
Automated deploymentAutomated deployment
Automated deployment
 
Bbs214 Cloud IDEs
Bbs214 Cloud IDEsBbs214 Cloud IDEs
Bbs214 Cloud IDEs
 
Castle Game Engine and the joy of making and using a custom game engine
Castle Game Engine and the joy  of making and using a custom game engineCastle Game Engine and the joy  of making and using a custom game engine
Castle Game Engine and the joy of making and using a custom game engine
 
How To Contribute to KDE without Coding Skills
How To Contribute to KDE without Coding SkillsHow To Contribute to KDE without Coding Skills
How To Contribute to KDE without Coding Skills
 
GitLab for CI/CD process
GitLab for CI/CD processGitLab for CI/CD process
GitLab for CI/CD process
 
OSGeo Live Lightening Overview
OSGeo Live Lightening OverviewOSGeo Live Lightening Overview
OSGeo Live Lightening Overview
 
Flutter - Pixel by Pixel
Flutter - Pixel by PixelFlutter - Pixel by Pixel
Flutter - Pixel by Pixel
 
The Go programming language - Intro by MyLittleAdventure
The Go programming language - Intro by MyLittleAdventureThe Go programming language - Intro by MyLittleAdventure
The Go programming language - Intro by MyLittleAdventure
 
Golang - Overview of Go (golang) Language
Golang - Overview of Go (golang) LanguageGolang - Overview of Go (golang) Language
Golang - Overview of Go (golang) Language
 
программное обеспечение (по)
программное обеспечение (по) программное обеспечение (по)
программное обеспечение (по)
 
GUI toolkits comparison for python
GUI toolkits comparison for pythonGUI toolkits comparison for python
GUI toolkits comparison for python
 
GNOME(TM) Desktop for Everyone
GNOME(TM) Desktop for EveryoneGNOME(TM) Desktop for Everyone
GNOME(TM) Desktop for Everyone
 
Build beautiful native apps in record time with flutter
Build beautiful native apps in record time with flutterBuild beautiful native apps in record time with flutter
Build beautiful native apps in record time with flutter
 
Introducing Yeoman 1.0 beta
Introducing Yeoman 1.0 betaIntroducing Yeoman 1.0 beta
Introducing Yeoman 1.0 beta
 
Programming In Linux Presentation
Programming In Linux PresentationProgramming In Linux Presentation
Programming In Linux Presentation
 

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 (christian@hergert.me)
  • 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