web-dev-qa-db-ja.com

ハンドヘルドデバイスでのプログラミング

これは少しあいまいです。しかし、私は物事を要点を絞ってみました。

ハンドヘルド(スマートフォン、タブレット)が日々非常に人気が高まっているのと同じくらい、なぜそれらに優れたプログラミングツールがないのでしょうか。

これらのデバイスの優れた処理能力があれば、コンパイラや小規模のIDEを実行しても問題はないと思います。従来のプログラミング言語は、画面上の小さなキーボードで書くのが非常に難しいことは完全に受け入れられます。 AndroidでJavaと書いたくありません。

しかし、この方向で開発されている特別なツールや言語はありますか?

たとえば、Androidアプリケーションは、限られた数のシンボルで問題なく動作しました(ただし、言語自体は使用しないほど退屈です)。

この領域の範囲と、もしあれば、研究の方向性は一般的に何ですか?

ありがとうございました。

編集

モバイルデバイスでのプログラミングを意味していることに注意してください。モバイルデバイスでは使用できません。

6
mihsathe

以前は、ポータブルデバイスで直接プログラミングが行われることがありました。たとえば、Psionのオーガナイザーでは、OPLプログラミングがデバイス上で行われることがよくありました。 Psionsが本当に成功した期間は、90年代後半に顧客を望まないことを決めたときに終了したため、今日の標準では強力なデバイスについて話していません。

OPLはインタープリター型言語でした-おそらく構造化されたBasicファミリーに属していました。

ただし、より真剣な場合は、PsionのC++ SDKがPCで実行され、コンパイルされたバイナリがデバイスに転送されました。

ありますありました Psionで直接実行されたサードパーティ(趣味?)コンパイラ。そして、私が5シリーズでPythonインタプリタを実行していたと確信しています。ワンポイント。

ただし、一般的には、それほど実用的ではありません。画面には多くのコードが表示されず、キーボード(存在する場合)は実際には機能しません。ネットブックは、重要なプロジェクトの開発を可能にする現時点での最小限のプラットフォームについてのようです。

多くのプログラマーは、単一のモニターでは十分ではないと主張します-大きなモニターでさえです。単一の1080pモニターで十分満足ですが、元のVGA 640x480解像度以下の画面に戻ることは魅力的な見込みではありません。

モバイルプラットフォームでのプログラミングをより実用的にするための研究については知りません。 IIRCプロジェクターキーボードとプロジェクタースクリーンがありますが、どちらも少し実用的ではなく、プログラミングを目的としたものではありません。特別に設計された言語は理にかなっているかもしれませんが、小さな画面に非常に多くの読みやすい情報を収めることができます。BFがモバイルプログラミングにより適したモデルである場合、まあ、その言語は実用的なものではありませんでした目的。

考慮すべき1つの要素-新しい言語の大部分は成功することはありません。

LISP方言はおそらくほとんどの言語よりも少ない句読記号を必要とします-腹立たしいほど多くの愚かな括弧が最も明白であり、逆引用符はおそらく電話で最も厄介です。それはキーボードの問題を最小限に抑えるかもしれません(しかし排除しないかもしれません)、そしておそらく他の問題は許容することができます-しかし私は私の疑問を持っています。

しかし、自分で試してみたい場合は、言語を設計してコンパイラーを作成するのがこれまでになく簡単になりました。もちろん、スキャナーとパーサーのためのすべての通常のツールがあります-例えばフレックス、レーゲル、バイソン、バイアック。 AST(treecc-確かに私は自分で作成した)を操作するためのツールがあり、LLVMやParrotなどのバックエンドコード生成システムがあります。または、もちろん、JVMや.NETなどの既存の仮想マシンプラットフォームを使用する一般的なアプローチです。

LLVMは複数のターゲットプラットフォームもサポートしています-それが電話を含むかどうかはわかりませんが、LLVMを使用して.NETまたはJVMのいずれかをターゲットにする方法があると思います。

5
Steve314

それはあなたが見ている電話の種類に依存します。私はNokia N900を持っていますが、プログラマーの電話としては十分に賞賛できませんでした(ただし、欠点があります)。主な内容は次のとおりです。

  • DebianベースのLinuxディストリビューション(Debianとの互換性あり)
  • GTKとQtのサポート
  • Pythonインタープリター
  • ターミナルウィンドウ(標準)
  • SSH(クライアントとサーバー)
  • Vim、Emacs、Nano
  • 物理QWERTYキーボード

また、優れたブラウザ、優れたPDFリーダー(リポジトリからの場合、デフォルトは「meh ...」のようなものです)、HP42S RPN計算機エミュレータ(Free42)などの小さなものもすべて備えています。 、TI86グラフ電卓エミュレータなど.

私はそれに小さなものを開発しました(Python and C)で、それは素敵な小さなレンガです(およそ200グラムの重さ)。彼にはまだ次のような欠点があります:

  • 画面が小さい、コードの概要が悪いなど.
  • キーボードはまだ小さい
  • より大きなIDEはまだ重いですが、Vimのみを使用したい場合は問題ありません。 N900でNetbeansを実行させましたが、slowでした
  • 一部の句読点や特殊記号はまだ届きにくいです(例:中かっこ、Pythonでは問題ありませんが、Cは時々かなり苦痛になることがあります)。
2
Anto

私の意見では、モバイルデバイスのプログラミングはモバイルデバイスの目的ではないため、起こりません。

