GUIがむずかしすぎる
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2009/10/18(日) 17:54:43GUIは私の知能じゃむり
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動的に型タグを調べなおしたりするから静的型の意味が無い。
イベントドリブンに拘るのはそういう事情もあるんだろうな。
■ このスレッドは過去ログ倉庫に格納されています