GUIがむずかしすぎる
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2009/10/18(日) 17:54:43GUIは私の知能じゃむり
0002デフォルトの名無しさん
2009/10/18(日) 18:00:370003デフォルトの名無しさん
2009/10/18(日) 18:03:390004デフォルトの名無しさん
2009/10/18(日) 18:07:140005,,・´∀`・,,)っ-○○○
2009/10/18(日) 18:09:160006デフォルトの名無しさん
2009/10/18(日) 18:14:400007デフォルトの名無しさん
2009/10/18(日) 18:18:300008デフォルトの名無しさん
2009/10/18(日) 18:21:33今はいくらでも簡単に作れるジャマイカ
0009デフォルトの名無しさん
2009/10/18(日) 18:43:04自前でサンクとかやれば色々と応用が利く。
0010デフォルトの名無しさん
2009/10/18(日) 18:49:460011デフォルトの名無しさん
2009/10/18(日) 18:55:53MFCも簡単だけど、フレームワークって言うのに抵抗があるかも・。
0012デフォルトの名無しさん
2009/10/18(日) 18:58:210013デフォルトの名無しさん
2009/10/18(日) 18:59:070014デフォルトの名無しさん
2009/10/18(日) 19:01:21出力は標準出力。
入力は標準入力。
オプションは引数。
これだけだもの。
GUIだと、それらができるのは当たり前。
使いやすいように、オプションの配置を考えて
グループ分けし、状況に合わせてツリー表示やテーブル表示にし、
ユーザーの希望にあわせてウインドウをリサイズし、
説明も表示し、環境に合わせて言語も変える。とか
”使いやすい”を目指して作らないといけない。
0015デフォルトの名無しさん
2009/10/18(日) 19:03:12ATL/WTLはC++ヲタの人達にはそこそこ評判いいみたいだけど、
結構癖が強いんで、それならQtでいいやーみたいな
今さらやるならC#でWPF使っとくのが一番手っ取り早いんじゃない?
Windows使えねーって人達はQt触るなりcppguiに期待するなり、
PerlやPythonのtkバインディング使うなりするのがよろし
0016デフォルトの名無しさん
2009/10/18(日) 19:04:50ここいっとけ
Lily C++ GUI Library
http://kengolab.net/lily/lily_tips/
0017デフォルトの名無しさん
2009/10/18(日) 19:07:18意味では楽だけど、network とか curses を使うならそれなりに面倒だよ。
0018デフォルトの名無しさん
2009/10/18(日) 21:21:01全部Unixのコマンドラインでやってたよ。
0019デフォルトの名無しさん
2009/10/18(日) 21:22:540020デフォルトの名無しさん
2009/10/18(日) 22:29:42VB亡き後の後継の筈のActive BASICが.NET路線を
追いかけてしまい停滞しているからw
0021デフォルトの名無しさん
2009/10/18(日) 22:37:04この開発者は無駄に人生使ってる
0022デフォルトの名無しさん
2009/10/19(月) 00:17:43部品張ってイベント処理書くだけなのに茨の道もクソもあるか。
0023わかんないんです(><) ◆WAkan9Ey1g
2009/10/19(月) 00:56:390024デフォルトの名無しさん
2009/10/19(月) 00:59:01標準入出力とか、コマンドラインの引数みたいに標準ライブラリの枠組みの中に
会ったらよかったのに。
0025デフォルトの名無しさん
2009/10/19(月) 00:59:470026デフォルトの名無しさん
2009/10/19(月) 01:03:41GUIだけならいいんだが、それ以外のも一緒についてくるのは確かに嫌だな。
STL使えばいいのになぜか独自のコレクションクラス使ってたり。
0027デフォルトの名無しさん
2009/10/19(月) 01:23:46めんどくさいだけ
0028デフォルトの名無しさん
2009/10/19(月) 02:57:59VB系のGUIツール前提という開発の呪縛から逃れることを勧める。
0029デフォルトの名無しさん
2009/10/19(月) 03:28:120030デフォルトの名無しさん
2009/10/19(月) 03:34:350031デフォルトの名無しさん
2009/10/19(月) 06:48:55言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
0032デフォルトの名無しさん
2009/10/19(月) 12:38:020033デフォルトの名無しさん
2009/10/19(月) 12:40:130034デフォルトの名無しさん
2009/10/19(月) 18:04:540035デフォルトの名無しさん
2009/10/19(月) 21:29:100036デフォルトの名無しさん
2009/10/19(月) 21:30:32http://kengolab.net/lily/lily_tips/
0037デフォルトの名無しさん
2009/10/19(月) 21:32:320038デフォルトの名無しさん
2009/10/19(月) 21:34:370039デフォルトの名無しさん
2009/10/19(月) 21:37:080040デフォルトの名無しさん
2009/10/19(月) 21:44:10そうゆう事を言ってるわけじゃないですね、はい。
0041デフォルトの名無しさん
2009/10/19(月) 23:24:570042デフォルトの名無しさん
2009/10/19(月) 23:26:38WindowsならWPFでも使ってればいい
MacはCocoaにしてもCarbonにしても塵
0043デフォルトの名無しさん
2009/10/19(月) 23:29:37> MacはCocoaにしてもCarbonにしても塵
なんで塵なの?
0044デフォルトの名無しさん
2009/10/19(月) 23:41:050045デフォルトの名無しさん
2009/10/20(火) 00:38:41遷移図が超カオス
0046デフォルトの名無しさん
2009/10/20(火) 01:24:21規模が大きくなりすぎないように分割して行くから、
仕様書は、たいてい、ユースケース記述+クラス図+シーケンス図でカバー出来てるな
0047デフォルトの名無しさん
2009/10/20(火) 09:00:57そういった(コーディングから離れて)設計に立ち返る意識が持てる
境地に達していれば、無問題だろな。
遷移マシンがMVCのM(モデル)であることに気が付くこと(>>45)が、最初の一歩。
0048デフォルトの名無しさん
2009/10/20(火) 10:18:200049デフォルトの名無しさん
2009/10/20(火) 10:20:390050デフォルトの名無しさん
2009/10/20(火) 10:29:13遷移そのものが存在しないわな
0051デフォルトの名無しさん
2009/10/20(火) 11:05:17「ブラウザー自身は状態を持たない」は正しくないこともない
0052デフォルトの名無しさん
2009/10/20(火) 11:45:46一般にViewとModelは同一マシン(メモリ空間上)に存在するから、VはMの状態を参照できる。
一方、もし>>51がWebの事を言っているなら、Client(Webブラウザ)とServer(Webサーバ)は、
ネットワーク上で分散しているから、ClientはServerの状態を(直接的には)参照できない、
という違いがある。したがって、ClientもまたMVCパラダイムで設計され、ClientのMと
Server(Mのみ)との間で、規約(HTTP)に従った通信が必要になる。
0053デフォルトの名無しさん
2009/10/20(火) 15:26:00そういやオカモトのスタンダードタイプは\500〜\3000まであるが、
いったい何が違うんだろう。装着感?
0054デフォルトの名無しさん
2009/10/20(火) 16:10:050055デフォルトの名無しさん
2009/10/20(火) 16:10:52GUIから新しい言語が出来てしまって、それらの言語がデファクト
スタンダートを作っているから
そしてそれらの言語の特徴(矛盾しているわけではないが、
流儀としては排他的)が相互汚染防止の為に反目しあってること
0056デフォルトの名無しさん
2009/10/20(火) 17:35:40http://betterexplained.com/articles/intermediate-rails-understanding-models-views-and-controllers/
これの図を見るとMVCは全部鯖側にあるようにみえるんだけど
一言にMVCと言っても色々あるんだなー
0057デフォルトの名無しさん
2009/10/20(火) 17:40:46http://sourceforge.net/projects/win32-framework/
これよさげ
情報、日本語訳求む。
ヘッダオンリーでATLやWTLより簡単げ。
005857
2009/10/20(火) 23:26:530059デフォルトの名無しさん
2009/10/20(火) 23:58:56M がデータ処理で V がアウトプットで C がインプットで大体合ってるの?
0060デフォルトの名無しさん
2009/10/21(水) 00:08:12思いつきで作ってみました的なモノでは無く、きちんと公開して多くの人に使ってもらえる事を
意識したプロジェクトに見える。ドキュメントやサンプルも整備されてるし(英語だけど)。
UNIX(C)&Mac(realBasic)プログラマなんだが、C++とWinには以前から挑戦したいと思ってた。
だから、なかなかシンプルで良さげに見えた。とは言ってもWin32 APIは初めて見たわけだが....。
で、一部の翻訳に着手したよ。ヘルブの中にある概要("Win32++ Overview")の章。
明日くらいには公開できると思う。興味あるかな?
0061デフォルトの名無しさん
2009/10/21(水) 00:28:180062デフォルトの名無しさん
2009/10/21(水) 05:30:37日本で唯一解説しているらしいところはここだけみたいです。量少ない。
http://naruishi.hp.infoseek.co.jp/program/w32pp.txt
0063デフォルトの名無しさん
2009/10/21(水) 09:50:04まともな日本語も掛けない奴のレスなんか、レス返す価値などないと思ったんでね。
# つーか、なんだよ、「簡単げ」ってよ。
0064デフォルトの名無しさん
2009/10/21(水) 09:58:130065デフォルトの名無しさん
2009/10/21(水) 11:19:25>興味あるかな?
私が翻訳権を持ってるわけじゃないのでどうでもいいっちゃいいんですが
許可を得ているのかどうかにはちょっとだけ興味があります。
006660
2009/10/21(水) 14:38:51・Win32++概要
http://www.h6.dion.ne.jp/~machan/win32pp/overview.txt
Windowsプログラミングは未経験なので、不適切だったり誤っている箇所があると思う。
特に、リバーコントロール(Rebar Control)/メッセージの反射(Message Reflection)/
CWndオブジェクト/WndProc関数に関連した部分は、無理矢理に訳した感がある。
Win32 APIに詳しい住人さん達からのツッコミに期待。
0067デフォルトの名無しさん
2009/10/21(水) 15:01:25その他翻案することにより創作した著作物をいう(2条1項11号)。
二次的著作物に対する著作権法の保護は、原著作物の著作者の権利に影響を及ぼさない(11条)。
著作物 - Wikipedia
0068デフォルトの名無しさん
2009/10/21(水) 16:15:34MVCは、元々は普通の(ネットワークとは無関係な)GUIアプリ開発の中から生まれた。
それがWebアプリにも取り入れられるようになった経緯がある。Railsは、その代表格だね。
最近では、Webクライアント上で動くJavaScriptアプリにも取り入れられつつある。
SproutCoreと呼ばれるAJAXフレームワークが、その一例。
・SproutCore Documentation / Basics-Introducing SproutCore MVC
http://wiki.sproutcore.com/Basics-Introducing+SproutCore+MVC
だから、SproutCoreを利用するWebシステムでは、以下の3つのMVCが、同時に存在することになる。
・Webサーバ上で動くアプリケーションのMVC -- 例: Rails
・Webブラウザ自身のMVC -- このスレでの話題の中心となる、GUI向けのMVC
・Webブラウザ上で動くアプリケーションのMVC -- 例: SproutCore
>>59
思いっきり単純化すると、そのイメージで合っているよ。
・Mは、ユーザインタフェースを持たない、データ管理だけのオブジェクト。
・Vは、Mのデータを表示(出力)するオブジェクト。ユーザから見える部分になる。
・Cは、ユーザの操作(入力, 例:ボタンを押す)を受け付け、MやVへメッセージを送って、
全体を制御するオブジェクト。
0069デフォルトの名無しさん
2009/10/21(水) 16:21:57翻訳したものに関してはね。
翻訳できるかどうかが問題で
第二十七条 著作者は、その著作物を翻訳し、編曲し、若しくは変形し、又は脚色し、映画化し、その他翻案する権利を専有する。
だからこそ、翻訳権や翻案権は明記されない限り著作者から自動的に
移譲されたりはしないことになっている。
第六十一条 著作権は、その全部又は一部を譲渡することができる。
2 著作権を譲渡する契約において、第二十七条又は第二十八条に規定する権利が譲渡の目的として特掲されていないときは、これらの権利は、譲渡した者に留保されたものと推定する。
0070デフォルトの名無しさん
2009/10/21(水) 17:38:05前述のGPLやLGPLに比べて、格段に制約の緩いライセンスとなっています。
制約となる条件がたった2点しかありません。
1つ目は「再配布時には著作権表示を残す」という事。
もうひとつは「無保証である」という事。
この2点を守りさえすれば、どのように利用しても構いません。
ライセンスをGPLに変えて再配布するもよし、
改変して独占販売するもよし、
ソフトウェアだけ頒布してソースを非公開にしてもよし。
http://smkn.xsrv.jp/blog/2009/03/summary_for_gpl_mit_cc_etc/
0071デフォルトの名無しさん
2009/10/21(水) 17:41:47利用条件は、
無保証
著作権表示の保持
MIT License (X11 License)
http://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%82%BD%E3%83%BC%E3%82%B9#MIT_License_.28X11_License.29
0072デフォルトの名無しさん
2009/10/21(水) 19:54:28本質的に難しい(複雑)なのかもしれないけど、
どちらかというとライブラリが足引っ張ってると思う
0073デフォルトの名無しさん
2009/10/21(水) 20:12:23どうもありがと!
これで MVC は理解して卒業した事にします。
0074デフォルトの名無しさん
2009/10/21(水) 20:24:15POSAのvol1の130ページあたり読むまで許さない
0075デフォルトの名無しさん
2009/10/21(水) 20:25:03理解したことにはならんだろw
0076デフォルトの名無しさん
2009/10/21(水) 20:39:27モデルの話は常識程度に抑えておこうと思ってます。
0077デフォルトの名無しさん
2009/10/21(水) 20:39:33詳細設計あたりまでもってくれれば十分
でもそこまで考えたらコードまで落し込んで動かす所まで持っていきたくなるから同じことか
0078デフォルトの名無しさん
2009/10/21(水) 21:04:59あんなもの、単にオブザーバーパターン使ってみましたってだけじゃん
GUIのGの字も語ってない
それよりも、FRP(Functional Reactive Programming)とか参考にした方がまだまし
0079デフォルトの名無しさん
2009/10/21(水) 21:15:00Future valueとかMonadとかApplicative Functorとか
普通の言語で使うには難しいfeaturesが必須ですけどね
0080デフォルトの名無しさん
2009/10/21(水) 21:20:27マーケティングのバズワードとかハイプとかと同じ匂いがする
0081デフォルトの名無しさん
2009/10/21(水) 21:22:400082デフォルトの名無しさん
2009/10/21(水) 21:23:050083デフォルトの名無しさん
2009/10/21(水) 21:25:01「それなりに」の程度によるけど、「実用的」というレベルならHaskellじゃなくても全然いける
連続的な時間を扱いたかったら確かに遅延評価がないと厳しいけど、
離散的な時間でよく、なんちゃってFRPならどの言語でも(もとい、ML系なら)無問題でしょ
実際OCamlでもそんなライブラリがあるし
0084デフォルトの名無しさん
2009/10/21(水) 22:42:36ライブラリが足引っ張ってる部分というのは、具体的にはどの部分なのかな?
自分が>>1の言う難しさが何であるかを考えるに、コマンドラインの対話型プログラミングは、
メニュー出力/コマンド入力/コマンド実行/実行結果出力をループさせる処理になる。
コードは、フローチャート(流れ図)という言葉があるように、連続した処理の塊(かたまり)として
読む事ができる。これに対して、GUIプログラミングでは、入力イベントごとの対応する手続きが、
断片としてコード全体に散らばってしまう。この為、プログラムを読む側からすれば、
流れるような処理ではなく、実行部分がコードのあちこちを無秩序に飛び回っているように見える。
この可読性の悪さが、GUIプログラミングを難しいものに見せているのだと思う。
0085デフォルトの名無しさん
2009/10/21(水) 22:52:460086デフォルトの名無しさん
2009/10/21(水) 22:53:08>>1 が言ってるのは入力待ちでブロックする様な単純なプログラムか
フィルタ系なのかな。
0087デフォルトの名無しさん
2009/10/21(水) 23:10:160088デフォルトの名無しさん
2009/10/21(水) 23:27:55足引っ張ってるのは、色々あるけど、一つはレイアウト
あれはクソ
>流れるような処理ではなく、実行部分がコードのあちこちを無秩序に飛び回っているように見える。
>この可読性の悪さが、GUIプログラミングを難しいものに見せているのだと思う。
禿同ですな
イベントからの条件分岐と「目的の処理」を分離して欲しい
0089デフォルトの名無しさん
2009/10/21(水) 23:40:25いや、その前に関数型言語が一般のプログラマに受け入れられる事が先だ
いかに関数型言語を使うことで美しく簡潔なGUIアプリケーションが書けたとしても、
関数型言語が一般のプログラマに使ってもらえなければ、
(GUIプログラミング新時代への移行に関しては)何の意味も持たない
オブジェクト指向言語も、過去に同じような批判を受け、それに耐えて現在の地位を得ている
0090デフォルトの名無しさん
2009/10/21(水) 23:42:33みんな function(){ ... } ってラムちゃんを書きまくってるからオケ。
0091デフォルトの名無しさん
2009/10/21(水) 23:47:58http://sourceforge.net/projects/win32-framework/
0092デフォルトの名無しさん
2009/10/22(木) 00:19:48それさ、何が嬉しいのかいまいち分からないんだが、説明してもらえる?
0093デフォルトの名無しさん
2009/10/22(木) 01:06:04でも、そのラムちゃんって不純だからなぁ....
0094デフォルトの名無しさん
2009/10/22(木) 01:40:150095デフォルトの名無しさん
2009/10/22(木) 03:56:29MSと.netというだけで評価されない風潮がある感じがして悔しい
cssのdiv厨ならぬGrid/StackPanel厨になっちゃうのがアレだけど
0096デフォルトの名無しさん
2009/10/22(木) 07:00:36WindowsPrintFoundation?
0097デフォルトの名無しさん
2009/10/22(木) 07:53:15あれは関数型言語の一部のガワだけを拝借しているに過ぎない。
プログラミング スタイルが本質的に異なるから、
ラムちゃんを書きまくってるからオケとはなかなかいかない。
0098デフォルトの名無しさん
2009/10/22(木) 07:56:57そういうことだな?
0099デフォルトの名無しさん
2009/10/22(木) 09:30:19どの言語、フレームワークを使っても一定以上には簡単にならないと
マが覚悟を決めないと話にならんよね。
0100デフォルトの名無しさん
2009/10/22(木) 09:30:370101デフォルトの名無しさん
2009/10/22(木) 10:08:160102デフォルトの名無しさん
2009/10/22(木) 10:42:47最初から不純だっていいじゃないか。
0103デフォルトの名無しさん
2009/10/22(木) 10:53:29はじめから不純前提な言語(例:JavaScript)もある
でも、純であることにトコトンこだわった言語、
つまり純なプログラミングしか許さない言語(例:Haskell)もある
そんな純な世界だけでも、GUIプログラムは書けるんだ
0104デフォルトの名無しさん
2009/10/22(木) 11:41:110105デフォルトの名無しさん
2009/10/22(木) 11:52:03書ける事と、それがやさしい/むずかしいとは別の話
特に、はじめてGUIプログラミングに挑戦しようとする人にとって、
少なくとも現状だと、関数型言語の壁は、あまりに高すぐる
0106デフォルトの名無しさん
2009/10/22(木) 15:15:5260の訳より。
Win32++はアプリケーションを開発する為のWindows APIを直接使用するライブラリを提供しています。
Windows 95からWindows XPとVistaに到る32bit、64bitのすべてのMicrosoft OSおよびWindowsCEをサポートします。
このライブラリは、単純なウィンドウ、ダイアログ、フレーム、そしてMDIフレームをベースとしたアプリケーションを開発できます。
また直接Windows APIを扱うプログラミングにオブジェクト指向アプローチをもたらします。
Borland、Microsoft、GNUコンパイラなど 幅広いC++コンパイラをサポート。多言語サポート。
0107デフォルトの名無しさん
2009/10/22(木) 19:24:39>純なプログラミングしか許さない言語
確か破壊的に書く方法もあったよね。アクションだっけ?
Haskell が良いのは、副作用を禁止するのではなく副作用を
分けて記述出来る事だった様な気がするけど、俺の勘違いかな。
0108デフォルトの名無しさん
2009/10/22(木) 20:26:43関数型言語(文脈から考えると純粋関数型?)でのGUIプログラムは
手続き型言語でのそれより(現状)難しいと感じてるようですが、
そう感じる理由は何でしょうか。
それは単にスタンダードと呼べるGUIライブラリが整備されておらず、
それに対する入門書も無い状態だからでしょうか。
もしそうなら、それは関数型言語に対して感じる壁とは違うような気がします。
0109デフォルトの名無しさん
2009/10/22(木) 20:39:06>>105 が難しいと思ってる訳じゃないんじゃないの。
『はじめてGUIプログラミングに挑戦しようとする人にとって』、
壁が高いというのは、俺も同意見だな。
0110デフォルトの名無しさん
2009/10/22(木) 20:43:31その壁が何に対して感じる壁なのか、が訊きたいです。
また、何故その壁は高く感じられるのでしょうか。
0111デフォルトの名無しさん
2009/10/22(木) 21:05:530112デフォルトの名無しさん
2009/10/22(木) 21:07:01状態を持ちにくいからだろ。
だいたい、GUIなんて俺には副作用の塊に見える。
0113デフォルトの名無しさん
2009/10/22(木) 21:13:22横槍
たぶん入門書に載ってないからだと思われ
例えばFRPの一部であるevent(の簡易版)は、
Visual Studio 2010のF#にfirst-class composable eventsとして登場する予定
そして、それが「3日でわかる!! VisualStudio 2010」とかで紹介される事になる
そうすると、急に壁が低くなる(と多くの人は錯覚する)
要するに、技術そのものの壁じゃなくて心理的なものだと思う
0114デフォルトの名無しさん
2009/10/22(木) 21:16:52初めてGUIプログラムをする者にとっての壁はあると思いますが、
それは関数型言語に備わった、関数型言語だからこその壁では無いような気がします。
初めてGUIプログラムをする者は初めてGUIの概念や考え方、組み立て方を学ぶわけですから、
それを関数型言語をベースにして学ぼうが、手続き型言語をベースにして学ぼうが、
壁は同じくらい高く感じられると思います。
そして、それは言語ではなくGUIに対して感じる壁だと思います。
私はどちらのGUIも経験しましたが、確かに関数型言語での方が勉強に時間がかかります。
ただ、それは単に資料が少ないというだけのことで、関数型言語の言語としての壁は感じませんでした。
手続き型の方が資料が少なければ、手続き型の方の勉強に時間がかかったと思います。
0115デフォルトの名無しさん
2009/10/22(木) 21:17:17なにか関数型言語に対する(いい意味での)思い入れがある人みたいだから、
壁が何かを質問するよりも、率直に、関数型言語の良さをカキコしたほうがいいんじゃないかな
たとえば「関数型言語は....という特徴があるから、GUIプログラミングに適している」みたいに
0116デフォルトの名無しさん
2009/10/22(木) 21:18:34ハードルは高くなるよな。格闘技の基礎が無いのに異種格闘戦に出るなんて…
0117デフォルトの名無しさん
2009/10/22(木) 21:23:17資料が少ないのが関数型の特徴だから、手続き型の方が資料が少ないという仮定は
あんまり意味が無いと思う。
0118デフォルトの名無しさん
2009/10/22(木) 21:26:54いえ、思い入れは全くないんですし、
>>105 に対して関数型はいいよとかアピールする気も全く無いんです。
ただ、>>105 以外でもよく見かけますが、
関数型言語をベースにして、その上で組み立てる物の難しさに対して、
「関数型言語の壁」と言うように言語特有の難しさに括ってしまうのは、
ちょっと違和感を感じただけです。
0119デフォルトの名無しさん
2009/10/22(木) 21:29:280120115&105
2009/10/22(木) 21:35:17>>114
言いたい事は分かるし、その通りだと思うよ
でも、ここでは「プログラミング言語そのものを比較」をしてるんじゃなくて、
「GUIプログラミングのむずかしさ/やさしさを議論」しているスレなんだ
このスレでは、言語はGUIを実現するための道具、副次的なものであるという立場
>>105で書いた「関数型言語の壁」というのは、他の住人さん達が語っているように、
単純に初心者向けの情報が少ないってことを言いたかった。
0121デフォルトの名無しさん
2009/10/22(木) 21:35:29詳しくないから想像だけど。
0122デフォルトの名無しさん
2009/10/22(木) 21:47:20>格闘技の基礎が無いのに異種格闘戦に出るなんて…
面白い「たとえ」だね。ワロタよ。同感だ。
関数型言語に思い入れのある格闘家さん達は、今は己の技を磨くことに集中したほうがいいと思う
気持ちは分かるんだけど、なぜ自分達の流派が分かってもらえないんダァーと、いくら主張しても、
今の格闘センスでは、空回りに終わるか、かえって他の保守的な格闘家達からの反発をまねくだけ
0123デフォルトの名無しさん
2009/10/22(木) 21:50:45実際 >>112 みたいな問題はライブラリがやってくれるから、
それを使うだけのユーザーは、
どうやって実現しているのか意識する必要すらないです。
たとえば .NET Framework で
WFC がどうやってイベントのチェーンを実現しているのか
ユーザーは考える必要がないのと似ています。
だから、実際ライブラリを使うだけなら、
その資料とチュートリアルがあれば、
GUI 入門者でもちゃんと(使い方の)勉強はできます。
だから、「純粋にGUIプログラムを組むまでに至る難しさ」という点では
手続き型でも関数型でも同じ程度だと思います。
好奇心があってその内部処理を勉強しようとした時に、
初めて(純粋)関数型言語特有の考え方が顕著に現れてきます。
0124デフォルトの名無しさん
2009/10/22(木) 21:57:08すいません、WFC ではなく WPF です。
・・・なんか違和感あると思った
0125デフォルトの名無しさん
2009/10/22(木) 21:57:170126デフォルトの名無しさん
2009/10/22(木) 22:00:09なるほどー。けどそうなると初学者は関数型でのGUIプログラミングは言語特性との矛盾を感じながらの実装になりそうだからストレスフルだと思う。
そこが壁なんじゃない?
0127デフォルトの名無しさん
2009/10/22(木) 22:02:02日本語のドキュメントやサンプルコードが豊富に揃っていればそうでしょうね。
ライブラリは FFI なんかで呼び出すとしても、ドキュメント類が無いから
何か詰まったら初心者にはお手上げじゃないかな。
0128デフォルトの名無しさん
2009/10/22(木) 22:02:30ん? 言語特性との矛盾とは?
0129デフォルトの名無しさん
2009/10/22(木) 22:02:47>好奇心があってその内部処理を勉強しようとした時に、
このスレの住人の好奇心はGUIプログラミングに向いているんだが....
関数型言語に好奇心があるのなら、該当するスレへ逝って、そこで大いに語れ
0130デフォルトの名無しさん
2009/10/22(木) 22:03:37>「純粋にGUIプログラムを組むまでに至る難しさ」
むしろ不純な部分として議論から省こうとしてる部分が大事だったりするんだよね。
「現実的にGUIプログラムを組むまでに至る難しさ」は大いに違う訳だし。
0131デフォルトの名無しさん
2009/10/22(木) 22:04:14面倒なステート管理、プロパティ設定を程よく抽象化してくれる。
0132デフォルトの名無しさん
2009/10/22(木) 22:07:14俺もそう思う。イベントドリブンなプログラムとオブジェクト指向の相性は抜群。
0133デフォルトの名無しさん
2009/10/22(木) 22:10:27「基本副作用無しのはずなのになんでウインドウ出せるの?」
「ボタン押したら現在時刻をポップアップする機能って呼び出しから結果が定まらなくね?」
みたいな事だよ。
0134デフォルトの名無しさん
2009/10/22(木) 22:14:02手続き型言語で CUI を学んだ者が GUI にステップアップするのと、
関数型言語で CUI を学んだ者が GUI にステップアップするのとで、
GUI をプログラムするに至るまでの難しさは、それほど違うものでしょうか。
>>1 がどちらのタイプかは知りませんが。
0135デフォルトの名無しさん
2009/10/22(木) 22:14:07全部自分で書くのは無謀過ぎるんでライブラリ使うことになるけど、そうするとライブラリに合わせた書き方をするしかない。
0136デフォルトの名無しさん
2009/10/22(木) 22:19:36違うと思うよ。理由は散々出てると思うけど。
0137デフォルトの名無しさん
2009/10/22(木) 22:19:44「何やるにもライブラリに合わせないといけない」ってのは、GUIに限らず、
あらゆるプログラミング(標準入出力ライブラリを含む)で共通じゃね
GUIのむずかしさとは違う希ガス
0138デフォルトの名無しさん
2009/10/22(木) 22:21:33>面倒なステート管理、プロパティ設定を程よく抽象化してくれる。
じゃぁ「むずかしすぎる」訳ではないと?
0139デフォルトの名無しさん
2009/10/22(木) 22:21:38ライブラリの規模が違うでしょ
GUI のライブラリの規模を無視して一般化しようとしてもダメなんじゃないかな
0140デフォルトの名無しさん
2009/10/22(木) 22:27:59あぁ、なるほど、それなら納得です。
確かに初学者が感じる壁はその辺りにあります。
ただ、たいていの関数型言語を学ぶ者は、CUI プログラムを学んでいる途中で、
上記のような壁をできるだけ低くするように働く概念を学びますから、
GUIでその壁に当たっても、合点がいくには至りませんが、
ストレスフルとなるまでにはいかないような気がします。
そこでストレスフルとなるなら、CUIで勉強し直した方がいいですし。
まぁ感じ方は人それぞれですが。
はい、確かにその辺りに関数型言語でのGUIの壁がありますね。
納得しました。
0141デフォルトの名無しさん
2009/10/22(木) 22:29:53細かいツッコミだけど「オブジェクト指向型言語」じゃなくて、
「オブジェクト指向手続き型言語」あるいは簡略に「オブジェクト指向言語」だろね
研究レベルだけど、オブジェクト指向分散関数型言語なんてのもあるから(例:ABCL)
0142デフォルトの名無しさん
2009/10/22(木) 22:36:32どうだろ?
「なんとか一般の人間様に制御可能なレベルになった」ってレベルじゃね?
微分とか積分とかがわからん奴には「難しすぎる」ってレベルぐらいには難しいと思う。
アップルのGUIが優れてるのは何か優れた手法をとっているとかではなくて、
それこそジョブスの鬼のようなシゴキで調整されているからなんだと思う。
0143デフォルトの名無しさん
2009/10/22(木) 22:37:49ならば、科学計算ライブラリは、ライブラリに合わせずにプログラミングできるの?
「何やるにもライブラリに合わせないといけない」というのは、
GUIプログラミングに固有のむずしさではないと思うよ
「GUIライブラリの規模(複雑度)が大きいから」むずかしい、という理由も同じだね
0144デフォルトの名無しさん
2009/10/22(木) 22:42:15知っている人がいたら教えてプリーズ
「なんか便利そう」で対応してたんじゃ拉致があかない
0145デフォルトの名無しさん
2009/10/22(木) 22:45:23同じだと思う根拠は?
0146デフォルトの名無しさん
2009/10/22(木) 22:46:09GUIの理論的なモデルって、どういうのを期待してるんだ?
0147デフォルトの名無しさん
2009/10/22(木) 22:47:16CUIもまともに出来ないんじゃないの?
0148デフォルトの名無しさん
2009/10/22(木) 22:52:16XMLのパースとかレイトレとかは殆どフルスクラッチで書けるからライブラリの
仕様に合わせる必要は無い。GUI をフルスクラッチで書くのは規模的に難しい。
コピペとかドラッグ&ドロップとか日本語入力変換とかベクターフォントの描画とか
一から作るのはごめんだ。
0149デフォルトの名無しさん
2009/10/22(木) 22:55:210150デフォルトの名無しさん
2009/10/22(木) 22:58:06標準入出力でいいわ。
0151デフォルトの名無しさん
2009/10/22(木) 22:58:14期待する性質としては、こんな感じ
1 その理論は描画とGUIコンポーネントとその組み合わせの世界を抽象化している
2 非同期に発生するイベントと内部状態の遷移と描画の結果と時間との関係を明らかにしている
3 抽象化された世界に必要十分な操作が導き出せる
4 必要十分な操作から便利な操作が合成でき、結果としてGUIライブラリの理想形が見えてくる
欲張りすぎか...
0152デフォルトの名無しさん
2009/10/22(木) 22:58:24拉致しちゃダメよw
0153デフォルトの名無しさん
2009/10/22(木) 23:12:53すまん、いまいち分からん。
その性質を一部でも満たした既存のモデルは何か無いか?
あるいは一部なら満たすモデル案を君が既に考えているとか。
それらと対比してくれると理解できると思うんだが。
0154デフォルトの名無しさん
2009/10/22(木) 23:24:14たぶんHaskellみたいな近代的な関数型言語のことを言っているのだと思う
でも、たとえばXMLのパーズくらいはフルスクラッチで書けるとあるけど、
XMLスキーマに基づくXML文書の検証も可能なXMLパーザも
Haskellならばフルスクラッチで書けるのかな?無理じぇね?
Haskellがそれほどフルスクラッチで書ける素晴らしい言語なのだとしたら、
GUIくらいはフルスクラッチでサラッと書いて欲しいものだと思うよ
0155デフォルトの名無しさん
2009/10/22(木) 23:32:57俺は関数型言語の御仁とは別人だよ。Haskell はどうでも良い。
>>137 に、
>「何やるにもライブラリに合わせないといけない」ってのは、GUIに限らず、
>あらゆるプログラミング(標準入出力ライブラリを含む)で共通じゃね
とあるから、それは違うよねと言ってるだけだよ。
例えばレイトレは違うから「あらゆる」というのは間違い。
言ってる事通じてるかな。
0156デフォルトの名無しさん
2009/10/22(木) 23:38:36しかもそれが殆ど標準化されてない。
0157デフォルトの名無しさん
2009/10/22(木) 23:38:48Fudgets
http://www.cs.chalmers.se/ComputingScience/Research/Functional/Fudgets/
これにはコンポーネント同士を演算する仕組みがあって期待するものにちょっと近い
でもまだ遠い
0158デフォルトの名無しさん
2009/10/22(木) 23:40:300159デフォルトの名無しさん
2009/10/22(木) 23:40:53各ライブラリの使い方にはクセや流儀があるから、
そのクセや流儀にプログラマの方が合わせなくちゃいけない、
それは GUI ライブラリに限ったことじゃないよ、といいたいんだと思うが。
レイトレを実行するライブラリというものがあるとして、
そのライブラリもやっぱり作法みたいなものがあると思うが、
プログラマはその作法に合わせなきゃいけないんじゃないの?
0160デフォルトの名無しさん
2009/10/22(木) 23:43:10さんきゅ
今日はもう眠いから、明日読んでみる
0161デフォルトの名無しさん
2009/10/22(木) 23:45:35小規模のライブラリなら自分で作り替えたり、一から作り直したり出来るでしょ。
ライブラリの癖や流儀に合わせなくても良い。
0162デフォルトの名無しさん
2009/10/23(金) 01:11:52Fruitもちょっと近い
http://haskell.cs.yale.edu/frp/genuinely-functional-guis.pdf
イベント繋がりにarrowが入っているので必要十分な感じがいい
でもレイアウトほぼ無視
イベント繋がりとレイアウト繋がりとの関係も無視
描画とコンポーネントの関係も無視
まだまだ遠い
0163デフォルトの名無しさん
2009/10/23(金) 06:20:20おもにC#つかってるんだが、諸事情でFormとかでWPFみたいに使えるフレームワーク作った。
それでごりごり作ってる途中で同じようなことちょとおもた。
論理からでなくてボトムからの必要性からだけど。
今落とし込もうとしてるのは並列性含むモデルと状態、その遷移。それらの投影と操作にたいするUIの疎結合。
それら出来るとだいぶ生産性あがりそうな予感。
016460
2009/10/23(金) 12:13:35Win32++が....と比べて易しい/難しいという話題ならともかく、
それ以上はスレ違いかなと思った。板一覧を見直したところ、
「【C++】マイナーGUIツールキット」というスレがあるみたいだから、
翻訳話については、自分はそのスレへ移動するよ。
あと、著作権についてだけど、議論してくれた住人さん達に感謝する。
自分は自信が無いので、傍観していた。
とりあえず、>>71がマトメてくれた内容を反映させようと考えている。
0165デフォルトの名無しさん
2009/10/23(金) 17:57:46http://pc12.2ch.net/test/read.cgi/tech/1065627704/
0166デフォルトの名無しさん
2009/10/24(土) 16:23:47MVCで描こうとすると、いつもVがMのプロパティを多量に参照するから、Mの隠蔽が甘くなって嫌な感じになる。
0167デフォルトの名無しさん
2009/10/24(土) 17:32:19MVCの3つとも綺麗に書く方法は無いような気がするから
Cが汚い仕事を一手に引き受ければいいと思う。
0168デフォルトの名無しさん
2009/10/24(土) 17:55:36自分的には微妙。
C++のfriendみたいにMを更新するものについてはCからしか見えないような感じにしてVからは参照のみと操作の起点、Cはその操作に基づく具体的なMの更新とするのが自分的には一番しっくり。
0169デフォルトの名無しさん
2009/10/24(土) 20:27:37論文にざっと目を通してみた。
期待する性質1でいう「GUIコンポーネント」というのは、
ボタンやテキストボックスなどが持つ機能や役割の事で、
「描画」というのはそれらの外見の事だよね。
それらのエッセンスに目を向けて抽象化しているからこそ「モデル」なのだから、
どのモデルも性質1は満たしているはず(でなければモデルではない)。
性質2はほぼ満たしていると思う。
Fudgets は入力されたデータやイベントをストリーム型のデータで扱っていて、
入力から出力へ向かう流れの中でそのデータを発生させたり加工したりしている。
[1] GUI からの入力イベント、[2] そのイベントから状態遷移&データ出力、
[3] 出力データのGUIでの表示、という各パーツがひとつの関数に対応していて、
流れの中でリレーのバトンようにストリームデータを受け渡している。
[1]〜[3] の各パーツが流れの中でどの役割を担うのか(加工なのか表示なのかなど)
がはっきりしているから、性質2は満たしている。
それらパーツの独特の繋ぎ方が Fudgets のウリだと思う。
ただ、論文執筆時(1998)にはまだストリームに時間の概念を表すデータはない。
性質3と4がよく分からんな。
(抽象化された世界に、ではなく、抽象化された世界から、じゃない?)
Fudgets で定義されているパーツを使えば、今トレンドとなっているGUIパーツは
理論的にはほぼ表現できると思うから、そういう意味では必要十分だと思うが。
ちょっとどころか半分は期待する性質を満たしていると思うが、
期待するものには未だ遠いと感じる理由は性質3と4に関係する?
それとも性質1や2もまだ十分満たしていないと考える?
0171144
2009/10/24(土) 21:27:25まず性質1について
Fudgetsもそうだけど、基本的にGUIコンポーネントという概念を使ってそれより下位は抽象化している
実は私の書いてた「描画」は、GUIコンポーネントより一段下位のベクトル描画の世界の事
GUIコンポーネントとベクトル描画の世界を繋ぐ架け橋が欲しい
もしくはGUIコンポーネントという概念そのものを考え直してほしい(なぜなら意外と脆弱な抽象化だから)
そういう事も期待しているので、性質1も十分ではないと思っている
ただ、そこまで要求するのも可哀想なので、とりあえずGUIコンポーネントという抽象化を前提にしても可かなとは思っている
性質2について
確かにFudgetsはコンポーネントのコンビネーターというアイディアを持っていて、
それを持ってイベントやレイアウトを取り扱っている。実際いい筋だと思う
でも、モデル化という意味では遠い
なぜなら、単に「こう記述するとfunctionalで便利ですよー」としか言ってなくて、
「モデル化された世界で特定の性質を語るにはこの方法しかない、もしくは他の方法はこの方法に帰着できる」という必要十分性がないから
それがないと試行錯誤して便利なGUIライブラリを作るのとなんら変わらない
モデルに期待するのは、シンプルな世界でもいいから明確な結論が得られるところ
性質3について
Fudgetsのコンポーネントの巧妙な合成はすばらしいし、性質3でいう「操作」にまさに該当すると思う
そういう意味では近い。
でも性質2の内容が弱いから、「確かに便利。でもそれで本当に問題ない?」という問いに答えられない
Fruitがやや進化したと思うのは、イベントの接続にarrowを使ったので、接続の仕方の能力はarrowによって規定されて、
そしてarrowの能力は順序・分岐・繰り返しが可能で構造化定理を満たしていることが明らかで、
だからイベントの接続については「何でも書ける」ことが保証されている点
こういう性質がないとだめ
性質4は理論があまりに抽象的過ぎて現実世界に結び付かない事を危惧したもの。Fudgetsについては始めから便利なのであまり意味はない
私の勝手な期待について議論してくれてありがとう
0172デフォルトの名無しさん
2009/10/24(土) 21:39:37なるほど、そこまで言ってくれると「必要十分」の意味がよく分かる。
Fudgets は「この方法に帰着できる」という本質を追究するためのものじゃなくて、
imperative とは違い Functional ならこう書くのが筋が良いというのか主な主張だら、
確かに研究の目的が違うね(結果的に一部では近づいているが)。
> 私の勝手な期待について議論してくれてありがとう
いや、こちらこそかなり興味深く、勉強になった。
たぶん GUI プログラムをより分かりやすくする、より容易にすることに繋がると思う。
0173144
2009/10/24(土) 22:35:31そう連想してくれる人がいるんだ
私の期待が頓珍漢じゃない事は証明されたので、絶対誰か似たような研究をしている人がいるはずだ
けど、ググっても見つからない
教えてエロい人
0174デフォルトの名無しさん
2009/10/24(土) 22:51:13それで、「新しい」理論が、試行錯誤という「古い」ものを打破する、
と考える人がいるけど
試行錯誤という過程と、理論という結果を対立させるのは変じゃないか。
コードで試行錯誤しないなら、舌先三寸で試行錯誤するしかなくなるんだよ。
0175144
2009/10/24(土) 23:38:38でも、もうそろそろ結果(理論)が欲しい。強く
理由もあります
一つはマルチタッチのような複雑な入力インターフェイスが一般化してきたら、
このままではGUIの開発が破綻する危惧を強く持っているから
少し遅れてWebの世界でも同じ事が起こるでしょう
もう一つは現在でもGUIの開発が非効率的過ぎるために全世界的に無駄なコストが垂れ流れていると認識しているから
最後の一つは私が会社でGUIを作る仕事をやっていて苦痛だから
0176デフォルトの名無しさん
2009/10/24(土) 23:55:23のでお舞が自分に都合のいいものを作れ。
0177144
2009/10/25(日) 00:33:59>GUIにかぎらず
でも、ここだけ。
例えば並列性で言えば、アクターモデル、Software Transactional Memory、Concurrent MLのようなある程度「モデル」に近いものがあります
その下位にはπ計算のような基礎もあります
状態の取扱いというと一般的になりすぎて難しいですが、
オートマトンという強力なモデルがあります
その上に正規表現やPEGが構築されています
これらのモデルは銀の弾丸ではありませんが、不可欠で、ソフトウェアの飛躍に大いに貢献しています
こういうものがGUIの分野にも欲しいのです
諦めた方がいいですか?
0178デフォルトの名無しさん
2009/10/25(日) 06:40:53開発現場からの悲痛な叫びに聞こえるが、
美しい理論と泥臭い現実とのギャップに苦しんでいるのは、
君だけじゃないよ!!
横レス失礼
0179デフォルトの名無しさん
2009/10/25(日) 09:43:20とりあえず答えをいち早く提示してくれるのは、
いつも大抵MSですね。
0180デフォルトの名無しさん
2009/10/25(日) 09:56:04え!?
kwsk
0181デフォルトの名無しさん
2009/10/25(日) 10:07:210182デフォルトの名無しさん
2009/10/25(日) 10:27:38むしろ、今の方がどういう経緯というか仕組みで動作しているのか分からなくなった感じだな。
クラスライブラリ便利すぎ( ・ω・)y─┛〜〜
0183デフォルトの名無しさん
2009/10/25(日) 10:35:540184デフォルトの名無しさん
2009/10/25(日) 10:54:52MSは抽象的な理論からというよりは、
現場の問題を解決する方向で技術を開発してるように
私には見える。
たとえば、IEの拡張とか、WPFやLINQとか。
それが叩き台となるんだけど。
0185デフォルトの名無しさん
2009/10/25(日) 11:27:52>>181再び
一般に「叩き台」という言葉は良い意味で使われるけど、MSの場合は、それが当てはまらないw
初級GUIプログラマにとっては、かえって阿鼻叫喚をもたらす災厄だったりする
0186デフォルトの名無しさん
2009/10/25(日) 11:58:39.netやらWPFやらsilverlightやら最近のMS技術に付き合ってきた印象では、どれもおおむね
バージョン1→技術コンセプト扱い。使い物にならない。将来的にサポートを切られるので危険
バージョン2→格段にバージョンアップする。そこそこ使い物になる。1とは互換性がない
バージョン3→意欲的でユニークな新機能も搭載し始めるようになる。使い物になる
という道筋を歩いてるのが面白いなあと。
「MS=バージョン3の法則」は意図的だな絶対
0187デフォルトの名無しさん
2009/10/25(日) 13:54:250188デフォルトの名無しさん
2009/10/25(日) 14:58:440189デフォルトの名無しさん
2009/10/25(日) 15:32:23http://www.componentsource.co.jp/products/c-builder-2010-j/index.html
\ 98,700 (税込) 1 開発ライセンス
買えませんw
0190デフォルトの名無しさん
2009/10/25(日) 15:36:060191デフォルトの名無しさん
2009/10/25(日) 15:42:230192デフォルトの名無しさん
2009/10/25(日) 16:56:200193デフォルトの名無しさん
2009/10/25(日) 17:24:38筋はいいと思うけど、モデル構築自体が大変な作業になるんだけどっていうような無茶な要求が出てくるのがGUI。
「こうやった方が(モデル的に)スマートです」と言っちゃうのは技術屋の都合でしかないしね。
0194144
2009/10/25(日) 21:17:34もしかして、「GUIのモデル」が出来たとしても、
それを逸脱する要求に対応しなくてはならなくなって、結局使えず、
使おうとすると、スマートだけども使えないモデルを客に押しつける事になる、
と考えています?
だからモデルなんて考えるのは諦めろという訳ですね
うーん、考えられなくもないですが、その「無茶な要求」の例が欲しいですね
そもそも「GUIのモデル」が出来ていないのでその弱点を議論できないのですが、
もし始めからムチャそうな話が分かっていれば、そこをカバーできるように抽象化していけます
ぜひご協力を
0195デフォルトの名無しさん
2009/10/25(日) 22:09:21ちなみに自分はLSI-C86に移植してみた
ttp://www.forest.impress.co.jp/article/2006/08/03/explorerdos.html
0196144
2009/10/25(日) 22:27:43あっ、もしかして私が期待しているGUIモデルを機能ミニマムなものだと勘違いておられる?
私が期待しているGUIモデルは対象機能を絞ってミニマムを考えようという方向ではなく、
シンプルだけれども強力な抽象化をしようという方向です
「そんなもの無理www」と言われればそれまでですが
0197デフォルトの名無しさん
2009/10/25(日) 22:50:13「冷静に考えたらAとBはここで同時に設定する必要性ないよね?なんで一画面なの?
Aの入力分析してBの候補を出すけど、そのあとAの入力変えたらBに矛盾が出るよ?」
って言っても
「例外ケースで矛盾が出るのはそれとして、利用者はこの画面で同時に入れたいんだよ!」
と押し切られるケースは多い。
じつはまさにそんな設計のせいで、新規機能の開発が遅れてる製品があるんだけど、
その責任は開発持ちっていうのはなんだかなぁ〜って思ったりもする。
0198デフォルトの名無しさん
2009/10/25(日) 22:51:19>勘違いておられる?
勘違いておられました。
0199デフォルトの名無しさん
2009/10/25(日) 22:53:52それは >>144 が求めているものとはちょっと違うと思う。
GUIモデルをクラスと考えれば、javaのawtというのはそのインスタンスだ。
>>144 が考えるのは、この比喩で言えばクラスの方。
awtを設計するにおいて基にした考え方、実現方法を知って、
それを >>144 が期待する条件という観点で分析する。
その為にはawtのソースコードやクラス階層図などより、
どちらかと言うと論文の方が欲しいところ。
論文なら、awt以前の何の問題をどう解決したのかが簡潔に書かれているはず。
そういう分析を「解析」と言っているのなら、単に私の勘違いだが。
0200デフォルトの名無しさん
2009/10/25(日) 23:01:28なるほど、自分には無理っす。
0201デフォルトの名無しさん
2009/10/25(日) 23:04:49一人の人間の脳でやるにはややこしすぎる問題だ
0202デフォルトの名無しさん
2009/10/25(日) 23:13:18>>201
仕事ではやりたくないが、
趣味でやる分には知的活動として面白いな。
0203144
2009/10/25(日) 23:36:59具体例ありがとうございます
GUIは思っている以上に複雑になり得るものだと認識しておきます
>>201
やはり有望なのはFRP関連になりますか
私もそれ以外見付けられていないのが現状です
0204144
2009/10/26(月) 00:11:291 time varying value
2 composable event
3 software transactional memory(or join calculus)
4 linear programming
0205デフォルトの名無しさん
2009/10/26(月) 23:22:30自分はまだそこまで読み切ってない。
http://www.amazon.co.jp/コンピュータプログラミングの概念・技法・モデル-Architect-Archiveクラシックモダン・コンピューティング6-Architects’Archive-CLASSIC/dp/4798113468/ref=sr_1_1?ie=UTF8&s=books&qid=1256566886&sr=8-1
0206デフォルトの名無しさん
2009/10/27(火) 00:17:39GUI は理論が実装に勝てない分野の一つじゃないかな。
0207デフォルトの名無しさん
2009/10/27(火) 17:28:10コピペ用の短いURL載ってないんだろうな?
0208デフォルトの名無しさん
2009/10/27(火) 18:10:13長いリンク・・・本の題名が含まれたリンクが張られるだろ?
たくさんリンクされているページはよいページ、
そしてそのページの内容は、リンクの文字と関連がある。
リンクの文字は検索される。
この板ならこれぐらい言えば、理解してもらえるだろう。
0209デフォルトの名無しさん
2009/10/28(水) 12:40:31あぁ、なんだっけ、ガウディ本って言うんだっけ
GUIの話が載ってるなら読んでみようかな
制約系の手法も部分的に期待しているし
0210デフォルトの名無しさん
2009/10/29(木) 20:48:32http://lambda-the-ultimate.org/node/3659
Yampaが例に出てるし一読してもいいかな
0211デフォルトの名無しさん
2009/12/08(火) 16:56:520212デフォルトの名無しさん
2009/12/08(火) 17:15:260213デフォルトの名無しさん
2009/12/08(火) 19:59:45劇的にGUIプログラミング楽になったりする?
0214デフォルトの名無しさん
2009/12/13(日) 00:22:56サンプルに処理を追加して、既存のイベントから呼ばせてみると仕組みが分かるかと。
javaのswingとかシンプルだから触ってみては?
SWTも良いかも。
0215デフォルトの名無しさん
2009/12/14(月) 15:39:440216デフォルトの名無しさん
2009/12/14(月) 15:41:280217デフォルトの名無しさん
2009/12/14(月) 16:00:18おお、こんな所があったのか。
Net豆のヘルプから辿れるようにしとけばいいのに。
0218デフォルトの名無しさん
2009/12/16(水) 17:33:550219デフォルトの名無しさん
2009/12/16(水) 18:38:50VB6でやるのが一番
0220デフォルトの名無しさん
2009/12/16(水) 18:53:40VBなら最初からC#のほうがよくないかな?
0221デフォルトの名無しさん
2009/12/18(金) 00:00:24誰でも作れるように、難しい箇所はラップして理解させないようにしてる。
VBIやっても、多言語でGUIは使いこなせないのがほとんど。
VBでも凄い人は居るけど、そんな人は多言語も使える人だったりする。
VB、C++、ゲームで組み込みとか色々やったけど、javaがシンプルで無難だと思うよ。
0222デフォルトの名無しさん
2009/12/18(金) 00:08:340223デフォルトの名無しさん
2009/12/21(月) 12:50:370224デフォルトの名無しさん
2009/12/25(金) 14:05:580225デフォルトの名無しさん
2009/12/30(水) 00:28:55やりたいことへの到達点が遠すぎる
一見意味不明なtypedefが更にやる気を削いでいく
0226デフォルトの名無しさん
2009/12/30(水) 15:07:550227デフォルトの名無しさん
2009/12/31(木) 08:49:00しかもLLバインディングで
そして「見た目がなんかWindowsと違ってキモい」と言われるんだよ
0228デフォルトの名無しさん
2010/01/01(金) 11:08:49WPFじゃなくてWinFormsのほうね。WPFはリッチなデザインのGUIが欲しい人以外には不要だと思う。
0229デフォルトの名無しさん
2010/01/01(金) 21:02:470230デフォルトの名無しさん
2010/01/02(土) 21:27:22>.NETはフォームエディタも含めて十分に簡単だと思うけどそれじゃダメな理由はなんなのかな。
.NETでGUIを作っていて難しいと感じたことは無いですか?
イベントがいつ発生するのかとか、その順番とか、自分が欲しいイベントはどれなのかとか。
もしくはテキストコントロールやグリッドコントロールに思い通りの動きをさせるにはどうすればいいかとか。
0231デフォルトの名無しさん
2010/01/03(日) 23:48:13もういっそ諦めればいいと思うんだ。
0232デフォルトの名無しさん
2010/01/04(月) 12:16:41諦めちゃうの?もう十分に簡単?
難しいとか思うから改善したくなるわけで、諦めたらそこでおしまいですよ。
(他の優先事項があるってのはそうかもしれないけど、ここはGUIのスレなので)
.NETにもRxとかいうFRPっぽいやつが実装されてくるらしいけど、
http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx
現状で十分に簡単なら必要ないね?
0233デフォルトの名無しさん
2010/02/20(土) 16:17:18がんばれ〜
0234デフォルトの名無しさん
2010/02/21(日) 01:28:46Qt wxWidgets MFC win32api どれやればいいんだ?
MFCとかwin32apiは過去のものなの?
0235デフォルトの名無しさん
2010/02/21(日) 02:28:18もちろん今でも使えるけど
わざわざそんな面倒な方法をとらない
Cに対するアセンブラみたいなもの
0236デフォルトの名無しさん
2010/02/21(日) 02:57:520237デフォルトの名無しさん
2010/02/21(日) 03:15:100238デフォルトの名無しさん
2010/02/21(日) 13:45:59面倒くさくてもぬるぬるが好きならMFC
自他共に認める変態ならAPIのみ
0239デフォルトの名無しさん
2010/02/21(日) 23:55:27Qtやりましょうよ。
0240デフォルトの名無しさん
2010/02/22(月) 01:31:360241デフォルトの名無しさん
2010/02/22(月) 02:22:56コケにされるのは寂しいが、さすがにお勧めはできないな
Win32APIはWindowsを知るという意味では無駄にならないと思うがね
0242デフォルトの名無しさん
2010/02/22(月) 02:28:280243デフォルトの名無しさん
2010/03/02(火) 23:12:51Qtは拡張構文が追加されてそうで嫌
で、gtkmmを学び出す
0244デフォルトの名無しさん
2010/03/03(水) 03:28:33Qt は良いよ
0245デフォルトの名無しさん
2010/03/03(水) 09:29:350246デフォルトの名無しさん
2010/03/03(水) 13:31:330247デフォルトの名無しさん
2010/03/03(水) 16:33:110248デフォルトの名無しさん
2010/03/03(水) 18:13:460249デフォルトの名無しさん
2010/03/03(水) 18:47:240250デフォルトの名無しさん
2010/03/03(水) 18:48:290251デフォルトの名無しさん
2010/03/03(水) 18:59:020252デフォルトの名無しさん
2010/03/03(水) 19:00:120253デフォルトの名無しさん
2010/03/04(木) 04:06:04fltkはC++の地味な機能しか使わんとかなんとか
0254デフォルトの名無しさん
2010/03/04(木) 04:45:04FLTKは知らん。
0255デフォルトの名無しさん
2010/03/04(木) 08:21:480256デフォルトの名無しさん
2010/03/11(木) 22:01:11gtk/gtk+/gtkmm のどこがだめ?
0257デフォルトの名無しさん
2010/03/23(火) 17:51:260258デフォルトの名無しさん
2010/03/23(火) 18:05:28designer でGUIデザインするのはGUIですれば良いしできるのに,
demoを含めて打ち込む方法を説明していたりするのが以前は意外と多かった
Molentkin とか参考になった覚えある
0259デフォルトの名無しさん
2010/03/24(水) 00:10:20打ち込んだソースを解説する方が楽なんだよね・・
0260デフォルトの名無しさん
2010/03/24(水) 00:59:17コード片(イベントハンドラ)がたくさんあって、
それらがどう呼び出されようとも正しく動作するように条件分岐やらフラグ
やらを管理しなきゃいけないからじゃないかな
0261デフォルトの名無しさん
2010/03/24(水) 10:34:350262デフォルトの名無しさん
2010/03/25(木) 22:57:32そのまま突き進め
0263デフォルトの名無しさん
2010/03/26(金) 02:20:480264デフォルトの名無しさん
2010/03/26(金) 07:09:34あの情報量の多さは異常だろ
何が必要で必要でないかの判断がつかなかったからマジでつらかった
0265デフォルトの名無しさん
2010/03/26(金) 11:46:220266デフォルトの名無しさん
2010/03/26(金) 12:10:49普通じゃなくて良いならGUIなくても構わないことが多い
何が普通で何が普通でないかを判断するところが、GUIの難しさだ
0267デフォルトの名無しさん
2010/03/26(金) 14:25:310268デフォルトの名無しさん
2010/03/26(金) 14:33:53むずかしすぎって・・・
0269デフォルトの名無しさん
2010/03/27(土) 01:36:51試してみたけど超うんこだったわ
0270デフォルトの名無しさん
2010/03/27(土) 01:47:57単純に全体として良し悪しではないと思うんで宗教戦争にする気は無いんだけど
VSの方がドキュメントは多い,Qtはマルチプラットフォームというのは俺でもわかるが
0271デフォルトの名無しさん
2010/03/27(土) 08:54:380272デフォルトの名無しさん
2010/03/27(土) 18:45:130273デフォルトの名無しさん
2010/03/27(土) 22:12:450274デフォルトの名無しさん
2010/03/28(日) 12:31:280275デフォルトの名無しさん
2010/03/30(火) 16:28:52Dijitとか、jQuery UIなんか使えばそこそこ高度なものが作れる。
0276デフォルトの名無しさん
2010/03/30(火) 20:37:06つ ttp://SmartClient.com
0277デフォルトの名無しさん
2010/04/01(木) 21:22:32わたしわグイって言って単ですけど、先輩がジーユーアイって言い出して
顔から火がでるほどはずかしかったので教えてください÷
0278デフォルトの名無しさん
2010/04/01(木) 21:25:440279デフォルトの名無しさん
2010/04/01(木) 21:33:12通じなければ通じるように言いましょう。
0280デフォルトの名無しさん
2010/04/01(木) 21:36:360281デフォルトの名無しさん
2010/04/01(木) 22:08:16http://ja.wikipedia.org/wiki/GUI
と思ったが、
http://eow.alc.co.jp/GUI/UTF-8/
こっちではグイと発音する、ってなってるな。
もしかすると英語圏ではグイのほうが普通なのかも。
似たような言葉で、
http://ja.wikipedia.org/wiki/GNU
ってのがあるが、これをジーエヌユーと言うとちょっと恥かしいかもしれない。
0282デフォルトの名無しさん
2010/04/01(木) 22:08:560283デフォルトの名無しさん
2010/04/01(木) 22:11:320284デフォルトの名無しさん
2010/04/01(木) 22:34:440285デフォルトの名無しさん
2010/04/02(金) 05:11:040286デフォルトの名無しさん
2010/04/02(金) 21:44:360287デフォルトの名無しさん
2010/04/03(土) 00:56:570288デフォルトの名無しさん
2010/04/04(日) 13:20:11CUI ←クイ
YUI ←どれもおんなじ歌ばっか しかもヘタクソ
0289デフォルトの名無しさん
2010/04/04(日) 17:20:51どUI
0290デフォルトの名無しさん
2010/04/10(土) 23:41:250291デフォルトの名無しさん
2010/04/11(日) 01:17:44はげどう
0292デフォルトの名無しさん
2010/04/11(日) 17:37:060293デフォルトの名無しさん
2010/04/11(日) 18:36:09まさかとは思うけど、C+WIN32APIのみ作ってるの?
妥協して、MFCなりATLなりWTLでも使え
これなら、むずかしすぎるってことはない
さらに妥協できるなら、.NETでも使え
これなら、サルでもつかえるよ
0294デフォルトの名無しさん
2010/04/11(日) 18:49:070295デフォルトの名無しさん
2010/04/12(月) 00:30:040296デフォルトの名無しさん
2010/04/12(月) 01:40:19ソフトウェア設計の大半はデータ構造とアルゴリズムだぞ
GUIなんてドカタに任せておけばオk
0297デフォルトの名無しさん
2010/04/12(月) 01:50:020298デフォルトの名無しさん
2010/04/12(月) 03:06:590299デフォルトの名無しさん
2010/04/12(月) 03:19:28面倒くさいとか楽だとかしんどいという尺度の方がしっくりくる感じ
0300デフォルトの名無しさん
2010/04/12(月) 03:21:40CUIに比べて処理の流れが
組み合わせになるから
無限に拡散してしまう
0301デフォルトの名無しさん
2010/04/12(月) 11:50:34最初CでWindowsアプリ書いた時は(3.1〜95)確かにメンデーと思った。
あ、MFCは初対面のときからソリの合わないものを感じてC++Builderに避難しました。
0302デフォルトの名無しさん
2010/04/12(月) 13:45:380303デフォルトの名無しさん
2010/04/12(月) 20:18:210304デフォルトの名無しさん
2010/04/12(月) 22:53:16取りあえず機能的には Ok というのならマウスの位置掴んだり
ボタンとかボックスたくさんつくったりとかそんな大変じゃない
拘りだしたり動かしだすと自由度も大きいしキリが無い
事前にしっかりレイアウト決まってるならそんなに大変じゃないと思う
0305デフォルトの名無しさん
2010/04/13(火) 01:16:00一つはインターフェイスデザインという意味での難しさ
Webの画面もGUIの一種と考えれば、インターフェイスデザインがアプリケーションにおいて
どれほど重要でありながらも難しいものかが分かるでしょう
二つ目は開発者の視点から見た作成の難しさ
GUIコンポーネントをベタペタ張ればお終いと思っているのは役たたずのマネージャー
非同期通信(例えばDB問い合わせとかCGIアクセスとか)との連携、
可変なウィンドウサイズと動的なレイアウトとの戦い、
複雑なイベントチェーンの管理等々
0306(u_・y) ◆e6.oHu1j.o
2010/04/13(火) 08:40:37今後も、さらに難しさレベルは増えていく可能性がある
いまはまだ、2Dの無機質なソフトが多いけど
そのうちフェードとか、自作メニューバーとか、3D化してるアプリが当たり前になってきたら
敷居あがりまくりなんだけど
0307デフォルトの名無しさん
2010/04/13(火) 18:24:120308デフォルトの名無しさん
2010/04/13(火) 22:31:39たいていはもっと高レベルなジェスチャーにアクセスする程度で十分だから、
それほど難儀しないと思う。
0309デフォルトの名無しさん
2010/04/22(木) 08:58:33http://slashdot.jp/hardware/comments.pl?sid=492519&cid=1752368
>某大学の情報工学科でプログラミングを教えていますが、今でも演習はCLIベースです。
>演習室には最新のMacが並んでいますが、演習自体はターミナルとEmacsで行います。:-)
>GUIよりもまずは基本的な原理をわかってほしいということもありますが、私を含めた
>多くの教員がGUIを使った開発経験に乏しいのも確かですね。最近の学生にとっては
>CLIベースのソフトウェアは半完成品のような印象を与えるみたいで、いまひとつ演習に
>身が入らない人がそれなりにいるのは確かなので、今後のカリキュラムは何とかせねば
>とは思っています。
0310デフォルトの名無しさん
2010/04/22(木) 09:28:550311デフォルトの名無しさん
2010/04/22(木) 11:32:20高い授業料払っているのに
0312デフォルトの名無しさん
2010/04/22(木) 11:58:23パラドクスが日常茶飯事だという事をまず最初に教えるべきだ
0313デフォルトの名無しさん
2010/04/22(木) 14:26:31「GUIを使った」開発(大抵IDEの事)→初めからIDEばかりで教えるべき
かには疑問が残る
「GUI付きのソフト」を開発→プログラミングならばまずCLIで開発できて
それからGUI付きの開発に行くべき
(GUIきれいでも中身書けないじゃ話にならん)
情報工学科でGUI含めた開発まで行き着けないというのならそれは寂しいが
0314デフォルトの名無しさん
2010/04/22(木) 20:36:49うちと似てるな。うちはターミナルだけじゃなくてEclipseを使った演習もやるけど。
プログラミングの講義はそれなりに揃ってるけど、GUIプログラミングをシステマティックに
教えている科目はないんじゃないかな。そもそもGUIプログラミング自体一過性の技術なので
(プログラミング関連で一過性じゃないものって何?って言われそうだけど、相対的にみた
場合)、どうしても教える内容としての優先度は低くなるんだよね。
0315デフォルトの名無しさん
2010/04/22(木) 22:08:070316デフォルトの名無しさん
2010/04/22(木) 23:37:590317デフォルトの名無しさん
2010/04/23(金) 00:27:00IDEでCLIのアプリを作ることも,EmacsみたいなCUIでGUIアプリ作ることも十分可能なんだが
0318デフォルトの名無しさん
2010/04/23(金) 00:57:400319デフォルトの名無しさん
2010/04/23(金) 03:14:380320デフォルトの名無しさん
2010/04/23(金) 07:48:18プログラミングも実践より理論という感じの講義が多かったな。
まあでもアルゴリズムやその解析をみっちり勉強できたのはよかったかも。
0321デフォルトの名無しさん
2010/04/24(土) 01:33:06情報の学生さんはλ計算や計算可能性の話や圏論なんかを勉強してきてください
0322デフォルトの名無しさん
2010/04/24(土) 13:52:380323デフォルトの名無しさん
2010/04/24(土) 16:36:23ちょっとしたGUIアプリぐらい数日でつくるよ
研究室でもできるやつはできるでしょ
そういう人が居ない場所だと
レベルの低さを認識できないかもね
基礎ができてればGUIの習得ごときで長時間費やすものじゃないのに
0324デフォルトの名無しさん
2010/04/24(土) 18:03:010325デフォルトの名無しさん
2010/04/25(日) 01:09:09GUIの何が難しいのか、俺にはさっぱりわからん。
0326デフォルトの名無しさん
2010/04/25(日) 04:26:53本格的なのやれよ
0327デフォルトの名無しさん
2010/04/25(日) 08:12:220328デフォルトの名無しさん
2010/04/25(日) 18:50:37どういったものが本格的かどうかわからんが、面倒なだけだろ
すくなくとも難しくはない
0329デフォルトの名無しさん
2010/04/26(月) 01:22:36横レスですが、難しいです
通常、イベントハンドラが長時間の処理に陥ってしまうと画面諸共応答がなくなるために、
そのような処理は完了イベントを挙げるような非同期な仕組みに変更しておく必要があります
(例えば、初期化やDB検索やネットワーク通信など)
ところが、このような複数のイベントループを持つ一連の処理を正しく行うためには
別の全てのイベントとの整合性を担保しなければならなり、これが大変複雑になります
パズルと一緒で、依存関係が多くなると"面倒"が"難しい"に変わります
0330デフォルトの名無しさん
2010/04/26(月) 05:43:28ちょっとしたGUIしか作れない
0331デフォルトの名無しさん
2010/04/26(月) 09:35:50株式チャートとか、ビジオみたいの作ってみなはれ。
0332デフォルトの名無しさん
2010/04/26(月) 09:38:34実はGUIはちょっとしたものしか作れない。
つーか、UI何それ、そんな律速要因要らないよ。ってのが私の領分。
0333デフォルトの名無しさん
2010/04/26(月) 12:33:090334デフォルトの名無しさん
2010/04/26(月) 12:43:31パズルはパズルでも論理パズルだから、
やはり難しというよりは面倒の方が近いと思うが。
そりゃ、根気がなかったり、仕事のスケジュール配分にミスがあれば、
時間がないんでぱっと解決するアイデアに頼ろうとして難しいだろうけど。
0335デフォルトの名無しさん
2010/04/26(月) 20:42:09だけのものに見えるかもしれないけど、難しいし、凝ればいくらでも凝ること
ができる、奥の深い分野だと思うよ。
0336デフォルトの名無しさん
2010/04/26(月) 20:57:29> 凝ればいくらでも凝ることができる、奥の深い分野
それには激しく同感。
ユーザーインターフェースのデザイン関係の本を読んでみるとよく分かる。
ただ、「難しいし」これが分からん。
それは単に、それを実現するための知識が不足しているからではないのか。
もっと身にあった対象から順にじっくりと少しずつ知識と経験を積んでいけば、
特に難しいしと感じる所はほとんど無いと思うが。
気が競って本当は踏むべきステップを飛び越そうとしたとか、
飛び越さざるを得なかったとか、そんなんじゃないのか?
0337デフォルトの名無しさん
2010/04/26(月) 22:31:40>特に難しいしと感じる所はほとんど無いと思うが。
逆にどういう時に難しいのか聞きたい
0338デフォルトの名無しさん
2010/04/26(月) 23:03:36もし時間が無限にあれば、難しいものなんて殆ど無くなるだろう
0339デフォルトの名無しさん
2010/04/26(月) 23:16:380340デフォルトの名無しさん
2010/04/26(月) 23:58:23GUIには、諦めたくないと思わせる何かがある
0341デフォルトの名無しさん
2010/04/27(火) 01:32:30>もし時間が無限にあれば、難しいものなんて殆ど無くなるだろう
つまり、無限に時間があればGUIは難しくないだろう、と
じゃぁ、有限の時間を生きている私達にとってGUIは難しい?それとも難しくない?
0342デフォルトの名無しさん
2010/04/27(火) 07:25:35おそらくこういう知識がまだ足りないと分かっても、
その知識をステップバイステップで学べる環境にない時に
(参考図書などが見つからなかったり)、
資料探しを諦めて自分で解決しようとすると難しく感じる。
それ以外は、特に難しくない。
時間だって、無限の時間とかなんでそんな大げさに考えるのか不思議だ。
納期が迫っているとか以外なら、じっくり学ぶ時間なんて
ちゃんとやりくりして捻出できるだろ。
0343デフォルトの名無しさん
2010/04/27(火) 08:17:46自分で解決しようとして、例えばどんな問題が難しく感じました?
GUIを如何に簡潔にプログラミングするかは難しい問題ではないですか?
ちなみに世界中どこを探しても答えが載っている参考図書はないと思います
(あるならぜひ教えてほしい)
0344デフォルトの名無しさん
2010/04/27(火) 12:53:02>自分で解決しようとして、例えばどんな問題が難しく感じました?
Yampa を活用した GUI ライブラリの仕組みを早く理解したくて、
ライブラリ内を色々巡った時はなかなか理解できず、相当難解だった。
ACM に FRP の論文が大量にある事が分かって一からじっくり勉強してみると、
次第に理解できてきた。
> GUIを如何に簡潔にプログラミングするかは難しい問題ではないですか?
難しいと感じるのは、きっと「簡潔とは何か」をしっかり定義しないまま、
闇雲に簡潔にしようとしているからだろう。
そのソースコードが以前に比べてどのような状態になったら簡潔になったと満足するのか、
ちゃんと自分の頭に中に思い描けるのなら、
そのために不足している知識を得て実験を繰り返すだけだろ。
>ちなみに世界中どこを探しても答えが載っている参考図書はないと思います
何を当たり前のことを言っているのだ?
「答え」そのものはさすがに無いだろ、問題なんて千差万別なんだから。
でも問題を抽象化したり、別の問題との関連を考えれば、
ヒントとなるものは世の中にかなり大量に存在していると思うぞ。
0345デフォルトの名無しさん
2010/04/27(火) 20:03:38いろいろと…
0346デフォルトの名無しさん
2010/04/27(火) 20:57:42とても頭脳明晰な人みたいなのでもういいです
GUIは難しくない、面倒なだけ
それでいいです、すみませんでした
0347デフォルトの名無しさん
2010/04/28(水) 21:04:360348デフォルトの名無しさん
2010/04/28(水) 23:03:38だいだいあなたはGUIが難しいかどうかについて具体的に何も触れなかった
同じ時間で同じようにステップバイステップで問題に挑戦したとして、
他の問題に比べてGUIが特徴的にどのように難しいのか(もしくは難しくないのか)を議論したかったのに、
一足飛びにやろうとしてるだの目標を決めてないだのなんだのメタな話ばかり
できればGUIを記述する際に問題となる具体的な話をしてくれ
0349デフォルトの名無しさん
2010/04/28(水) 23:11:06要するに非同期プログラミングの難しさであると
0350348
2010/04/28(水) 23:26:49329をもってしても"面倒なだけ"という主張だったので
非同期な複雑さを整理する方法や対案が議論されるかもしれないと期待して
質問してたりしてたのっ
FRPとかでもいいので、もしGUIに思う所があれば参考になるので言ってください
0351デフォルトの名無しさん
2010/04/28(水) 23:48:20俺は今初めてこのスレちょっと見ただけだから
0353デフォルトの名無しさん
2010/04/29(木) 00:56:26まず、「イベントループ」という言葉は具体的に何を指しているのか、
何故「それが複数必要なのか」を説明できるか?
そして、「面倒が難しいに変わる」という場合の「難しい」というのは、
理解するのが困難であるという意味の難しいなのか、
それとも現実的な時間で解決に導くことが不可能に近くなるという意味の難しいなのか。
>>344 で先に挙げられた質問に答えているように、
私は理解するのが困難であるという意味の難しいと解釈して発言している。
0354348
2010/04/29(木) 01:45:48>何故「それが複数必要なのか」を説明できるか?
うん?その説明によって何が知りたいのか分からない
とりあえず応えるけど、
イベントループはユーザーの操作やウィンドウからのイベント処理を一手に扱っているループのこと
複数必要って言うのは、
一連の処理が長時間に渡る場合に一回のループでその処理をしてしまうと
画面が固まったり他のイベント処理が進まなくなるので、
一連の処理を複数回のループに分ける必要があるという意味
>そして、「面倒が難しいに変わる」という場合の「難しい」というのは、
>理解するのが困難であるという意味の難しいなのか、
>それとも現実的な時間で解決に導くことが不可能に近くなるという意味の難しいなのか。
少なくとも後者ではないわな
「面倒が難しいに変わる」を補足すると、
規模が小さければ頭を使わなくてただ単に手を動かせば済むことだったのに、
複雑さが増えてくると、
あーだこーだと考え込まなきゃいけない状況になって間違いが増えるので、これを"難しい"と言っている
そういう意味ではFRPライブラリを理解するのが難しいという時の難しいとは違う
"複雑(ふくざつ)しい"とでも言えばよかったかな(そんな日本語ないけど)
あと、もう難しい云々の言葉の定義と議論はやめにしないか
つまらないと思う
それよりも何が簡潔かとか、どうすれば簡潔かを議論したい
0355デフォルトの名無しさん
2010/04/29(木) 01:55:44イベントループ複数って、いわゆるDoEventsの類?
GUIイベントループが意味もなく複数あるなら、それはあまりいい設計じゃないな……
スレッド、コルーチン、継続のようなものを利用したほうがいい
時間がかかる仕事は裏スレッドでやればいいだけだろう
勿論、非同期I/Oなどの目的で、非GUIのイベントループが別途必要になることは
普通に有り得るけどな
0356348
2010/04/29(木) 02:32:35>>355
誤解させているようだけど、
基本的にGUIイベントループは一"本"
GUIイベントループが複数"本"走っているんじゃなくて、
例えばDB検索して表示するという一連の処理に複数"回"のループが必要という意味ね
その一連の処理の間に別のイベントが処理されるから、IDLE状態とは異なるハンドリングが
必要になる
DB処理中もフォーカスカーソルは動かしたいけどリターンキーは効かないようにとか言う仕様とか泣きたくなる
0357デフォルトの名無しさん
2010/04/29(木) 02:37:38意味は分かったが、言っちゃ悪いが説明が悪かったな
要は気持ちとしては一連である処理の流れが、実装の上で断続的になる
といいたいんだろ?
それ自体は非同期プログラミングでのごく基本的な問題だな
さっきも言ったがコルーチンとか使えると一連の流れのコードとして書けるので
楽になる場合がある
あんたの言うように、複数の状態管理/制御が絡む場合は面倒くさいことになるな
0359デフォルトの名無しさん
2010/04/29(木) 09:56:08>>353 の言うGUIの分かりにくさは難しさの内に入らない
0360デフォルトの名無しさん
2010/04/29(木) 12:35:26DB検索して表示するという「一連の処理」に複数回のループが必要になるのは何故?
もしかして、「DB検索する」という処理と「表示」という処理を
一括りに処理しようとしていないか?
処理の単位を2つ分けて、スレッドなりでそれぞれ処理すれば良くないか?
この場合、DB検索する処理は普通は一回のループで可能だろ。
(繰り返し回ることがないからループという言い方がそもそも当てはまらないが)
DB内を検索し、目的のデータを集め、それらを表示更新すべきデータリストに登録する。
この処理の単位なら、SQL を投げて結果を処理するだけだから、
繰り返す必要が無く一回のループで可能なはずだ。
最後に、表示更新すべきデータリストの内容が変更されたことをイベントで通知する。
最後でなくても、複数データを適当な塊に分けて入力するたびに通知しても良い。
また、表示更新すべきデータリストでなくても、要は表示処理を担当している処理単位が、
何が更新されたのかが分かればいい。
表示処理の方は、表示更新すべきデータリストの内容が変更されたイベントを拾い、
今画面に見せている部分に変更があれば、画面を更新すればいい。
DB検索の開始と終了のそれぞれに、また別のイベントを投げるようにすれば、
ユーザー入力処理を担っている処理単位の方は、
「DB処理中もフォーカスカーソルは動かしたいけどリターンキーは効かないように」
という仕様も容易に実装できる。
(念のために言っておくが、スレッドなどを使って分けておく必要がある)
0361デフォルトの名無しさん
2010/04/29(木) 14:03:310362デフォルトの名無しさん
2010/04/29(木) 14:06:410363デフォルトの名無しさん
2010/04/29(木) 14:22:18言葉尻捕まえるくらいしか、突っ込めないのかw
0364デフォルトの名無しさん
2010/04/29(木) 20:55:07>この場合、DB検索する処理は普通は一回のループで可能だろ。
>(繰り返し回ることがないからループという言い方がそもそも当てはまらないが)
"ループ"ってイベントループの事なんだけど...伝わらなかったようです
>DB検索の開始と終了のそれぞれに、また別のイベントを投げるようにすれば、
ちなみに、"一連の処理"をGUIと共に実装する方法としては、この方針で
おおよそ問題ないと思います
ただ、DB検索をバックグラウンド処理に移して完了通知をイベントにした瞬間、
"DB検索中"という状態が増えた事に注意してね
全てのイベントハンドラについて、その状態を加味して書くようにしないと、
DB検索完了時として想定していなかった変な状態に遷移してしまっている場合が出てきてしまう
ちなみに、DB検索が失敗したら検索中フラグを適切に落とさないと、
今度はDB検索中状態が延々と続くことになってしまう
DBだけならまだしも、ネットワーク通信、ドラッグアンドドロップなど、
複数イベントループが必要な処理は沢山ある
全てのイベントハンドラについて、
それらの組合せを全て考慮して記述することが容易とはとても思えない
少なくともすぐ間違えるはず
0365デフォルトの名無しさん
2010/04/29(木) 23:16:21> それらの組合せを全て考慮して記述することが容易とはとても思えない
それらは本当に「組み合う」のか?
全てのイベントハンドラの中で依存関係のある、
つまり組み合わせを考慮しなければならない組はどれくらいある?
どのようなイベントハンドラとどのようなイベントハンドラの
どのような組合せをどのように考慮しなければならないのか、
具体例を出して説明できるか?
そして、それらの組み合わされる処理の何を記述するのが大変なのだ?
それはプログラマが全てを事細かく記述するのではなく、
大まかな関係を引数で与えたら自動的にイベントを裁いてくれるような
仕組み(関数やクラスやモジュールなど)を作る方が比較的楽なのではないか?
それができれば、すぐ間違える事は少なくなると思うが。
0366デフォルトの名無しさん
2010/04/30(金) 07:20:38本質的には全て組み合う
なんらかの前提条件が満たされている場合、かつその前提条件がバグによって壊されない場合のみ、
組合せを省略して書いてもよい
0367デフォルトの名無しさん
2010/04/30(金) 11:38:56間違いなくGUIがむずかしすぎるのだ
0368デフォルトの名無しさん
2010/04/30(金) 12:33:05例えばどんな前提条件が満たされてる時に組合せを省略して書けるの?
0369デフォルトの名無しさん
2010/04/30(金) 20:37:37>仕組み(関数やクラスやモジュールなど)を作る方が比較的楽なのではないか?
>それができれば、すぐ間違える事は少なくなると思うが。
イベントの条件判定部分だけ切り出してプログラミングできるのが、
まさに"FRPのevent"でしょ?
そういう意味では、FRP使えでFAなんじゃなかろうか
0370デフォルトの名無しさん
2010/04/30(金) 20:41:48例えば、
ネットワーク通信に入る直前にGUIコントロールを全部disable状態に変更しておけば、
そのGUIコントロールが通信中にイベントを受け取ることはあり得ないので、
disableにしたコントロールのイベントハンドラについては、
ネットワーク通信中かどうかを判定するロジックは省略できる
ただしdisableにし忘れるとアウト
0371デフォルトの名無しさん
2010/04/30(金) 21:02:08>ネットワーク通信に入る直前にGUIコントロールを全部disable状態に変更しておけば、
そうしたら通信先が死んでたりするとタイムアウトするまでGUIは無反応にならない?
0372デフォルトの名無しさん
2010/04/30(金) 21:09:20ネットワーク通信に入る直前にGUIコントロールを全部disable状態に変更するのと、
ネットワーク通信に入る直前にGUIコントロールを全部
「ネットワーク通信中にされると都合が悪いユーザー操作を無視する」状態に変更するのと、
なにか根本的に違うのか?
まさか、無視する処理が難しいとか言わんだろうな
0373デフォルトの名無しさん
2010/04/30(金) 22:28:33組み合わせを省略できる(=難しくない)ってことじゃないの?
0374370
2010/04/30(金) 23:40:15そうです
あくまで組み合せを省略できる一例を示しただけで、
別にdisableにする事を推奨している訳ではないです
逆にdisableにするとGUIが無反応になったり色々嬉しくないので、
むしろそういう安易な対策は好ましくなく、
イベントハンドラできちんと状態を考慮する必要があると皆認識していると分かりました
0375デフォルトの名無しさん
2010/05/01(土) 01:54:210376デフォルトの名無しさん
2010/05/01(土) 04:25:53設定死ぬほど面倒だよ
というか不可能だよ
0377デフォルトの名無しさん
2010/05/01(土) 09:01:55本体のコードが変更されると、周辺のコメントとかGUIはすぐ古くなって問題を起こす
0378デフォルトの名無しさん
2010/05/01(土) 13:54:27だかさら、
> 「ネットワーク通信中にされると都合が悪いユーザー操作を無視する」状態に変更するのと、
> なにか根本的に違うのか
という質問に答えてないだろ?
もし同じであれば、
あなたの言う「GUIが無反応になったり色々嬉しくない」状態は回避しつつ、
あなたの言う「安易な対策」で解決できそうではないかと言いたい。
根本的に違うのであれば、どのように違うのかを示して欲しい。
わたしは本質的に同じと思っているから。
(どちらもトリガによって状態を変更し、状態に合わせて処理を分岐する)
> イベントハンドラできちんと状態を考慮する必要がある
なにやら、きちんと状態を考慮するのが難しいと言っているように聞こえる。
設計時にちゃんと必要な状態やトリガを洗いざらいリストアップしているか?
リストアップしたものの中で関連性が高いもの、依存しているもの、
一連の処理として分割できないもの、できるもの、ちゃんと仕分けしているか?
それぞれの状態遷移図や状態遷移表などを「大きな紙」に描いたりしているか?
0379デフォルトの名無しさん
2010/05/01(土) 14:47:570380デフォルトの名無しさん
2010/05/01(土) 16:00:33>リストアップしたものの中で関連性が高いもの、依存しているもの、
>一連の処理として分割できないもの、できるもの、ちゃんと仕分けしているか?
>それぞれの状態遷移図や状態遷移表などを「大きな紙」に描いたりしているか?
全てのボタンやメニューについて全部?
そんな事したことない
たぶんすぐ古くなってそれだけの労力が報われないと思う
そのコストを受け入れるより、
プログラムの作り方でなんとかならないのかなー?
0381デフォルトの名無しさん
2010/05/01(土) 17:26:10それぞれ状態によって有効/無効を切り替えるとする。
ボタンは将来追加される可能性もある。
君ならどうする?
状態A - ボタン1 3 5 7 9 を有効にし、それ以外を無効にする。
状態B - ボタン0 2 4 6 8 を有効にし、それ以外を無効にする。
状態C - ボタン0 1 2 3 4 を有効にし、それ以外を無効にする。
:
:
0382デフォルトの名無しさん
2010/05/01(土) 17:37:20アクションには、他のボタンの有効/無効や状態も切り替える事も含まれる。
君ならどうする?
0383デフォルトの名無しさん
2010/05/01(土) 17:57:37>全てのボタンやメニューについて全部?
なんでボタンやメニューから考え始めようとするんだよ。
まず実現させたい機能が先だろ。
それを洗い出して、その機能を実現させるための処理の組み合わせを考え、
それらの組み合わせる処理が他の処理と排他的な関係にあるのか、
同時に起こってもいいものなのか、などの関係を洗い出して、
最後の最後にその機能を発動させるスイッチとして、
ボタンやメニューなどを考えるんだよ。
機能よりもスイッチの方が多くなるのだから、
先に昨日動詞の関係をまとめておけば、イベントのごちゃごちゃも、
先にボタンとかを考え始めてた時よりは設計が楽になる。
0384デフォルトの名無しさん
2010/05/01(土) 18:47:11既存のコンポーネントで完結するなら
それほど手間じゃないんだけどな
オレも昔MFCで苦労した事あったから
GUIは誰にでも出来て簡単だとは言わないよ
0385デフォルトの名無しさん
2010/05/01(土) 18:49:06例えばディレクトリ以下のファイルをコピーするという単純な処理を
例に挙げると、
何も考えずにその手続き「だけ」を書くのは簡単だが、
GUIなら実際には進捗ダイアログを出したいだろう
というわけで、進捗ダイアログを出すことを前提にベタでコードを書くと、
それ「無し」のコードとは似ても似つかないものが出来上がる
スレッドを使える場合はまだシークエンシャルに手続きを書けるだろうから、
adviseやhookっぽい仕組みを使えば、両者で同じ部分を抽象化しやすい
かもしれない
が、GUI化することで本質的にイベントドリブンなコードになってしまう場合は
そうすることも難しくなる
気を抜くと、汎用性もへった暮れも無い、抽象度の低い、ベタなコードが
量産されてしまうことになる
0386デフォルトの名無しさん
2010/05/01(土) 19:31:56「現場」は「紙芝居」をまず作るんだよ
察してやれよ
0387デフォルトの名無しさん
2010/05/01(土) 19:37:32そして、「現場」では仕様作成者とプログラマが別の人間だな
「仕様」とは「紙芝居」のことで
その段階で内部状態やその整合性、実装上の都合が考慮されていることは
まずないな
そしてプログラマは「どうあるべき」ではなく、「紙芝居に合わせる事」を
求められるわけだ
0388デフォルトの名無しさん
2010/05/01(土) 19:47:120389デフォルトの名無しさん
2010/05/01(土) 20:00:01俺は>>385の理由で俺にとっては難しいけど
書き捨てコードは書きたくないが、書き捨てでないコードを書くのが難しい
だからGUIを書きたくない気持ちにさせられるんだと思う
0390デフォルトの名無しさん
2010/05/01(土) 20:50:00> 進捗ダイアログ
これをちゃんとやるのは難しいよねえ。
0391デフォルトの名無しさん
2010/05/01(土) 20:51:39それはお前に知識が不足してるだけ、
別に難しくはない
0392デフォルトの名無しさん
2010/05/01(土) 21:26:13それは GUI だからなのか・・・
0393デフォルトの名無しさん
2010/05/01(土) 21:31:55「難しい」って、誰も計算機科学における難問であるとかいう意味で言ってねえから
その単語が気に食わないなら、「凡人には難しい」とか「面倒」と
言い換えてもいいと思うよ
進捗ダイアログは、時間の見積もり、進捗表示、キャンセル、
(場合によってはロールバック)、といった、処理の本質とは関係ない
仕事を発生させる
べた書きすれば可能だが、結構泥臭い話なので、
進捗ダイアログと、それとやりとりする本質的な処理を
美しく抽象化するのは俺には難しいな
0394デフォルトの名無しさん
2010/05/01(土) 22:01:23本当にただの凡人だけどね。
当然、文献を当たって調べたり、自分で考えたり、
実験を繰り返したり、質問したりして、抽象化の方法を勉強してるんでしょ。
なら、そのうちものに出来るよ
0395デフォルトの名無しさん
2010/05/01(土) 22:03:31関わりたくない
0396デフォルトの名無しさん
2010/05/01(土) 22:05:29いや俺は本当にただの凡人だよw
以前職業的なSEだったこともあるが、もう辞めた
今でも自分のためのコードを書くことはあるが、非本質的なコードや
書き捨てのコードを書きたくは無いから、そういう要素が多くなりがちな
GUIを書こうという気になることがそもそも滅多に無い
ゲームつくりが趣味なら良かったんだが
0397デフォルトの名無しさん
2010/05/01(土) 22:14:55みたいな話はもういいよ・・・
0398デフォルトの名無しさん
2010/05/01(土) 22:52:59勉強のコツが分かると、面白くなるんだけどな
俺は問題を分解して関連を図示するを理解したら、面白くなった
そりゃ、興味が薄れたり他のものに移ればやる気が無くなるのはしょーがないが
0399デフォルトの名無しさん
2010/05/01(土) 22:58:220400デフォルトの名無しさん
2010/05/01(土) 23:20:23どちらか選ぶためには、一方は簡単でもう一方は難しいと言えないと駄目だと思う。
どちらも簡単だと言ってしまうと、そこで止まってしまう。
0401デフォルトの名無しさん
2010/05/01(土) 23:28:38CUI〜GUIの間で悩んでる人っていなくね?
難しさ=情報量というただの困難というつまらないものや
和算証明の類のひねりものだったり
それはGUI固有の問題ではないよね?という
あなたはUI以前の排他でも躓くというレベルの人であったり
話し込めば最終的には哲学・宗教になりそうな人
GUIが難しいというなら
GUI固有の問題を引き合いに出さねば説得力がまるでない
0402デフォルトの名無しさん
2010/05/01(土) 23:31:16上で出てたんじゃないの?
イベントドリブン/非同期プログラミング特有の問題だとか
まあ非同期プログラミング全般がそうだから、GUI固有でもないけど
0403デフォルトの名無しさん
2010/05/01(土) 23:48:37すぐ終了するようなのに比べたら、そりゃ「相対的に」難しいってか面倒だと思うし
そんなの自明だと思うんだけど
・イベントドリブンなので、単純にトップダウン/シークエンシャルに書けない
・入力も多いし、出力も多い、単にprintf()じゃ済まない。要はやることが多い
・自分の都合で終われない。いつまで実行されてるか分からないので、リークが致命的
0404デフォルトの名無しさん
2010/05/01(土) 23:55:22すぐ終了するようなのをあらかじめいっぱい作っておいて
それをまとめる部分だけGUIにすれば良いと思うよ
0405デフォルトの名無しさん
2010/05/01(土) 23:58:55難しいと面倒臭いはイコールとは思わないので2番目はスルー
1,3はGUI固有とは言えないサジ加減だよね
0406デフォルトの名無しさん
2010/05/02(日) 00:00:230407デフォルトの名無しさん
2010/05/02(日) 00:06:41上向き構文解析でやってることと同じだから GUI 固有ではない
0408デフォルトの名無しさん
2010/05/02(日) 00:08:200409デフォルトの名無しさん
2010/05/02(日) 00:19:26なにも話せないw
0410デフォルトの名無しさん
2010/05/02(日) 00:23:58難しさがあるように思う
0411デフォルトの名無しさん
2010/05/02(日) 00:29:56おかしなローカルルールだな
>>408
スレタイがそれですから
>>407
>>409
それなのにここまで伸びるって不思議だよね
だから401で疑問を問いかけたんだ
0412デフォルトの名無しさん
2010/05/02(日) 00:46:54「イベントによる状態遷移」の作法をGUIの話題として話すのはNG
なぜなら上向き構文解析でやってることと同じだから
おかしいだろこれ
GUIに引き寄せて語っても構わないんだよ
0413デフォルトの名無しさん
2010/05/02(日) 00:48:55それって客の目に触れし、感じ方が人それぞれだから難しいと?
そうでないんなら、GUIなんて決まりきったことばっかじゃん
0414デフォルトの名無しさん
2010/05/02(日) 00:48:57いやスレタイは単に「GUIがむずかしすぎる」と言っているだけだろ
Aに似た性質の難しさをBが持っているからといって
Aが難しいと言ってはいけないことにはならない
それこそ意味不明な主張だな
0415411
2010/05/02(日) 01:26:25それは「何処」から引き寄せてくるのでしょ?
「CUI」と前提しますとCUIを舐めすぎじゃ?
1プロセス1スレッドばかりがCUIではありませんよ。
ちなみに
401=405=411≠407
察して欲しかったな。
>>413
俺もそう思う。
見栄えだったり操作性だったり描画性能だったりそんなとこだよね。
難しいとうか、際限のない鬱陶しさ。
もちろん、GUI特有の知識も必要だし
理解しなくては出来ない事も多々あるけど
排他で悩むってなんだよとw
それ以前の会話でしょとね。
>>414
包括関係にあるからその論理は成り立たん。
0416デフォルトの名無しさん
2010/05/02(日) 08:57:57排他で悩む機会がGUI以外に無かったんだろ
GUI特有ではないというのは綺麗事であって
現実にはGUI以外で排他で悩むような身近な例が無いんだよ
0417デフォルトの名無しさん
2010/05/02(日) 10:31:45そうでもないんじゃないの
CGIでおもちゃみたいなアクセスカウンター作るにしても排他は必要だし
まあGUIで多用されるオブザーバーパターン/コールバックみたいなのは
マルチスレッド初心者がデッドロックで嵌りやすい典型例ではあると思うけど
0418デフォルトの名無しさん
2010/05/02(日) 11:15:53イベントハンドラに依存関係があったりする場合は
そもそもセパレートしたらダメじゃん
0419デフォルトの名無しさん
2010/05/02(日) 11:44:56定石を知らないのが「初心者」なんでしょ
0420デフォルトの名無しさん
2010/05/02(日) 12:41:42要するに、GUI の実装で悩んでるんなら、
GUI 以外の色々な分野に "も" 目を向けろってことだよな。
そうすればヒントになりそうなものは色々あるんだし。
視野の狭さが招いた「行き詰まり≒難しさ」なんでは
0421デフォルトの名無しさん
2010/05/02(日) 22:30:01>Observerパターンは separation of concerns 要はswitch文をバラバラにする仕組み
>イベントハンドラに依存関係があったりする場合は
>そもそもセパレートしたらダメじゃん
でも、GUIコンポーネントが既にObserverパターンのlistener側を要求してくるので、
ライブラリを使う側としてはどうしようもないです
もしObserverパターンがだめなら、自前でGUIライブラリを作ると仮定して、
どういう設計がいいでしょうか?
なにかアイディアがあったら教えてほしいです
0422デフォルトの名無しさん
2010/05/02(日) 22:51:16"現状のGUIのむずかしさ"は致し方ないのか?
それとも、もっと優れた作り方があって、多くのGUIライブラリがそれに気づけていないだけなのか?
という事
FRPみたいな新しいGUIの作り方が出てきてるけど、
実際に使ってみた人いますか?
0423デフォルトの名無しさん
2010/05/02(日) 23:23:11「問題が完全に把握できないときは、解決策も提供しないのが最善の方法である。」
Observerもオブジェクト指向も提供しない、余計なことはなにもしない
「小さな政府」がいいと思う
0424デフォルトの名無しさん
2010/05/02(日) 23:39:55> もっと優れた作り方があって ...
> FRPみたいな新しいGUIの作り方が出てきてるけど、...
たぶん、ちょっと勘違いしてると思う。
[Reactive Programming]
簡単に言えば、a = 1 + b という式を定義しておけば、
変数 b を変化させた時に a も「自動的に」変化する、という仕組み。
たとえば、a を画面の背景色として、b をボタンとすると、
b の変化(ボタンが押された)に伴って a が変化(画面が赤くなる)する。
確かに宣言的に定義できるというメリットは大きいけど、
何と何を紐付けるか、紐付けた事による周りへの影響は、
ある事柄が紐付いた時に別の紐付けを解く必要があるか、
別の日も付けた事柄との間に時間軸上での依存性はあるか、
などはやはり人間が考慮しなくちゃならない。
イベント処理が難しいと感じてる人たちにとっては、
似たような悩みがつきまとうと思う。
0425デフォルトの名無しさん
2010/05/03(月) 00:30:420426デフォルトの名無しさん
2010/05/03(月) 09:47:33ようやくポインタとか仮想関数とかなんとなく理解でけた。
いよいよWindowsアプリを勉強しようと思うんだけど、GTK++たかQtとか
いろいろあるけど、どれやったらえんだろ? おしえてちょ。ちなみに
あまり金もってない。 Qtって無料の開発環境あるんだろか?
0427デフォルトの名無しさん
2010/05/03(月) 10:41:28とりあえず高級GUIライブラリを使わず Win32API でゴリゴリやっとけ。
メッセージループの回し方も知らないんではスタート地点にも立ってない。
猫でもわかるプログラミング(http://homepage2.nifty.com/c_lang/)
ここの [Windows SDK編 第1部] と [Windows SDK編 第2部] を
自分でプログラムしながらざっと追えばいい。
1ヶ月くらいでこなせるだろ。
そうすると、高級GUIライブラリや Java のライブラリが
内部で何をやっているのか、だいたい想像できるようになって、
勉強がはかどる。
0428デフォルトの名無しさん
2010/05/03(月) 10:47:18激しく同意
同じこと書こうとしたら先を越されたw
0429デフォルトの名無しさん
2010/05/03(月) 11:18:42うっしゃ! おおきに。意味はよくわからんが、やるきになた。
0430デフォルトの名無しさん
2010/05/03(月) 12:54:02何年もJAVAやってる奴が、C++で仮想関数をようやく理解できたっておかしくね?
JAVAで何をやってたんだw
0431デフォルトの名無しさん
2010/05/03(月) 14:12:010432デフォルトの名無しさん
2010/05/03(月) 14:43:270433デフォルトの名無しさん
2010/05/03(月) 15:30:20数えきれんぐらい作ったけど、
仮想関数なんて見た事も聞いた事もなかったよ。ポインタはうわさぐらいは
聞いたけど。
0434デフォルトの名無しさん
2010/05/03(月) 15:33:09仕方ないね
0435デフォルトの名無しさん
2010/05/03(月) 16:03:25C++の仮想関数をようやく理解できたってのは変だろ
CやBASICをやってた人なら話は別だが、JAVAをやってたら、
「仮想関数って言うんだ、フーン」程度で終わるだろ
0436デフォルトの名無しさん
2010/05/03(月) 16:10:390437デフォルトの名無しさん
2010/05/03(月) 16:11:320438デフォルトの名無しさん
2010/05/03(月) 16:27:58フレーズをよく見るが、AbstractClassというものに興味を持った事も
疑問を持った事も一切ない。
0439デフォルトの名無しさん
2010/05/03(月) 16:30:38お前は10年間何をやってたんだ?
そんなんじゃ、ろくなものつれないだろ?
0440デフォルトの名無しさん
2010/05/03(月) 16:33:040441デフォルトの名無しさん
2010/05/03(月) 16:46:310442デフォルトの名無しさん
2010/05/03(月) 16:54:52GUIだけなら、誰でもそうだろ?
0443デフォルトの名無しさん
2010/05/03(月) 17:00:57ちゃちゃっと作ってエラーでたら、ネット検索にその部分を貼り付けて出た
例文見て適当にそれをペーストしたら動く。
0444デフォルトの名無しさん
2010/05/03(月) 17:24:030445デフォルトの名無しさん
2010/05/03(月) 17:38:230446デフォルトの名無しさん
2010/05/03(月) 20:10:33猫に分かるように書くとああなるんだよ
0447デフォルトの名無しさん
2010/05/03(月) 20:30:19仮想関数とはJAVAのimplementsされるクラスみたいなもんか。
なーんだ、そんな事なら早く言ってくれよ。まったくっ
0448デフォルトの名無しさん
2010/05/03(月) 20:37:21C/C++言語以前に、猫言語を習得していないと、あのページは読めないぞ
0449デフォルトの名無しさん
2010/05/03(月) 20:39:26アプリつくる時にゃ1つや2つは作ってるけど。。。
これで仮想関数なるものがやっとわかったぜおおきに。
0450デフォルトの名無しさん
2010/05/03(月) 20:46:07全然違う
このコードを走らせてみて理解汁
Javaだと、全てのメソッドはC++でいう仮想関数と同じ動作になる
仮想関数は、実行時型に応じてポリモーフィックに動作するが
非仮想関数は、ポリモーフィックに動作しない
#include <stdio.h>
struct base {
const char *static_hello() { return "hello, base"; }
virtual const char *virtual_hello() { return "hello, base"; }
};
struct derived : public base {
const char *static_hello() { return "hello, derived"; }
const char *virtual_hello() { return "hello, derived"; }
};
main()
{
base *p = new derived;
printf("static: %s\n", p->static_hello());
printf("virtual: %s\n", p->virtual_hello());
delete p;
}
0451デフォルトの名無しさん
2010/05/03(月) 21:10:19invokevirtual
invokeinterface
invokestatic
invokespecial
の4種類あって、invokespecial(コンストラクタ)とinvokestatic(staticメソッド)はポリモーフィックには動作しないよ。
0452デフォルトの名無しさん
2010/05/03(月) 21:11:37ああ全てと言っちゃうと語弊があったね
指摘サンクス
0453デフォルトの名無しさん
2010/05/03(月) 21:14:18ややこしいもんだな。Javaも俺の知らん内部でややこしくやってるわけか。
0454デフォルトの名無しさん
2010/05/03(月) 21:14:540455デフォルトの名無しさん
2010/05/03(月) 21:24:47ExcelやWordと同じ
0456デフォルトの名無しさん
2010/05/03(月) 23:09:5610年は無駄じゃなかった・・・と思うよ
0457デフォルトの名無しさん
2010/05/03(月) 23:19:550458デフォルトの名無しさん
2010/05/03(月) 23:26:41っあ、なんだ趣味でやってるような、ヲタでしたかw
だったら、何の問題もないんじゃねw
0459デフォルトの名無しさん
2010/05/03(月) 23:44:250460デフォルトの名無しさん
2010/05/04(火) 08:52:51目くそ鼻くそを笑うの典型だな。
0461デフォルトの名無しさん
2010/05/04(火) 09:06:33独特のポインタ概念とイベント概念が存在していて
どれも異なったやり方をしてるけど
決して無くなることのない部分で
分からない人はこの辺が分からないんだろうな
C++のクラスとポインタ概念が分かればどれも同じことをやってるだけなんだけど
結局内部で何をやってるか調べられるようになるだけど
Frameworkで用意されたものを見せられるだけじゃ
C++やJavaを熟知した人間にも分からないよ
なんかこう統一して欲しい部分ではあるな
0462デフォルトの名無しさん
2010/05/04(火) 17:17:490463デフォルトの名無しさん
2010/05/04(火) 17:43:04そんなあなたにUML
0464デフォルトの名無しさん
2010/05/04(火) 17:52:02GUIが難しすぎる という以前に自分の読解力、知識のなさを棚に上げるのはどうかと思う
0465デフォルトの名無しさん
2010/05/04(火) 18:09:09では訊くが、>>461 は結局のところ「何を統一して欲しい」と言ってるんだ?
それは >>461 が言う「決して無くなることのない部分」なのか?
(そもそも、その部分が何を指してるかもやや曖昧だが)
0466デフォルトの名無しさん
2010/05/04(火) 18:20:05>「何を統一して欲しい」
コンピュータ手続き処理
ISO9000 シリーズを参照
0467デフォルトの名無しさん
2010/05/04(火) 18:37:53かわいそうに
かわいそうに
0468デフォルトの名無しさん
2010/05/04(火) 18:52:56>>466 はコンピュータ手続き処理というものが統一して欲しい対象だと解釈している。
どっちなんだ? どっちも違うのか?
それともコンピュータ手続き処理とやらは UML で統一できるのか?
0469デフォルトの名無しさん
2010/05/04(火) 18:53:49=== 開始 ===
0470デフォルトの名無しさん
2010/05/04(火) 23:05:450471デフォルトの名無しさん
2010/05/04(火) 23:14:05そのドキュンなメイトとコードの一元化によってGUIの何とかという問題を解決するよ
とかさ
0472デフォルトの名無しさん
2010/05/05(水) 00:03:390473デフォルトの名無しさん
2010/05/05(水) 00:19:06それ以前に、ドキュンなメイトとコードの一元化ってのがどういう状態をさしているのか理解できん
0474デフォルトの名無しさん
2010/05/05(水) 14:08:08あなたは理解しなくていいです
0475デフォルトの名無しさん
2010/05/05(水) 14:13:320476デフォルトの名無しさん
2010/05/05(水) 14:42:010477デフォルトの名無しさん
2010/05/05(水) 16:48:09この本は猫どころか相当頭のいい者でも混乱させるだけで、
ポインタでC習得挫折者を続出させたA級戦犯的入門書じゃないか。
0478デフォルトの名無しさん
2010/05/05(水) 16:50:003行目は猫が出る前からポインタ問題は存在していたから同意出来ない
0479デフォルトの名無しさん
2010/05/05(水) 16:53:551~476スレの間でそんな本を紹介してたヤツはいないが
0480デフォルトの名無しさん
2010/05/05(水) 17:34:03ポインタの挫折は被害者に加勢して加害者の悪名を高めておきながら、
OOとGUIは挫折したら自己責任とか、まさかそんな事は言えないよな
0481デフォルトの名無しさん
2010/05/05(水) 20:10:23迷惑だ
0482デフォルトの名無しさん
2010/05/05(水) 20:46:58の言語となる望みを絶ったのは、永久凍土の問題なのだ。」
0483デフォルトの名無しさん
2010/05/06(木) 01:24:28君の思考はまさにこれ
http://ja.wikipedia.org/wiki/%E9%98%B2%E8%A1%9B%E6%A9%9F%E5%88%B6
赤ちゃんやキチガイと同じ
選択肢は3つ
独裁者になる(思い通りになるものを作る、作らせる)
世捨て人になる(思い通りにならないものには触れない)
慣れる(学習する)
何でもかんでも人とせいにするのはやめましょう
0484デフォルトの名無しさん
2010/05/06(木) 02:41:18独裁者になる(思い通りになるものを作る、作らせる)
世捨て人になる(思い通りにならないものには触れない)
慣れる(学習する)
人を使う(他人にやらせる)
成功するのは後者だ
0485デフォルトの名無しさん
2010/05/06(木) 21:46:19いきなりオブジェクト指向はあなたに無理
0486デフォルトの名無しさん
2010/05/06(木) 21:48:43上から下へと処理が流れる時代ではないのよ
色々なプログラムがあって、メッセージを受け取り、どのプログラムに
送信するかOSが決める
そして、そのプログラムを実行するタイミングもOSが管理する
これを理解できない限りWindowsプログラミングはあきらめたほうがいい
0487デフォルトの名無しさん
2010/05/06(木) 22:05:07人を原因にするのがイヤなら人以外の物でいいから、とにかく原因を探そう
0488デフォルトの名無しさん
2010/05/06(木) 22:18:24すこしずつ、慣れるのがいい
結果が欲しいんだろ?
もしくは、printf( "hello world\n" );からでもいい
ゆっくりやるのがいい
0489デフォルトの名無しさん
2010/05/06(木) 22:22:56自分は、この処理の流れがわかrない
なぜ、こう処理されるのか、
原因と結果を自分で確かめる、実行する 人のせいにしない
時には人に相談するもよし
ここまでくると、自分は、どこのどういう処理、形式が分からないという内容の
発言で自分はここまでは理解できます
という自己表現が必要
自分ができないことを紙にかいてみる
したいことも書いてみる
そこから、何が原因でできないかを考える
0490デフォルトの名無しさん
2010/05/06(木) 22:36:17解くのもむずかしいが、出題するのもむずかしい気がする
0491デフォルトの名無しさん
2010/05/07(金) 13:30:340492デフォルトの名無しさん
2010/05/07(金) 13:58:47レイヤー機能の作り方みたいな講座サイトってないでしょうか?
0493デフォルトの名無しさん
2010/05/07(金) 15:02:450494デフォルトの名無しさん
2010/05/07(金) 15:26:06今時点ではわからず。
GUIでレイヤーをつかう、という情報がどこから仕入れられるのでしょうか
0495デフォルトの名無しさん
2010/05/07(金) 15:36:360496デフォルトの名無しさん
2010/05/07(金) 15:48:17フォトレタッチソフトで言うところのレイヤーです。
0497デフォルトの名無しさん
2010/05/07(金) 15:52:130498デフォルトの名無しさん
2010/05/07(金) 15:58:560499デフォルトの名無しさん
2010/05/07(金) 16:07:50必要な部分だけ抜き出して
0500デフォルトの名無しさん
2010/05/07(金) 16:08:58待ってろ
0501デフォルトの名無しさん
2010/05/07(金) 16:09:543カ月ほど待ちなされ
0502デフォルトの名無しさん
2010/05/08(土) 08:21:39たとえ3ヶ月後にバージョンアップしてて
つかいものにならなくてても待つ
0503デフォルトの名無しさん
2010/05/09(日) 08:22:46このクソキチガイ弟が
0504デフォルトの名無しさん
2010/05/09(日) 08:24:40俺は海外留学できたくらい英語ができる人間様だ
ハンゲじゃ貴族で誰もがおれをしたってる
麻雀もできやしねぇ弟なんかクソゴミ
そんなクソゴミが俺様に逆らうってのは殺されたいのか?あ?
0505デフォルトの名無しさん
2010/05/09(日) 08:30:54お前の理屈なんかききたくものねー
麻雀は通にしかわからない選ばれた者だけの一流のゲームだ
相手の捨て牌さえ見てれば、相手の役なんかわかるんだよクソボケ
麻雀のDVDでも不正はできねぇって言ってるんだ
リアルでも不正できねぇのに ネトゲで不正できるわけねぇだろ
0506デフォルトの名無しさん
2010/05/09(日) 10:26:350507デフォルトの名無しさん
2010/05/09(日) 18:45:13画像の表示、イベントドリブンだったな。
画像表示はBitBltで行うが、HDCの部分が分かりにくい。
出力先、元がHWND、HDC、HBITMAPどれの場合でも、
ひとつの関数で出力できる関数を作ると使いやすい。
イベントドリブンは、わざわざコールバック関数に投げるのが意味不明だった。
GetMessageで得たMSG構造体をメッセージループでそのまま使えれば、
while(1){c = getch()}みたいな使い方と似ていて分かりやすいのだが。
実際自分はそのやり方でやる事で使いやすくなった。
WM_PAINT、WM_COMMAND、WM_CLOSEは
メッセージループの方には来ないので、
関数のstatic変数などに記憶する必要がある。
ただ、javaやas3はこの技が使えなく、文法もさらに厳しく、
結局、オブジェクト指向風の考え方が必要になってきた。
0508デフォルトの名無しさん
2010/05/09(日) 18:49:13すべての関数がstaticな人
意味わからん
0509デフォルトの名無しさん
2010/05/09(日) 18:57:47これで勝つる
0510デフォルトの名無しさん
2010/05/10(月) 00:14:52釣りじゃなくて本気だったらお前は向いてない
0511デフォルトの名無しさん
2010/05/10(月) 01:32:37動的に型タグを調べなおしたりするから静的型の意味が無い。
イベントドリブンに拘るのはそういう事情もあるんだろうな。
0512デフォルトの名無しさん
2010/05/10(月) 02:00:250513507
2010/05/10(月) 07:08:41正規?の書き方もできるが、時間はかかってしまう。
as3はstaticな関数とか使えない(はずだ)から書かざる得ない。
DirectXやアイフォンならCベースで書けるらしいけど。
>>509>>511
ヒントに勉強させてもらう、サンクス。
0514デフォルトの名無しさん
2010/05/10(月) 21:58:250515デフォルトの名無しさん
2010/05/10(月) 22:11:410516デフォルトの名無しさん
2010/05/10(月) 22:54:11できたら書籍が多く出てる言語がいいんだけど
0517デフォルトの名無しさん
2010/05/10(月) 22:59:24C++ + Qt
QtRuby
Java + swing
0518デフォルトの名無しさん
2010/05/11(火) 11:11:450519デフォルトの名無しさん
2010/05/11(火) 11:15:440520デフォルトの名無しさん
2010/05/11(火) 12:40:370521デフォルトの名無しさん
2010/05/11(火) 12:42:100522デフォルトの名無しさん
2010/05/11(火) 12:42:51GUI アプリ作りたいなら Ruby だけは止めとけ
0523デフォルトの名無しさん
2010/05/11(火) 16:10:470524516
2010/05/11(火) 17:09:36いろいろと情報サンクス
0525デフォルトの名無しさん
2010/05/16(日) 00:23:430526デフォルトの名無しさん
2010/05/23(日) 16:30:520527デフォルトの名無しさん
2010/05/25(火) 18:35:360528デフォルトの名無しさん
2010/06/02(水) 21:10:520529デフォルトの名無しさん
2010/06/02(水) 21:58:13配置だけならデスクトップのアイコンの自動配列をマネれば・・・
どこらへんで悩んでいるのかkwsk
0530デフォルトの名無しさん
2010/06/02(水) 23:27:33デザイニング・インターフェース
http://www.amazon.co.jp/dp/4873113164/
あるいは、関連本
0531デフォルトの名無しさん
2010/06/03(木) 13:20:410532デフォルトの名無しさん
2010/06/10(木) 02:42:010533デフォルトの名無しさん
2010/06/14(月) 16:23:410534デフォルトの名無しさん
2010/06/16(水) 11:54:120535デフォルトの名無しさん
2010/06/17(木) 19:49:180536デフォルトの名無しさん
2010/06/24(木) 00:14:52Qtはいいけど、高すぎ
趣味かえるレベルではない
0537デフォルトの名無しさん
2010/06/24(木) 00:22:5620 年近く前から連綿と続いているというのも凄い。
0538デフォルトの名無しさん
2010/06/24(木) 01:50:35qtのどこが高いんだ?
無料ジャン
0539デフォルトの名無しさん
2010/06/24(木) 08:48:16Qt は趣味で使うなら無料だし,個人でチマチマやる程度なら
商用でもLGPL版で行けそう
企業でソフト売るために本格的に使うなら高いという程の値段じゃないし
0540デフォルトの名無しさん
2010/06/24(木) 21:34:59>企業でソフト売るために
ソース付ならQtにライセンス料払わずに売っても良いんだよね
0541デフォルトの名無しさん
2010/06/24(木) 21:49:54LGPLと商用ライセンスのどちらかを選べるようになってる
ただし、フリー版で開発して発売する段階になって商用ライセンス取るのは一応NGとされてる
0542デフォルトの名無しさん
2010/06/24(木) 22:20:40Qtの場合にはそういう状況にならなそうだな
> ただし、フリー版で開発して発売する段階になって商用ライセンス取るのは一応NGとされてる
それは知らんかった
まずフリー版で試してうまく行きそうだったら商用買うなんていかにも
ありそうなシナリオだと思ってた
0543デフォルトの名無しさん
2010/06/25(金) 20:37:210544デフォルトの名無しさん
2010/06/26(土) 23:21:39コンパイルして売りますね
0545デフォルトの名無しさん
2010/07/13(火) 17:28:28これまでの流れからすると、古いプラットフォームや人気のないプラットフォームは
あっさり中止する感じですね。その上、古いバージョンは配布していないようですので
切り捨て文化だと思います。
つまり、商用でごりごりVerUpしていくならともかく、個人利用ではドンドンVerUPして
ついて行くか、見捨てられた古いVerのQTで頑張るかという決断を強いられる。
ついていくとなればOSやらH/Wやらの更新が発生し、自作ソフトの旧Ver使用者は
なし崩し的に捨てる事になるでしょう。一方、古いQTで頑張るならばもしQTにバグや
セキュリティホールが見つかれば自身で直すか、自作ソフトの機能を変更/削除して
ごまかす事になるでしょう。また旧QTが入手困難であるため、開発協力者は現れない、
QTの機能は増えないというのも頭が痛いところですね。
0546デフォルトの名無しさん
2010/07/13(火) 22:16:27Qt4ってQt3との互換性維持しているはず
Qt3が2001,Qt4が2005年に出たみたいだけど,
それってそんなに「切り捨て文化」なの?
ちなみに「個人利用」って商用のソフト書く場合について?
GPLとかなら最新版使えるよね
0547デフォルトの名無しさん
2010/07/13(火) 23:00:30それってQtに限らず、どんなツールキット(ライブラリ)にでも当てはまることじゃないのかな。
たとえば、自分はRuby-GTKとRuby/Tkでプログラミングすることが多いんだけど、
Ruby-GTK2の登場でRuby-GTK(GTK1ベース)の開発は打ち切りになった。
まぁ打ち切りになるのは分かるんだけど、メンテナがいないのか、最近のLinuxディストリ
(具体的にはDebian/Lenny)ではパッケージ配布まで中止されたから、自前でRuby-GTKを
ビルドしなければならない。また、仮にRuby-GTKにバグが見つかった場合には
(今のところ経験は無いけど)、自力での解決を迫られることになると思う。
また、VineLinux1.x時代に作った(Tk7.xベースの)Ruby/Tkスクリプトも、
最新のLinuxディストリで動かすには移植作業が必要になる。(大した手間じゃないけどね)
あと、Qtについては触った事が無いというか、使う必要性を感じていない。
理由は、特定のベンダに縛られた仕様に依存したくない事と、GPLの強制が嫌だから。
0548デフォルトの名無しさん
2010/07/13(火) 23:13:09今はGTKは完全にQtに追い越され
いつ消えるのかって状態だと思うけど。
ま、GNOME関係があるから生き残るだろうけどね。
それ以外のマルチプラットフォームライブラリとしては
Qtの方がすべての点で上。
0549デフォルトの名無しさん
2010/07/13(火) 23:15:22○GPLの強制ってなんのこと?
http://ja.wikipedia.org/wiki/Qt
ライセンスには商用版とオープンソース版があり、
現在のオープンソース版のライセンスはLGPL(Qt4.5より)およびGPL である
商用版を購入するとQt 商用ライセンス(Qt Commercial Developer License)でソフトウェアを開発することができる[2]。
LGPL版は、2009年3月にリリースされたQt 4.5から提供され始めた。
これによりQtは営利企業にとってもより使いやすいライブラリーとなった。
0550デフォルトの名無しさん
2010/07/13(火) 23:17:57マルチプラットフォームライブラリ+GUIツールキット+IDE(統合開発環境)
Visual Studio+Windows SDKに近い存在だよ。
0551547
2010/07/14(水) 00:18:13>今はGTKは完全にQtに追い越され
>いつ消えるのかって状態だと思うけど。
オープンソースコミュニティ(gnome.org)が存続する限り、GNOME(=GTK)が消えることは
ありえないと思いますけど。gnome.orgが解散を表明!!とかGTK開発の放棄を宣言!!みたいな時事について
情報はお持ちですか?。もし持っていないのなら、それは>>548の個人的な願望、あるいは妄想でしょう。
>それ以外のマルチプラットフォームライブラリとしては
>Qtの方がすべての点で上。
QtはGTKより後発で、しかも営利団体の庇護の基にありますから、機能性や技術情報の整備状況などを
総合的に比較すれば、その通りだと思います。これはCocoa(by Apple) vs. GNUstep(by GNU)の
関係と似ています。また、マルチプラットフォーム性については比べようもありません。
もし私が「仕事で」ツールキットを選択できる立場にあったとしたなら、間違いなくQtを選ぶでしょう。
ただし、「個人的な趣味のプログラミングで」ツールキットを選ぶなら、GTKを選びます。
理由は前(>>547)にも書いたように、特定のベンダの意向に縛られたくないからです。
(私はCocoa/CarbonやWPF/Win32も嫌いです。)これは個人の主観の差であるとしか言いようがありません。
>>549
これは勉強不足でした。WikipediaとNOKIAのサイトを見ると、すべてのプラットフォームで
LGPLが適用できるみたいですね。>>547の「GPLの強制」という発言は取り消します。
0552547
2010/07/14(水) 00:49:52>Visual Studio+Windows SDKに近い存在だよ。
Qtが提供するのは(統合開発環境ではなく)GUI開発環境でしかないと思いますけど。
たとえばWCF(Windows Communication Framewok)によるサービスを提供している
アプリがリモートWindows Server上で動いていて、そのサービスを利用したいとします。
Qtの統合開発環境では、そのようなネットワークサービスを抽象化したマルチプラットフォーム
フレームワークを利用できますか?(SOAPは機能性が著しく制限されるのでN.Gですよ)
たとえば、MacOSX上でGTDアプリを開発しようとして、アドレスブックやiCal(カレンダ)の
情報とリンクする機能を実現したいとします。Qtの統合開発環境では、そのようなアプリケーション間
連携サービスを抽象化したマルチプラットフォームフレームワークを利用できますか?
もちろん、このようなプラットフォーム固有のサービスに依存しないアプリ開発は多く存在するでしょう。
また、マルチプラットフォーム性を開発の最優先事項に据えることの可能なプロジェクトも存在します。
そのようなケースはQtで対応できるはずだし、Qtを選ぶべきでしょう。
でも、(上に挙げた2例のように)プラットフォーム固有サービスの利用が大前提(必須)となる開発の場合、
アプリ内にQt依存のコードとプラットフォーム固有フレームワーク依存のコードが混在することになります。
これらが正常に動作することをQtの開発元は保証してくれますか?(有償ライセンス下でOK)
トラブルが発生した場合、国内の代理店はまじめに対応してくれますか?
何を言いたいかというと、QtのGUI開発環境がVisual Studio(あるいはXCode)に近い存在であるという主張は、
誤解をまねきかねない誇大な表現、あるいはおこがましい主張ではないか?という疑問です。
0553デフォルトの名無しさん
2010/07/14(水) 01:27:34その理屈でいくと、VisualStudio+M$以外のライブラリの組み合わせも保証が無いからダメじゃん
0554デフォルトの名無しさん
2010/07/14(水) 07:15:00共産党員のかたですか?
0555デフォルトの名無しさん
2010/07/14(水) 09:27:59> >>550
> >Visual Studio+Windows SDKに近い存在だよ。
>
> Qtが提供するのは(統合開発環境ではなく)GUI開発環境でしかないと思いますけど。
確かにVisual Studio+Window SDK に近いというと>>552みたいに
曲解する人間もいるだろうから止めた方が良いかもね
ただ「GUI開発環境でしかない」というのもどうかなとは思うな
ウィジェットはもちろん,タイマー,SQL,webkit,
ネットワーク,OpenGLとかのAPI装備してる
基本的にフレームワーク(Qt)+IDE(Creator)だと思うがな
他社のプロプラのライブラリとシームレスに連動することが
IDEの条件(大体IDEじゃない,それいうならフレームワーク)
だという主張なの?かなり奇妙な主張だと思う
君の定義で「統合開発環境」なんて存在するの?
0556デフォルトの名無しさん
2010/07/14(水) 10:17:360557545
2010/07/14(水) 14:28:05Ruby-GTK2ってRuby-GTKを使っていた環境そのままで
動作しませんか、動くなら私の言いたい切り捨てとは
ちょっと違う例だと思います。
他にも自前で対応についても、使ってる時点でRuby-GTKの
一員なのではないかと思います。だから、Ruby-GTKを
継続してメンテしたいのならやればいいのだと思います。
ファイルすら置かせてもらえないなら思いっきりforkして
も良いかと思います。
Qtを勘違いしていたようです。多分Qtライブラリの方
(Creatorとか含まない方)はGPLだし新規にプロジェクト
作ってForkしてもいいんでしょうね。
0558デフォルトの名無しさん
2010/07/15(木) 02:29:58きっと >>552 はQtCreatorを知らなかったんだろうね
0559デフォルトの名無しさん
2010/07/15(木) 07:35:59GUIをRADでぽちぽちおくことができる・・・だけではなく、
そこからコードの雛形を作れる。
もちろんそこからQt Creator上でコードを書いていける。
もちろんコードは色付いていたり、デバッガも内蔵していて
ブレークポイントで止められたり、変数の中身を見れる。
MercuriaやGitにも対応。
コンパイラはcygwinだけではなく、Visual Studioのコンパイラも使用可能
プロジェクトファイルはqmake。これはいろんなプラットフォーム用の
makeファイルに変換して実行できる。
ソースコードを書きやすくするための機能がIDEに統合されているとはいえ
コンパイル環境は結局は、既存のコンパイラ・Makeを使っているので、
実行ファイル生成自体は普通のエディタでの開発と変わらない。
だからやろうと思えばプラットフォーム固有のライブラリと連携も可能
> アプリ内にQt依存のコードとプラットフォーム固有フレームワーク依存のコードが混在することになります。
> これらが正常に動作することをQtの開発元は保証してくれますか?(有償ライセンス下でOK)
ようは違うライブラリを混ぜて、正常に動作することを保証するかって事だろ?
そんなこと保証しているところあるの?
0560デフォルトの名無しさん
2010/07/15(木) 07:48:42> Qtを勘違いしていたようです。多分Qtライブラリの方
>(Creatorとか含まない方)はGPLだし新規にプロジェクト
>作ってForkしてもいいんでしょうね。
QtライブラリはLGPLと商用のデュアルライセンスね。
GPLだとソースコード公開しないといけなくなるけど、
QtはLGPLなのでQtで作ったアプリはソースコード公開しなくていい。
0561デフォルトの名無しさん
2010/07/17(土) 01:47:30gtkって、どんな点でqtより劣ってるの?
0562デフォルトの名無しさん
2010/07/17(土) 01:55:00はぁ?
0563デフォルトの名無しさん
2010/07/17(土) 03:08:43相当レイテンシがあるんだな
0564デフォルトの名無しさん
2010/07/17(土) 10:44:58Qt Creator とか IDE 使っていれば qmake とか意識しないよ
Qt はC++ native なので C++ 派には使いやすいのと Qt Creator
はできが良くて使いやすい
好みもあるだろうから Gtk で満足ならそれでいいんじゃないか
0565デフォルトの名無しさん
2010/07/19(月) 13:13:150566デフォルトの名無しさん
2010/07/19(月) 14:04:030567デフォルトの名無しさん
2010/07/19(月) 14:09:19見栄えが良くて軽快に動作して、ガンガン落ちるイメージ.
wxwidgetsって昔からあるわりには、あまりつかわれてないような
0568デフォルトの名無しさん
2010/07/19(月) 15:37:24使おうと思っていたときもあってけど、
QtがLGPLライセンスになってIDE込みになってからは
Qtが最善のマルチプラットフォーム環境になった。
X Window Systemアプリだけを作るのなら
gtkでいいけど、OS依存のアプリは作りたくない。
0569デフォルトの名無しさん
2010/07/19(月) 16:30:30宗教臭いのがダメなだけで
0570デフォルトの名無しさん
2010/07/19(月) 20:05:580571デフォルトの名無しさん
2010/07/19(月) 21:05:220572デフォルトの名無しさん
2010/07/19(月) 22:06:050573545
2010/07/19(月) 22:40:48Macの互換性の低さに嫌気がさすのか、どれもこれも問題を
抱えてしまうようだ。
0574デフォルトの名無しさん
2010/07/19(月) 23:13:30インスコ厨の意見のようだ
0575デフォルトの名無しさん
2010/07/20(火) 00:29:03垢の他人の作ったGUIライブラリと心中する気もないので、
いろいろと少しづつ齧ってたりしていますが、
即他人を厨あつかいとは、やはりMacって書くとわくのかな。。。
0576571
2010/07/20(火) 19:45:410577デフォルトの名無しさん
2010/07/20(火) 20:52:16QtについてはMac版の開発キットが公式リリースされているので、
他のプラットフォーム(LinuxやWindows)と同様な開発が可能です。
GTK(GNOME)については、標準でX11(Xサーバ)が付属しているので、
必要なライブラリを自力ビルドできるスキルをデベロッパが持っていれば、
完璧なUNIXマシンとして開発が可能です。GIMPが代表例ですね。
GTK for Win32のように環境変数やレジストリで悩む(発狂する!!)ことはありません。
また、GTKonOSXと呼ばれ、(X11無しで)Cocoaをレンダリングエンジンとして動く
GTKのOSX移植版開発プロジェクトが開始され、ベータ版がリリースされています。
またTcl/Tkに至っては、AquaTkと呼ばれるCarbonをレンダリングエンジンとして動く
TkのOSX移植版フレームワークが10.4(Tiger)から標準でインストール(OSに付属)されます。
言い換えると、UNIX上で動いているTcl/TkやRuby/Tkスクリプトは無変更でOSX上で動きます。
Windowsのように、ユーザがActiveTclをインストールしなければならないといった手間はありません。
このようにUNIXとして見たMacOSXは、LinuxやBSD等との「高度な互換性」が実現されています。
この辺の情報は、UNIXの知識があるMacデベロッパであれば、常識でしょう。
それなのに「Macの互換性の低さ」とか言い出すトワイライトゾーンの住人の妄言には頭が痛いです。
自分は>>574ではありませんが、>>573のカキコは「厨あつかい」されてもしかたのない内容だと考えます。
0578デフォルトの名無しさん
2010/07/20(火) 22:42:41みんなネイティブとかバイナリにコダワルの?
0580デフォルトの名無しさん
2010/07/21(水) 10:27:25ずきゅーんと打ち抜いたせいか>>577みたいのがわいちゃった、
0581デフォルトの名無しさん
2010/07/21(水) 10:58:16見た目がネイティブじゃないと大衆受けないのはJavaで
一応の結論が出てるかも。M$の勝手なネイティブGUIに
いちゃもんを付けていた陣営は未だにこびり付いてる
みたいだけど、SWTはがんがんいってます。
でもMacを入れるとJavaだのGTKだの自前で描画からがっつり
やってるようなGUIライブラリじゃないとやっていけないみたい。
X11も謹製以外の実装はENDしちゃうくらいきな臭い世界。
商用のQTは頑張ってネイティブGUIサポートしてるけど、
即ぎり文化だし、親会社は携帯電話で戦争状態にあり
いつ停止してもおかしくないと思う。
XULなら開発者集団も多く末永くつきあえそうだから、MULの
方がいいのかもしれないとか考えてしまう。
0582デフォルトの名無しさん
2010/07/21(水) 19:35:53日本語でオケー
0583デフォルトの名無しさん
2010/07/22(木) 00:03:04ものを使うのが良いと思うけどな
何が起きるかわからんし,乗り換える必要がでたらその時はその時
これももし選択肢が自分にあるならばだけどな
そうじゃなければやるべきことをやる
0584デフォルトの名無しさん
2010/07/22(木) 00:59:560585デフォルトの名無しさん
2010/07/23(金) 23:17:23その言語で作ってきたGUIコンポーネントがゴミになるのは痛すぎる
0586デフォルトの名無しさん
2010/07/24(土) 13:42:59GUI部分からできるだけ独立させておくことがやっぱり大事だわな
MVCとか言ってもあまりにも陳腐だが…
0587デフォルトの名無しさん
2010/07/24(土) 15:08:31問題は、リッチなGUIを作りたいが後で粗大ゴミが出るのは痛いってこと。
0588デフォルトの名無しさん
2010/07/24(土) 15:16:53これ?
0589デフォルトの名無しさん
2010/07/25(日) 04:32:390590デフォルトの名無しさん
2010/07/25(日) 11:06:35とはいえ,中身をできる限り独立させておけば構造と中身はリサイクルできる
リッチなGUIを作り直すのは手間がかかるが,プロトタイピング/試行錯誤が
終わった状況でスタートするから,だいぶ楽だと思うぞ
0591デフォルトの名無しさん
2010/07/25(日) 23:00:29Delphi以降だと、MFCやVisualBasicを使っていたWindowsプログラマだろね。
今のWPFにしても、いつまで持つのやら....。とはいっても、彼らは
「変化があっても皆一緒だから無問題」といふレミング思考な人達だから無自覚なんだけど。
>>589
スタンドアロンなGUIツールキットとWebアプリケーションであるRailsを比較して、何を言いたいの?
0592デフォルトの名無しさん
2010/07/26(月) 00:22:00ラッパー作って操作できるようにすれば、Winでやる限り
ゴミを出さずにどの言語でも使いまわせるっちゃ使いまわせるんだろうけど
ラッパー作るのも大変なんだよな
0593デフォルトの名無しさん
2010/07/26(月) 18:47:53たとえばSproutCoreというライブラリでは、Flash等の余計なプラグイン無しに、純粋なJavaScriptだけで
完全なGUIをWebブラウザ上に実装できる。
もちろんオープンソースで無償利用できるし、PHPやRailsなどとデータを連携させる実装も可能。
・SproutCore 公式ホームページ - "Demos & Sample Code" を開くと実行できるオンラインデモを試してくれ
http://www.sproutcore.com/
SproutCoreについては、以下の文書が詳しい。(ただし英語)
・Cocoa for Windows + Flash killer = SproutCore
http://www.roughlydrafted.com/2008/06/14/cocoa-for-windows-flash-killer-sproutcore/
日本語版については、新・Mac板の「Mac関連ネタをそれはもう凄まじい勢いで翻訳するスレ7」スレの#197以降を参照。
他にも、これらは商用ライブラリになるけど、デスクトップ向けGUIツールキットに匹敵するライブラリも開発されている。
どちらもオンラインデモを体験できるから、ぜひ試して欲しい。
・DHTML UI toolkit
http://dhtmlx.com/index.shtml
・EJS TreeGrid
http://www.treegrid.com/treegrid/www/Index.html
0594デフォルトの名無しさん
2010/07/27(火) 16:01:46FxやIEでも表示崩れたりihone_demoとか動作しないんだが。
あとは環境によるのだろうけど重すぎて快適なGUIとは言いがたいかも。
0595593
2010/07/28(水) 21:58:50実際に触ってみてくれたんだね。嬉しい。(アクセス規制でレスが遅れた、スマン。代行をお願いしています。)
>FxやIEでも表示崩れたりihone_demoとか動作しないんだが。
・Firefoxは最新(安定?)版では表示崩れを確認できなかった。
==> 細かいところまで確認はしてないけどね
・Internet Exprolerは最新ECMA Script仕様/HTML5対応がメタメタで、JavaScriptライブラリ側で不足機能を
エミュレーションするという無理矢理な実装になっているから、部分的な表示崩れはしかたないのかも。
==> Webブラウザの中では圧倒的なシェアを占めるIE対応が不完全な事が大きな問題(障害)になるのは事実だけど
・iphone_demoは、その名の通り(iPhoneやiPod touchといった)Apple製iOS搭載デバイス向けのデモだから、
パソコンのブラウザでは動作を禁止しているのではないかと推測。
==> 2週間前にはOSXのSafari上で、iPhone風のMusic Libraryをブラウジングできるデモが動いていた
>あとは環境によるのだろうけど重すぎて快適なGUIとは言いがたいかも。
NetBookクラス(Atom/1GB)クラスだと重さが目立つかもしれないけど、今時の普及機クラス(C2D/4GB)なら
軽快に使えるのではないかと。あと、パソコンのハード性能進化はすさまじいから、個人的には楽観視している。
0596デフォルトの名無しさん
2010/07/31(土) 11:07:210597デフォルトの名無しさん
2010/07/31(土) 16:30:42最近はWebkitが電撃参戦してますます面倒なことになったけど
10年くらいしたらさらにブラウザエンジンは増えてんのかな
0598デフォルトの名無しさん
2010/07/31(土) 20:24:320599デフォルトの名無しさん
2010/08/09(月) 22:33:240600デフォルトの名無しさん
2010/08/20(金) 12:07:41これ、なんでNGなんだ?
そもそもLGPLだってリリースするときのライセンスだから、
社内で開発している間はLGPLでも問題ないはずだが
だから、リリースするときにLGPLが嫌だから商用ライセンスとって、
それ使ってリリースは全然有り得る話
というかどうやったら、それをNGとして強制できるのか知りたい・・・
0601デフォルトの名無しさん
2010/08/20(金) 13:56:210602デフォルトの名無しさん
2010/09/11(土) 16:02:330603デフォルトの名無しさん
2010/09/11(土) 16:34:38Cがわかっていなかったということ
やりなおせ
0604デフォルトの名無しさん
2010/09/11(土) 16:39:42「コツ」や「ノリ」みたいなのを掴むと楽
標準でCはGUIは無いからどのフレームワーク使うかによっても違ってくる
0605デフォルトの名無しさん
2010/09/11(土) 17:33:30GUIはイベント駆動だから入力を一ヶ所にまとめるコーディングが必要
Cとか言語とは無関係に、どこかで発想の転換が必要になる
0606デフォルトの名無しさん
2010/09/11(土) 18:05:33いわゆるステートマシンの初歩を勉強してみるのはいかが?
注意するのは、オートマトンとか自由文脈文法みたいな理論は(まだ)必要無いという事。
事象(イベント)/状態/遷移という概念を理解できれば、GUIプログラミングなら必要十分だから。
0607デフォルトの名無しさん
2010/09/11(土) 18:26:38ガシガシ書く系のGUIになっちゃうだろうな
Cなら C++ に行ければ良いと思うんだけどC学んだところでまたC++ってキツいかも
JavaやC++でGUI coding するけど C でする気起きない
0608デフォルトの名無しさん
2010/09/11(土) 18:31:590609デフォルトの名無しさん
2010/09/11(土) 18:52:03どちらにしてもコードをガシガシ書く系(by >>607)になっちゃうね
PythonやRubyみたいなスクリプト言語でGUIに慣れるのがいいと思うんだけどなあ
ただ、そのスクリプトを学ぶという苦労を受け入れるってのが前提になる
いずれにせよ、GUIができるようになるのにも、楽な道はどこにも存在しない
壁を破れるようになるまで、ただひたすら頑張るしかないよ
0610デフォルトの名無しさん
2010/09/11(土) 19:09:59CUIは、スタック上のデータ構造が刻々と変化していくのが普通
GUIはクラスだから、状態は変わるが構造じたいは変わらないようなコーディングが必要
(ただしスレッドを使えばCUIの発想でコーディングできる)
どこかでスレッドを使うか、一切使わないかの見極めがむずかしい
0611デフォルトの名無しさん
2010/09/11(土) 19:25:39イベント駆動の代わりにスレッドを使うってのは、
資源の排他制御やスレッド間通信みたいな新たな問題を持ち込むだけだから、安易な発想だと思う
バックグラウンドで重い処理を動かしつつ、同時に(並行して)GUIでの操作を可能にする、
というのが目的なら、スレッドの導入は理解できるのだけれど
理想は、手続き型言語ならコルーチン、関数型言語なら継続(コンティニュエーション)を使った
安全なGUIプログラミングなんだけど、そんなGUIフレームワークはまだ存在していないから(あるかな?)、
ひたすらイベント駆動で頑張るしかないというのが、現実的な解だったりする
0612デフォルトの名無しさん
2010/09/11(土) 19:31:09>バックグラウンドで重い処理を動かしつつ、同時に(並行して)GUIでの操作を可能にする、
>というのが目的なら、スレッドの導入は理解できるのだけれど
自己レスになるけど、上の部分は、「並行処理が必要な部分に限定してスレッドを導入し、
それ以外の全体構造はイベント駆動で実装するのなら理解できる」という意味
0613デフォルトの名無しさん
2010/09/11(土) 20:14:42絶望した!
0614デフォルトの名無しさん
2010/09/11(土) 20:19:03だからGUIがむずかしすぎるという話になって、以下ループ....
0615デフォルトの名無しさん
2010/09/11(土) 20:27:10Webの世界なら、まだマイナーだけどSmalltalkのSeaSideに代表される継続渡しを応用した
Webフレームワークが、JavaやRubyとかでもボチボチ登場しつつあるんだけどねえ。
GUIはWeb以上に複雑だから、フレームワークとなると...
参考までに、Webフレームワークのケースに関する記事を紹介
・境界を越える: 継続とWeb開発、そしてJavaプログラミング
-- プログラマーにとってはステートフル・モデルが、ユーザーにとってはステートレス
http://www.ibm.com/developerworks/jp/java/library/j-cb03216/
0616デフォルトの名無しさん
2010/09/12(日) 12:45:51ということは、その安全なノウハウを一般のGUIに応用すればよい。
例えば「スレッドを作るよりもプロセスを作るほうが安全だ」とか。
0617デフォルトの名無しさん
2010/09/12(日) 13:04:19Ajaxで解決じゃね?
0618デフォルトの名無しさん
2010/09/12(日) 18:39:07未だにリリースされ続けているVCLが最高ってことだ。
0619デフォルトの名無しさん
2010/09/12(日) 22:14:56とにかくデザインセンスがない。
これはどうしようもないんか…
0620デフォルトの名無しさん
2010/09/12(日) 22:53:02Webデザイン系の学校てことになるのかね?
今までは、本や他のアプリを見ながらの独学だから、
もう少し体系だった知識を身につけときたいと思っている。
0621デフォルトの名無しさん
2010/09/12(日) 22:57:460622デフォルトの名無しさん
2010/09/12(日) 23:31:29DesigningInterfaceかっとけ
0623デフォルトの名無しさん
2010/09/13(月) 00:10:20省スペースな画面が使いやすい
エロゲーの箱みたいに宣伝のために場所を塞ぐデザインはやめてほしい
0624デフォルトの名無しさん
2010/09/13(月) 00:40:22Macなら
Apple Human Interface Guidelines
ttp://developer.apple.com/mac/library/documentation/UserExperience/Conceptual/AppleHIGuidelines/XHIGIntro/XHIGIntro.html
Windowsなら
Windows Vista User Experience Guidelines
ttp://msdn2.microsoft.com/en-us/library/Aa511258.aspx
ってところ?
探せば日本語訳もあると思うよ。
0625デフォルトの名無しさん
2010/09/13(月) 01:13:44どちらもwebページのデザインの悪さにがっかり
0626デフォルトの名無しさん
2010/09/13(月) 14:37:08最近のWebブラウザは、スレッドからプロセスへ移行しつつあるみたいだね。
Flash等のプラグインでbugがあった場合、スレッドだとブラウザ全体がclashするけど、
プロセスなら(メモリ空間が分離されているから)clashするのは該当するコンテクスト
(タブとかウィンドウ)だけで済むから、ブラウザ全体の安定性が向上する。
0627デフォルトの名無しさん
2010/09/13(月) 22:12:37おかげでChromeメモリ食いまくりですよ(;´Д`)
0628デフォルトの名無しさん
2010/09/14(火) 04:14:30http://userdisk.webry.biglobe.ne.jp/001/182/51/N000/000/000/123059667090116220038_20081230092125.png
http://4.bp.blogspot.com/_u2aiR-t24t0/Sz43UsHVoYI/AAAAAAAACdI/H9G_CSnysEQ/s1600-h/ChromeProcessesTaskManager4.jpg
http://www.tecue.com/wp-content/uploads/2010/03/chrome.jpg
http://neta-times.net/wp/wp-content/uploads/prosesmane.png
ネタ画像じゃなくて実際、拡張いれまくってるとひどいからな
そういやIE8もいつの間にか複数プロセス立ち上げるようになってるね。
FirefoxもFlashだけ別プロセスになって巻き込んで落ちることが減ったな。
0629デフォルトの名無しさん
2010/09/18(土) 00:02:10そういうことに使える書籍とか教えて
出来ればC++の資産が使えるような
0630デフォルトの名無しさん
2010/09/18(土) 01:17:333D描画向けにOpenGL(あるいはそれを抽象化したフレームワーク)を扱えるツールキットは
数多く存在して書籍も豊富にある。でも3Dモデラーのような3Dモデルを対話的に編集する
機能を提供するGUIフレームワークは極めて限定されてしまう。
(3Dには詳しくない)自分が唯一知っているのは、Jun(じゅん)というVisualWorks(Smalltalk)上で動く
3Dフレームワークのみ。残念ながらC++には対応していないが、Javaへの移植版もある。
無償で利用できるから、まずは触ってみてそのアイデアや設計法を学ぶのがいいのではないかと思う。
公式サイトは以下。豊富な解説が(もちろん日本語で)用意されている。
・http://aokilab.kyoto-su.ac.jp/jun/index-j.html
書籍としては、Junの開発リーダである青木淳氏が書いた以下がお勧め。
・http://aokilab.kyoto-su.ac.jp/documents/BlackBook/index-j.html
0631デフォルトの名無しさん
2010/09/18(土) 01:40:22063220
2010/09/18(土) 13:58:18良書の紹介感謝です。
そうそう、画面は大きければいいわけじゃないと最近気付きました。
学校は料金が高いし、やはり働きながらだと辛いかなw
0633デフォルトの名無しさん
2010/09/18(土) 14:54:390634デフォルトの名無しさん
2010/09/18(土) 20:02:20そのための書籍やサイトなどご存知でしたら教えて下しア
0635デフォルトの名無しさん
2010/09/18(土) 21:09:27GIMPなどのソースを見るのが一番じゃないの?
0636デフォルトの名無しさん
2010/09/18(土) 21:30:390637デフォルトの名無しさん
2010/10/11(月) 09:52:35turboC++をどうにかインスコして、使ったら
これまたGUIが楽しくなった
今ではちんちんもおっきくなって、いい子とだらけです
0638デフォルトの名無しさん
2010/12/20(月) 07:53:43どうしてGUIビルダーの類は、レイアウト結果を中間形式で出力して、それを色んな環境・言語用に変換、もしくは実行時に解析してレイアウトする、
というアプローチを取らず、最初から特定の環境・言語にのみ特化したコードを直接出力してしまう事例が多いのだろう?
環境が異なる毎に、延々と、ツールの数だけ、車輪の再発明を繰り返してきたように見える…
それでいて、それらツールが吐き出した出力結果は、特定の環境・言語でしか利用できない
これはとんでもなく非効率ではないのか。もっと使い回しや共通化を模索していいのではないか?
・ XMLなりなんなりで、UIレイアウトと実処理は分離してアプリを作るほうが、皆幸せにならないか?
・ UIの使い勝手は試行錯誤で決まってくるところもあるが、その都度、実処理を含んだコードを弄るのはアホではないか?
・ 中間形式さえ決まっていれば、レイアウトツール単体の使い勝手を向上できるのではないか?
・ 一つのレイアウトツールを使えれば、どの環境でもGUIアプリが(見た目だけは)サクッと作れるようにならないか?
しかし、そういうアプローチを取っているのは、MSのWPFぐらいしか見当たらなかった…なぜ?
ハッカーは車輪の再発明が好きなのか? それともWYSIWYGを侮蔑して、難解なレイアウトもエディタで四苦八苦して構築することに無性の喜びを感じているのか?
プログラマーこそがデザイナーよりも使い勝手のいいUIレイアウトを作れるのだ、的自惚れがあるのか? どうもわからない…
0639デフォルトの名無しさん
2010/12/20(月) 08:19:12MIDIにおけるGM規格や、MSX規格のように、
「全ての連中が最低限できること」を羅列する仕様になって
貧相なことしかできなくなるのだろうか…?
なんだかスゲー無駄なことを、世界中でやっちゃってる気がする
どうしてこうなった
0640デフォルトの名無しさん
2010/12/20(月) 09:05:07クライアントとサーバーの分離、というアプローチが既にある
それならサーバー側はCUIになるから環境に依存しないだろ
0641デフォルトの名無しさん
2010/12/20(月) 11:42:37つまりそれってWEBアプリのことでしょ。いろんなツールあるもんね。
0642デフォルトの名無しさん
2010/12/20(月) 13:38:26一応Gladeってもんがあるぞ。GTK+用だけどな
0643デフォルトの名無しさん
2010/12/20(月) 14:27:44元の木阿弥。
0644デフォルトの名無しさん
2010/12/20(月) 20:13:17Xの悪口はそこまでだ
0645デフォルトの名無しさん
2010/12/23(木) 14:58:23どうしてそれがデスクトップアプリの仕組みでも主流にならなかったんだろう
それとも、これからそれが主流になっていくんだろうか…
でもその前にWebアプリが主流になるのだろうか
ブラウザだけあればどの環境でも似たような作業ができる
たしかに…極限まで共通化を成した姿かもしれないなあ…
でも世の中ネットが使える環境ばかりでもないような気もするが
0646デフォルトの名無しさん
2010/12/23(木) 16:13:00ここはGUIスレ。
ネットワークの話題はスレ違い……という考え方が主流だからじゃないか。
0647デフォルトの名無しさん
2010/12/23(木) 16:28:57クライアントとサーバーの分離なんて非効率。
0648デフォルトの名無しさん
2010/12/23(木) 16:43:28http://www.youtube.com/watch?v=JQvLt7DQhaI
http://www.youtube.com/watch?v=MZHEzDmXO2w
0649デフォルトの名無しさん
2010/12/23(木) 16:44:33だから他のプラットフォームや言語に対応する意味が無い。
0650デフォルトの名無しさん
2010/12/23(木) 17:06:42レジスタやスタックに積んでCALLするだけの簡単さに勝てるわけがない。
0651デフォルトの名無しさん
2010/12/23(木) 17:22:08問題は、シングルタスクのプラットフォームに対応する意味があるのか?ってこと。
0652デフォルトの名無しさん
2010/12/27(月) 13:04:57ネットワーク越しでいいけど、
大量ならネットワークは足枷になる。
linuxもXのネットワーク透過性捨てて、ローカル描画に変えようとしてる。
0653デフォルトの名無しさん
2010/12/27(月) 13:40:54よく "参照透過" といって副作用を制限するのは、メモリを共有したいからなんだな。
逆に、メモリを共有しないなら副作用は無害で
共有しないでコピーするということは、コピー先はローカルでなくてもよい。
0654デフォルトの名無しさん
2010/12/28(火) 01:51:15なんか色々ちがうとおもうぞ・・・
0655デフォルトの名無しさん
2010/12/28(火) 11:43:16「むずかしすぎる」じゃなくて「足枷になる」だけなら、大きな進歩だろ
ここでその足枷を捨てろと言うのは、ちがうと思う
0656デフォルトの名無しさん
2010/12/28(火) 18:56:28例えば、XRCを読んでGUIのレイアウトをする機能が
Tk、Gtk、Qt、その他モロモロでデフォルトで用意されてれば済む話じゃないのか
(自分が調べられてないだけで既にあるのかもしれないけれど)
画像編集ツールが最低限psd対応していれば
レイヤーを保持したデータをあちこちで使い回せるように
GUIデザイン・レイアウトにもpsdみたいなデファクトスタンダード?があれば
デスクトップアプリ、Webアプリ、OS、言語に関係なく、そのレイアウトデータが流用できるんじゃないか
どうして各ツールがコードそのものを吐き出して
プログラマーがそのコードに直接実処理を書いていくのか、その思想がわからない
データとプログラムに分離しようというアプローチをあまり見かけないのが不思議なんだけど
そうはできない理由があるんでしょうかね?>オープンソース界隈
0657デフォルトの名無しさん
2010/12/28(火) 20:19:450658デフォルトの名無しさん
2010/12/28(火) 21:44:41RPCやORMと同じ気がする
0659デフォルトの名無しさん
2010/12/29(水) 21:47:42VBやDelphiやC#だってバラバラだし、何故オープンソース界隈が目の敵になってるんだw
0660デフォルトの名無しさん
2010/12/30(木) 05:29:38というか俺がそう感じてるんだけどな
オープンなのに独自規格乱立とかバカかw どれだけ車輪の再発明だよっていう
ま、「他人のためにソースを提供し、デバッグすれば、社会はよくなりますよ」とか
社会主義的お花畑だからなw そうそう上手くいくわけもないんだが
0661デフォルトの名無しさん
2010/12/30(木) 06:06:460662デフォルトの名無しさん
2010/12/30(木) 06:46:59オープンソースな事と、規格の標準化は全く関連がない。
言ってることめちゃくちゃだし。
0663デフォルトの名無しさん
2010/12/30(木) 10:33:10競争するなら全部企業秘密にするのがふつうで
オープンにするなら全員で協力するのがふつうだと
0664デフォルトの名無しさん
2010/12/31(金) 00:01:08GUIプログラミングした事あるのかなぁ
GUIコンポーネントはAPIなどに直結してる
APIを統一というのは絵に描いたぼた餅かそれ以上
良い開発環境であればGUIコーディングはGUIでできるから尚更分離しにくい
GUI,オブジェクトとかを統一的にGUIで繋げることができるNeXTSTEP IB(今や
MacOSに受け継がれている)は評価が高かった
統一できるところで規格化すれば GUI のデザインはしにくくなるし改良しにくくなると思う
ちょっと変更するだけで委員会とかで議論して決めなければならないわけだからね
0665デフォルトの名無しさん
2010/12/31(金) 16:40:23足枷になってUI/UXが劣り、競合ソフトとの争いに負けるから、
ソフトが死ぬ。そんなソフトしか作れないなら、プラットフォームが死ぬ。
linuxのようにデスクトップとしての土俵を諦めるか、
javaのようにビジネスアプリに割り切ってニッチに専念するか。
>>656
動的に変化するUIはどうすんの?
webブラウザのように各言語のフレームワークにdomの実装を強制するの?
また、リフレクションの有無でUI要素と制御のバインドもだいぶ違いがでる。
結局のところ、html+domに収束すると思う。
0666デフォルトの名無しさん
2010/12/31(金) 17:59:17誰もAPI統一しろって言ってないだろ
GUIライブラリにやり取り可能な互換規格を作るべきって話
モニタ・キーボード・マウスがほぼ全世界共通なのにGUIだけ独自仕様でバラバラって現状がおかしい
オープンソースの責任とまでは言わないが、オープンにしてる意味なくね? って気はするわ
0667デフォルトの名無しさん
2010/12/31(金) 22:57:210668デフォルトの名無しさん
2010/12/31(金) 23:32:56いいたいことはわかるし統一してくれとは思うけど
> モニタ・キーボード・マウスがほぼ全世界共通なのにGUIだけ独自仕様でバラバラって現状がおかしい
いきなりハードウェアの話になってきたな。
モニタ・キーボード・マウスがよく使われるほんの一部であって、
「GUIだけ」独自仕様ってこたあないだろw
マウスですらちょっとしたものはメーカー毎にドライバ作ってるし、
そういうものはUnixでは・・・
モデム、NIC、グラフィックカード今までもいろいろ通りすぎてきたよ
0669デフォルトの名無しさん
2011/01/01(土) 00:28:52GUIとAPIは完全に切り離せるのか?
現実的に合意できるのか?
できたとして動きが取れなくならないのか?
統一された最低限で皆満足できるのか?
GUIコンポーネントはマウスに比べて複雑さが全然違うと思うよ
あとハードに比べてソフトは変更は簡易な分変更のペースも速いからな
0671デフォルトの名無しさん
2011/01/01(土) 04:12:450672デフォルトの名無しさん
2011/01/14(金) 02:14:38>モニタ・キーボード・マウスがほぼ全世界共通なのにGUIだけ独自仕様でバラバラって現状がおかしい
大抵のバンドはギターとベースとドラムとボーカルの構成で一緒なのに
生み出される音楽は全然違うみたいな…
モニタ・キーボード・マウス→ツール
GUI→表現
>>668
Mac はもうトラックパッドの時代。マルチタッチは超便利だよ。
0673デフォルトの名無しさん
2011/01/14(金) 03:13:38一緒じゃないんだよ実は
0674デフォルトの名無しさん
2011/01/16(日) 19:42:47私の知能ではとてもムリ・・・
0675デフォルトの名無しさん
2011/01/16(日) 20:28:37プログラムの構造的な違いは次の二点だけだけど、
・処理する順番に記述するのではなく、イベントに応じた細かい処理を沢山揃える
・プログラムを画面表示、イベント処理、内部データの変更の3つの部分に分けて記述する
何をするにもプラットフォームの流儀を憶えないと
いけないのは、慣れるまでは面倒だよね。
0676デフォルトの名無しさん
2011/01/16(日) 20:59:280677デフォルトの名無しさん
2011/01/16(日) 21:03:44具体的にどんな要求?
0678デフォルトの名無しさん
2011/01/16(日) 21:04:11上はCUIのwhile〜fgets〜switchと大差ないよね
下は管理しやすい形にした一つのパターンというだけで
GUIとは直接関係無いよね
0679デフォルトの名無しさん
2011/01/16(日) 21:09:37それぞれ、
上はイベント駆動
下は MVC
の説明。
もちろん CLI でもイベント駆動や MVC を使う事はあるけど、
>>674 を悩ませているのはここら辺じゃないかなと思って
書いてみた。
0680デフォルトの名無しさん
2011/01/17(月) 01:58:26>>674 は CUI を利用した GUI も作れないだろうね
0681デフォルトの名無しさん
2011/01/17(月) 02:20:47ttp://s2.etowns.slyip.net/~c_cpp_homework/cgi-bin/joyful/img/27.txt
0682デフォルトの名無しさん
2011/01/17(月) 04:08:50ありがとうございます!
イベントプロシージャh
0683デフォルトの名無しさん
2011/01/17(月) 15:20:40何事も慣れだよ
0684デフォルトの名無しさん
2011/01/17(月) 20:43:46晴天と濃霧じゃ運転の難度は異なるって意味で
たまにそのへん度外視して話す人がいるから困る
0685デフォルトの名無しさん
2011/01/17(月) 21:12:050686デフォルトの名無しさん
2011/01/17(月) 21:17:37どっから呼ばれるか全く分かりませんですしね・・・
0687デフォルトの名無しさん
2011/01/17(月) 21:23:19メッセージループを理解してないやつが多すぎるのは確か。
0688デフォルトの名無しさん
2011/01/18(火) 03:35:070689デフォルトの名無しさん
2011/01/18(火) 11:21:30単純さのために退路を断つのはただの自殺行為
例えばjavascriptの魅力はイベントドリブンではなく
ajaxやcgiという逃げ道が確保されている点にある
0690デフォルトの名無しさん
2011/01/18(火) 14:50:24OS依存のGUIアプリなら、C#かVB.netやれ。驚くほど簡単だぞ。
どうしてもコンソールのようなプログラムでGUIやりたいなら、今時ならwebアプリの形式が糞みたいにらくだぞ。
サーバー側を処理したのをJSONで返すだけにして、GUIはJavaScriptで作る。
RESTみたいな構造でJavaScriptとのやりとりはJSONでやってるだけだし、GUIはjQueryや周辺のライブラリを使うと楽。
いまどきメインの言語でGUI作る必要ない時代。
それこそC言語でやる必要がまったくないが・・・
0691デフォルトの名無しさん
2011/01/18(火) 21:30:45つ ttp://ExtJS.com
0692デフォルトの名無しさん
2011/01/18(火) 22:15:340693デフォルトの名無しさん
2011/01/19(水) 00:19:250694デフォルトの名無しさん
2011/01/19(水) 00:22:51同じプログラムならCの方が速い
0695デフォルトの名無しさん
2011/01/19(水) 01:23:50webアプリのスクリプトは氷山の一角で
その下にあるブラウザとサーバはすでにCで書かれている。
同じプログラムを書くのではなく
複雑なブラウザや複雑なサーバとは違うものを書くのだ。
0696デフォルトの名無しさん
2011/01/19(水) 01:34:16サーバサイドはJavaが多いし、JavaVMはC++だ
0697デフォルトの名無しさん
2011/01/19(水) 01:41:460698デフォルトの名無しさん
2011/01/19(水) 01:44:02C++って方言が多いよね
テンプレートや継承や例外やコンストラクタまで制限することがある
どこの方言で書かれているのかな
0699デフォルトの名無しさん
2011/01/19(水) 02:29:450700デフォルトの名無しさん
2011/01/19(水) 05:24:050701デフォルトの名無しさん
2011/01/19(水) 14:28:31AndroidがiPhoneに勝てない点: ニュースの社会科学的な裏側
http://anlyznews.blogspot.com/2010/12/androidiphone.html
>>696
10年前も同じこと言ってる奴がいたし、20年前も同じこと言ってる奴がいたわ
Officeは.NetじゃなくC++だの、OSはCで書かれているだの、Cなんか使っていないアセンブラで組んでるだの
0702デフォルトの名無しさん
2011/01/19(水) 21:20:24DOSをC++で書くなんてジョークなかったっけ?
0703デフォルトの名無しさん
2011/01/19(水) 23:38:50>>695がブラウザがCで書かれていると言うから、間違いを指摘しただけ。
FirefoxもWebKitも主にC++で書かれてるよ。
>>701
それ、元レスとの繋がりが分からないんだけど、君は誰と戦ってるのかな?
0704デフォルトの名無しさん
2011/01/19(水) 23:59:340705デフォルトの名無しさん
2011/01/20(木) 02:58:210706デフォルトの名無しさん
2011/01/20(木) 03:26:120707デフォルトの名無しさん
2011/01/21(金) 20:00:30695じゃないけど、w3mもLynxも、Epiphany,midoriも風博士も、Cで実装されているよ
gnumericみたいなスプレッドシートもね(webkitやgeckoが何で書かれてるかなんて知らね)
Cで書いてもうまくいくんだから、C++なんて単に覚えることが増えるだけの気がする
0708デフォルトの名無しさん
2011/01/21(金) 22:05:260709デフォルトの名無しさん
2011/01/21(金) 23:58:08中にボタンとか入れたりしてイベント処理とかあると
まあ大変
0710デフォルトの名無しさん
2011/01/22(土) 01:12:40型にこだわって細分化するから大変なんだ
0711デフォルトの名無しさん
2011/01/22(土) 02:30:440712デフォルトの名無しさん
2011/01/22(土) 09:38:42どちらも同じとかいうのは頭が悪すぎる。
日本からアメリカにいくのに、どの乗り物を使っても
同じと言っているような物。
たしかに結果は同じだ。
だが、そこに至る道のりが大きく違うだろ。
それが重要なんだ。
0713デフォルトの名無しさん
2011/01/22(土) 09:39:440714デフォルトの名無しさん
2011/01/22(土) 11:21:27>webkitやgeckoが何で書かれてるかなんて知らね
C++だよ。
ある程度経験を積んだプログラマなら、常識に近い話だと思うけど。
0715デフォルトの名無しさん
2011/01/22(土) 11:26:24>Cで書いてもうまくいく
名前空間やオブジェクト指向がデフォルトで備わっていないCで
Firefox級の規模のプログラムを作り上げるのはしんどいだろうね。
自分ならやりたくないわ。
どんな根拠で上手く行くと思ってるのかな。
0716デフォルトの名無しさん
2011/01/22(土) 11:41:54横レス失礼する。
その昔UNIXと呼ばれたオペレーティングシステム(OS)があり、
これはコードの大半はCという手続き型言語で記述されていた。
これは非OOPな手続き型言語であっても、開発者の力量しだいで
大規模ソフト開発が可能である(=うまくいく)という事を実証している。
まぁ今時の若人達にすれば、目が開いた時にはすでにOOPが存在していた訳だから、
OOP無しの大規模開発プロジェクトのイメージが想像しづらい、というのは理解できるがね。
0717デフォルトの名無しさん
2011/01/22(土) 12:14:080718デフォルトの名無しさん
2011/01/22(土) 12:28:00コーディングルール縛って構造体でがんばって同じ事ができても
設計者のルールと一般的なC++プログラマが持ってる共通理解とどちらが
他人に理解されやすいかだよね
特にGUIはイベントやGUI部品で似たような処理多いからどれも似てるし
0719デフォルトの名無しさん
2011/01/22(土) 12:33:42たとえば関数型言語(HaskellやML)に慣れてしまったプログラマからすれば、
いまどきC++でGUIってアホですか?
になる訳で。
0720デフォルトの名無しさん
2011/01/22(土) 12:37:42確かにCで大規模プログラムを作成する事は可能だと思います。
UNIX以外でも、ApacheやMySQLなんかもCですしね。
ただ、ウェブブラウザみたいなGUIアプリの場合は、規模が
大きくなると、Cで作るのはちょっとしんどいんじゃないかと
思います。
OSでも、IOKitみたいに、ドライバをC++で書きたいという
欲求はそれなりにありそうですし。
0721デフォルトの名無しさん
2011/01/22(土) 12:42:07関数型言語でもGUIはOpenGLやGtk+の関数を呼び出してるだけでしょ。
結局、手続き的なコードになっちゃうんじゃないの?
0722デフォルトの名無しさん
2011/01/22(土) 12:56:12>一般的なC++プログラマが持ってる共通理解
例外を使うなとか多重継承を使うなとか誰かが言えば
C++の共通理解の範囲はどんどん狭くなるんだろ
そこで、共通ではない機能を潔く捨てるのと捨てないのと
どちらが他人に理解されやすいか
0723デフォルトの名無しさん
2011/01/22(土) 14:11:550724719
2011/01/22(土) 14:11:58ML(Standard ML)という関数型言語の場合、(expr1 ; expr2 ; expr3) という構文が「標準」で定義されている。
これは、expr1/expr2/expr3を順番に評価し、最後の評価値(この場合はexpr3)を全体の評価値とするもの。
いわば、exprN を手続き的にコールするための構文であり、ごく普通に利用されている。
広く蔓延している関数型言語に関する誤解の一つが、関数型言語では「自然な」手続き型プログラミングが不可能、
という間違った常識。関数型言語を分類する基準の一つに「評価法」という概念があり、
この視点でよれば、関数型言語は作用順評価(=非遅延評価)言語と正格順評価(=遅延評価)言語の2つに分類される。
自然な手続き型プログラミングが不可能という常識が通用するのは、Haskellに代表される正格順評価言語の場合のみ。
Haskellの場合、手続き型プログラミングにはIOモナドのような難解で冗長な仕掛けを使わなければならない。
最初の段落でMLの (expr1 ; expr2 ; expr3) という構文を紹介したように、(HaskellやScalaといった例外を除いた)
大半の関数型言語は作用順評価言語であり、自然な手続き型プログラミングが可能である、というのが正しい常識だよ。
これはML系言語族であるStandard ML/OCaml/F#だけじゃない、Lisp/Scheme、さらにはSmalltalk/Rubyにも通用する。
0725デフォルトの名無しさん
2011/01/22(土) 14:30:39724 関数型言語では「自然な」手続き型プログラミングが不可能、という間違った常識。
自然な手続き型プログラミングが可能である
狂ってるw
0726デフォルトの名無しさん
2011/01/22(土) 14:38:02のコピペを思い出したw
うんちくを語りたくて仕方なかったんだろうな
0727719
2011/01/22(土) 14:42:54>721の「手続き的なコードになっちゃうんじゃないの?」という問いに対して、
関数型言語(ML)でGUI操作の箇所は普通に手続き的なコーディングしてますよ。何か問題でも?
という答えは、あえて書かなくても(暗黙の内に)理解してもらえると思ったけど、>>725には難しかったかな....
0728デフォルトの名無しさん
2011/01/22(土) 14:45:44うんちくと言って良いのかすらも怪しいなw
0729デフォルトの名無しさん
2011/01/22(土) 14:48:51>>721 が『手続き的になっちゃうなら、関数型言語の旨味は
少ないんじゃないの?』と言う問いかけであるとは考えなかったの?
0730デフォルトの名無しさん
2011/01/22(土) 14:48:58724 「自然」に太ることが不可能、という間違った常識。
自然に太ることが可能である
ガ板向きだな
0731デフォルトの名無しさん
2011/01/22(土) 14:55:25そこへ大上段に構えて説法するとはチャレンジャーだなw
0732デフォルトの名無しさん
2011/01/22(土) 15:26:47GUIはオブジェクト指向と相性がいいのに、
わざわざCや関数型を使うことないだろ。と
0733デフォルトの名無しさん
2011/01/22(土) 15:41:23要は組み合わせだろ。
0734719
2011/01/22(土) 15:41:35「関数型言語の旨味」とは何か?という話であれば、
これはGUIに限らないけどMLのような型推論を備えた型付き関数型言語の場合、
実行時エラーの多くがコンパイル時に検出できるというのが、自分にとっての最大の旨味だね。
このエラー検出機能はGUI処理が手続き的であっても別にかまわない訳で。
これが可能なのは、関数型言語の持つ参照透明性を前提にしたプログラミングスタイル。具体的には、
デフォは不変(imutable)オブジェクトで、必要な場合に限って可変(mutable)オブジェクトを使う。
このスタイルに慣れると、C++の難解かつ不完全である為にヌルポ発生を当然とする考え方がアホに見えてくる。
0735デフォルトの名無しさん
2011/01/22(土) 15:52:430736デフォルトの名無しさん
2011/01/22(土) 16:12:46参照透明を真面目に守ってるのって Haskell くらいじゃないの?
GUI なんて状態の固まりなんだから、参照透明を守りつつなんて
言っていたらプログラムが複雑になるだけじゃない?
0737719
2011/01/22(土) 16:14:02>GUIはオブジェクト指向と相性がいいのに、
これは「GUIとオブジェクト指向パラダイムの相性は良い」という意味で正しい思う。でも、
>わざわざCや関数型を使うことないだろ。と
これは???だな。手続き型(命令型)や関数型(作用型)というのは計算モデルの分類であって、
計算モデルと(パラダイムである)オブジェクト指向を同列に比較すること自体が無意味だから。
手続き型言語であるCにオブジェクト指向パラダイムを取り込んだC++/Objective-Cがあるように、
関数型言語にも、MLにオブジェクト指向パラダイムを取り込んだOCaml(Objective Caml)やF#がある訳で。
C++がGUIと相性が良いのであれば、同様にOCaml/F#もGUIと相性が良いと言えるのではないかと。
あるいは手続き型言語であるCであってもGTKのGObjectのように擬似的なOOPが可能であるように、
関数型言語であるStandard MLであっても擬似的なOOPは可能だ。("OO Programming styles in ML" でググレ)
この場合、OCaml/F#よりコードは冗長になるけど、>>734で書いたコンパイル時の型検査機能は生きるから、
GTK by Cで多発する型不一致による実行時エラーは絶滅し、参照誤りによる実行時エラー(=ヌルポ)も激減する。
0738デフォルトの名無しさん
2011/01/22(土) 16:15:48一切関係ないだろ
そもそも「GUIにおいての関数型言語の旨みとは何か」という話なのに、
GUIに限らないけどなどと前置きすること自体がおかしいし
0739デフォルトの名無しさん
2011/01/22(土) 16:29:55C で GObject をチマチマ弄るのが嫌だから Vala が作られたんでしょう。
0740デフォルトの名無しさん
2011/01/22(土) 16:35:04>>734 は静的型付けだけでなく、強い型付けかどうかも意識してるんじゃないかな。
それでも関数型言語である必然性は無いし、GUI とも関係無いですけど。
0741デフォルトの名無しさん
2011/01/22(土) 16:52:25これは OCaml の GUI のサンプルコードだけど、これを見て
関数型言語の旨味を感じられる人は居るのかな?
http://plus.kaist.ac.kr/~shoh/ocaml/lablgtk2/lablgtk2-tutorial/a2692.html
ref を使って破壊的代入をしているから参照透明性も無いし、
C で書くのに比べて簡潔と言う訳でもないし。
0742719
2011/01/22(土) 16:57:56>参照透明を真面目に守ってるのって Haskell くらいじゃないの?
その生真面目さが実用的なプログラミングにおけるHaskellの2番目の欠点だね。(1番目は>>724に書いた評価法)
MLの場合、(>>734でも書いたけど)デフォは不変オブジェクトであって参照透明性が保証される。
ただし、明示的に(ref型を)宣言することで可変オブジェクトも生成できる。ただしこの場合、参照透明性は失われる。
言い換えると、不変オブジェクトが推奨だけどプログラマの判断で(=自己責任で)可変オブジェクトも許容する、という思想。
手続き型の場合は、どうせ参照透明性なんて保証できないんだから、すべて可変でいいじゃん、という思想。
まとめると、Haskellは参照透明性をプログラマに強制し、手続き型言語は参照透明性を放棄し、MLは参照透明性を
尊重しつつ例外も許容するという大人の考え方。つまり世の中は0と1だけじゃない事を理解している。
参照透明性が100%保証されなくても、90%だけでもプログラミングは大いに楽になる。
プログラマは、残る10%の部分に集中して慎重にプログラミングを進めればいい、という考え方。だから、
>GUI なんて状態の固まりなんだから、参照透明を守りつつなんて言っていたらプログラムが複雑になるだけじゃない?
に関しては、まったくもってその通りだと思うよ。(仮に「守りつつ」=「保証」という意味であるならば....)
また、「Haskellが参照透明性を強制するからすべての関数型言語もそうに違いない」という常識も、
広く蔓延している関数型言語に関する誤解の一つだね。Haskellなんて例外的な言語なのになぁ。
(こんなこと書くと、また狂ってるwとか滅茶苦茶だなwという反応が大半なんだろね....www)
0743デフォルトの名無しさん
2011/01/22(土) 17:18:47で、>>738に対する反論は無いのか?
>>724もそうだけど明らかに論理性を欠いているから、狂ってるだの滅茶苦茶だの
言われるんだろ
0744デフォルトの名無しさん
2011/01/22(土) 17:20:38スレタイ読めてる?
0745デフォルトの名無しさん
2011/01/22(土) 17:29:04> 広く蔓延している関数型言語に関する誤解の一つだね。
こんな話初めて聞いたけど、本当にこんな間違った常識が広く蔓延してるの?
少なくともこのスレには広まっていないようだけど
0746719
2011/01/22(土) 18:08:51サポありがと。
>>738,743
>>734のカキコ内容は、動的型付けと静的型付けという「いつ型検査をするか?」の違いとは一切無関係だよ。
動的型付けや静的型付けといった話題は、たとえばLisp/Scheme(動的) vs. Haskell/ML(静的)みたいな文脈で用いる。
>>734で話題にしているC++ vs. ML はどちらも静的型付け言語だから、動的/静的の論じる事自体が無意味だね。
>>734,743は、動的型付け/静的型付けという用語の意味を間違って理解しているのではないかと。
>>734では、(>>740がサポしてくれたように)型付けの「強さ」について書いている。
C++は型付けの「弱い」言語だから、静的型付けであるけど型検査を通過したプログラムであっても実行時エラーが多発する。
それに対して、(同じ静的型付けであっても)型付けの「強い」MLは、型検査を通過したプログラムであれば(C++と比較して)
実行時エラーが劇的に減少する。(0除算エラーやベクタ等での範囲外エラーはあるから、ゼロとまではいかないが....)
その「強い型付け」の背景にあるのがMLの型システム/参照透明性であり、そういった強力な型システムを実現できているのは
(今のところ)関数型言語しかない。型推論については、その型システムを前提とした機能であり、冗長な型宣言を
(まるで動的型付き言語のように)省略可能にしつつ型検査を保証するという、C++と比較した場合の優位性を示している。
>>734,743は、MLに代表されるモダンな関数型言語の型システムについて勉強し直したほうがよいと思う。
0747デフォルトの名無しさん
2011/01/22(土) 18:14:05型推論は記述を省略する為の物だから、型エラーの検知とは無関係。
0748719
2011/01/22(土) 18:19:18あと「そもそもの話(>>719)」について、「GUIにおいての関数型言語の旨みとは何か」なんて何も触れていませんけど何か?
自分の考え方は、
・GUIとオブジェクト指向パラダイムの相性は良い(>>737)
・GUIにおいて手続き型言語と関数型言語とを比較してプログラミングスタイルの優位性に大差は無い(>>737)
・そうであれば、(1) 強力な型検査機能があり、(2) 作用順評価(=非遅延評価)であり(>>724)、
(3) 可変オブジェクトも許容する(>>742)のだから、
==> GUIでもプログラミング言語としてML系を選ぶのが現実的に適切ではないのだろうか
というもの。
0749719
2011/01/22(土) 18:34:09では、ナゼJavaでは、チョット難しい事をしようとしただけでNullPointerException(ヌルポインタ例外)が
頻発するんでしょうかねえ。こんなのコンパイラが検査してくれてもいい、いやするのが当然だろ、なんて思いませんか?
率直に言って、Haskell/MLのような静的型付き関数型言語と比較すると、C++もJavaも大差なく
弱い静的型付けの言語でしかありません。C++とJavaの比較はドングリの背比べに見えます。
>>734,743と一緒に、MLに代表されるモダンな関数型言語について勉強されることをお勧めします。
たとえば以下のWeb記事は、入門として良いかもしれません。
・ITpro - 数理科学的バグ撲滅方法論のすすめ
http://itpro.nikkeibp.co.jp/article/COLUMN/20060915/248230/
0750デフォルトの名無しさん
2011/01/22(土) 18:39:270751デフォルトの名無しさん
2011/01/22(土) 18:39:38>>746も挙げてるけどJavaは型推論も関数型言語も参照透明性もすべて当てはまらないが(>>734の)
> 実行時エラーの多くがコンパイル時に検出できる
という目的は実現できている。(nullを許容するかどうかは全く別の話)
なぜならこれは静的型付け言語の特徴だから。
>>734がおかしいことは明らか。
0752デフォルトの名無しさん
2011/01/22(土) 18:40:28Haskell&Gtkを薦められました
C/C++は分かる、でもC/C++&wxWidgetsは分からない
Haskell&wxWidgetsを薦められました
C/C++は分かる、でもC/C++&SDLは分からない
Haskell&SDLを薦められました
狂ってる!
0753デフォルトの名無しさん
2011/01/22(土) 18:44:55曰く、Java では変数には全て final を付ける必要がありますが、
final を省く事で可変オブジェクトも許容します、とかナントカw
0754719
2011/01/22(土) 18:50:29遅くなったが、リンク先のコードを自分なりに読んでみた。
OCamlについてはサンプル程度のプログラミングレベルでしかないから間違ってるかもしれないけど、
少なくともこのサンプルプログラムだと、refを使うのはデータ型pixmapに限定されているよね。
ref型の宣言は3ヶ所で破壊的代入(:=)も1ヶ所でしか使われていない。
>>742でも書いたけど、参照透明性が100%保証されなくても、90%だけでもプログラミングは大いに楽になるのでは?
たとえば今回の例では、データ型pixmapを扱う部分(=10%)についてだけ慎重にコーディング&レビューする。
他の大半の部分(=90%)はデータ型に誤りが無い事はOCamlコンパイラが保証してくれる。
これだけでも、C/C++/Javaのような手続き型言語と比較すれば、自分にとっては旨味に感じられるよ。
あと、記述の冗長性がCと大差が無いことは認める。でも、それはGUIライブラリの設計に依存すると思う。
必要であれば、GTKの上にOCamlらしい(=関数型言語らしい)宣言的な独自ライブラリを被せればいいんじゃないかと。
0755デフォルトの名無しさん
2011/01/22(土) 18:55:30それって OCaml がマルチパラダイムな言語だから成立している話であって、
純粋関数型的なコーディングは捨てている訳だよね。
それなら別に OCaml である必要は無い訳で、言語ネイティブな GUI ライブラリを
多数持っている C++ や Java を選ぶのが現実的に適切だと思うわ。
型推論とクロージャがちょっと羨ましいかなといった程度。
0756デフォルトの名無しさん
2011/01/22(土) 19:02:29一カ所なら良いと言うのは MLer 特有の解釈だと思われ
0757719
2011/01/22(土) 19:06:41>> 実行時エラーの多くがコンパイル時に検出できるという目的は実現できている。
NullPointerExceptionは極端な例だとしても、Javaコンパイラの型検査なんて、
Haskell/MLと比較すると、不完全な代物にしか見えないよ。
関数型言語の型システムを知らない人であれば、比較対象はC/C++コンパイラだろうから
Javaコンパイラの型検査は優秀に見えるかもしれないけど、
(>>749で書いたように)ドングリの背比べにしか見えない。
もしJavaが得意なお人なら、JVM上で動く Scala なんていう関数型言語もあるよ。
まあ、無理に関数型言語を勉強汁とは言わないけどね....。でも>>751のカキコはチョット恥ずかしいYo
0758デフォルトの名無しさん
2011/01/22(土) 19:24:30> あと、記述の冗長性がCと大差が無いことは認める。でも、それはGUIライブラリの設計に依存すると思う。
> 必要であれば、GTKの上にOCamlらしい(=関数型言語らしい)宣言的な独自ライブラリを被せればいいんじゃないかと。
GTKを扱えない人にHaskellらしいGTKラッパが書けるとでも思ってるの?
GUIアプリを書くのにHaskellが向くというなら
Haskellらしく扱えるGUIライブラリをまず提示してくれよ
妄想振りまく場違いな人としか見てもらえませんよ
0759デフォルトの名無しさん
2011/01/22(土) 19:27:310760719
2011/01/22(土) 19:45:21まず、>>748の話はマルチパラダイムではないStandard MLにも適用できます。
というか、(ライブラリの充実度全般に弱点がある)Standard MLにもTkやGTKくらいなら
GUIライブラリは存在していますから。
次に本論。あるプロジェクトにおいて言語ネイティブなライブラリの充実度が
言語選択の最重要判断基準であるのなら、素直に手続き型言語(C++/Java)を薦めることに同意しますよ。
ただし、しょうもないコーディングミスに起因するデバッグには辟易していて、
自分は(あるいは自分達は)アーキテクチャ設計に専念できる事が重要なんだ!!と考えるのであるなら、
言い換えるとソフトウェア品質保証も含めて判断材料にできるのなら、MLも比較対象になると思います。
現実世界での言語選択はケースバイケースで考えた方が良いのではないかと。
(>>748で書いたのは、あくまで個人的な意見(理想論)ですので、誤解しないでくださいませ)
最後にやっぱり気になる点。>>755はナゼ「純粋でなければ関数型言語を選ぶ価値が無い」と考えたのでしょうか?
(OCamlを含む)MLという言語は、(>>742で書いたように)純粋性を尊重しつつ例外も許容するという大人の考え方で
設計された言語です。この「完全な純粋性こそが全ての関数型言語に共通する特徴である」というのも、
広く蔓延している関数型言語に関する誤解の一つだと思います。(気が付けば3つ目になってしまいますた)
0762719
2011/01/22(土) 20:15:44すまんが、漏れはGUIプログラミングに Haskell なんて薦めてなんかいないよ。(薦めているのはMLだ。勘違いしないでね。)
それどころか、(>>724で書いたように)自然な手続き型プログラミングが不可能なHaskellは
GUIプログラミングに不適切だと主張しているくらいだし。というか、HaskellでGUIモナドを記述するなんて、
相当の達人Haskellerでなければ無理じゃないかと思う。(少なくとも自分のHaskell理解度では無理デス)
あと、Haskell以外の関数型言語でもいいのなら、Standard MLでGTK向けのMVCラッパライブラリを開発中だ。
着手したばかりで、まだ動くコードは見せられないけどね。
代わりに、その元ネタになったRubyによる関数型プログラミング風の宣言的なGUI記述コードを次カキコで紹介する。
今はRuby-GTK向けの骨格プロトタイプを開発している段階で、最終的にMLに落とす予定。
紹介するのは、この板の「LLバトルロワイヤル13(dat落ち)」にカキコしたコードのコピペ。
話の発端は「LLで宣言的なGUIはできねえのか?」というもので、それに対する一連のレスの一部になる。
(というわけで、次レスに続く)
0763719
2011/01/22(土) 20:17:09>656 名前: 631 Mail: sage 投稿日: 2010/11/10(水) 18:38:17
>>>652
>ウィジェットの階層構造をメソッドの列で表現するのではなく、データ構造で表現するということですね。
>とても良い発想だと思います。自分はまだRuby1.9へ移行していないので、Ruby1.8で実装してみました。
>ただし、Ruby1.8は連想リストが使えないので、代わりにモジュール関数を使っています。
>これは実際に動くコードです。モジュールMTKを実装したmodern_tk.rbは、114stepほどの規模でした。
>
>require 'modern_tk'
>text_data = Struct.new(:output, :input).new(MTK.variable, MTK.variable)
>MTK.mainloop(
> MTK.root(
> :title => 'Ruby/Tk!',
> :vpack => [
> MTK.label(
> :textvariable => text_data.output,
> :font => [:serif, 18, [:bold]]
> ), MTK.entry(
> :textvariable => text_data.input,
> :font => [:serif, 12, [:normal]]
> ), MTK.button(
> :text => 'OK',
> :command => proc {
> text_data.output.value =
> "You typed #{text_data.input.value} !"
> }
> )
> ]
> )
>)
0764デフォルトの名無しさん
2011/01/22(土) 20:30:35SML はオブジェクト指向言語じゃないので、>>748 と矛盾する。
OCaml のオブジェクト指向な部分も後付けなんだっけ。
Python や Objective-C もそうだけど、オブジェクトシステムを
建て増しすると言語がいびつになるよね。
0765デフォルトの名無しさん
2011/01/22(土) 20:37:47それだと動的な要素が薄すぎてOOPLとして使うのはかなり無理がありそうだけど
0766デフォルトの名無しさん
2011/01/22(土) 20:44:48ML が例外を許容する事で大人な言語なら Java はもっと大人な言語だと思われ。
副作用を全て受け入れて、不変性を表明したい時だけ final と書けば良いんだからね。
しかも配列の要素は可変という裏口まで用意してくれている。
単に変数のデフォルトの挙動が違うだけで、取り立てて騒ぐ事じゃないと思うわ。
Haskell くらい副作用を隔離出来るなら別だけどね。
0767デフォルトの名無しさん
2011/01/22(土) 20:48:13プログラムを作るのに毎回ラッパーライブラリを用意するのが
面倒でなければ、関数型言語を薦めることに同意しますよ。
0768719
2011/01/22(土) 20:54:05お気の毒な話だねw(ネタだとは思うけど....)
自分なら「C/C++は分かる、でもC/C++&Hogeは分からない」という人になら、
Python/Rubyのようなスクリプト言語を薦めるけどね。
GUIプログラミングが初めてであるなら、まずは「書いてみる&動かしてみる&じっくり考える」が
楽なスクリプト言語が向いていると思う。(あくまで個人的な意見だけど....)
スクリブト言語を学ぶ事自体が回り道になるけど、それも長いPG/SE人生からすれば一瞬ではないかと。
初心者には、まずお気軽に動くことができる事が最も重要。
その後、「動けばいい」から「正しく動く」というレベルに移行する時に、MLのような作用順評価(=非遅延評価)の
型付き関数型言語を学べばいい。ML系の言語(Standard ML/OCaml/F#..etc)であれば、(>>741が紹介してくれたように)
冗長ではあるけれど、Cのコードと対応付けの容易なコーディングができるから、移行も(比較的に)容易だ。
特にサンプルプログラムから卒業して、ある程度の規模のGUIプログラミングを始めようとするレベルに達したのならね。
それなのに初心者へいきなりHaskellを強要するというのは、....... 狂っているとしか言いようがないwww
GUIが初めての人に、最初にまずGUIモナドとは...モナドとは....遅延評価とは.....とか講義(=自慢)したいんだろね。
でも多くのHaskellerには、そんな頑な(かたくなな)一面があるというのも、これまた事実だったりする訳で。(例:>>756)
0769デフォルトの名無しさん
2011/01/22(土) 21:32:01http://hibari.2ch.net/test/read.cgi/tech/1269609576/
0770デフォルトの名無しさん
2011/01/22(土) 21:41:58> 自分なら「C/C++は分かる、でもC/C++&Hogeは分からない」という人になら、
> Python/Rubyのようなスクリプト言語を薦めるけどね。
アホでしょ
前者はHogeを理解するだけだが
後者はHogeラッパに加えPython/Rubyまで理解する必要があるぞ
GUIが難しいという人は言語の問題ではなく
イベントが発生したら
OSはそのイベントをスレッドごとに用意されたメッセージキューにプッシュする
という基本的な流れが分かってないんじゃないかな
それが分かってたらアプリ側でやる事はCUIと同じなわけだし。
0771デフォルトの名無しさん
2011/01/22(土) 22:04:34処理系のバグ出しをしたり、古くなって動かないライブラリを改修したりするのが
楽しい人には良いけどね。
0772デフォルトの名無しさん
2011/01/22(土) 22:25:27> GUIが初めての人に、最初にまずGUIモナドとは...モナドとは....遅延評価とは.....とか講義(=自慢)したいんだろね。
そういえば講義(=自慢)を繰り返してる奴が一人いるな
狂ってるのかな?
0773デフォルトの名無しさん
2011/01/22(土) 22:43:27> GUIが初めての人に、最初にまずGUIモナドとは...モナドとは....遅延評価とは.....とか講義(=自慢)したいんだろね。
本人自ら719の擦り付けw
0774デフォルトの名無しさん
2011/01/23(日) 01:24:54>自然な手続き型プログラミングが不可能なHaskell
do
0775デフォルトの名無しさん
2011/01/24(月) 00:29:13>前者はHogeを理解するだけだが
>後者はHogeラッパに加えPython/Rubyまで理解する必要があるぞ
LLで書いた方がREPLとか備わってて、
コンパイルする言語よか開発サイクルはやそうに見えるんだけど。
そして、齧り出しのgtkmmにあるmem_funが何それ状態。STLまで覚えなあかんの?
GUIについて覚えるなら、C++なんて忘れてLLからの方が習得はやい気がする。
ああ、隣の芝が青い...。
0776デフォルトの名無しさん
2011/01/24(月) 00:44:06GUI みたいにイベントループが処理を乗っ取る様なプログラムだと REPL は意味が無い。
それと、GUI ライブラリの実装言語 (C++ とか) の知識はデバッグ時にも必要になるから、
LL しか知らないと厳しい。
0777デフォルトの名無しさん
2011/01/24(月) 00:55:07地道にC++で覚えまつ
(ん?GUIライブラリもC++で書かれてんだっけ)
0778デフォルトの名無しさん
2011/01/24(月) 00:56:45君は何も気にせず好きなようにしたらいいよ。
>mem_funが何それ状態。STLまで覚えなあかんの?
な人は「C/C++は分かる」と言えないからね。
0779デフォルトの名無しさん
2011/01/24(月) 01:20:13簡単なものを作るだけでも、すごい遠回りなことしてる気がする
専門馬鹿が素人のこと考えてないってのが、よぉ分かるわ
0780デフォルトの名無しさん
2011/01/24(月) 01:56:49lisp系のスクリプトで、Cのコードを生成するもんを見たことある気がする
0781デフォルトの名無しさん
2011/01/24(月) 04:21:59VBやDelphiでどうすか?
0782デフォルトの名無しさん
2011/01/24(月) 04:35:290783デフォルトの名無しさん
2011/01/24(月) 04:55:080784デフォルトの名無しさん
2011/01/24(月) 21:23:26アセンブラ→C→C++→C#→F#ときたのでC++でなにが覚えるの大変なんだか良く解らん。
Boostとかのことか?
0785デフォルトの名無しさん
2011/01/24(月) 21:47:33最近関数型言語とか憶えたてだけど、C++のどこが難しいのかマジわかんねーわー
0786779
2011/01/24(月) 22:32:33多重継承やRTTI、菱形継承の問題。RAIIイディオム
一時オブジェクトの生存期間
関数の継承をprivateにするかprotectedにするか
ヘッダファイルに書くかプロトタイプ宣言のみにするか
グローバル変数のスコープ、enumの通用範囲
インライン関数にテンプレート使ったときに、どこに定義されてんのか
vectorのイテレータと生のポインタの違い
STLのallocatorってなんだ?
static_castの4つの違い
コピーコンストラクタ作ったときに自己参照に気をつけろとか
初期化子リストの初期化される順番
展開されたテンプレートの定義箇所
スマートポインタを参照でわたしたらどうなるか
expressionテンプレート
ムーブセマンティクス、右辺値参照←new!!
>>785
CSP問題でも解いてろ
0787デフォルトの名無しさん
2011/01/24(月) 22:54:01君はGUIが分からないのではなくてC++が分からないんでしょ?
それはスレ違いだよ。
C++が分からないなら分からないで
CでXlibやWin32のAPIを直接叩けばいいじゃん
メンドクサイならHSPでも使って分かったつもりで悦に入ればいいじゃん
自分が理解できないからって場違いなスレで騒いでもしょうがないでしょ
0788デフォルトの名無しさん
2011/01/24(月) 22:59:43菱形継承すんな
スコープ外れたとき
必要ならprotectedにしろ
好きにしろ
グローバルなんか使うな
忘れた
イテレータはラップしたオブジェクト
自前allocatorを使える
無理くりとか出来ますよね?とか
事故参照するのが悪い
そういうのに依存しないように書くべき
IDE使え
何も起こらん
知らん
知らん
あーたしかにそのへん気にしようとすると色いろあるかも。でも基本そんなにこだわらなくても良かったりそもそもそんなの絡めるべきじゃないってのが多くねーか
0789デフォルトの名無しさん
2011/01/24(月) 23:44:07他人のオナニーコードや
ライブラリ読むと発狂できる
0790デフォルトの名無しさん
2011/01/24(月) 23:55:19慣れりゃ読めるし、慣れるだけの見返りはあるけど
オレオレなオナニー劣化車輪がキツイんだよな
それはC++に限ったことじゃないけども
0791デフォルトの名無しさん
2011/01/24(月) 23:56:59どいつもこいつもしこってばっかで開発すすまねぇ
Java 去性しちまえば作業効率あがるぜ
C++ オナニーは時と場所選ぼうぜ
0792デフォルトの名無しさん
2011/01/26(水) 00:31:06RTTIとかダウンキャストって、そんなに必要なものかな
0793デフォルトの名無しさん
2011/01/26(水) 16:34:200794デフォルトの名無しさん
2011/01/26(水) 21:37:54型を見て分岐するなら、polymorphism 使うべきだろうなと思った
0795デフォルトの名無しさん
2011/01/26(水) 21:51:310796デフォルトの名無しさん
2011/01/26(水) 22:27:08MOPまで行けばとても便利で有用
Javaや.NETのイントロスペクションとか
0797デフォルトの名無しさん
2011/01/27(木) 00:02:22http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/mac_typecasec_cm_etypecase.html
0798デフォルトの名無しさん
2011/01/29(土) 00:06:460799デフォルトの名無しさん
2011/01/29(土) 03:08:390800デフォルトの名無しさん
2011/01/29(土) 13:02:010801デフォルトの名無しさん
2011/01/29(土) 13:07:210802デフォルトの名無しさん
2011/01/29(土) 21:42:36人生を楽しんでいたい
井上怜奈
0803デフォルトの名無しさん
2011/01/30(日) 03:45:40くじけりゃ誰かが先に行く
里見浩太朗
0804デフォルトの名無しさん
2011/01/30(日) 07:01:510805デフォルトの名無しさん
2011/01/30(日) 07:06:590806デフォルトの名無しさん
2011/01/30(日) 09:57:34いい奴ばかりじゃないけど、悪い奴ばかりでもない
ロマンチックな星空にあなたを抱きしめていたい
南風に吹かれながらシュールな夢を見ていたい
THE BLUE HARTS
0807デフォルトの名無しさん
2011/01/30(日) 10:06:06泣いて過ごしても平等に時は流れる
未来が僕らを呼んでる
その声は今 君にも聞こえていますか?
0808デフォルトの名無しさん
2011/01/30(日) 21:41:590809デフォルトの名無しさん
2011/02/11(金) 00:26:46Qt が盛り上がる方向で舵取りしてもらいたい物だけど...
0810デフォルトの名無しさん
2011/02/11(金) 16:42:090811デフォルトの名無しさん
2011/02/11(金) 17:58:060812デフォルトの名無しさん
2011/02/11(金) 21:23:530813デフォルトの名無しさん
2011/02/14(月) 05:49:500814デフォルトの名無しさん
2011/02/22(火) 13:44:29.370815デフォルトの名無しさん
2011/02/23(水) 11:12:53.100816デフォルトの名無しさん
2011/02/23(水) 11:47:18.93かってに、google に甘い期待をしているんだけど、
ttp://sourceforge.jp/magazine/11/02/22/104206
これとかを見ると、google 的には、
C++ は Web アプリみたいにして、
Android に持っていくつもりなのかな。
プログラマのヘマでセキュリティーホール作られるよりは、
制限あっても、sandbox 内で…って感じで。
Javaが選ばれた理由も、そんなんじゃなかったっけ?
0817デフォルトの名無しさん
2011/02/24(木) 02:23:09.35NaCl に興味があるなら、インストールして試してみると良いよ
Google が開発しているプログラム実行環境(Native Client :
C/C++, Native Activity : C/C++, Dalvik : Java, V8 : JavaScript、
Go : Go、Unladen Swallow : Python)の中でどれが一番長生き
するか調べて、ブログにでも載せておいてくれると助かるわ
0818デフォルトの名無しさん
2011/05/04(水) 00:27:59.93GUIで簡単になったっていうのに何がむずかしいのか
0819デフォルトの名無しさん
2011/05/04(水) 10:19:21.20慣れた人向けの効率性の両立
両方作れってのは工数増えるから簡単じゃないよ
0820デフォルトの名無しさん
2011/05/08(日) 02:31:56.70実装しているんだけど、激しく面倒くさいな。
状態のリストアップも面倒くさいし、各状態に名前を付けるのも面倒くさいし、
フラグやデータの更新漏れが無いかチェックするのも面倒くさいし、用意したフラグが
最適なのかを考えるのも面倒くさいし、テストケースを作るのも面倒くさい。
マウスハンドリングのガイドラインみたいなのがあったら良いのに。
0821デフォルトの名無しさん
2011/05/08(日) 10:51:19.040822デフォルトの名無しさん
2011/05/08(日) 13:51:43.66でも、幸いな事にマじゃないので転職の心配はしなくて大丈夫なんだ。
イベントの状態遷移をうまく定義する方法論は無いかな?
0823デフォルトの名無しさん
2011/05/08(日) 21:25:14.170824デフォルトの名無しさん
2011/05/08(日) 21:46:33.00状態の数が増えると、似た様なクラスとメソッドを大量に作らないといけないですよね。
結局クラスの名前を考えるのが頭が痛いです。。。
0825デフォルトの名無しさん
2011/05/16(月) 06:12:14.43作るときにコールバック渡してyo
0826デフォルトの名無しさん
2011/05/16(月) 08:24:00.660827デフォルトの名無しさん
2011/05/17(火) 02:01:11.20理解してもらう努力もせずにGUI作るなんてオナニー以外の何物でもないと思うよ。
0828デフォルトの名無しさん
2011/05/17(火) 07:25:04.600829デフォルトの名無しさん
2011/05/18(水) 14:37:30.450830デフォルトの名無しさん
2011/05/18(水) 19:23:05.230831デフォルトの名無しさん
2011/06/01(水) 02:46:10.73command line から実行されたら CUI で起動する
こういう風に造っておくのがよさげ
0832デフォルトの名無しさん
2011/06/01(水) 09:48:46.680833デフォルトの名無しさん
2011/06/01(水) 19:31:01.89コマンドラインから実行ファイルを直接指定すると CLI で実行出来るね
0834デフォルトの名無しさん
2011/06/01(水) 22:01:28.09不可能ではないかも。
自身の親プロセスやその祖先にexplorer.exeがいたらGUI起動、それ以外だったらCUIとか。
まあ俺なら引数で分けるけど。
0835デフォルトの名無しさん
2011/06/02(木) 00:27:46.95そんな方法あるの?
0836デフォルトの名無しさん
2011/06/02(木) 00:33:40.860837デフォルトの名無しさん
2011/06/02(木) 17:49:58.000838デフォルトの名無しさん
2011/06/02(木) 17:52:51.580839デフォルトの名無しさん
2011/06/20(月) 10:50:00.34どこかに書いてない?
0840デフォルトの名無しさん
2011/06/20(月) 12:03:53.35ざっくりいえば、単に描画するものをレイヤーオブジェクト的なものに分けて持たせておいて、今の操作対象のレイヤーに描画オブジェクトを追加するとか非表示のレイヤーは表示対象にしないとかだけだと思われ。
0841デフォルトの名無しさん
2011/06/23(木) 07:17:10.840842デフォルトの名無しさん
2011/06/23(木) 21:38:58.40関東と関西じゃ逆なんだっけ?
0843デフォルトの名無しさん
2011/07/07(木) 18:27:27.92って場合、どんなコントロールがわかりやすいですか?
(「□」はチェックボックス、「○」はラジオボタン)
□ カレーを作る(選択肢A)
□ 自転車に乗る(選択肢B)
こうして
Aにチェックを入れるとBのチェックがはずれ
Bのチェックを入れるとAのチェックがはずれる
にするとわかりにくいですよね?勝手にチェックがはずれるとか
○ カレーを作る(選択肢A)
○ 自転車に乗る(選択肢B)
こうして
チェックしているものをもう一度選択するとチェックが外れるというのも
普通のラジオボタンにはない動作なのでわかりにくすぎますよね?
○ カレーを作る(選択肢A)
○ 自転車に乗る(選択肢B)
○ 何もしない
こうですか?これはこれで「何もしない」がわかりにくいというか無駄というか
わかりやすいいい方法はありますか?
選択肢が「カレーを食べる」「うどんを食べる」なら
「何も食べない」が並んでいてもそんなに違和感はありませんが
「カレーを作る」「自転車に乗る」くらいぜんぜん違うもので
それでいて同時には選べない排他的なもので
0844デフォルトの名無しさん
2011/07/07(木) 18:33:17.33○ 何かする
○ カレーを作る(選択肢A)
○ 自転車に乗る(選択肢B)
とか
□ 何かする
○ カレーを作る(選択肢A)
○ 自転車に乗る(選択肢B)
とかして
「何かする」が選ばれていないときは選択肢をグレーアウトさせると
選択肢を選ぶのにワンステップ増えてしまうし
0845デフォルトの名無しさん
2011/07/07(木) 18:46:32.94○ カレーを作る(選択肢A)
○ 自転車に乗る(選択肢B)
○ 何もしない
が分かりやすいでしょう。
0846デフォルトの名無しさん
2011/07/07(木) 18:55:55.17内容云々はどうでもよくて、結局3択なのだから
それが一目瞭然な方がいいと思う。
0847843
2011/07/07(木) 19:04:11.91どうもありがとうございます
わかりやすさならこうかなとか思ったりもしました
□ 追加動作を選択する
○ カレーを作る(選択肢A)
○ 自転車に乗る(選択肢B)
「何かする」とか「何もしない」とかは間が抜けているというか
項目として並べるものでもないような気がして
三択にするとどちらも選ばなかった場合の表現が「何もしない」以外に言いようがないっぽいし
でも言われてみれば確かに三択ですよね
0848デフォルトの名無しさん
2011/07/09(土) 19:13:47.27開発環境が最強な気がするなあ...
0849デフォルトの名無しさん
2011/07/10(日) 02:30:59.71まあどこまでGUIに含めるかだよね。
CUIだと
コマンド名 オプション オプション オプション
でいいから簡単。
もしGUIでも、[コンボボックス] [コンボボックス] [コンボボックス] でコマンドを
選んでいくだけでいいようなものなら、作るのは簡単だろう。
だけどGUIだとCUIとは違って優れたユーザーインターフェースを作る必要がある
まあ、必須ではないけれど、現実問題そうなるよね。
優れたユーザーインターフェースを持ったGUIを作るというのなら
難しいというのは事実。
0850デフォルトの名無しさん
2011/07/10(日) 02:31:32.370851デフォルトの名無しさん
2011/07/12(火) 21:11:52.33GUIは素人が使うことも考慮しなければならない
0852デフォルトの名無しさん
2011/07/17(日) 00:52:41.450853デフォルトの名無しさん
2011/08/12(金) 21:05:28.09リストボックス描画の参考になるサイト無いかな?
0854デフォルトの名無しさん
2011/08/15(月) 00:03:06.960855デフォルトの名無しさん
2011/08/18(木) 18:19:40.020856デフォルトの名無しさん
2011/08/19(金) 10:21:25.26グーイーだよねー
0857デフォルトの名無しさん
2011/08/19(金) 18:58:06.890858デフォルトの名無しさん
2011/08/19(金) 19:45:32.950859デフォルトの名無しさん
2011/08/19(金) 21:19:28.78簡単に作るには何がおすすめ?
0860デフォルトの名無しさん
2011/08/19(金) 22:27:37.780861デフォルトの名無しさん
2011/08/19(金) 23:00:22.470862デフォルトの名無しさん
2011/08/19(金) 23:01:56.71vc#
vb.net
qt
0863デフォルトの名無しさん
2011/08/22(月) 01:03:21.480864デフォルトの名無しさん
2011/08/22(月) 01:17:44.720865デフォルトの名無しさん
2011/08/22(月) 02:38:15.23夏房共乙
0866デフォルトの名無しさん
2011/08/22(月) 03:01:20.44GUIはCUIに比べるとはるかに難しいぞ。
CUなんて、文字の入力と出力しか
機能がないからな。
0867デフォルトの名無しさん
2011/08/22(月) 19:35:16.970868デフォルトの名無しさん
2011/08/22(月) 21:22:23.13面倒臭さや古臭さを改善しようとするから難しい
0869デフォルトの名無しさん
2011/08/22(月) 23:01:17.41昔RPGとかクリアできなかったような人種だろうね
職業プログラマじゃない事を祈るけど
0870デフォルトの名無しさん
2011/08/23(火) 00:07:03.50元あるライブラリに素直に載せてやるのが簡単なんじゃね
へっぽこなCUIつくってるのに雑魚がカス設計すると
むずかしいからいやになっちゃうよ
そんないたたなCUIが増えてきたから
GUIはかんたんーって馬鹿にしてるんだね
0871デフォルトの名無しさん
2011/08/23(火) 07:50:42.08それら全てに対してGUI簡単ですと言ってくれる人がいるなら是非うちで雇いたいわ。
0872デフォルトの名無しさん
2011/08/23(火) 08:37:50.42ただのCUIのラッパーとしか考えてない奴にとっては
簡単だろうさ。
0873デフォルトの名無しさん
2011/08/23(火) 11:40:09.25スレッド
0874デフォルトの名無しさん
2011/08/23(火) 12:17:50.41アルゴリズム開発とか高速化にしのぎを削るような事を考えてない奴らにとっては
難しいだろうさ
全ての層のユーザーに対応したエラー処理をしなければとかいう言い訳ばっかりして仕様という名の不具合しか生まないんだ
って先輩が言ってました
0875デフォルトの名無しさん
2011/08/23(火) 21:17:21.14優秀な人間が用意したレールの上に作るのが簡単ってだけじゃね
CUIよりGUIのほうがずっと入力データも出力データも複雑で
負荷も高い場合が多いよね
タコが設計したソースいじってみろよ
ちょう簡単に作れるはずが無駄にむずかしいからねぇ
しかも崇高な設計理論語りだすからとめられんし
0876デフォルトの名無しさん
2011/08/23(火) 23:51:12.44http://ja.wikipedia.org/wiki/%E6%B6%88%E6%A5%B5%E7%9A%84%E8%87%AA%E7%94%B1
消極的GUIは、崇高()な設計理論に従わない状態を意味する
一方、積極的GUIは、優秀な人間によって規定される概念である
0877デフォルトの名無しさん
2011/08/24(水) 02:35:47.070878デフォルトの名無しさん
2011/08/24(水) 03:11:21.55え? 入力データも出力データも
GUIとかCUIは関係ないじゃん。
GUIになると、CUIだったら複雑なデータが
シンプルになるの? すごいなGUI。
ユーザーインターフェースだけじゃなくて
データまで操作してくれるのか(爆笑)
お前はアホ
0879デフォルトの名無しさん
2011/08/24(水) 04:42:48.09>GUIになると、CUIだったら複雑なデータがシンプルになるの?
逆じゃんか
アホはお前だ
0880デフォルトの名無しさん
2011/08/24(水) 08:13:34.960881デフォルトの名無しさん
2011/08/24(水) 10:25:48.150882デフォルトの名無しさん
2011/08/24(水) 11:05:33.390883デフォルトの名無しさん
2011/08/24(水) 11:25:48.280884デフォルトの名無しさん
2011/08/24(水) 12:37:47.610885デフォルトの名無しさん
2011/08/24(水) 23:18:07.470886デフォルトの名無しさん
2011/08/25(木) 03:00:36.46ただ、GUIを作るのは難しいw
0887デフォルトの名無しさん
2011/08/25(木) 03:19:28.79問い合わせイベントが用意されていないとイライラする
操作自体は単純でも
あちこちの処理にばら撒きたくないんだよホント
0888デフォルトの名無しさん
2011/08/25(木) 10:30:12.37[ .]自動的に保存
0889デフォルトの名無しさん
2011/08/27(土) 08:33:59.83GUI ではそういうわけにはいかないので、どちらかというと
必要になってくるのは検索能力ではないかと思ったりする。
悩みに悩んだ処理がフレームワークで用意されてたりするし。
単純なデリゲートの名前を散々悩んだ挙句、MethodInvoker なんてのが
あると知った日には吹いたわ。
0890デフォルトの名無しさん
2011/08/28(日) 08:09:45.25違うと思う。
GUIは非同期処理なのと、何がどの順番で走るかユーザの気分次第だから難しいんだと思う。
入力と状態が組み合わせ爆発する。
0891デフォルトの名無しさん
2011/08/28(日) 11:46:30.870892デフォルトの名無しさん
2011/08/28(日) 11:50:19.410893デフォルトの名無しさん
2011/08/28(日) 11:56:28.40文字でも順列組み合わせは普通に爆発してるんだが、
制御文字とかを特別扱いせずに同じ変数に代入するから状態が少なく感じる。
もし文字の種類ごとに異なるデータ型を定義したら、GUIと同じ問題が起きる。
MethodInvokerは、型で悩むのが馬鹿馬鹿しいという良い例だ。
0894デフォルトの名無しさん
2011/08/28(日) 12:05:52.77Windows支配が崩れてだいぶ状況が変わってきたぞ。iOS,Android,WinPhoneとかわらわら沸いてきたし、
やたら滑らかなUIってやつが重視されるし、プラットフォームごとにまったく手法が違うし。
WebはjQueryだのなんだのでお花畑だし。
0895デフォルトの名無しさん
2011/08/28(日) 14:29:44.89重視するのはいいけど作る奴は必ずオフれるオプションつけといて欲しいよ…
イライラしてしょうがない
0896デフォルトの名無しさん
2011/08/28(日) 15:38:31.88見た目・使い勝手共に満足のいくレベルまで持っていくのがとてもしんどい。
WPFが一番融通効きそうで、しかもドキュメントも多めだけど、それでも難しい。凹む
0897デフォルトの名無しさん
2011/08/28(日) 15:46:49.130898デフォルトの名無しさん
2011/08/28(日) 17:34:41.050899デフォルトの名無しさん
2011/08/28(日) 17:44:54.810900デフォルトの名無しさん
2011/08/28(日) 19:05:18.65同期がんばんなきゃいけないようにするのやめてくれませんか
0901デフォルトの名無しさん
2011/08/28(日) 19:35:57.27それはお前の低い技術力自慢か?w
0902デフォルトの名無しさん
2011/08/28(日) 19:40:31.290903デフォルトの名無しさん
2011/08/28(日) 21:11:08.87とはいってもGUIのそれに比べれば。
0904デフォルトの名無しさん
2011/09/08(木) 09:54:06.080905デフォルトの名無しさん
2011/09/09(金) 03:00:34.84読みやすいコードと、馬鹿にでも理解できるコードは別物だから
0906デフォルトの名無しさん
2011/09/09(金) 08:56:14.840907デフォルトの名無しさん
2011/09/09(金) 17:39:37.470908デフォルトの名無しさん
2011/09/09(金) 23:42:34.90格闘ゲームへったくそなのに
玄人向けのキャラ使ってぼこぼこにされてるようなやつじゃね
プロマネになってデスマ繰り返すまでわかんないんですかね
なれねーだろうけどなぁ
0909デフォルトの名無しさん
2011/09/10(土) 01:16:23.550910デフォルトの名無しさん
2011/09/10(土) 02:09:55.62多分ある程度の規模に達したら人間には扱えない代物になる
0911デフォルトの名無しさん
2011/09/10(土) 09:23:19.660912uy
2011/09/19(月) 07:39:09.13>>910
その理由は、「使わなくていい」からだよ
よく、2P対戦のゲームをマルチスレッドで作ろうとするバカいるけど
ゲームなんだからタスクシステムは最低1個はすでに作ってあるはずだろうに
完璧なソースコードではそのひとつのタスクシステムを木構造にするから
マルチスレッドで悩むことはまずはない マルチスレッドを作る事もまずない
2CPU以上の環境で
速度が必要な場面でのみ、マルチスレッドにすればいい
ようはひとつのマルチスレッド = ひとつの木構造のタスクシステム
マルチスレッドの別タスクのほうも、木構造になっていて、スレッド内にさらに内部にいくつものタスクを動かす
基本的にそこまでシビアな同期のいらない処理だけをマルチスレッドにするんだよwww 同期必要になるようなマルチスレッド作ってる奴は
技術力の足りないバカだ
エフェクトや、メニュー開く、閉じるや、サウンド関係
もしプレイヤーキャラと、敵キャラをマルチスレッドで別スレッドにしてるなら、専門学校からやり直したほうがいい わかったか?ゴミ
0913デフォルトの名無しさん
2011/09/19(月) 09:50:05.710914デフォルトの名無しさん
2011/09/19(月) 09:58:07.300915デフォルトの名無しさん
2011/09/19(月) 10:01:19.680916デフォルトの名無しさん
2011/09/19(月) 10:08:54.41なんか講義のまとめみたいなのが簡単に引っかかる
0917デフォルトの名無しさん
2011/09/22(木) 22:38:48.97使える奴を見つけるのが非常に大変だった
0918デフォルトの名無しさん
2011/09/22(木) 23:16:48.060919デフォルトの名無しさん
2011/10/03(月) 08:09:45.92だれか知りませんか?
後、新しい本でもいいです。
0920デフォルトの名無しさん
2011/10/09(日) 10:16:53.05それだけじゃいくら何でも分かんねーだろw
0921デフォルトの名無しさん
2011/12/12(月) 03:10:25.450922デフォルトの名無しさん
2011/12/12(月) 23:52:18.530923デフォルトの名無しさん
2011/12/12(月) 23:57:38.630924デフォルトの名無しさん
2011/12/13(火) 00:57:39.690925デフォルトの名無しさん
2011/12/17(土) 23:57:09.35現在、多くのプログラマ(素人)がウェブアプリケーションというものがベストな正しい方向だと勘違いしている。
ソフトウェアの作るにおいてそのアプリケーションに応じた状態遷移を実装するというのは基本中の基本である。
その点においてウエブブラウザというある状態遷移が実装されているアプリケーションの上に
また別のアプリケーションを実装するのは論外である。
そこまでするなら普通にアプリケーションを実装してダウンロードして使ってもらえばいいのである。
ウェブアプリケーションとは虚構にしか他ならない。
ウェブアプリケーションを作ろうとしているあなた。
今すぐ普通のアプリケーションとし設計し始めてはいかがだろう。
そうすればきっと後悔しないですむ。
HTMLやHTTPを悪者にはしていない。
TCP/IPができあがり、その応用として、ファイルを送ったりするようになった。
ファイルの中身のテキストにデータ構造をもたせ、それはつまりツリー構造なわけだが
その実装としてのハイパーテキスト、つまりHTMLという送る側と送られる側で決め事(プロトコル)
をつくり、画像や音楽など表現の幅を広げることは当然の成り行きだっただろう。
そして、その送る側としてのHTMLファイルサーバ、つまりWebサーバ、送られる側としてのプロトコルの解釈・表示系としての
ブラウザというアプリケーション。
ここまではいい。
だが、そこから先が素人の発想というか、いそがばまわれを忘れた者の愚かな発想。
つまりブラウザ上で、アプリケーションを動かすという発想なのである。
ブラウザというのは、おくられてきたステートレスな通信内容の一瞬の表示手段でしかない。
つまりアプリケーションのためのひとつのパーツなのである。
Windowsでいえば、コントロールのひとつ。(実際WebBrowserというコントロールがある。)
JavaならWebClietnだ(これは、ブラウザではないが。)。
包含関係が逆なのである。
ブラウザ上にアプリケーションを作るのは愚かなブームである。
0926デフォルトの名無しさん
2011/12/19(月) 18:48:28.52ウェブページの保存ダイアログが出るのはよくある。
0927デフォルトの名無しさん
2011/12/19(月) 21:11:00.18とか悪い冗談としか思えない
0929デフォルトの名無しさん
2011/12/26(月) 07:29:02.35Chromeで見れるんでよろしく状態のほうが、ランタイムやら.NETやらJAVAのしかるべきバージョン入れてパッチもちゃんと当てといてねとか客に言うより単純
0930デフォルトの名無しさん
2011/12/29(木) 21:57:14.80A)スタートボタン、ストップボタンをそれぞれ用意する、押したボタンをへこませる
B)ボタンをひとつだけ用意してラベルや色を差し替える
C)その他
0931デフォルトの名無しさん
2011/12/30(金) 01:25:12.78スタートさせる処理の内容による。
0932デフォルトの名無しさん
2011/12/31(土) 08:45:21.73どうもありがとうございますm(_ _)m
0933デフォルトの名無しさん
2011/12/31(土) 13:15:33.87MVC アーキテクチャでアプリを構築したい
Doc-View でもいいが、要はモデル部分とその他をしっかり分けたい
しかし、例えばテキストエディタを作ろうとして
Win32APIやその他のライブラリにある一般的なテキストコントロールを使うと、
View 側に既にテキスト(ドキュメント)が全て記録されてしまっている
(テキストコントロールのプロパティや Get 何たら関数で取得できる)
一般的じゃなくても、リッチテキストコントロールとか、
スタイルテキストコントロールとか呼ばれるものでも状況は同じ
スタイルを決定するタグと一緒に生のテキストも全て View 側に記録されている
それら View 側に記録されているテキストを
Model 側にコピーして持つのも冗長でメモリの無駄に感じる
かといって、他のドキュメント(例えばファイル名など)はModel側で持ち、
一方でテキストそのものはView側で持つというのも MVC から外れている
こういう場合、どうするのが良いの?
0934デフォルトの名無しさん
2011/12/31(土) 13:49:02.63>それら View 側に記録されているテキストを
>Model 側にコピーして持つのも冗長でメモリの無駄に感じる
まず冗長さやメモリ効率については、(今時なら)富豪主義で考えていいんじゃないかと思う
次にコピーの方向性については、古典的なMVCパラダイムでは逆じゃないのかな?
[Modelの役目]
数百数千行に及ぶかもしれないテキストの実体を持つ
[Viewの役目]
Modelが持つ実体の一部分を表示可能領域で切り取って(コピーして)表示する
[Controllerの役目]
キー/マウス等の入力を扱い、入力イベントに応じてModelの値(=テキスト実体)を更新する
結果としてModelに依存したViewの表示内容が更新される(GoF本で言うObserverパターン)
以下を参照
・使わないと損をするModel-View-Controller
http://aokilab.kyoto-su.ac.jp/documents/MVC/page1.html
0935デフォルトの名無しさん
2011/12/31(土) 14:12:25.65>>934で書いたのは、(Smalltalkによる)古典的なMVCパラダイムの話だった
今時のGUIツールキットは、(>>933でも書かれているように)ViewとControllerが一体化した
M-VCパラダイム(あるいはDocument-Viewパラダイム)が主流
この場合、Viewが持つ(更新された)部分テキスト実体をModelへ逆コピーすることになる
ここでの考えどころは「(1) 逆コピーのタイミング」および「(2) 逆コピーの範囲」の二点
単純な実装であれば、(1) については全てのイベントで逆コピーを実行し、
(2) については部分テキスト実体の全体を逆コピーすることになる
これを改良するなら、(1a) 部分テキスト実体が更新されたタイミング、あるいは
(1b) タイマーによる定期的なタイミング、(1c) (1a)と(1b)の組合せ、等が考えられるだろう
そして(2)についても、(2a) 変更された部分テキスト実体の断片のみを逆コピー、等が考えられる
0936デフォルトの名無しさん
2011/12/31(土) 14:23:33.15全文がテキストコントロールでいじられてるってのはその特殊な場合というだけであって、無駄だということを考えない限りはいいんだと思う。
あくまでもModelはModel的な位置づけで扱って、ViewControllerはそのビューに閉じたことだけを考慮するようにすると。
0937デフォルトの名無しさん
2011/12/31(土) 14:43:58.71> まず冗長さやメモリ効率については、(今時なら)富豪主義で考えていいんじゃないかと思う
メモリ効率については富豪主義で考えるとして、
冗長さは同期という余計な手間が入るから、ちょっと気持ち悪かったが、
もう少し楽観的に考えても良いんだね
> 次にコピーの方向性については、古典的なMVCパラダイムでは逆じゃないのかな?
おっしゃる通り
言い方が悪かった
コピーする方向云々の前に、そもそも情報がダブってしまう事を気にしていた
しかしなるほど、情報がダブることにはもう目をつむって、
View(Control)側から Model 側へコピーする(同期を取る)事を前提に
「いつ」「なにを」コピーするのかを考えるのか
>>936
テキストコントロールが、カーソルがある周辺や
表示されている領域だけのテキストをバッファとして持っているなら分かるが、
何百行もあるテキストの全てをバッファに持っている事が気になっていたんだ
お二人ともありがと、参考になった
ところで、この辺りの今時な GUI フレームワークを作るのに
参考になりそうな書籍やサイトは無いだろうか
(自分で今時のをググって探すと、どうも Web アプリにしかぶち当たらない)
0938デフォルトの名無しさん
2011/12/31(土) 16:35:50.710939デフォルトの名無しさん
2011/12/31(土) 19:35:25.16おっさんが趣味でやってんのに周回遅れもクソもあるか
例えばゲームをちょっとした趣味にしている人が
今ドラクエ2を初めてプレイして、周回遅れって言うのか?
まぁ皆が遙か昔に通り過ぎた所であることは承知している
0940デフォルトの名無しさん
2011/12/31(土) 22:58:00.530941デフォルトの名無しさん
2012/01/02(月) 08:38:06.24>テキストコントロールがドキュメントの一部の文字列などの編集などに使われるんだったら、
静岡県人?
0942デフォルトの名無しさん
2012/01/02(月) 13:56:01.920943デフォルトの名無しさん
2012/04/20(金) 16:03:05.74http://code.google.com/p/pysta/
このようなものを見つけました
そもそもプログラミング初心者の上英語もちんぷんかんぷんで何がなんだかなのですが
これはpythonのGUIをvistaっぽくする何かってことでいいんでしょうか?
もしそうであった場合、こういったデータの使い方は学習サイトのどういう項目で勉強すれば良いのかまでご教示して下されば幸いです
0944デフォルトの名無しさん
2012/04/20(金) 17:07:00.02pytonはよく知らんけど、フリーでマルチプラットフォームなGUIライブラリはgtk、tk、wxWedgetとかあって、
この3つは大抵の言語に移植されるから、この辺を調べるといいと思う。
pytonのライブラリ名だと、PyGTK、Tkinter、wxPythonかな。
まぁ、python特有の話はpythonスレで聞いた方が早いと思うよ。
0945デフォルトの名無しさん
2012/07/31(火) 15:27:33.160946デフォルトの名無しさん
2012/08/05(日) 18:05:03.180947デフォルトの名無しさん
2012/09/27(木) 21:37:02.980948デフォルトの名無しさん
2012/09/27(木) 21:43:55.48なぜ選択するのが難しいのだ?
適当に(サイコロでも転がして)決めて、
そのライブラリを使えばよくないか?
使ってて気に入らなければ別のものに変えればいい
0949デフォルトの名無しさん
2012/09/28(金) 00:54:54.250950デフォルトの名無しさん
2012/09/28(金) 07:04:25.630951デフォルトの名無しさん
2012/09/28(金) 08:16:10.980952デフォルトの名無しさん
2012/10/06(土) 17:58:14.590953デフォルトの名無しさん
2012/10/06(土) 18:15:21.20終わり良ければ全て良し
0954デフォルトの名無しさん
2012/10/06(土) 19:26:22.520955デフォルトの名無しさん
2012/10/06(土) 19:53:15.460956デフォルトの名無しさん
2012/10/06(土) 19:54:10.710957デフォルトの名無しさん
2012/10/06(土) 19:55:52.120958デフォルトの名無しさん
2012/10/06(土) 20:52:38.62商業用途でならトレンドにあったクロスプラットフォームなもの
多分、qt5かhtml5かnative clientのドレかが正解。
牧歌的に枯れたものが使いたいならxlib,wxWidgets,SDL,gtkあたり
0959デフォルトの名無しさん
2012/10/07(日) 06:48:04.650960デフォルトの名無しさん
2012/10/08(月) 15:40:03.670961デフォルトの名無しさん
2012/10/12(金) 00:40:17.58サンクスコ
0962デフォルトの名無しさん
2012/10/23(火) 23:50:43.550963デフォルトの名無しさん
2012/10/24(水) 10:42:02.270964デフォルトの名無しさん
2012/10/24(水) 13:21:27.11逆から読むとウハウノドッバになるんだけどな。
お前どう思うんだよコレ?
というわけでMotif一択だろ。
0965デフォルトの名無しさん
2012/10/24(水) 19:07:25.260966デフォルトの名無しさん
2012/10/24(水) 20:19:06.050967デフォルトの名無しさん
2012/10/24(水) 20:24:43.67qtはバッドノウハウ一杯
一体どうすれば
0968デフォルトの名無しさん
2012/10/24(水) 20:35:40.300969デフォルトの名無しさん
2012/10/24(水) 20:37:56.330970デフォルトの名無しさん
2012/10/24(水) 21:16:20.02ユーザーも圧倒的に少ないが
0971デフォルトの名無しさん
2012/10/24(水) 21:36:41.79Qtは企業とかで使われるくらい実績がある、って謳われてるけど、
逆に企業くらいエネルギーを注がないと使えないってことかw
0972デフォルトの名無しさん
2012/10/24(水) 22:48:11.940973デフォルトの名無しさん
2012/10/25(木) 12:34:59.19にみえた
0974デフォルトの名無しさん
2012/10/25(木) 12:36:20.600975デフォルトの名無しさん
2012/10/25(木) 16:35:39.50Qtに対抗できる?
0976デフォルトの名無しさん
2012/10/25(木) 16:48:52.230977デフォルトの名無しさん
2012/10/25(木) 19:31:39.00どういう状態になってたら「対抗できてる」と言ってもいいの?
0978デフォルトの名無しさん
2012/10/25(木) 21:15:14.60Qt vs wxWidgets
だな。
C#を許容するならWPF一択か。
0979デフォルトの名無しさん
2012/10/25(木) 22:35:22.41異なるプラットフォームへの移植性とか、普及率とかじゃね?
あるいはライブラリの充実度とか。
0980デフォルトの名無しさん
2012/10/25(木) 22:46:23.75対象OSはWindowsだけ考えればいい場合は
QtとwxWidgetsのどっちがイイの??
0981デフォルトの名無しさん
2012/10/25(木) 23:50:43.280982デフォルトの名無しさん
2012/10/26(金) 00:02:50.590983デフォルトの名無しさん
2012/10/26(金) 00:10:30.520984デフォルトの名無しさん
2012/10/26(金) 07:11:52.14なんか昔のは、ATOKの変換中のパネルなんかがうまく表示されなかった記憶があるが
0985デフォルトの名無しさん
2012/10/26(金) 09:27:35.890986デフォルトの名無しさん
2012/10/26(金) 13:04:59.350987デフォルトの名無しさん
2012/10/26(金) 18:41:28.450988デフォルトの名無しさん
2012/10/27(土) 05:01:29.55国産だけど、Wide Studioって実績あるの?gtkの方が枯れてねぇ?
てか、クロスプラットフォームなGUIライブラリって、
実際のところ選択肢がawt/swingぐらいしかなくね?
0989デフォルトの名無しさん
2012/10/27(土) 14:34:14.470990片山博文MZボット ◆0lBZNi.Q7evd
2012/10/27(土) 14:50:33.93「平成15年度未踏開発ソフトウェア創造事業」で採択された。
http://www.ipa.go.jp/jinzai/esp/15mito/gaiyo/15-1.html
T-Engineで動作することと、GUIで開発できることがメリット。
でもレイアウトグリッドがないとか、OOPじゃないことなど、多少不便。
0991デフォルトの名無しさん
2012/10/27(土) 14:50:52.90gtkはwindowsで不安定すぎる。wide studioは知らん。
awt/swingはいいね。
俺はAIRとかtcl/tkの実績が気になる。
0992片山博文MZボット ◆0lBZNi.Q7evd
2012/10/27(土) 16:11:23.930993デフォルトの名無しさん
2012/10/27(土) 17:33:34.63元は荒らしスレだし>>1見ればわかる。
0994片山博文MZボット ◆0lBZNi.Q7evd
2012/10/27(土) 18:39:56.260995片山博文MZボット ◆0lBZNi.Q7evd
2012/10/27(土) 18:59:25.180996デフォルトの名無しさん
2012/10/27(土) 19:28:46.810997デフォルトの名無しさん
2012/10/27(土) 19:58:56.070998立てたよ(^o^)
2012/10/27(土) 20:22:45.42http://toro.2ch.net/test/read.cgi/tech/1351336814/
0999デフォルトの名無しさん
2012/10/27(土) 20:49:10.971000デフォルトの名無しさん
2012/10/27(土) 20:54:26.4910011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。