È possibile scrivere la logica a livello di applicazione in un formato XML o di testo normale?

3

Ad esempio, un sistema in cui lo sviluppatore non ha più bisogno di scrivere codice sorgente, invece può usare XML o un testo definito per costruire la logica a livello di applicazione.

    
posta Ted Wong 12.01.2012 - 11:44
fonte

7 risposte

13

Mentre puoi sicuramente scrivere programmi in XML (dopotutto, XML è solo un modo per serializzare una struttura ad albero etichettata con stringhe incorporate) non ti aiuterà con la programmazione. La parte più difficile della programmazione non è la sua scrittura, ma comprende l'esatta assemblea di concetti che devono essere comunicati al computer per farlo fare ciò che vuoi che accada.

Ho scritto IDE. Ho scritto linguaggi di programmazione visuale. (È molto lavoro.) Ogni volta che vuoi qualcosa di complesso, finirai con una descrizione complicata. Mi sembra di pensare che il modo più semplice per gestire la complessità sia con testo semplice in un linguaggio strutturato e distribuito su più file, e ci sono strumenti eccellenti per aiutare con queste cose.

    
risposta data 12.01.2012 - 12:09
fonte
4

Sì, puoi, ovviamente, ma alla fine della giornata questo diventerebbe il codice sorgente. Si può semplicemente replicare la struttura ad albero del codice sorgente (espressioni che chiamano sottoespressioni e così via) e scriverlo come XML.

E se ti prendi cura di regolare la sintassi per rimuovere cruft non necessari, puoi terminare con Schema : -)

    
risposta data 12.01.2012 - 11:50
fonte
4

Il problema con questo tipo di soluzioni per il caso generale è che gli "utenti finali" tendono a pensare e scrivere in termini di "cosa voglio", che può essere estremamente lanoso, mentre i computer lavoro in termini di "cosa hai detto".

Ad esempio, se un utente dice "elimina tutte le cose non importanti", il computer non può gestire concetti come "non importante" e "roba" a meno che l'utente non lo descriva specificamente (ad es. "Ogni file e cartella che io "contrassegnato come non importante".

Finisci per dover definire cose più e più specificamente, e ad un certo punto trovi che hai variabili e funzioni, e fondamentalmente un linguaggio di scripting prototipo, che nessun non sviluppatore vorrebbe toccare perché è troppo complicato.

Tuttavia, in qualsiasi caso SPECIFICO , il linguaggio di scripting può sfruttare l'ambito limitato dell'interesse dell'utente per limitare la lingua all'insieme di regole a cui sono effettivamente interessati a scrivere. Nota che è il tipo di compito che vengono costruite intere società e tesi universitarie.

Ad esempio, se il cliente desidera essere in grado di confrontare i bilanci in base a regole definite dall'utente, è possibile fornire loro un client che gestisca tutte le cose a livello di computer, ma consentire loro di definire i campi che vogliono per confrontare e utilizzare una sintassi specifica per l'impostazione delle regole su come confrontarle . Puoi riconoscerlo come caso d'uso di base di Microsoft Excel .

Per dare un altro esempio, Software Spiderweb ha diversi editor di "Blades of Exile / Avernum" per consentire agli utenti di creare i propri livelli e amp; scenari per i giochi. Tutta l'intelligenza artificiale e l'interfaccia utente sono gestiti per l'utente. Ciò che l'utente imposta sono i flag degli eventi che si verificano quando ti sposti in uno spazio particolare, quali mostri saranno in una stanza particolare, ecc. Cosa è stato originariamente gestito dal creatore del gioco con attenzione impostando le variabili di posizione e gli eventi di trigger nel codice sorgente , è ora generalizzato e con un'interfaccia utente pulita sopra, che genera il tipo di script di cui stai parlando , che vengono letti dal motore di gioco.

    
risposta data 12.01.2012 - 12:44
fonte
2

Prima di tutto, quello che definirai sarà semplicemente un nuovo linguaggio di programmazione. Dovrai definire la lingua, la sua semantica e implementare un compilatore o interpreti per la lingua. Quindi, non ti toglierai il compito di programmare dagli sviluppatori.

Forse puoi creare un linguaggio molto semplice se hai un contesto molto ristretto in cui i programmatori devono solo specificare determinate opzioni in un file XML e hai una struttura che si prende cura del resto. Questo sembrerebbe più come la personalizzazione di un'applicazione esistente. Tuttavia, non appena avrai un'applicazione non banale, la tua lingua crescerà molto velocemente in un linguaggio di programmazione più tradizionale (con strutture dati, strutture di controllo, variabili, librerie e così via).

Se il tuo problema riguarda solo la sintassi: XML è più semplice da analizzare ma (IMHO) meno leggibile.

    
risposta data 12.01.2012 - 12:10
fonte
1

Rendere XML in un linguaggio di programmazione mi ricorda i molti tentativi falliti nel mondo dell'aviazione di prendere una piccola automobile, aggiungere ali, coda ed elica per fare una macchina volante.

Finisci con un aereo pericoloso e una macchina schifosa.

XML è un ottimo modo per trasferire dati tra sistemi diversi. Cercare di farlo diventare un linguaggio di programmazione sarà davvero un esercizio di frustrazione e futilità.

    
risposta data 20.02.2012 - 17:55
fonte
0

Non solo è teoricamente possibile, esiste già un linguaggio definito e implementato - si chiama XML Plus Plus . Non è stato sviluppato da un po ', però, ma visto che apparentemente è open source, dovresti essere in grado di continuare a svilupparlo se lo desideri.

Tuttavia, come è già stato detto e come puoi vedere dagli esempi di codice puoi trovare XML Plus Plus, la lingua non è particolarmente piacevole da programmare e richiede lo stesso sforzo mentale (oltre a un sacco di extra battitura).

    
risposta data 12.01.2012 - 13:13
fonte
0

Ho lavorato con Tango / WiTango / TerraScript che è fondamentalmente un linguaggio codificato XML (con un IDE drag-drop tree-based davvero bello). Si compila su J2EE o può essere eseguito con il proprio tempo di esecuzione. È stato basato su XML per circa 12 anni.

link

    
risposta data 12.01.2012 - 16:28
fonte

Leggi altre domande sui tag