1

これはちょっとばかげた質問ですが、私は一番合いません。同じプログラムを使って1つのファイル(13メガピクセルの写真や大学のスライドなど)を送信する小さなツールをプログラムしたい。したがって、プログラムは簡単にインターネット経由でファイルを送受信する必要があります。プログラムはコマンドラインではなくGUIでなければなりません。問題は、プログラムがWindows(7)とMac OS Xで動作することです。これにはたくさんの良いプログラム(ウェブサイトさえ)がありますが、私はこのlitteツールを学習中のプロジェクトとして利用します新しい言語のために。だから私を助けてください:)ネットワーク転送とGUIプログラミングにはどの言語が「最適」ですか?

私はこのためにPythonを使用することを考えましたが、GUIを持っているPythonプログラムは本当にネイティブではありませんでした。一方、C#はWindows GUIにとって非常に強力ですが、Mono-ProjectがMac OS X上でうまくやっていて、Mac OS X上でネイティブな外観を持っているのかどうかはわかりません。おそらくJavaは良い考えですが、しかし、私はJavaが好きではありません(むしろscalaはかなりいいです)。もしJavaの良い選択肢があれば、私は代わりを好むでしょう。 Scalaは素晴らしいかもしれませんが、ネットワーク用のスカラーライブラリが非常に小さく、GUIのサポートがまったくないことは怖いです。クルト

あなたのコメント、ヒントのANSのヒントを待っています...私は、すべてのJavaライブラリを使用することができます知っているが、私はJavaでプログラムすることはできませんので、私は二つの言語を習得しなければなりません

//編集: 友人にソフトウェアを配布するための実行可能ファイル(Windowsの場合はexe、Macの場合はapp)を作成することができます。だからこれはまた、言語のための要件になります:)

+1

アプリケーションをWebベースにすると、移植性が向上します。 –

+0

@GabrielŠčerbák:私は同意しません。多くのポータブル言語があります。 Webに行くだけで、プラットフォームの非互換性がOSからブラウザに移動します。すべての一般的なブラウザで動作するWebページを作成できるのと同じように、すべての一般的なOSで動作するデスクトップアプリケーションを作成するのと同じくらい簡単です。 –

+1

@Bryan Oakley:ページ要素(HTML)のためのWeb標準があり、ネイティブウィジェットの標準がないことを除いて、私はあなたのポイントを得て、問題は問題そのものです。 –

答えて

4

クロスプラットフォームです。非常に幅広く使用されているため、サポートを見つけるのに苦労することはありません。多分あなたは再考すべきでしょう。

+0

私は本当に記述する方法はわかりませんが、JavaはPythonやScalaのような "魔法の効果"を持っていますか?この言語はちょっと退屈なようです(言い訳して申し訳ありません)。 – Kurt

+1

Javaはクロスプラットフォームではありません。ちょうど数週間前、すばらしいスイングGUIを持っていた私の会社の求人アプリケーションのコードを提出しました。のみ、それはWindows上でのみ働いた。仕事を確保するために可能な限り最良のコードを書くときに、複数のプラットフォームで作業する非常にシンプルなGUIを手に入れることができない場合、間違ったことがあります(ただし、「何か間違っている」ことがあります特定の候補者) –

4

あなたが本当にJavaに耐えられないなら、私の提案はQTツールキットでC++になります。

+0

ありがとう、私はC++についてもっと深く見ていきます! – Kurt

+0

あなたの好みにもよりますが、特にメモリ使用量を最適化したい場合は、C++が良い選択ではないかもしれません:) –

+0

QTフレームワークは、通常の新規/削除の複雑さのほとんどを隠します。オブジェクト。 –

3

Scalaを使用している場合は、JVMの機能を利用して、選択したプラットフォームで実行し、Javaネットワークライブラリを利用することができます。ただし、Javaでプログラムする必要はありません。

Here's a simple tutorial Scala。対話型のコンソールがあるので、対話的に試してみることができます。

+0

これは本当に興味深いですね。私はいくつかのチュートリアルを見つけようとしましたが、見つけられませんでした。多分あなたは良い情報源を知っていますか? THX – Kurt

+0

申し訳ありません。 ScalaのAPIが不十分だと思えば、スカラでJava APIを直接使用するので、スカラーであれば2つの言語の学習に関するあなたの議論 –

+0

の引数を参照してください。 –

1

wxPythonツールキットは、Mac OSとWindowsの両方に適した見た目のユーザーインターフェイスを作成します。シンプルなプログラムであればOK以上になるはずです。

あなたは使用して両方のプラットフォームのための実行可能ファイルを作成することができます:あなたが見て可能性が

+0

[OK]をクリックすると、実行可能ファイルを作成して、それを与えることができます - 私の妹は、彼女がpythonをインストールせずにプログラムを使用できると言いますか? THX! – Kurt

+0

はい、そうです。私の編集された答えを見てください。 – kgiannakakis

1

Clojureにあります - それはJVM上で動作する素晴らしいLispのような言語です。だから、あなたがしたくない場合は、Java自体を使用することなく、Javaのクロスプラットフォームのライブラリをすべて入手できます。

私はClojureでWindowsで開発したが、初めてMacで再コンパイルや変更をしないでGUI(Swing)アプリケーションを作成しました。

+1

これはスカラーと同じ問題ですね。 clojureとscalaのメリットは何ですか?ありがとう! – Kurt

+1

ええ、それはScalaに似た状況です - 私は "問題"は見ませんが。ライブラリを使用するためにJavaを知る必要はありません。APIの読み方を理解するだけです。 – mikera

1

うわー、私はあなたにウェブテクノロジーの使用を提案していますか?

+0

ええ、これはphp/perlを使うのが最も簡単な方法だと思いますが、私は "デスクトッププログラミング"を学び、実行可能ファイルを作りたいと思っています。 – Kurt

+0

@kurt「デスクトッププログラミング」のようなものはありません。 – Yehonatan

+0

@イエナナタン:「デスクトッププログラミングのようなものはない」とはどういう意味ですか?もちろんあります。それ以外に、デスクトップアプリケーションを作成するプログラミングとは何か?確かに、「デスクトップ」はちょっとした誤解です。それは実際には「非ウェブ」を意味しますが、それはかなり一般的な用語です。 –

0

私はtcl/tkを提案します。 TkにはWindowsとMac上のネイティブウィジェットがあり、Tclではネットワークプログラミングがとても簡単です。 tclを使用すると、単一のファイル実行可能ファイル、またはクロスプラットフォームのアプリケーションファイルを持つプラットフォーム固有のランタイムを簡単に作成することができます。どちらのアプローチでも、コードは組み込みの仮想ファイルシステムに存在することができ、コードを簡単に整理できます。

「tkは醜い」と言っているウェブ上の意見が見えますが、それらの意見は主に旧バージョンや単純な無知に基づいています(tkは少し古いです)。現代のTkは90年代よりもはるかによく見えます。あなたのアプリを設計する上での少しの常識は長い道のりになります。

Tclを習得したくない、あるいは習得したくない場合、TkはTcl、Python、Ruby、PERLなどの多くの主要な動的言語で動作します。詳細についてはhttp://www.tkdocs.com

関連する問題