programmazione su dispositivi palmari

6

Questo è un po 'vago. Ma ho provato a mettere le cose al punto.

Per quanto i palmari (smartphone, tablet) stiano diventando estremamente popolari ogni giorno che passa, quello che mi chiedo è, perché non ci sono grandi strumenti di programmazione per loro?

Con una grande potenza di elaborazione di questi dispositivi, non penso che ci siano problemi nell'esecuzione di compilatori o persino di IDE su piccola scala. È perfettamente accettabile che i linguaggi di programmazione convenzionali siano molto difficili da scrivere con una piccola tastiera sullo schermo. Non vorrei mai scrivere java sul mio Android.

Ma ci sono strumenti o linguaggi speciali sviluppati in questa direzione?

Per esempio, ho avuto un'applicazione Android per BrainF ** k che funzionava bene con un numero limitato di simboli (anche se il linguaggio stesso è abbastanza noioso da non usarlo).

In generale, quali sono gli scopi di questo settore e la direzione della ricerca?

Grazie.

Modifica

Si noti che intendo programmare su dispositivi mobili. Non per dispositivi mobili.

    
posta mihsathe 19.05.2011 - 06:34
fonte

6 risposte

5

In passato, a volte la programmazione è stata eseguita direttamente su dispositivi portatili. Ad esempio, sugli organizzatori di Psion, la programmazione OPL veniva spesso eseguita sul dispositivo. Il periodo di grande successo di Psions si è concluso quando hanno deciso che non volevano i clienti un po 'di tempo verso la fine degli anni '90, quindi non stiamo parlando di un dispositivo potente secondo gli standard odierni.

OPL era un linguaggio interpretato, probabilmente nella famiglia Basic strutturata.

Tuttavia, se fossi più serio, l'SDK C ++ per Psion è stato eseguito su un PC, con il file binario compilato quindi trasferito sul dispositivo.

c'erano alcuni compilatori di terze parti (hobbisti?) che giravano direttamente su un Psion, e sono abbastanza sicuro di avere un interprete Python in esecuzione sulla mia serie 5 a un certo punto.

In generale, però, non è una cosa molto pratica da fare. Lo schermo non mostra molto codice e la tastiera (se presente) non è realmente all'altezza del lavoro. Un netbook sembra la piattaforma minima per il momento che consentirebbe lo sviluppo di progetti significativi.

Molti programmatori insistono sul fatto che un singolo monitor non è sufficiente, anche un grande monitor. Sono abbastanza felice con un solo monitor 1080p, ma tornare a uno schermo con una risoluzione VGA 640x480 originale o inferiore non è una prospettiva allettante.

Non sono a conoscenza di alcuna ricerca per rendere più pratica la programmazione su una piattaforma mobile. Ci sono tastiere per proiettori e schermi per proiettori IIRC, ma entrambi sono poco pratici e non sono adatti alla programmazione. Un linguaggio appositamente progettato potrebbe avere un senso, ma è comunque possibile inserire solo tante informazioni leggibili su uno schermo piccolo, e se BF è il tuo modello per adattarsi meglio alla programmazione mobile - beh, quel linguaggio non è mai stato pensato per essere pratico per qualsiasi scopo.

Un fattore da tenere in considerazione: la stragrande maggioranza delle nuove lingue non raggiunge mai un successo.

Un dialetto Lisp ha probabilmente bisogno di un numero minore di simboli di punteggiatura rispetto alla maggior parte delle lingue: le parentesi esageratamente stupide sono le più ovvie e le virgolette posteriori sono probabilmente le più difficili di un telefono. Può minimizzare (ma non eliminare) i problemi della tastiera, e forse altri problemi possono essere tollerati - ma ho i miei dubbi.

Se vuoi provarlo tu stesso, non è mai stato più semplice progettare una lingua e scrivere un compilatore per questo. Ci sono tutti i soliti strumenti per scanner e parser, naturalmente - ad es. flex, ragel, bisonte, byacc. Ci sono strumenti per lavorare con gli AST (treecc - anche se devo ammettere che ho finito per scrivere il mio) e ci sono sistemi di generazione di back-end come LLVM o Parrot. O, naturalmente, l'approccio popolare dell'utilizzo di una piattaforma di macchine virtuali esistente come JVM o .NET.

