11

注意: Portableapps.com のようにポータブルであり、複数のアーキテクチャやオペレーティング システムで使用できる言語の伝統的な意味ではありません。ポータブルという言葉のこの用法を作り出した人は誰であれ、叩かれるべきです。:)

私は DBA 兼システム管理者で、主に SQL Server を実行している Windows マシンを担当しています。管理者アクセスやインストーラーを必要とせず、フォルダーに展開する以外にインストール プロセスを必要としない、Windows 用のプログラミング/スクリプト言語を探しています。私の意図は、標準化できる自動化のための言語を用意することです。

これまで、 UnxUtilsのsh.exe を使用して、バッチ ファイルと Unix シェルを組み合わせて使用​​してきましたが、完全な解決策にはほど遠いものです。

私はいくつかのオプションを評価しましたが、それらのすべてに少なくとも 1 つまたは別の深刻な欠点があります。私はオープン ソースまたはデュアル ライセンスを強く好みますが、何よりも適切なツールを見つけることに関心があります。Cygwin や Java に依存するものには興味がありませんが、現時点では、.NET を必要とするもので問題ありません。

要件:

  • 管理可能なフットプリント (1 ~ 100 ファイル、30 MB 未満のインストール)
  • Windows XP およびサーバー (2003 以降) で実行
  • インストーラーなし (exe、msi)
  • JVM または Cygwin のインストールに依存しない
  • 外部パイプ、プロセス、およびファイルで動作します
  • MS SQL Server または ODBC 接続のサポート

ボーナスポイント:

  • オープンソース
  • ネイティブ DLL で関数を呼び出すための FFI
  • GUI サポート (ネイティブまたは gtk、wx、fltk など)
  • Linux、AIX、および/または OS X のサポート
  • 動的、オブジェクト指向および/または機能的、解釈済み、またはコンパイル済みのバイトコード。インタラクティブな開発
  • スクリプトを実行可能ファイルにパッケージ化またはコンパイルできる

これまでのところ、私は試しました:

  • Ruby: ディスク上に 148 MB、23000 ファイル
  • ポータブル Python: ディスク上に 54 MB、2800 ファイル
  • Strawberry Perl: ディスク上に 123 MB、3600 ファイル
  • REBOL: ソースがクローズドで、無料版に MSSQL や ODBC がないことを除けば素晴らしい
  • Squeak Smalltalk: スクリプティングのサポートが貧弱であることを除けば、すばらしい
4

7 に答える 7

9

