builder - hergert.mehergert.me/talks/christian-hergert--gnome-builder.pdf · gnome university i...

36
BUILDER Vaporware Galore Christian Hergert <[email protected]> #GUADEC2014

Upload: lenhi

Post on 14-Dec-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

BUILDERVaporwareGalore

ChristianHergert<[email protected]>

#GUADEC2014

¡WARNING!

TodaythisisallVAPORWARE.(butwaittilltheend)

GNOMEUNIVERSITYIsortoffailedatthis.

Turnsoutwewerelackingthetoolstodoitproperly.

Sonowit'stimetobuildthosetools.

WHATBUILDERISN'TNotagenericIDE.

Ifyouwantoneofthose,useMonoDevelop,Anjuta,Eclipse,IDEA,oramultitudeofotheroptions.

Builderwillprobablynotsupportplugins(atleastinitially).

WHATBUILDERIS...mostlymockupsandprototypes.

BuilderisanattempttocreateadevelopmentenvironmentfordevelopingGNOMEapplications.

HOWISTHISTHINGBUILT?Multi-Process

ProjectManagementSourceEditorGlobalSearchUIDesigner

ResourceManagerD-BUSExplorer

SimulatorDocumentation

DebuggerProfiler

SourceControl

MULTI-PROCESSNothingworsethananIDEthatcrashes.Exceptmaybeabrowserthatcrashes.

ComponentsarebrokenintoServices.Servicesarecontainedinsub-processes.

PrivateD-BUSforIPC.

VIM/Emacsintegrationpossible.

PROJECTMANAGEMENTBasicautotoolsmanagement.

Byadheringtoastrictautotoolsconvention,wecanavoidcomplexparsersforautoconfandautomakefiles.

FocusingonGLibbasedprojects.(gresource,glade,gsettings,etc)

Willbewrittenaslibraryforcommandlinetools.

SOURCEEDITORGtkSourceViewCodeHighlightingAuto-CompletionCross-ReferenceSearchHighlightingChangeTracking

SnippetsAuto-Formatting

DiagnosticsandFix-itsRefactoring

DistractionFreeMode

CODEHIGHLIGHTING

AUTO-COMPLETION

AUTO-COMPLETIONCoupleofoptionshere.

Useclang,farmorerobustofresults.Usefuzzysearchwithdataparsedfromctags.

Simplebinarysearchofsymbolindex.

Clangwillgiveusrichparametercompletion.

AUTO-COMPLETION

SEARCHHIGHLIGHTING

CHANGETRACKING

SNIPPETS

AUTO-FORMATTING

DIAGNOSTICSANDFIX-ITSCompilesourceeditorcontentsinbackgroundwhiletyping.

Libclanggivesusdiagnostics.SomeareErrors,someareFix-its.

Fix-itsare"one-click"helperstofixawellknownproblem.Missingatrailing;isanexample.

REFACTORINGJustuselibclangfornow(hurtsmetosay)

RenamelocalsExtractmethods

DISTRACTIONFREEMODE

GLOBALSEARCH

UIDESIGNERManagetemplatesandbackingcode.TemplateeditorbyembeddingGlade.

IntegrateGtkInspector.

RESOURCEMANAGERUItomanageGResourcesinyourproject.

Icons(themingintegration)FilesTranslations?

D-BUSEXPLOREREvertrytoconsumeaD-BUSAPIfromyourproject?

BrowsetoD-BUStargetsimilartod-feet.Clicktogenerateproxyaspartofbuildsystem.Consumefromapplication.

Noneedtocallgdbus-codegenyourself.

SIMULATORLooksimilartoBoxes.

UseOSTreetofetchGNOMEreleases.AlwaystestinacleanOSTreeenvironment.(Hopetosolvethe"WorksForMe"mentality)

Also,runcodeonremotelaptop/phone/tabletinsimilarway.

DOCUMENTATIONStartbyusingandimprovingDevhelp.

Accessdocumentationduringauto-completion.

Perhapsweshouldalsoworkonmakingiteasytodocumentation.

MarkdownEditor.

DEBUGGERReuseasmuchofNemiveraspossible.

Visualizers(showGdkPixbufuponcursorhover).RemoteGDBintoSimulatororDevice.MaybeMozillaRRforrecordingsession.

Alwaysrundebugger,soyoucanexploreuponfailurewithouthavingtore-runyourexperiment.

PROFILERLinuxperftoolisactuallyquitegoodthesedays.operf(oprofile),sysprof,andothersareuseful.

BasictracingsupportwithGLib/Gtkandsystemtap.strace.

uber-graph.

REMEMBERPERFKIT?Yeah,Iwrotethisbackaround2010.

AbandoneditbecauseLinuxperfcameoutandwasclearlyabetterwaytogo.

PossiblytimetorevisitthatworkandintegrateintoBuilder.

CLASSDIAGRAMS

WHEREAREWENOW?Lotsofsmallprototypestoprovedesigns.Basicprototypeofputtingthingstogether.

Timetomakeitreal.

DEMOTIME

SOWHENCANWEEXPECTIT?

SOON!

FUNEMPLOYMENTResignedfromMongoDBlastweek

toworkonBuilderfulltimefor oneyear.

However,doingsowhilelivingoffmysavings.IndiegogoorsimilararoundNovember.

StartingSeptember!

PATCHESACCEPTED

QUESTIONS?