LLVM supporta anche più piattaforme di destinazione: non so se questo include telefoni, ma credo che ci sia un modo per scegliere come target .NET o JVM usando LLVM.

    
risposta data 19.05.2011 - 06:48
fonte
2

Dipende dal tipo di telefono che stai guardando. Ho un Nokia N900, e non potrei elogiarlo abbastanza come telefono di un programmatore (ha i suoi difetti, però). Alcuni punti salienti includono:

  • Distribuzione Linux basata su Debian, con una certa compatibilità con Debian
  • GTK e Qt supportano
  • Interprete Python
  • Finestra del terminale (pronta all'uso)
  • SSH (client e server)
  • Vim, Emacs e Nano
  • Tastiera QWERTY fisica

Ha anche tutte le piccole cose come un buon browser, un buon lettore di PDF (da repository, l'impostazione predefinita è "meh ..."), emulatore di calcolatrice RP42 HP42S (Free42), emulatore di calcolatrice grafica TI86 ecc. .

Ho sviluppato piccole cose su di esso (in Python e C) ed è un grazioso piccolo mattone (con un peso di circa 200 grammi). Ci sono ancora gli inconvenienti, come ad esempio:

  • Schermo piccolo, cattiva panoramica del codice ecc.
  • La tastiera è ancora piccola
  • Gli IDE più grandi sono ancora pesanti, ma se vuoi usare solo Vim, non avrai problemi. Ho ottenuto Netbeans per l'esecuzione sul mio N900, ma è stato lento
  • Alcuni segni di punteggiatura e simboli speciali sono ancora difficili da raggiungere (ad esempio, parentesi graffe, in Python fai bene, ma a volte C può essere abbastanza doloroso)
risposta data 19.05.2011 - 08:22
fonte
2

A mio parere, la programmazione su dispositivi mobili non avviene perché non è per quello che sono i dispositivi mobili.

Le tavolette e i telefoni cellulari sono principalmente dispositivi consumo . L'input su di essi è generalmente limitato a una rapida risposta a un'e-mail, a qualche piccola modifica o inserendo alcuni parametri per specificare il contenuto che si desidera utilizzare (un indirizzo Web, ad esempio). I loro dispositivi di input corrispondono a questo modello di consumo: le tastiere morbide, ad esempio, consentono di essere nascosti quando non sono in uso, fornendo uno schermo molto più grande per le stesse dimensioni fisiche. Un'eccezione che dimostra che la regola è il BlackBerry. A differenza di molti produttori di smartphone, RIM ha mantenuto una tastiera QWERTY fisica su molti dei loro modelli, in gran parte perché l'app killer BlackBerry è una posta elettronica di livello aziendale (piuttosto che guardare video di gatti o mostrare le foto scattate in vacanza) e ha bisogno di dispositivo di input da abbinare.

Quindi, date queste restrizioni sui dispositivi di input, il contenuto produzione su qualsiasi tipo di scala (inclusa la scrittura di programmi non banali) sarà sempre migliore su un desktop (o almeno un labtop), dove puoi avere uno schermo più grande, una tastiera corretta (ad es. fisica) e, forse la cosa più importante per evitare l'affaticamento, il dispositivo si mantiene su se stesso.

Ciò non è dovuto al fatto che i dispositivi mobili non possono ospitare autonomamente i propri strumenti di sviluppo - i tablet stanno iniziando ad arrivare dove i laboratori erano alcuni anni fa in termini di prestazioni non elaborate. Molti sono perfettamente in grado di eseguire un compilatore e un semplice IDE, ma non ti divertiresti a usarli. Invece, i fornitori si stanno concentrando sul permettere ai programmatori di programmare nell'ambiente più constrongvole di un normale computer, quindi trasferire rapidamente e facilmente il codice su un dispositivo (o almeno un simulatore di esso) per il test.

In breve, tablet, smartphone e così via non sono adatti alla produzione di contenuti. Per ora, almeno, un computer convenzionale è di gran lunga migliore per l'immissione di grandi quantità di testo a causa principalmente del suo fattore di forma fisica, piuttosto che di qualsiasi problema tecnico.

    
risposta data 19.05.2011 - 10:01
fonte
1

Ho Motorola Milestone (aka Droid) e trascorro un paio di ore in metropolitana / autobus ogni giorno quindi volevo usare questo tempo per scrivere semplici script (Python o Perl) solo per fare pratica e ho provato diverse applicazioni per quello scopo.

  • Sl4a ti consente di scrivere ed eseguire script sul tuo dispositivo Android e fornisce interfacce su hardware e software , così una semplice app può essere hackerata insieme e gestita sul telefono e avere un aspetto e un tocco nativo. Il suo editor è una vera tortura da usare, ma ha un bel browser API

  • IDEdroid è un'altra cosa: è un client Android per ideone.com, quindi il codice è compilato su un host remoto e l'output ritorna a te avvolto nella messagebox di Android. Non è l'applicazione più utilizzabile che abbia mai visto, sicuramente, ma puoi scrivere in 40 lingue e ora presenta l'evidenziazione della sintassi.

  • Touchqode è un tentativo di creare un buon editor di testo per la programmazione su dispositivi palmari, la mia funzione preferita è aggiuntiva pulsanti , ad es Ho una tastiera hardware qwerty e alcuni pulsanti su schermo extra per parentesi graffe, sigilli e simili.

  • Vim (in effetti, l'intero ambiente Linux) su ssh è risultato il più comodo per me - la navigazione avanzata delle combinazioni di tasti aiuta molto quando si ha uno schermo piccolo.

Finora la programmazione su smartphone non è la migliore esperienza utente, ma ho sottolineato i punti che mi sono piaciuti di più su ciascuno degli strumenti e tutti insieme in un'unica app potrebbero renderlo più semplice.

    
risposta data 19.05.2011 - 08:49
fonte
0

Per me almeno lo schermo piccolo e la mancanza di un dispositivo di input corretto (leggi: tastiera ergonomica a schermo intero e tablet con penna) significa che non è una buona idea usare un telefono o un tablet su cui programmare.

    
risposta data 19.05.2011 - 09:03
fonte
0

Sebbene questi non siano esempi di programmazione per del dispositivo mentre su il dispositivo, poiché li ho usati per modificare il codice Objective-C su un server remoto che è stato successivamente compilato in un'applicazione in esecuzione, in qualche modo si adatta alla tua domanda ed è probabilmente l'unico esempio che otterrai qui per la codifica mobile iOS non jailbroken.

Textastic è un'app editor di codice molto buona che funziona su iPad. Risolve la maggior parte dei problemi con la codifica in altri editor di testo su dispositivi iOS:

  • Evidenziazione della sintassi per un sacco di lingue

  • Tasti della tastiera aggiuntivi: tab () {} [] < > = / \ '"

  • Formattazione del testo in stile di codifica generale che ti aspetteresti (rientro automatico, larghezza della scheda configurabile, ecc.)

  • Forse la cosa più importante, FTP, SFTP, WebDAV, iDisk e supporto Dropbox (insieme alla sincronizzazione di iTunes), e può funzionare come server WebDAV per altri dispositivi. Effettuare una rapida modifica a un file remoto è in realtà abbastanza semplice.

L'altra app decente per iPad per la modifica del codice è Nebuloso Note . Ciò che non ha lo rende meno ideale: Dropbox e iTunes solo sync e nessuna evidenziazione della sintassi. Ciò che aggiunge, però, è piuttosto grande:

  • Una riga aggiuntiva di chiavi completamente personalizzabile, compresi i caratteri che ti aspetteresti, più, soprattutto, tasti di navigazione testuale e macro configurabili (ad esempio, racchiudere tra parentesi quadre il testo selezionato).

Entrambe le app supportano le anteprime Markdown e MultiMarkdown in modo che tu possa scrivere risposte SO / SA complesse e vedere come appariranno piuttosto che provare a digitarle in Safari. ;)

    
risposta data 19.05.2011 - 10:01
fonte

Leggi altre domande sui tag