builder - hergert.mehergert.me/talks/christian-hergert--gnome-builder.pdf · gnome university i...
TRANSCRIPT
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
AUTO-COMPLETIONCoupleofoptionshere.
Useclang,farmorerobustofresults.Usefuzzysearchwithdataparsedfromctags.
Simplebinarysearchofsymbolindex.
Clangwillgiveusrichparametercompletion.
DIAGNOSTICSANDFIX-ITSCompilesourceeditorcontentsinbackgroundwhiletyping.
Libclanggivesusdiagnostics.SomeareErrors,someareFix-its.
Fix-itsare"one-click"helperstofixawellknownproblem.Missingatrailing;isanexample.
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.
WHEREAREWENOW?Lotsofsmallprototypestoprovedesigns.Basicprototypeofputtingthingstogether.
Timetomakeitreal.
FUNEMPLOYMENTResignedfromMongoDBlastweek
toworkonBuilderfulltimefor oneyear.
However,doingsowhilelivingoffmysavings.IndiegogoorsimilararoundNovember.
StartingSeptember!