Quando utilizzare il linguaggio di script incorporato?

1

Ho già letto alcuni post su perché uso il linguaggio di script incorporato ma voglio chiedere a quando di usarlo.

Ho implementato un framework di binding Objective-C / Javascript che mi consente di scrivere Javascript per usare qualsiasi classe Objective-C e metodi. L'ho trovato molto utile per scopi di debug perché posso verificare / modificare lo stato interno della mia app in fase di runtime. Ma ho anche scoperto che preferisco ancora scrivere codice ObjC anziché codice JS quando costruisco la mia app per alcuni motivi:

  • Completamento del codice. Se voglio chiamare un metodo UIKit froom JS, spesso devo controllare il documento per il suo nome compare per scrivere solo le prime lettere e lasciare che Xcode lo completi per me in ObjC.
  • Tutti i vantaggi del linguaggio tipizzato statico. ObjC è un linguaggio tipizzato in modo statico e dinamico, quindi il compilatore può eseguire molti tipi di controllo quando possibile.
  • Performance?
  • Il collegamento C a JS non è ancora pronto (questo è necessario per analizzare l'intestazione e generare il codice per esporre la funzione C, enum, struct, ecc.)
  • Più naturale scrivere ObjC quando si gestiscono i metodi ObjC. (ad esempio nel codice di scrittura JS come view.setEdit_animated(true, true) confronta con ObjC [view setEdit:YES animated:YES]

Ma sento che dovrei scrivere più codice JS in modo da poter utilizzare il linguaggio di scripting del vantaggio (ad esempio, sostituire i metodi con correzioni di bug in fase di runtime)

Non sono sicuro di quale parte della mia app debba essere scritta in JS e quale parte dovrebbe essere scritta in ObjC. Qualche consiglio?

È inoltre possibile utilizzare qualsiasi modello di progettazione per il linguaggio di script incorporato?

    
posta Bryan Chen 06.09.2013 - 02:13
fonte

1 risposta

1

Secondo me, ci sono due vantaggi principali dello scripting:

  • di solito è più veloce
  • e di solito è più veloce

Il primo più veloce è per la compilazione JIT e gli interpreti C sottostanti che la maggior parte delle lingue ha e la seconda è per non aver bisogno di ricompilare il codice.

Gli script devono essere utilizzati ogni volta che si desidera modificare rapidamente il comportamento senza la necessità di ricompilare. Quindi probabilmente vorrai scriptare l'interfaccia utente e dirgli semplicemente come connettersi al codice binario. Scrivere GUI in lingue tipizzate staticamente è molto difficile e complesso. La maggior parte dei linguaggi di scripting è utile anche quando vuoi fare cose come eventi o implementare un comportamento semplice in alcune parti della tua applicazione.

Il vantaggio di dividerlo è che si ottiene un core del programma che viene compilato una sola volta e un numero di file di script che forse costituiscono il comportamento dell'applicazione. Quindi in realtà c'è un terzo vantaggio: lo scripting è solitamente più veloce. Questa volta in termini di sviluppo di applicazioni. Basta adattare un file di script ed eseguire nuovamente il programma, o addirittura modificare gli script in fase di esecuzione e vedere immediatamente i risultati.

Un campo in cui le applicazioni nei binari nativi sono molto più veloci degli script quando si parla di interazione con l'hardware e chiamate del sistema operativo. Poiché lo scripting di solito è pensato per essere multipiattaforma, è probabile che tu debba usare le librerie native per le applicazioni. I linguaggi di scripting dovrebbero avvolgerli, applicando una penalizzazione delle prestazioni. E anche gli interpreti hanno il loro modello di threading e garbage collection. Se hai bisogno di controllare queste strutture, scegli i binari nativi.

    
risposta data 11.09.2013 - 10:29
fonte

Leggi altre domande sui tag