Cheerp - C ++ per il web: anticipo o regressione? [chiuso]

2

Recentemente mi sono imbattuto in Cheerp , un compilatore C ++ in Javascript, che utilizza una versione modificata di clang per generare codice JavaScript da Sorgenti C ++.

Questo mi fa meravigliare: perché nei sette regni qualcuno dovrebbe farlo bene?

Voglio dire: perché dovresti prendere un linguaggio che non è progettato per il web, che è molto più complicato e burocratico, scrivi il tuo codice e poi lo compila in JavaScript stesso?

Qualcuno può vedere qualche vantaggio nel farlo?

Sicuramente possiamo scartare le prestazioni come una ragione, perché alla fine genera puro codice Javascript.

C'è qualcuno qui che ha una vera esperienza con questo?

P.S .: Non sono sicuro che si tratti di una domanda su argomento, ma questo è il forum più generale sulla programmazione che potrei trovare nella rete StackExchange.

Modifica

Anche se sembra una domanda soggettiva, non lo è.

Sto chiedendo dei motivi per cui questo strumento potrebbe essere utile. All'inizio mi sono interessato, ma ho iniziato a chiedermi perché qualcuno dovrebbe usarlo.

    
posta Henrique Barcelos 23.08.2014 - 19:50
fonte

1 risposta

3

Il framework interrogato è costruito sulla base di LLVM , che può essere usato per compilare qualsiasi cosa a qualsiasi cosa (piuttosto interessante BTW).

Usare LLVM come compilatore cpp-to-js dovrebbe essere preso in considerazione quando il programma C ++ esistente (diciamo > = 100kLOC) deve essere portato sul browser web. Da un punto di vista tecnico, vedo 2 casi:

  1. Creare una bella API JavaScript attorno a parti riusabili del codice C ++ e codificare il resto JavaScript.
  2. Implementare parti specifiche della piattaforma in JavaScript e attenersi a C ++ per la logica principale.

Il porting di quasi tutti i programmi della GUI in C ++ richiede la creazione di librerie UI usate basate su browser. Se il programma con porting non ha nulla a che fare con la rete, deve essere aggiunta anche una quantità significativa di codice che gestisce gli account utente e la memorizzazione dei dati.

Cheerp fornisce API DOM e GL (che potrebbero essere utilizzate per portare le librerie GUI) e implementa anche il meccanismo di chiamata della funzione server automatica (che potrebbe semplificare notevolmente la scrittura del codice client-server). Non ho esperienza nell'uso di questo framework, ma dopo aver esaminato il numero di commit in cheerp-clang e < a href="https://github.com/leaningtech/cheerp-llvm"> cheerp-llvm repository, direi che è abbastanza maturo e vale la pena provarlo.

Dal punto di vista della funzionalità, vedo il potenziale da compile a js in:

  • Librerie avanzate codificate in C ++ (algoritmi crittografici, reti neurali, ecc.),
  • Programmi giornalieri (client di posta, client di messaggistica istantanea, lettori multimediali, IDE),
  • Giochi 3D (consulta porta di Quake III game a WebGL ),
  • Browser Web (come punizione per l'uso eccessivo della ricorsione: P).

Il codice compilato da C ++ potrebbe risultare migliore nei microbenchmarks rispetto al JavaScript nativo a causa delle ottimizzazioni del compilatore di LLVM.

    
risposta data 24.08.2014 - 02:02
fonte

Leggi altre domande sui tag