GitHub porta Visual Studio Code online

Nel suo discorso al recente evento Satellite di GitHub, il CEO Nat Friedman ha affermato: "Nell'era delle distanze sociali, le persone si stanno rivolgendo alla codifica sociale". Stiamo lavorando da casa, utilizzando gli strumenti integrati in GitHub per sostituire le lacune nel nostro flusso di lavoro che erano riempite con le interazioni con i colleghi. Strumenti come GitHub sono diventati qualcosa di più del luogo in cui archiviamo e condividiamo il codice. Ora sono i nostri luoghi di lavoro virtuali, che comprendono molti dei nostri flussi di lavoro di sviluppo.

La relazione tra GitHub e Microsoft è interessante. Microsoft possiede GitHub, ma viene eseguito come entità separata con pochissimi contatti tra le due organizzazioni. È una divisione che ha senso, poiché il ruolo di GitHub come repository globale per software proprietario e open source richiede che sia un hub neutrale, le Nazioni Unite del software. Ciò ha consentito a GitHub di continuare a funzionare sulla propria infrastruttura, costruita sui propri strumenti e tecnologie. Nel frattempo Microsoft ha aumentato le sue dipendenze da GitHub, costruendo i propri strumenti sul framework Electron di GitHub e utilizzando GitHub nei propri processi di sviluppo.

Compilalo in GitHub Codespaces

È interessante vedere GitHub costruire una delle sue funzionalità più recenti su una tecnologia Microsoft (anche se con una solida base open source). Microsoft ha recentemente cambiato il nome del suo ambiente di sviluppo ospitato nel cloud di Visual Studio Online in Visual Studio Codespaces e Satellite ha visto GitHub lanciare un prodotto simile con lo stesso nome.

È importante notare che, sebbene sia gli spazi di codice di Visual Studio che gli spazi di codice di GitHub siano basati sull'editor di codice di Visual Studio di Microsoft, sono prodotti molto diversi. Poiché Visual Studio Code utilizza Electron di GitHub, è un'applicazione TypeScript. Ciò semplifica il porting sul Web e sui browser Web moderni, con il suo editor di codice Monaco open source. Microsoft sta usando Codespaces come un modo per estendere il tuo ambiente di sviluppo desktop nel cloud e condividerlo con collaboratori ad hoc. GitHub tratta i Codespaces in modo molto diverso, offrendoti un ambiente di editing ospitato dal browser come parte di un repository di codice.

L'idea alla base di GitHub Codespaces è quella di fornire ai collaboratori l'accesso al codice mentre cambia, ovunque si trovino: revisione del codice, lavoro con problemi che sono stati sollevati o revisione del codice che è stato inviato con una richiesta pull. È un modo per passare rapidamente a un repository per modificare il codice se hai un minuto libero e un browser Web moderno. Se preferisci usare un editor, l'estensione di Visual Studio Codespaces per VS Code funzionerà anche con GitHub Codespaces.

La creazione di ambienti di sviluppo cloud in GitHub Codespaces offre la possibilità di definire le risorse predefinite utilizzate dall'editor come parte di un repository, utilizzando dotfile familiari. Gli utenti possono avere le proprie configurazioni, che vengono caricate dal proprio profilo. È disponibile il supporto per il modello di estensione esistente di VS Code e per Visual Studio Code Marketplace, quindi puoi installare le estensioni necessarie per lavorare con un progetto specifico. Se stai lavorando con un'app Go, puoi installare le estensioni Go appropriate. Lo stesso per Rust, C # e Flutter; l'ambiente GitHub Codespaces è flessibile come il codice stesso.

Per velocizzare le cose, GitHub offre un repository di versioni preconfigurate dei contenitori Codespaces, con istanze per Node, Go, .NET Core, C ++ e altro. Questi includono strumenti per creare ed eseguire il debug del codice, in esecuzione nel contenitore Codespaces. Fornendo un'intera toolchain in un contenitore, sei in grado di fare molto di più che modificare il codice, ad esempio testare e verificare le modifiche prima di unire una richiesta pull.

