Oggi la startup svizzera , che utilizza l'intelligenza artificiale e il machine learning per automatizzare l'analisi del codice sorgente, ha annunciato di aver ricevuto investimenti per un totale di 4 milioni di dollari da fondi di venture capital come Earlybird, 3VC e Btov Partners. L'azienda prevede di utilizzare questi fondi per implementare il supporto a nuovi linguaggi di programmazione nel proprio servizio, oltre a fare marketing del prodotto nel mercato globale dell'IT.

L'analisi del codice è necessaria per rilevare errori, potenziali vulnerabilità, violazioni delle convenzioni di formattazione e molto altro nelle fasi iniziali dello sviluppo software, prima che il codice venga utilizzato in qualsiasi contesto. Di solito, questa procedura si svolge parallelamente allo sviluppo di nuovo codice e subito dopo che è completato, preannunciando la fase di test vero e proprio. "Il testing del software guarda al codice dall'esterno, ma l'analisi del codice consente di guardarlo dall'interno," spiega Boris Paskalev, cofondatore e CEO di DeepCode, in un'intervista a VentureBeat.
La revisione del codice è più spesso eseguita dai suoi autori in collaborazione con colleghi e manager, al fine di rilevare errori evidenti prima di procedere alle fasi successive dello sviluppo. E più grande è il progetto, più righe di codice devono essere verificate, comportando un notevole dispendio di tempo per i programmatori. Strumenti che dovrebbero accelerare questo processo esistono da tempo, come gli analizzatori statici di codice, ad esempio Coverity e PVS-Studio, ma tendono ad essere limitati nelle loro capacità, poiché si concentrano su "problemi stilistici irritanti e ripetitivi, formattazione e piccole logiche errate", spiega Paskalev.
DeepCode, d'altra parte, affronta una gamma più ampia di problemi, ad esempio, rilevando vulnerabilità come le possibilità di scripting intersito e le iniezioni SQL, poiché gli algoritmi incorporati non analizzano semplicemente il codice come un insieme di caratteri, ma cercano di comprendere il significato e lo scopo del lavoro del programma scritto. Alla base di ciò c'è un sistema di apprendimento automatico che utilizza miliardi di righe di codice da progetti open-source accessibili pubblicamente per l'apprendimento. DeepCode analizza le versioni precedenti del codice e le modifiche successive apportate, per studiare quali errori e come venivano corretti dai programmatori reali nel loro lavoro, per poi suggerire soluzioni simili ai propri utenti. Inoltre, il sistema utilizza anche algoritmi di previsione tradizionali per cercare possibili problemi nel codice simili agli analizzatori statici di cui sopra.
Una delle questioni chiave nell'uso di DeepCode è: quanto è affidabile il controllo automatico del codice? Un'accuratezza dell'analisi inferiore al 100 % significa che gli sviluppatori dovranno comunque analizzare manualmente il proprio codice. In tal caso, quanto tempo realmente libererà l'uso di strumenti per automatizzare questo compito? Secondo Paschalov, DeepCode potrà far risparmiare agli sviluppatori circa il 50 % del tempo che attualmente spendono a cercare errori da soli, che è una cifra piuttosto significativa.
Gli sviluppatori possono collegare DeepCode ai propri account GitHub o Bitbucket e lo strumento supporta anche configurazioni locali di GitLab. Inoltre, il progetto dispone di una speciale API che consente agli sviluppatori di integrare DeepCode nei propri sistemi di sviluppo. Una volta connesso al repository, DeepCode analizzerà ogni modifica del codice e segnalerà i potenziali problemi.

«In media, gli sviluppatori trascorrono circa il 30 % del loro tempo a cercare e risolvere errori, ma DeepCode può già far risparmiare metà di quel tempo e in futuro ancora di più», afferma Boris. «Dal momento che DeepCode apprende direttamente dalla comunità globale degli sviluppatori, è in grado di rilevare più problemi di quanto avrebbe mai potuto fare una singola persona o un'intera squadra di revisori».
Oltre all'annuncio di oggi sull'ottenimento di investimenti, DeepCode ha anche svelato una nuova importante politica del proprio prodotto. Fino ad ora, DeepCode era gratuito solo per progetti di sviluppo software con codice sorgente aperto. Ora sarà gratuito da utilizzare per qualsiasi scopo educativo e anche per le aziende commerciali con meno di 30 sviluppatori. È evidente che con questo passo i creatori di DeepCode vogliono rendere il loro prodotto più popolare tra i piccoli team. Inoltre, DeepCode addebita 20 dollari per sviluppatore al mese per la distribuzione della soluzione nel cloud e 50 dollari per sviluppatore per il supporto locale.
In precedenza, il team di DeepCode aveva già ricevuto investimenti per un milione di dollari. Con altri 4 milioni, la società ha dichiarato che intende ampliare i linguaggi di programmazione supportati oltre a Java, JavaScript e Python, includendo anche il supporto per C#, PHP e C/C++. Hanno inoltre confermato che stanno lavorando a un proprio ambiente di sviluppo integrato.
Fonte: 3dnews.ru
