Ecco il motore di ricerca per la sintassi dei linguaggi di programmazione

Programmare molto spesso significa cercare su Google.

|
17 gennaio 2017, 10:35am

Immagine: Shutterstock

Sapete qual è l'attuale motore di ricerca per la sintassi dei linguaggi di programmazione? Google. Sapere come cercare delle informazioni è un'abilità chiave quando si parla di sapere programmare. Puoi conoscere tutti gli algoritmi del mondo e mezza dozzina di linguaggi di programmazione, ma presto o tardi ti troverai comunque a cercare su internet come fare una determinata cosa, sia che si tratti di qualcosa di nuovo, di una funzionalità sconosciuta ai più o di come tradurre una determinata funzione da un linguaggio di programmazione a un altro, saper programmare ha parecchio a che fare con il sapere come accedere alle informazioni—Insomma, bisogna sapere perfettamente come e quando imparare una determinata cosa.

Questo processo di apprendimento può consumarsi molto velocemente se sei quel tipo di programmatore che tende a imparare ossessivamente nuove cose solamente per il gusto di farlo—e sto parlando di una grande fetta di programmatori—e (oppure) deve imparare nuove cose per poterle applicare all'interno di un progetto o di un task.

Per un progetto recente, per esempio, avevo bisogno di usare un framework di machine learning implementato in un linguaggio piuttosto oscuro chiamato Lua, che è più o meno una versione super-leggera di Python. Ho guardato un paio di video, ma ho passato la maggior parte del tempo ad analizzare la sintassi di altri snippet di Lua e a googlare cose come "loop break in Lua."

Un ingegnere informatico, studente della Queen's University in Ontaria, chiamato Anthony Nguyen ha pubblicato ciò che spera possa sostituire Google quando si tratta di cercare sintassi di programmazione online. Si chiama SyntaxDB, e Nguyen spera che possa diventare "un giorno il più veloce indice di programmazione del mondo."

Ho fatto qualche ricerca e l'interfaccia di SyntaxDB è ben fatta. Cercare, per esempio, "Java iterator" restituisce un paio di risultati per quanto riguarda le strutture di control flow in Java e una barra laterale per effettuare ulteriori ricerche nell'ambito dello stesso linguaggio. Questi risultati sono tutti interni a SyntaxDB e portano a materiale di riferimento redatto esclusivamente per il database. È più un manuale antologico multi-linguaggio che un motore di ricerca.

Per quanto riguarda i risultati, non ho ottenuto una vera e propria pagina che spiegasse i Java iterator—Non esattamente un lieto fine, e limitarsi a contenuti ospitati sul database è un peccato, considerata la possibilità di sfruttare le infinite scorte di materiale di documentazione sparso su internet. Scrivere la documentazione di proprio pugno può sembrare più semplice, all'inizio, ma potrebbe non essere sostenibile sul lungo periodo.

Il grande vantaggio di SyntaxDB di cui mi rendo conto è la sintesi della sua documentazione. La entry relativa ai for-loops non ti rimpinzerà di dettagli, ma ti spiegherà semplicemente che aspetto ha uno snippet di quel tipo e le sue funzioni base. Spesso è tutto ciò di cui hai bisogno—Ovvero sapere che aspetto ha un funzione che già conosci in un linguaggio di programmazione con cui non sei ancora famigliare.

SyntaxDB dispone anche di un'integrazione con il motore di ricerca generalista DuckDuckGo, che a occhio sembra uno strumento più utile rispetto allo sfruttare direttamente SyntaxDB. Puoi inserire un termine di ricerca di sintassi nella normale barra di ricerca e DuckDuckGo ti restituirà i risultati provenienti dalla documentazione di SyntaxDB—se esiste—, assieme alla solita lista di risultati provenienti dal web. Se non esiste, DuckDuckGo cercherà la cosa che gli assomiglia di più.

Lo userò? Boh, forse, chi lo sa. Sono già abbastanza bravo a recuperare risposte rapide e semplice da documentazioni complicate, come gran parte delle persone che scrivono codice. Spesso mi rivolgo anche alla vasta gamma di risposte ad hoc presenti nei forum Q&A di StackOverflow. È qualcosa che Google può darmi, e che non so se SyntaxDB potrà mai replicare.