タブレットと携帯電話は主にコンテンツconsumptionデバイスです。それらへの入力は、通常、電子メールへの迅速な返信、いくつかの小さな編集、または使用するコンテンツ(Webアドレスなど)を指定するためのパラメーターの入力に制限されています。それらの入力デバイスは、この消費モデルに対応しています。たとえば、ソフトキーボードを使用すると、使用していないときは非表示にできるため、同じ物理寸法でも画面がはるかに大きくなります。ルールを証明する例外はBlackBerryです。多くのスマートフォンメーカーとは異なり、RIMはいくつかのモデルで物理的なQWERTYキーボードを保持しています。これは主に、BlackBerryキラーアプリがエンタープライズ級の電子メールであるためです(猫のビデオを見たり見せたりするのではなく)ホリデースナップ)、それに一致する入力デバイスが必要です。

したがって、入力デバイスに対するこれらの制限を考えると、あらゆる種類のスケール(重要なプログラムの作成を含む)でのコンテンツproductionは、デスクトップ(または少なくともラボトップ)で常に優れています。より大きな画面、適切な(つまり、物理的な)キーボード、そしておそらく疲労を回避するために最も重要なのは、デバイスがそれ自体を支えていることです。

これは、モバイルデバイスが開発ツールをセルフホストできなかったためではありません。タブレットは、生のパフォーマンスの点で数年前のラボトップの場所に到着し始めています。ほとんどはコンパイラとシンプルなIDEを完全に実行することができますが、それらを使用するのは楽しいものではありません。その代わりに、ベンダーはプログラマーが通常のコンピューターのより快適な環境でプログラミングできるようにし、テストのためにコードをデバイス(または少なくともシミュレーター)にすばやく簡単に転送できるようにすることに焦点を当てています。

つまり、タブレットやスマートフォンなどはコンテンツ制作には向いていないのです。現時点では、少なくとも従来のコンピュータは、技術的な問題よりも、主に物理的なフォームファクタのため、大量のテキストを入力するのにはるかに優れています。

2
Scott

私はモトローラマイルストーン(ドロイドとも呼ばれます)を持ち、毎日電車やバスで数時間を費やしているので、練習のためにこの時間を単純なスクリプト(PythonまたはPerl)の記述に使用したいと思い、その目的のためにいくつかのアプリケーションを試しました。

  • Sl4a Androidデバイスでスクリプトを記述して実行し、ハードウェアおよびソフトウェアへのインターフェースを提供します、シンプルなアプリを一緒にハッキングして電話で実行し、ネイティブのルックアンドフィールにすることができます。そのエディターは本当の拷問ですが、Nice APIブラウザーを備えています

  • IDEdroid は別のものです-Androidクライアントなので、コードはリモートホストでコンパイルされますと出力が返され、Androidのメッセージボックスにラップされます。私が見た中で最も使いやすいアプリケーションではありませんが、40言語のように書くことができ、構文が強調表示されます。

  • Touchqode は、ハンドヘルドデバイスでのプログラミングに適したテキストエディターを作成する試みです。私のお気に入りの機能は、追加ボタンです。ハードウェアqwertyキーボードと、ブレース、シギルなどの追加の画面上のボタンがあります。

  • Sshを介したVim(実際にはLinux環境全体)が私にとって最も快適であることが判明しました-高度なブラウジングキーバインド小さな画面。

これまでのところ、スマートフォンでのプログラミングは最高のユーザーエクスペリエンスではありませんが、各ツールについて最も気に入っている点を強調しました。1つのアプリにすべてを組み合わせることで、より簡単になる可能性があります。

1
Roman Grazhdan

私にとって、少なくとも画面が小さく、適切な入力デバイスがないこと(読み取り:フルスクリーンの人間工学に基づいたキーボードとペンタブレット)は、プログラムに電話またはタブレットを使用することはお勧めできないことを意味します。

0
jwenting

これらは for デバイスの on デバイスのプログラミングの例ではありませんが、Objective-Cコードの変更に使用したためです。後で実行中のアプリにコンパイルされたリモートサーバーでは、質問にいくらか当てはまり、ジェイルブレイクされていないiOSモバイルコーディングについてここで取得できる唯一の例です。


Textastic は、iPadで実行される非常に優れたコードエディターアプリです。 iOSデバイス上の他のテキストエディターでのコーディングに関する問題のほとんどを解決します。

  • 多数の言語の構文ハイライト

  • 追加のキーボードキー:タブ(){} [] <> =/\ '"

  • 予想される一般的なコーディングスタイルのテキストフォーマット(自動インデント、設定可能なタブ幅など)

  • おそらく最も重要なことは、FTP、SFTP、WebDAV、iDisk、およびDropboxのサポート(iTunesの同期とともに)、および他のデバイスのWebDAVサーバーとして機能することです。リモートファイルをすばやく変更することは、実際にはかなり簡単です。


コード編集用の他のまともなiPadアプリは Nebulous Notes です。 DropboxとiTunesは同期するだけで、構文の強調表示はありません。ただし、追加される内容は非常に優れています。

  • 予想される文字に加えて、最も重要なのはテキストナビゲーションキーと構成可能なマクロを含む、完全にカスタマイズ可能な追加のキーの行(たとえば、選択したテキストを角かっこで囲む)。

どちらのアプリもMarkdownおよびMultiMarkdownプレビューをサポートしているため、Safariに入力するのではなく、複雑なSO/SAの回答を記述して、それらがどのように表示されるかを確認できます。 ;)

0