Ogni editor di Codespaces avrà una versione dell'estensione VS Code GitHub per aiutare a gestire i problemi e le richieste pull, oltre a lavorare con più rami del codice. Puoi clonare i repository, lavorando con il familiare flusso di lavoro Git. C'è spazio per Codespaces per lavorare con repository privati, ma la beta supporterà solo repository personali e pubblici. Se utilizzi GitHub Enterprise, puoi utilizzare altri strumenti per lavorare con il tuo codice; forse anche Visual Studio Codespaces.

Gli spazi di codice di GitHub richiedono molte risorse per essere eseguiti e, sebbene il servizio sia gratuito durante la beta, è probabile che sia una funzionalità a pagamento una volta avviato. Ogni istanza richiede un contenitore per ospitare i server del linguaggio di Visual Studio Code. L'interfaccia utente è nel tuo browser, ma gran parte del lavoro pesante richiesto per eseguire gli strumenti di sviluppo di VS Code deve essere eseguito nel contenitore Codespaces. Con molti milioni di sviluppatori che utilizzano GitHub e ogni contenitore Codespaces che richiede due core e 4 GB di memoria, l'utilizzo potrebbe aumentare molto rapidamente. Tuttavia, GitHub sta pianificando di offrire prezzi con pagamento in base al consumo, che dovrebbero mantenere i costi al minimo.

Discutilo nelle discussioni di GitHub 

La modifica nel cloud è solo una parte della storia ampliata di codifica sociale di GitHub. Gran parte del lavoro recente di GitHub ha reso più facile per i manutentori del progetto lavorare con la comunità che si è unita attorno al loro codice. Sebbene sia possibile avere Slack o altre piattaforme di collaborazione come parte di un flusso di lavoro combinato, i progetti open source spesso non sono in grado di pagare i piani che consentono loro di archiviare le discussioni. Separare conversazione e codice rende difficile fornire collegamenti diretti tra i due, e sebbene commenti e problemi all'interno di GitHub offrano un modo per collegarli, sono comunque molto più formali della maggior parte dei social media.

Satellite ha visto il lancio di GitHub Discussions, un modo per incorporare conversazioni in thread all'interno di un repository. Ricordano un po 'i newsgroup Usenet della vecchia scuola, sono un modo utile per creare documentazione collaborativa attorno a un progetto. Stack Overflow utilizza una struttura simile, ma le conversazioni sono più libere con la possibilità di votare per il contenuto, nonché collegamenti diretti a ciascun elemento di discussione. I manutentori possono utilizzare i collegamenti per trasferire il contenuto delle discussioni in altri documenti, quindi un elemento Discussione potrebbe essere collegato a un problema per consentire ulteriori conversazioni.

La gestione delle conversazioni è importante e i manutentori hanno la possibilità di bloccare le discussioni quando la conversazione utile è terminata. L'accesso basato sui ruoli può controllare le conversazioni, ad esempio, fornendo una discussione che tutti possono leggere ma che solo i collaboratori approvati possono pubblicare. Se Discussions può mantenere la sua promessa di uno spazio mirato e pertinente per la collaborazione su codice e documentazione, dovrebbe fare molto per aiutare gli sviluppatori a lavorare su GitHub senza cambiare contesto tra le applicazioni e perdere la concentrazione, oltre a evitare lunghe conversazioni traballanti , collegamenti video non sicuri.

La collaborazione remota non è facile, quindi è importante che i siti orientati alla comunità come GitHub offrano il maggior numero possibile di strumenti e servizi diversi, con l'obiettivo di semplificare la collaborazione, indipendentemente da dove o come si lavora. GitHub Codespaces e GitHub Discussions sembrano essere passi importanti lungo questo percorso e sarà interessante vedere come vengono utilizzati.