Luaを試してみてください。あなたの要件について:

  • 小さなフットプリント (56 個のソース ファイル、150K 以下のコンパイル済み)
  • どこでも実行可能 (ANSI C のみを使用)
  • インストーラーは不要です。ソースからコンパイルします(私が調べていない「バッテリーが含まれる」パッケージもあります
  • JVM を必要とせず、任意の ANSI C コンパイラで動作するため、Cygwin ではなく Visual Studio でコンパイルできます
  • 外部プロセスとファイルで動作しますが、ANSI C でサポートされている範囲でのみ機能します。POSIXpopenが提供されている場合は、それもサポートされます。

そしてあなたのボーナスポイント:

  • オープンソース (MIT ライセンス)
  • FFI to C は、見事に考案され、実行されています。Tcl ほど単純ではありませんが、より強力にロードされます。 Python や Ruby よりも C との統合がはるかに優れています。
  • GUI のサポートはさまざまですが、wx ウィジェットには適切なバインディングがあります。QT サポートは一時ありましたが、維持されているかどうかはわかりません。
  • Linuxがサポートされています
  • 言語/コンパイラ機能:
    • 動的
    • 機能的
    • プロトタイプベースのオブジェクトとメタメソッドによる継承(以下の本の例を参照してください)
    • 欧米で最速のバイトコード コンパイラ
    • インタラクティブな read-eval-print ループ。新しいコードを動的にロードする
  • スクリプトを実行可能ファイルにパッケージ化できます。Luiz de Figueiredo のsrlua.

追加のボーナス ポイント:

于 2010-01-26T01:15:46.047 に答える
3

あなたの法案に合うかもしれない Python のためのいくつかのオプションがあります:

  • 1 つ目はIronPython で、インストーラーなしで実行でき、.net API とうまく連携します。これにより、PIA を構築できる .net API または COM タイプライブラリを使用して、あらゆるものにアクセスできます。まさにこの理由で、スクリプト メカニズムとして at を使用しました。システム内のディレクトリにドロップでき、明示的にインストールする必要はありませんでした。

    適切な .Net ランタイムをインストールする必要がありますが、.Net 2.0は SQL Server 2005 と共にインストールされます。SQL Server には ADO.net からアクセスでき、Winforms を使用した GUI の構築は非常に簡単です。

  • 2 つ目は、USB キーで実行するように設計されたPortable Python です。すでに試したことがあると思いますが、欠点が何であったかについて詳しく説明するかもしれません。基本的なインストールで利用できないものがある場合は、それを含めてカスタム バージョンを構築することをいつでも検討できます。TkInter (少なくとも) がバンドルされています。

    また、Py2EXE を使用して、不要なジャンクをすべて取り除いたスタンドアロンの Python アプリケーションを生成することもできます。これにより、1 つのディレクトリ (おそらく USB キー) から実行できる (DLL の数に応じて) 約 10 個のファイルが得られます。

Unix-oid OS でローカルにインストールされた python を実行するのは非常に簡単です。また、Python はほとんどの Linux ディストリビューションに付属しており、すべてではないにしてもほとんどのトラッド UNIX ベンダーから「寄稿ソフトウェア」として入手できます。IIRC も MacOS にバンドルされています。

于 2010-01-25T21:58:44.020 に答える
2

Tclkitは、単一ファイルの自己完結型 Tcl/Tk システムです。私が持っている Mac バージョンは約 3.8 メガです。最新のほぼすべての OS のバージョンを入手できます。Mac、Windows、Linux のバイナリが入ったサム ドライブを持ち歩いているので、どのプラットフォームでもスクリプトを実行できます。インストールは必要ありません。必要な場所に 1 つのファイルをコピーするだけです。

元の仕様に欠けているのは、MS SQL Server / ODBC のサポートだけです。人々がそのためにtclを使用していることは知っていますが、追加のライブラリなどを追加する必要があると思います. 詳細については、MS SQL Server の Tcl'ers wiki エントリを参照してください。

于 2010-01-25T21:40:03.133 に答える
1

ウィキペディアの移植可能なソフトウェアの完全なリストを見ると、 Tiny C コンパイラーがあり、これもウィキペディアのここにあり、独自のホームページはここにあります。

ウィキペディアの機能リストから引用して要約すると、次のようになります。

  • 小規模 - たとえばレスキュー ディスク (C プリプロセッサ、C コンパイラ、アセンブラ、リンカを含む x86 TCC 実行可能ファイルの場合、約 100KB) など、どこでも C コードをコンパイルして実行できます。
  • 高速 - tcc は最適化された x86 コードを生成します。バイトコードのオーバーヘッドはありません。GCC よりも約 9 倍高速にコンパイル、アセンブル、およびリンクします。
  • 任意の C 動的ライブラリを直接使用できます。TCC は完全な ISOC99 準拠に向かっています。もちろん、TCC はそれ自体をコンパイルできます。
  • オプションのメモリーとバウンドチェッカーが含まれています。バウンド チェック コードは、標準コードと自由に組み合わせることができます。
  • C ソースを直接コンパイルして実行します。リンクや組み立ては不要です。完全な C プリプロセッサと GNU ライクなアセンブラが含まれています。
  • C スクリプトがサポートされています。C ソースの最初の行に '#!/usr/local/bin/tcc -run' を追加して、コマンド ラインから直接実行してください。
  • libtcc を使用すると、TCC を動的コード生成のバックエンドとして使用できます。
  • 依存関係はほとんどありません。独自の手書きレクサーが含まれており、再帰降下パーサーを使用して実装されています。したがって、TCC のビルドには他のライブラリはほとんど必要ありません。
  • その LGPL ライセンスは、誰もがソフトウェアを使用、変更、および/または再配布することを許可し、オープン ソースまたはプロプライエタリ ソフトウェアの開発に使用できます。

これがお役に立てば幸いです。よろしくお願いします、トム。

于 2010-01-26T02:10:46.437 に答える
0

tclの場合、Tclkitとは別に、freewrapはtcl用のもう1つの小さなポータブルな自己完結型インタープリターです。

freewrap実行可能ファイルの名前を別の名前に変更するだけで、スタンドアロンインタープリターに変換されます。名前をfreewrapに戻すと、スクリプトラッパーに変換されます。

また、フリーラップされたアプリにはtclインタープリターが含まれています。緊急時には、アプリをzipファイルとして開いて、そこに含まれているtclコードを編集/置換してみてください(最初にコピーを作成することを忘れないでください)。これにより、開発ツールを使用せずにクライアントサイトにいるときに、何かのトラブルシューティングを行う必要がある場合に、何度か節約できました。デプロイしたアプリとprestoの1つをコピーするだけです-インスタント開発環境です!

于 2010-01-26T01:55:37.970 に答える
0

Lua の提案に加えて、Idleもあります。これは基本的に、Lua 5.1 のスーパーセットであり、Lua に基づく言語 (およびライブラリ) と実装の両方を備えています。もともとは、Windows 用のより完全なスクリプト ソリューションとして作成されました。Lua は主に埋め込みを目的としているため、かなり小さな標準ライブラリがあり、埋め込みアプリケーションが豊富なライブラリを Lua に提供することが通常期待されています。

これは組み込み言語にとって理にかなっています。結局のところ、Adobe Lightroom、Nginx、World of Warcraft などの間には共通の機能があまりないため、標準ライブラリに入れることができるものは何もないからです。しかし、より汎用的な OS スクリプト言語の場合、少し大きなライブラリが必要になります。したがって、Idle は、Lua の標準ライブラリに、サードパーティの (Windows では動作しにくい場合がある) いくつかのライブラリをバンドルしています。

Idle 標準ライブラリが Lua に追加するものには、緊密な Win32 統合、SQLite3 サポート、ネットワーク サポート、PEG パーサー ジェネレーター、アーカイブ サポートなどがあります。

また、Idle は Perl および C コードを Idle プログラムに埋め込むことをサポートしています。

于 2010-01-26T03:00:32.193 に答える
0

最新の Windows バージョンにはすべて、VBScript と JScript の両方がプリインストールされています。はすべての機能を満たしているわけではありません(実行可能ファイルへのコンパイルが思い浮かびます) が、インストール サイズに関しては確かに無敵の利点があります0

于 2010-01-26T03:18:45.867 に答える