Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME?...

52
Developer Switch Dreams Crafting the GNOME DX Christian Hergert ([email protected])

Transcript of Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME?...

Page 1: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

D e v e l o p e r S w i t c h D r e a m sC r a f t i n g t h e G N O M E D X

Christian Hergert ([email protected])

Page 2: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

GNOME is so much more than a desktop

Page 3: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

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)

Page 4: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

What is GNOME? (Cont inued)

● 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)

Page 5: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

What is GNOME? (Cont inued)

● 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)

Page 6: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

What is GNOME? (Cont inued)

● 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)

Page 7: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

GNOME is a massive achievement

Page 8: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

But there is an elephant in the GNU/room

Page 9: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

It 's really hard to contribute to Free Software

Page 10: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

So I did some research on why

Page 11: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

Learning how to get started is the largest hurdle in contributing to Free Software

Page 12: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

We have hundreds of contributors that would be here right now if we could bridge that gap

Page 13: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

Clearly this is unacceptable

Page 14: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

We built a fantastic platform

(Now let 's he lp people bui ld th ings for i t )

Page 15: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

DX = UX for Developers

Page 16: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

DX = UX for Developers

Page 17: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

The term “Developer” is very broad

Page 18: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

Lots of people, lots of skill-sets, varying expertise

Page 19: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

You shouldn't have to be an expert on every part of our platform to begin contributing

Page 20: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

We need to provide tools and education to go from beginner, to intermediate, to expert

Page 21: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

If more people try our platform,we'll have more contributors

( I t ' s a numbers game)

Page 22: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

So let's make it as easy as possible to get started

Page 23: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

Suggestion

Add “Developer Mode” switch to Control Center

Page 24: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

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

Page 25: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

Suggestion

“GNOME Ambassadors” who can help point new developers in the right direction

(For now you can just jo in #gnome-love)

Page 26: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

Developers need documentation

Page 27: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

Developers need Documentat ion

● It needs to be idiomatic● It needs to be accurate● It needs to be at your fingertips when coding

Page 28: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

Perfect documentation is improbable

(So a l low developers to ed it i t when i t ' s wrong)

Page 29: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

GNOME's design patterns are fantastic

(Now let 's make them easy to create)

Page 30: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

GNOME's platform libraries are great

(Now let 's make them easy to consume)

Page 31: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

Consuming p lat form l ibrar ies

● 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)

Page 32: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

Developers are always searching for things

(So let 's make that fast and comprehens ive)

Page 33: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

Sometimes the documentation simply doesn't exist

(So prov ide cross-pro ject search to fi nd code examples)

Page 34: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

Releasing applications on distribution l ife-cycles is no longer a viable strategy

Page 35: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

Distr ibut ion L i fe-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

Page 36: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

Do we ever ship a stable combination?

(Kernel , Dr ivers , Desktop, Appl icat ions)

Page 37: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

Even worse, which distribution would you choose to synchronize your releases with?

(Synchron iz ing with GNOME might be best opt ion)

Page 38: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

But what if you want to ship early, often?

Page 39: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

Suggestion: xdg-app

Page 40: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

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!

Page 41: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

Builder should provide an app simulator to make testing multiple GNOME releases painless

(More GNOME Cont inuous testers means more bugs fi xed)

Page 42: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

Psst! Stop testing your application in tree!

( I f you' re interested in test ing what your users run)

Page 43: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

Builder and xdg-app will help you do this automatically

(Eventual ly)

Page 44: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

Build systems are boring

(Sorta l ike me)

Page 45: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

Bui ld 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)

Page 46: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

Developer Outreach

Page 47: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

GNOME has the potential to be the“Desktop for Developers”

Page 48: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

Developer Outreach

● Web Development(Django/Rails/Node, HTML/JS/CSS)

● Emerging Languages (golang, rust)● Internet of Things and Embedded● Mobile Development● DevOps/Docker/Atomic

Page 49: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

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

Page 50: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

Questions and Comments?

Page 51: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

Please join us at the Builder BoF!

All day Tuesday and Wednesday

Page 52: Developer Switch Dreamshergert.me/talks/guadec-2015-developer-switch-dreams.pdf · What is GNOME? (Continued) ... We need to provide tools and education to go from beginner, to intermediate,

Thanks for all your support!

https: //www.ind iegogo.com/pro jects/bu i lder-an- ide-of-our-gnome