Car-tech

Google Executive frustrato da Java, C ++ Complexity

TOP 5 English Idioms | Vocabulary you need to know!

TOP 5 English Idioms | Vocabulary you need to know!
Anonim

I linguaggi di programmazione commerciale di oggi - - C ++ e Java, in particolare - sono troppo complessi e inadeguati per gli ambienti di elaborazione odierni, ha commentato l'ingegnere di Google Rob Pike in un discorso giovedì alla O'Reilly Open Source Conference.

Pike ha presentato il caso "Linguaggi di programmazione industriale" durante il suo keynote alla conferenza a Portland, Oregon.

"Penso che questi linguaggi siano troppo difficili da usare, troppo sottili, troppo intricati. Sono troppo prolissi e la loro sottigliezza, complessità e verbosità sembrano essere in aumento nel tempo ", ha detto Pike. "Sono ipervenduti e utilizzati in modo troppo ampio."

Pike descrisse le carenze di tali linguaggi come un modo per descrivere gli obiettivi che lui e altri ingegneri di Google hanno per un nuovo linguaggio di programmazione sviluppato, chiamato Go.

Come esempio della complessità di tali linguaggi, Pike ha mostrato alcuni esempi di codice C ++. Un esempio era di una dichiarazione variabile che si estendeva quasi attraverso un'intera riga dello schermo.

"Come abbiamo cose come questa [arrivare ad essere] il modo standard di calcolo che viene insegnato nelle scuole e viene utilizzato nell'industria? " chiese retoricamente. Questo tipo di programmazione "è molto burocratico: ogni passo deve essere giustificato per il compilatore", ha detto.

Mentre Pike ha ammesso che era un po 'faceto, ha affermato che tali domande dovrebbero ancora essere poste. C ++ è nato a causa della frustrazione delle persone nel lavorare con il linguaggio C di basso livello, e Java è nato come un modo per semplificare il C ++. Nel corso del tempo, tuttavia, sono state aggiunte nuove funzionalità in entrambe le lingue, rendendole sempre più complesse.

"Il rumore arriva con raffinatezza", ha detto.

Pike ha anche aggiunto che tali linguaggi sono stati sviluppati prima dell'avvento dell'elaborazione multicore

Pike non è l'unico dipendente di Google che esprime insoddisfazione per le lingue tradizionali di tipo commerciale.

Alla conferenza annuale USENIX del mese scorso, l'ingegnere di Gmail Adam de Boor ha sorpreso il pubblico notando che il servizio Gmail dell'azienda era scritto interamente in JavaScript e che tutto il suo codice, circa 443.000 righe, era scritto a mano.

Ha notato che mentre Java è più espressivo, è anche più prolisso. "A questo punto per me è una questione di scelta quale lingua usi", ha detto de Boor.

JavaScript è uno di un intero gruppo di linguaggi - altri includono Ruby e Python - che sono stati sviluppati negli ultimi 10 anni in risposta alla crescente complessità di C ++ e Java. Ma pur avendo una sintassi più semplice, tali linguaggi hanno i loro svantaggi, sosteneva.

Queste nuove lingue tendono ad essere più lente, non scalano e possono contenere più errori, ha spiegato Pike.

Le lingue tendono ad essere interpretati piuttosto che compilati, il che significa che i programmi scritti in tali lingue non vengono compilati prima dell'esecuzione, quindi tendono a rallentare di conseguenza. Inoltre, tendono a essere digitati in modo dinamico, il che significa che i programmatori non devono specificare il tipo di dati che le loro variabili manterranno.

"La digitazione dinamica non è necessariamente buona. Si ottengono errori statici in fase di esecuzione che dovresti essere in grado di cattura al momento della compilazione ", ha detto.

Con tutto questo in mente, Pike ha poi descritto Go come un tentativo di fondere le migliori caratteristiche di entrambi i gruppi di lingue.

" Go è un tentativo di combinare sicurezza e prestazioni di linguaggi tipizzati staticamente con la praticità e il divertimento di linguaggi interpretativi digitati dinamicamente ", ha detto, prima di aggiungere," nella misura in cui ha esito positivo dovrai giudicare da solo. "

Un membro del pubblico, Larry Augustin, l'amministratore delegato del fornitore di software per la gestione delle relazioni con i clienti SugarCRM, ha concordato con la valutazione di Pike che C ++ e Java sono diventati troppo complessi, sebbene abbia notato che questo accade tipicamente in tutte le lingue man mano che crescono per soddisfare una più ampia gamma di casi d'uso.

"Il motivo per cui questi linguaggi sono cresciuti in complessità è perché più sono utilizzati, più errori e ambiguità abbiamo trovato, e i tentativi di rimuovere quelle ambiguità e gli errori hanno creato qualcosa di più complesso", ha detto Augustin, che ha un background in ingegneria del software e progettazione del linguaggio di programmazione.

"Apprezzo il suo obiettivo", ha detto degli sforzi di Pike. "La domanda è: può raggiungere il suo risultato obiettivo? Oppure Go [diventa più complesso] man mano che viene utilizzato da più persone", ha detto Augustin.

Joab Jackson copre le ultime novità del software aziendale e della tecnologia generale per Servizio IDG News. Segui Joab su Twitter all'indirizzo @Joab_Jackson. L'indirizzo e-mail di Joab è [email protected]