凪瀬 Blog
Programming SHOT BAR

目次

Blog 利用状況
  • 投稿数 - 260
  • 記事 - 0
  • コメント - 46956
  • トラックバック - 192
ニュース
広告
  • Java開発者募集中
  • 経歴不問
  • 腕に自信のある方
  • 富山市内
  • (株)凪瀬アーキテクツ
アクセサリ
  • あわせて読みたい
凪瀬悠輝(なぎせ ゆうき)
  • Java技術者
  • お茶好き。カクテル好き。
  • 所属は(株)凪瀬アーキテクツ
  • Twitter:@nagise

書庫

日記カテゴリ

 

みねこあさんのところで挙がっていた、 静的オブジェクト指向と動的オブジェクト指向の軽さについての話題から。

Javaは経済的事情をうまく捉えて普及した

プログラミングの効率と経済で書いているとおり、大量生産フェーズにおいては 「一部のプロフェッショナルと多数の凡庸なプログラマという取り合わせ」で開発することで その費用を抑えるということが行われます。

こうすることで、一定の品質のものを低価格で提供できるわけですが、現行のJavaEEでのWebシステムと いうものは正にこのような体制で製造されているということも、多くの人が認めるところでしょう。 これはバベッジ的な分業効果 *1 というもので、とりたてて目新しい話題ではないですが、 JavaによるWebシステムが流行ったのは、こうした経済的側面からして都合がよかったという点が大きいと思います。

要するにJavaというのは登場した1996年当時の肥大化しつつあるシステムを いかに経済的に製造するかという点で答えを与えた言語であり、 こうした経済的視点がJavaの普及の原動力のひとつであったと言えましょう。 事実、MicroSoftはJavaの改造版を作りWindows開発に利用しようとしましたし(J++ 1997年)、 ライセンス上のトラブルがなければC#(2002年)を作る必要はなく、J++がその役割を担っていたことでしょう *2

Java以前からオブジェクト指向が存在したことは周知の通りだし *3、 Javaによってオブジェクト指向が広く使われることになったのもまた周知の通りです。 しかし、なぜ、Javaがオブジェクト指向を普及できたのか。 私が思うに、javaのオブジェクト指向がクラスの設計者と利用者の間のスキルの差を バベッジ的分業効果で肯定したからではないでしょうか。

というのは、Javaの静的オブジェクト指向というのは、クラスを設計する側の立場に立つと 非常に苦労するものなのですが、クラスを使う側には非常に楽なものなのです。 Java界隈で仕事をする会社の新人教育は、この「クラスを使うことができる」レベルまで 到達出ていればよいとされていると言って過言ではないでしょう。

この、苦労をクラスの設計者に一身に背負わせたという点で、Javaの静的オブジェクト指向は 多数の凡庸な技術者を用いて開発を仕切らなければならないアーキテクト(先に言った設計者)の支持を得、 スペシャリストが作り上げたクラス群を使うだけという凡庸なプログラマ(先に言った利用者)にも また支持されたのです。

JavaやC#といった静的型付けのオブジェクト指向言語はまさにこのような環境下で多く活用されていますね。

初級者と中級者の間の壁

しかし、これはスペシャリストである設計者と凡庸な実装者の間に厚い厚い壁を作ることとなりました。 Javaはコーディングができるという初級者と、プログラミングができるという中級者の間に大きな壁があります *4。 たどたどしいながらも、条件分岐とループを操り業務ロジックを実装するというレベルへは容易に到達できるが そこから思った通りにプログラムを作れるまでの間が遠く、人がどんどん供給されてなお「人材」は 不足していると言われ続けるのは、この壁を越えて中級者となれる技術者の少なさを物語っているとも言えましょう。

多分、その初心者と中級者とのあいだの落差が、LLと呼ばれる言語、つまるところ動的オブジェクト指向言語では なだらかな斜面となっているのではないでしょうか。 それが、動的オブジェクト指向の「軽さ」のひとつではないでしょうか。 教育的な意味で、なだらかなステップアップが望めるのがLLではないでしょうか。

さて、Javaで言ったクラスを利用できる初級者とクラスを作れる中級者・上級者との間の壁ですが、 これは、クラスの使い手が楽をできる分の揺り戻しというか、反作用と言うか、そうした類のものです *5。 より使い手に優しいクラス設計にしようとすればするほど、クラスを作る段で苦労が増えるのです。 この初級者の苦労を中級者以上が代わりに背負うというシステムが、初級者と中級者の隔たりを大きくしている。

しかし、クラスというのは作るよりも使う方が回数が多いのが通常ですから、作る側に労力を持ってくるというのは 非常に合理的で、うまく設計されたクラスと言うのはその使用に際して間違えることができない *6。 ヒューマンエラーを機械的に排除した作りにすることができるのです。 これが、静的オブジェクト指向言語の何よりもの魅力なのです。

逆に動的オブジェクト指向言語によるプログラミングは、初級者の苦労分まで中級者以上が背負うという責務が軽い。 これが、動的オブジェクト指向のもうひとつの「軽さ」ではないでしょうか。 他人の荷物を背負って山に登る必要がない。持つのは自分の手荷物だけでいいのです。

反面、動的オブジェクト指向言語のクラスライブラリの利用は静的オブジェクト指向言語でのそれに比べ 重いように私は感じるのです *7。 自分で作ったクラスを自分で使う分には、両方とも自分ですからその重さはあまり気にならないかもしれない。 しかし、初級者を多数率いて行うような規模感の開発ではその重さが強く出てくるように思います。

それぞれの適所とは

つまり、LLというのは上級者であるスペシャリストが、多数の初心者を率いて巨大なシステムを作る ということを行うには向かないが、中級者以上が集まったチームでは非常に手軽にサービスインまで こぎつけることができるのではないでしょうか。 ネットで話題に上がるような面白いサービスというのは正にこうしたチームによって作られていると思います。 手早くプロトタイピングし、その使い心地を評価するのに非常に向いている。

逆にJavaのような静的オブジェクト指向といのは初心者の軍を率いて戦うには向いていると思います。 業務用システムのような、大量の仕様を人海戦術で捌かなければならない状況によくマッチする。 ただし、これは軍を率いる将軍の采配が非常に重要であることをも意味しています。 上が荷物を持ってくれるからこそ一兵卒は軽い荷物で行軍できる。 上が荷物の持ち方を知らないなら、兵は生きて帰れぬ戦線で戦わされることになる。

この責任の重さがJavaのオブジェクト設計の重さです。 しかし逆に、そこでさえうまくやれば、全軍を勝利に導けるという意味でもある。 Javaの静的オブジェクト指向というのは将軍の力でもって、初心者の大隊を常勝させるための技術なのだと思うのです。 私が隊長となって、動的オブジェクト指向言語で中級者による小隊を率いるならば、 まだ戦果をあげることもできるかもしれませんが、 初心者の大隊を率いて戦えと言われたら、常勝する自信がない。

だからこそ、一般には動的なオブジェクト指向言語での開発は小規模で生産性が高く、 静的なオブジェクト指向言語は大規模で生産性が高いのだと評価されるのでしょう。 この結論は個々の開発者が置かれた環境によって生産性が高くも低くもなることを意味していて、 どちらも一長一短あって、静動どちらかが絶対的に生産性が高いというわけではない

制約の多さは管理する側には大きなメリット

静的言語の制約の多さは、制約される側の立場、つまるところ淡々と実装作業をする側としては わずらわしいものであると思うかもしれません。 それらを統括して管理しなければならない側に回ると、これほど統治に便利なものはない。 Java開発者では設計の自由を手にできている開発者は少ないと思います。 日々、降りてくる仕様書を淡々とコードにし、テストするような人員が大量動員されている。 彼らには多くの能力は求められません。つまり、簡単な重労働なのです *8

Javaでの開発を生業として、設計の自由を手に入れて楽しい開発をしたいのであれば、 どうにかして初級者の荷物を持つ力を手にしないといけない *9

静的オブジェクト指向言語の軽さ

静的オブジェクト指向での設計に慣れた者は、たとえ一人でプログラミングするとしても、 クラスを使う側というのは初心者であろうと失敗することができないという設計にしてしまう。 これは、神経質すぎるように思うかもしれません。 しかし、この神経質とも思えるクラス設計が、クラスを使う側に自身が回った時に幸せへと変わるのです。 つまり、自分自身さえも、クラスを使う側に回ったならば初心者のレベルまで脳みそを手抜きすることが できるというわけです。これが静的オブジェクト指向でのプログラミングの軽さなのです *10

静的オブジェクト指向の理想は、コンパイルが通った時点でバグがなくなっていることです *11。 その強い型付けを最大限に生かし、間違えることができない型設計をすることが、後の生産性を高めます。 だから、クラスの設計が終わってしまえば、そのクラスについて忘れることが許される。 強い型システムがクラスの使い方を導出してくれます。導かれるままに使うだけでいい。 私がJavaで大量にロジックを書くことができる理由は、効率よく忘れることが許されているからに他なりません。 俯瞰視点で設計するときは細部を見ることはないし、細部を作るときには全体を見ることはない。

一度に大量にプログラミングすると自分でプログラムしたことさえ忘れてしまうことがあるぐらいに *12、 型を境目とする「契約に基づくプログラミング」は思考を分断することができるのです。 型が契約を分かりやすくし、保証をしてくれる。 契約は確かに面倒臭い。ダックタイピングは慣行に基づき契約書なしでの契約締結で楽なのですが、 逆にそれゆえに契約そのものが曖昧であやふやな感じが私は嫌なのです。

注釈

*1 チャールズ・バベッジ(Charles Babbage、1791 - 1871)

*2 J++で作られたMFCのアプリケーションはMS製のJavaVMでしか動作しない。 これはJavaの世界を二つに分断することになるとJavaのコミュニティは考え反発しました。 Javaのライセンスを持つSunとの訴訟となったが、別にSunだけが反発したわけではありません。

*3 JavaはSmalltalkやC++のオブジェクト指向の機構を参考にしています。

*4 目的を適える為の方法論を考えられる/られないという区切りでプログラミング/コーディングと 用語を使い分けています。自分のやりたいことを自分で考えてコードにできるようになって 初めてプログラミングと言えると思います。

*5 誰かの楽のためには誰かが苦労をすることになる…

*6 ただし、中級者の頃には、そのクラスの使用頻度・重要性に比べて凝りすぎたオーバースペックな 設計にしてしまいがち。でも、そうやって工夫を自分の手でやってみて設計を覚えていくのだから 教育的な視点では暖かく見守りつつ、バランス感覚を身につけるように諭さなければなりません。

*7 デバッグが困難なバグのひとつに、異常データがどこからともなく紛れ込むというのがあります。 ソースの流れを追うのに比べ、データの流れを追うのは難しい。 ( Objectよ、汝の出自を示せを参照) 動的オブジェクト指向言語で私が一番不安になるのは、オブジェクトの動的さゆえに、この手のバグに 遭遇するのではないかという不安です。

*8 ニコニコ動画で知られる、ドワンゴが2ちゃんねるで求人をした際のフレーズ。 ITmediaの記事を参照のこと

*9 設計をする自由を手に入れるとIT業界は俄然楽しくなります。技術職の本懐でしょう。

*10 情けは人の為ならず。使いやすいクラス設計を呼吸をするように無意識に出来るところまで プログラミング能力を鍛えると静的オブジェクト指向の方が楽になると私は思います。

*11 実際、業務ロジックなどの単純なものであれば1000行程度なら、2~3時間ぐらいでがーっと書いて コンパイルを通した後に2割ぐらいは1発動作します。 動作させて若干の修正というのがほとんどで、1、2回の確認でプログラミングが完了。 ただし複雑なロジックは流石にそうもいかず、JUnitのテストなどを使いつつ動かしながら完成させます。

*12 小人さんとの出会い方を参照

追記

トラックバックできないとの問い合わせがありましたので、その点について追記しておきます。

わんくまblog全体に言えることですが、トラックバックが分かりにくくなっているかと思います。 (自分も昔、わんくまblogにトラックバックを送ろうとして失敗したことがあります。)

わんくまでは.Textというblogツールを使っているようで、挙動は.Textの使用に準じます。 また、スパムが多いらしく、厳しめにスパムキーワードを設定しているようで、リンクを書けないなど不便をおかけしています。 管理人に代わりお詫び申し上げます。

2ch 求人就職者の実状

投稿日時 : 2008年5月10日 13:02
コメント
  • # re: 静的オブジェクト指向は設計者が苦労を背負込むシステム
    凪瀬
    Posted @ 2008/05/12 14:17
    沢山読んで頂いているようでありがたい限りです。
    http://b.hatena.ne.jp/entry/http://blogs.wankuma.com/nagise/archive/2008/05/10/137150.aspx

    本稿では
    「目的を適える為の方法論を考えられる/られないという区切りでプログラミング/コーディングと用語を使い分けています」

    そして、初級者/中級者という用語は、コーディングができる/プログラミングができると対応させて書いています。

    それは少し違うんじゃないかな - JavaBlack氏
    http://d.hatena.ne.jp/JavaBlack/20080511/p1
    では「その壁はJavaが作ったものじゃなく,昔からあったものだ」と指摘していますが、
    当然私もその壁は昔からあったと考えていますが、Javaではその壁が厚くなったと本稿で主張するものです。

    また、「素人集団を率いた時点で敗北は決まっている」と言うのは真ではありません。
    「プログラミング」ができる、つまるところ中級者以上だけを率いて行われる大規模な業務システムの案件など皆無です。
    そして、それをどうにかこうにか勝たせるのがアーキテクトに求められる役割です。
    からくりは単純で、初級者にはプログラミングをさせない。コーディングとプログラミングを分断してこれにあたっているわけです。
    これは本稿の序章で主張している通りです。

    vraven氏にも
    http://d.hatena.ne.jp/vraven/20080511/1210513461
    にて同様の指摘を頂いていますが、「炎上させるクラスタ」の部分でコーディングしかできない初級者にプログラミングをさせているところで方法論が違いますね。
    「炎上させるクラスタ」に所属する人に仕事をさせないわけにはいきませんから、どうにかそこにあてがうことのできる仕事を作らないといけない。
    アーキテクトはあらゆる技能を駆使して、コーディングとプログラミングを分離する工夫をしてきました。

    本稿での主張は、その分離の道具の一つとして(全てではありません)静的OOPというのは便利なのだというものです。
  • # re: 静的オブジェクト指向は設計者が苦労を背負込むシステム
    hisama2
    Posted @ 2008/05/16 1:36
     Java はむしろ、その誕生以前の言語と比較すると、「中級者の壁を引き下げた」ことのほうが普及の要因ではないでしょうか?
     Java が普及する前は C++ で業務システム向けフレームワークを書いていましたが、「初心者でも業務プログラムを書くことができるフレームワーク」を作成する難易度は、Java になって格段に引き下がりました

    ・言語仕様が Java のほうがシンプル
    ・「.h」 ファイルがない。業務プログラム内の #include 順をルール化する必要がない
    ・ガベージコレクションがあり、メモリ管理から解放された
    ・標準 API が豊富

     総論としての静的言語の便利さについては、その通りだと思います
  • # re: 静的オブジェクト指向は設計者が苦労を背負込むシステム
    凪瀬
    Posted @ 2008/05/16 2:02
    確かにC++に比べればJavaは初級者にも中級者にも簡単になったのは事実でしょう。
    そもそもJavaが開発されるにあたって、C++よりも生産性の良い、つまるところプログラマに優しいものになるようにという目標が掲げられたわけで、狙い通りとも言えます。

    C++は比較的静的型付けが強い部類ですから、そもそもがC++で初級者の苦労を中級者が肩代わりする土台が出来ていたと見るのが妥当かもしれません。
    その上で、Javaにより全体的な難易度の下落がオブジェクト指向を爆発的に普及させた要因と捉えるとよいのかもしれませんね。
  • # Webシステムの次は
    凪瀬 Blog
    Posted @ 2008/05/21 1:07
    Webシステムの次は
  • # オブジェクト指向のコードが追いにくい理由
    凪瀬 Blog
    Posted @ 2008/06/22 14:30
    オブジェクト指向のコードが追いにくい理由
  • # Javaにはわくわくするところが沢山ある
    凪瀬 Blog
    Posted @ 2008/06/24 9:01
    Javaにはわくわくするところが沢山ある
  • # re: 静的オブジェクト指向は設計者が苦労を背負込むシステム
    伝道師
    Posted @ 2009/04/25 21:40
    パターンウィーバーSysML対応プレビュー版」リリース開始!
    http://pw.tech-arts.co.jp/news/index.html#pwnews200904201820
  • # http://blogs.wankuma.com/nagise/archive/2008/05/10/137150.aspx?&
    http://blogs.wankuma.com/nagise/archive/2008/05/10
    Posted @ 2011/10/08 20:30
    http://blogs.wankuma.com/nagise/archive/2008/05/10/137150.aspx?&
  • # 静的オブジェクト指向は設計者が苦労を背負込むシステム
    Pingback/TrackBack
    Posted @ 2012/01/24 23:26
    静的オブジェクト指向は設計者が苦労を背負込むシステム
  • # In Turkey, for example, it is several times more expensive than mine. Finding discount car rental services might be regarding top of the to-do feature. Eighth, realise what the rental contract really means.
    In Turkey, for example, it is several times more e
    Posted @ 2018/12/01 8:05
    In Turkey, for example, it is several times more expensive than mine.
    Finding discount car rental services might be regarding top of
    the to-do feature. Eighth, realise what the rental contract really means.
  • # It encourages us to seek out what is true, lovely, just, and also good report. We want them to be safe, and we know that children tend to be more energetic. It was not worth during it made me feel.
    It encourages us to seek out what is true, lovely,
    Posted @ 2018/12/01 10:05
    It encourages us to seek out what is true, lovely, just, and also good report.
    We want them to be safe, and we know that children tend to be more energetic.

    It was not worth during it made me feel.
  • # Popular blogs are popular since provide value to their readers, ie, solutions to problems. One with the most popular social networking sites is MySpace. They will return for another enjoyable discover.
    Popular blogs are popular since provide value to t
    Posted @ 2019/01/24 19:32
    Popular blogs are popular since provide value to their readers, ie, solutions to problems.
    One with the most popular social networking sites is MySpace.
    They will return for another enjoyable discover.
  • # Popular blogs are popular since provide value to their readers, ie, solutions to problems. One with the most popular social networking sites is MySpace. They will return for another enjoyable discover.
    Popular blogs are popular since provide value to t
    Posted @ 2019/01/24 19:32
    Popular blogs are popular since provide value to their readers, ie, solutions to problems.
    One with the most popular social networking sites is MySpace.
    They will return for another enjoyable discover.
  • # Popular blogs are popular since provide value to their readers, ie, solutions to problems. One with the most popular social networking sites is MySpace. They will return for another enjoyable discover.
    Popular blogs are popular since provide value to t
    Posted @ 2019/01/24 19:34
    Popular blogs are popular since provide value to their readers, ie, solutions to problems.
    One with the most popular social networking sites is MySpace.
    They will return for another enjoyable discover.
  • # It's impressive that you are getting ideas from this post as well as from our dialogue made at this time.
    It's impressive that you are getting ideas from th
    Posted @ 2019/05/06 9:05
    It's impressive that you are getting ideas from this post as well as from our dialogue made at this time.
  • # Hey there great website! Does running a blog like this require a massive amount work? I've no expertise in coding but I was hoping to start my own blog soon. Anyhow, if you have any suggestions or techniques for new blog owners please share. I know this
    Hey there great website! Does running a blog like
    Posted @ 2019/05/14 9:17
    Hey there great website! Does running a blog like this require a
    massive amount work? I've no expertise in coding but I was hoping to start my own blog soon. Anyhow, if you have any
    suggestions or techniques for new blog owners
    please share. I know this is off subject however I simply
    needed to ask. Kudos!
  • # It's hard to find knowledgeable people on this topic, but you seem like you know what you're talking about! Thanks
    It's hard to find knowledgeable people on this top
    Posted @ 2019/06/17 23:34
    It's hard to find knowledgeable people on this topic, but
    you seem like you know what you're talking about! Thanks
  • # This is a topic that is close to my heart... Take care! Where are your contact details though?
    This is a topic that is close to my heart... Take
    Posted @ 2019/09/16 19:01
    This is a topic that is close to my heart... Take care!
    Where are your contact details though?
  • # This is the perfect site for everyone who wishes to understand this topic. You realize so much its almost hard to argue with you (not that I personally will need to…HaHa). You definitely put a fresh spin on a topic that's been discussed for many years.
    This is the perfect site for everyone who wishes t
    Posted @ 2021/07/12 21:12
    This is the perfect site for everyone who wishes to
    understand this topic. You realize so much its almost hard to argue with
    you (not that I personally will need to…HaHa).

    You definitely put a fresh spin on a topic that's been discussed for many years.
    Wonderful stuff, just great!
  • # Amazing! This blog looks exactly like my old one! It's on a completely different subject but it has pretty much the same page layout and design. Outstanding choice of colors!
    Amazing! This blog looks exactly like my old one!
    Posted @ 2021/08/24 21:55
    Amazing! This blog looks exactly like my old one!

    It's on a completely different subject but it has pretty much the same page layout and design. Outstanding choice of colors!
  • # Amazing! This blog looks exactly like my old one! It's on a completely different subject but it has pretty much the same page layout and design. Outstanding choice of colors!
    Amazing! This blog looks exactly like my old one!
    Posted @ 2021/08/24 21:56
    Amazing! This blog looks exactly like my old one!

    It's on a completely different subject but it has pretty much the same page layout and design. Outstanding choice of colors!
  • # Amazing! This blog looks exactly like my old one! It's on a completely different subject but it has pretty much the same page layout and design. Outstanding choice of colors!
    Amazing! This blog looks exactly like my old one!
    Posted @ 2021/08/24 21:57
    Amazing! This blog looks exactly like my old one!

    It's on a completely different subject but it has pretty much the same page layout and design. Outstanding choice of colors!
  • # Amazing! This blog looks exactly like my old one! It's on a completely different subject but it has pretty much the same page layout and design. Outstanding choice of colors!
    Amazing! This blog looks exactly like my old one!
    Posted @ 2021/08/24 21:58
    Amazing! This blog looks exactly like my old one!

    It's on a completely different subject but it has pretty much the same page layout and design. Outstanding choice of colors!
  • # What's up friends, pleasant post and good urging commented at this place, I am truly enjoying by these.
    What's up friends, pleasant post and good urging c
    Posted @ 2021/08/25 17:48
    What's up friends, pleasant post and good
    urging commented at this place, I am truly enjoying by these.
  • # Hmm is anyone else encountering problems with the images on this blog loading? I'm trying to find out if its a problem on my end or if it's the blog. Any responses would be greatly appreciated.
    Hmm is anyone else encountering problems with the
    Posted @ 2021/08/26 5:59
    Hmm is anyone else encountering problems with the images on this blog loading?
    I'm trying to find out if its a problem on my end or if it's the blog.
    Any responses would be greatly appreciated.
  • # Amazing! Its truly amazing paragraph, I have got much clear idea on the topic of from this post.
    Amazing! Its truly amazing paragraph, I have got m
    Posted @ 2021/08/30 2:55
    Amazing! Its truly amazing paragraph, I have got much clear idea on the topic of from this post.
  • # Amazing! Its truly amazing paragraph, I have got much clear idea on the topic of from this post.
    Amazing! Its truly amazing paragraph, I have got m
    Posted @ 2021/08/30 2:56
    Amazing! Its truly amazing paragraph, I have got much clear idea on the topic of from this post.
  • # Amazing! Its truly amazing paragraph, I have got much clear idea on the topic of from this post.
    Amazing! Its truly amazing paragraph, I have got m
    Posted @ 2021/08/30 2:57
    Amazing! Its truly amazing paragraph, I have got much clear idea on the topic of from this post.
  • # Amazing! Its truly amazing paragraph, I have got much clear idea on the topic of from this post.
    Amazing! Its truly amazing paragraph, I have got m
    Posted @ 2021/08/30 2:58
    Amazing! Its truly amazing paragraph, I have got much clear idea on the topic of from this post.
  • # A fascinating discussion is worth comment. I do think that you need to write more about this issue, it might not be a taboo matter but generally people don't discuss these subjects. To the next! Kind regards!!
    A fascinating discussion is worth comment. I do th
    Posted @ 2021/09/05 20:46
    A fascinating discussion is worth comment. I do think that you need to write more
    about this issue, it might not be a taboo matter but generally people don't discuss these
    subjects. To the next! Kind regards!!
  • # This website really has all of the information and facts I needed about this subject and didn't know who to ask. ps4 https://bit.ly/3nkdKIi ps4
    This website really has all of the information and
    Posted @ 2021/09/13 20:27
    This website really has all of the information and facts I
    needed about this subject and didn't know who to ask.
    ps4 https://bit.ly/3nkdKIi ps4
  • # This website really has all of the information and facts I needed about this subject and didn't know who to ask. ps4 https://bit.ly/3nkdKIi ps4
    This website really has all of the information and
    Posted @ 2021/09/13 20:28
    This website really has all of the information and facts I
    needed about this subject and didn't know who to ask.
    ps4 https://bit.ly/3nkdKIi ps4
  • # This website really has all of the information and facts I needed about this subject and didn't know who to ask. ps4 https://bit.ly/3nkdKIi ps4
    This website really has all of the information and
    Posted @ 2021/09/13 20:29
    This website really has all of the information and facts I
    needed about this subject and didn't know who to ask.
    ps4 https://bit.ly/3nkdKIi ps4
  • # This website really has all of the information and facts I needed about this subject and didn't know who to ask. ps4 https://bit.ly/3nkdKIi ps4
    This website really has all of the information and
    Posted @ 2021/09/13 20:30
    This website really has all of the information and facts I
    needed about this subject and didn't know who to ask.
    ps4 https://bit.ly/3nkdKIi ps4
  • # ivermectin 8 mg
    MarvinLic
    Posted @ 2021/09/28 12:59
    ivermectin 3mg pill https://stromectolfive.com/# buy ivermectin nz
  • # I'd like to find out more? I'd like to find out more details.
    I'd like to find out more? I'd like to find out mo
    Posted @ 2021/10/27 2:28
    I'd like to find out more? I'd like to find out more
    details.
  • # I'd like to find out more? I'd like to find out more details.
    I'd like to find out more? I'd like to find out mo
    Posted @ 2021/10/27 2:29
    I'd like to find out more? I'd like to find out more
    details.
  • # I'd like to find out more? I'd like to find out more details.
    I'd like to find out more? I'd like to find out mo
    Posted @ 2021/10/27 2:30
    I'd like to find out more? I'd like to find out more
    details.
  • # I'd like to find out more? I'd like to find out more details.
    I'd like to find out more? I'd like to find out mo
    Posted @ 2021/10/27 2:31
    I'd like to find out more? I'd like to find out more
    details.
  • # ivermectin pills canada
    DelbertBup
    Posted @ 2021/11/01 6:45
    where to buy ivermectin http://stromectolivermectin19.com/# ivermectin 6 mg tablets
    ivermectin 3 mg tabs
  • # cost of ivermectin 1% cream
    DelbertBup
    Posted @ 2021/11/03 5:14
    ivermectin usa price https://stromectolivermectin19.com/# ivermectin tablets order
    ivermectin 8000
  • # I'm not sure where you are getting your info, but great topic. I needs to spend some time learning more or understanding more. Thanks for wonderful info I was looking for this information for my mission.
    I'm not sure where you are getting your info, but
    Posted @ 2021/12/07 5:12
    I'm not sure where you are getting your info, but great topic.

    I needs to spend some time learning more or understanding more.
    Thanks for wonderful info I was looking for this information for my mission.
  • # sildenafil 20 mg tablet
    JamesDat
    Posted @ 2021/12/07 14:26
    https://viasild24.online/# sildenafil citrate tablets 100 mg
  • # bimatoprost generic
    Travislyday
    Posted @ 2021/12/12 11:21
    http://plaquenils.online/ hydroxychloroquine 300
  • # bimatoprost buy
    Travislyday
    Posted @ 2021/12/13 7:05
    http://stromectols.com/ ivermectin 5
  • # bimatoprost generic best price
    Travislyday
    Posted @ 2021/12/14 2:56
    http://plaquenils.online/ hydroxy-chloroquine
  • # bimatoprost buy online usa
    Travislyday
    Posted @ 2021/12/14 22:04
    https://plaquenils.com/ plaquenil generic brand
  • # oral ivermectin cost
    Eliastib
    Posted @ 2021/12/19 3:49
    jnodua https://stromectolr.com stromectol ivermectin tablets
  • # ivermectin 6mg dosage http://stromectolabc.com/
    ivermectin rx
    Busjdhj
    Posted @ 2022/02/08 9:42
    ivermectin 6mg dosage http://stromectolabc.com/
    ivermectin rx
  • # buy doxycycline online without prescription https://doxycyline1st.com/
    online doxycycline
    Doxycycline
    Posted @ 2022/02/26 8:33
    buy doxycycline online without prescription https://doxycyline1st.com/
    online doxycycline
  • # where to get doxycycline https://doxycyline1st.com/
    doxy
    Doxycycline
    Posted @ 2022/02/26 20:13
    where to get doxycycline https://doxycyline1st.com/
    doxy
  • # I could not refrain from commenting. Exceptionally well written!
    I could not refrain from commenting. Exceptionally
    Posted @ 2022/03/22 23:43
    I could not refrain from commenting. Exceptionally well written!
  • # Wow that was unusual. I just wrote an really long comment but after I clicked submit my comment didn't appear. Grrrr... well I'm not writing all that over again. Anyhow, just wanted to say superb blog!
    Wow that was unusual. I just wrote an really long
    Posted @ 2022/03/25 8:22
    Wow that was unusual. I just wrote an really long comment but after I clicked
    submit my comment didn't appear. Grrrr... well I'm not writing all that over again. Anyhow, just wanted to say
    superb blog!
  • # Wow that was unusual. I just wrote an really long comment but after I clicked submit my comment didn't appear. Grrrr... well I'm not writing all that over again. Anyhow, just wanted to say superb blog!
    Wow that was unusual. I just wrote an really long
    Posted @ 2022/03/25 8:23
    Wow that was unusual. I just wrote an really long comment but after I clicked
    submit my comment didn't appear. Grrrr... well I'm not writing all that over again. Anyhow, just wanted to say
    superb blog!
  • # Wow that was unusual. I just wrote an really long comment but after I clicked submit my comment didn't appear. Grrrr... well I'm not writing all that over again. Anyhow, just wanted to say superb blog!
    Wow that was unusual. I just wrote an really long
    Posted @ 2022/03/25 8:24
    Wow that was unusual. I just wrote an really long comment but after I clicked
    submit my comment didn't appear. Grrrr... well I'm not writing all that over again. Anyhow, just wanted to say
    superb blog!
  • # Wow that was unusual. I just wrote an really long comment but after I clicked submit my comment didn't appear. Grrrr... well I'm not writing all that over again. Anyhow, just wanted to say superb blog!
    Wow that was unusual. I just wrote an really long
    Posted @ 2022/03/25 8:25
    Wow that was unusual. I just wrote an really long comment but after I clicked
    submit my comment didn't appear. Grrrr... well I'm not writing all that over again. Anyhow, just wanted to say
    superb blog!
  • # Link exchange is nothing else except it is simply placing the other person's website link on your page at suitable place and other person will also do same in support of you.
    Link exchange is nothing else except it is simply
    Posted @ 2022/06/05 23:16
    Link exchange is nothing else except it is simply placing the
    other person's website link on your page at suitable place and other
    person will also do same in support of you.
  • # It's perfect time to make a few plans for the longer term and it's time to be happy. I have read this publish and if I may just I want to recommend you some fascinating things or tips. Maybe you could write subsequent articles referring to this article.
    It's perfect time to make a few plans for the long
    Posted @ 2022/06/08 6:52
    It's perfect time to make a few plans for the longer term and it's time to be happy.
    I have read this publish and if I may just I want to recommend you
    some fascinating things or tips. Maybe you could write subsequent articles referring to this article.
    I desire to learn more things about it!
  • # Sweet blog! I found it while browsing on Yahoo News. Do you have any suggestions on how to get listed in Yahoo News? I've been trying for a while but I never seem to get there! Cheers
    Sweet blog! I found it while browsing on Yahoo New
    Posted @ 2022/06/09 10:18
    Sweet blog! I found it while browsing on Yahoo News. Do you have
    any suggestions on how to get listed in Yahoo News? I've
    been trying for a while but I never seem to get
    there! Cheers
  • # Sweet blog! I found it while browsing on Yahoo News. Do you have any suggestions on how to get listed in Yahoo News? I've been trying for a while but I never seem to get there! Cheers
    Sweet blog! I found it while browsing on Yahoo New
    Posted @ 2022/06/09 10:19
    Sweet blog! I found it while browsing on Yahoo News. Do you have
    any suggestions on how to get listed in Yahoo News? I've
    been trying for a while but I never seem to get
    there! Cheers
  • # Its like you read my mind! You appear to know a lot about this, like you wrote the book in it or something. I think that you could do with some pics to drive the message home a bit, but other than that, this is excellent blog. An excellent read. I will c
    Its like you read my mind! You appear to know a lo
    Posted @ 2022/06/10 21:05
    Its like you read my mind! You appear to know a lot about this,
    like you wrote the book in it or something. I think that you could do with some pics to drive the message home a bit, but other than that, this is excellent blog.
    An excellent read. I will certainly be back.
  • # Excellent beat ! I wish to apprentice while you amend your web site, how can i subscribe for a blog website? The account helped me a acceptable deal. I had been a little bit acquainted of this your broadcast provided bright clear concept
    Excellent beat ! I wish to apprentice while you am
    Posted @ 2022/06/11 9:00
    Excellent beat ! I wish to apprentice while you amend
    your web site, how can i subscribe for a blog website?

    The account helped me a acceptable deal. I had been a little bit acquainted of this your broadcast provided bright clear
    concept
  • # Caverta https://allpharm.store/
    AllPharm
    Posted @ 2022/07/22 6:01
    Caverta https://allpharm.store/
  • # May I simply say what a comfort to find a person that truly knows what they're discussing over the internet. You certainly know how to bring a problem to light and make it important. A lot more people have to check this out and understand this side of yo
    May I simply say what a comfort to find a person t
    Posted @ 2022/08/10 23:29
    May I simply say what a comfort to find a person that truly knows what they're discussing over the internet.
    You certainly know how to bring a problem to light and make it important.
    A lot more people have to check this out and understand
    this side of your story. I was surprised that you aren't more popular because you most certainly possess the gift.
  • # If you would like to grow your familiarity only keep visiting this web page and be updated with the hottest gossip posted here.
    If you would like to grow your familiarity only ke
    Posted @ 2022/08/13 23:54
    If you would like to grow your familiarity only keep visiting this web page and be updated with
    the hottest gossip posted here.
  • # Hi, after reading this remarkable paragraph i am also happy to share my know-how here with friends.
    Hi, after reading this remarkable paragraph i am a
    Posted @ 2022/08/16 15:13
    Hi, after reading this remarkable paragraph i am also happy to share my know-how here with friends.
  • # Its like you learn my mind! You appear to understand a lot about this, such as you wrote the e book in it or something. I feel that you just can do with some percent to pressure the message home a bit, but other than that, that is wonderful blog. An exc
    Its like you learn my mind! You appear to understa
    Posted @ 2022/08/18 2:18
    Its like you learn my mind! You appear to understand a lot about this, such as
    you wrote the e book in it or something. I feel
    that you just can do with some percent to pressure the message home a
    bit, but other than that, that is wonderful blog. An excellent read.
    I'll definitely be back.
  • # Thanks , I've just been looking for info approximately this subject for a long time and yours is the greatest I have discovered so far. But, what in regards to the conclusion? Are you certain about the supply?
    Thanks , I've just been looking for info approxima
    Posted @ 2022/08/18 17:47
    Thanks , I've just been looking for info approximately this subject for a long time and
    yours is the greatest I have discovered so far. But, what
    in regards to the conclusion? Are you certain about the supply?
  • # Thanks , I've just been looking for info approximately this subject for a long time and yours is the greatest I have discovered so far. But, what in regards to the conclusion? Are you certain about the supply?
    Thanks , I've just been looking for info approxima
    Posted @ 2022/08/18 17:49
    Thanks , I've just been looking for info approximately this subject for a long time and
    yours is the greatest I have discovered so far. But, what
    in regards to the conclusion? Are you certain about the supply?
  • # If you are going for finest contents like myself, simply go to see this web site everyday because it gives quality contents, thanks
    If you are going for finest contents like myself,
    Posted @ 2022/08/21 12:42
    If you are going for finest contents like myself, simply go to see this web site everyday
    because it gives quality contents, thanks
  • # what is paxlovid https://paxlovid.best/
    molnupiravir cost
    Paxlovid
    Posted @ 2022/09/08 7:47
    what is paxlovid https://paxlovid.best/
    molnupiravir cost
  • # Can you tell us more about this? I'd love to find out some additional information.
    Can you tell us more about this? I'd love to find
    Posted @ 2022/11/26 18:44
    Can you tell us more about this? I'd love to find out some additional information.
  • # I got this site from my buddy who shared with me concerning this web page and now this time I am browsing this site and reading very informative content at this place.
    I got this site from my buddy who shared with me c
    Posted @ 2022/11/28 23:10
    I got this site from my buddy who shared with me concerning this web page
    and now this time I am browsing this site and reading very informative
    content at this place.
  • # canada buy prednisone online https://prednisonepills.site/
    buy prednisone canada
    Prednisone
    Posted @ 2022/11/30 7:55
    canada buy prednisone online https://prednisonepills.site/
    buy prednisone canada
  • # japanese dating site https://datingsiteonline.site/
    all dating sites in usa
    Tading
    Posted @ 2022/12/05 23:52
    japanese dating site https://datingsiteonline.site/
    all dating sites in usa
  • # online dting https://datingonlinehot.com/
    on line dating services
    Dating
    Posted @ 2022/12/09 19:24
    online dting https://datingonlinehot.com/
    on line dating services
  • # purchase cytotec - https://cytotecsale.pro/#
    Cytotec
    Posted @ 2023/04/28 23:36
    purchase cytotec - https://cytotecsale.pro/#
  • # cytotec abortion pill - https://cytotecsale.pro/#
    Cytotec
    Posted @ 2023/04/29 6:30
    cytotec abortion pill - https://cytotecsale.pro/#
  • # rx online https://pillswithoutprescription.pro/#
    PillsPresc
    Posted @ 2023/05/14 22:17
    rx online https://pillswithoutprescription.pro/#
  • # meds without prescription https://pillswithoutprescription.pro/#
    PillsPresc
    Posted @ 2023/05/15 5:18
    meds without prescription https://pillswithoutprescription.pro/#
  • # gГјnstige online apotheke
    Williamreomo
    Posted @ 2023/09/26 12:46
    https://onlineapotheke.tech/# gГ?nstige online apotheke
    versandapotheke deutschland
  • # online apotheke deutschland
    Williamreomo
    Posted @ 2023/09/26 23:05
    http://onlineapotheke.tech/# п»?online apotheke
    versandapotheke deutschland
  • # internet apotheke
    Williamreomo
    Posted @ 2023/09/26 23:33
    https://onlineapotheke.tech/# versandapotheke
    versandapotheke
  • # online apotheke gГјnstig
    Williamreomo
    Posted @ 2023/09/27 1:57
    http://onlineapotheke.tech/# п»?online apotheke
    online apotheke gГ?nstig
  • # online apotheke preisvergleich
    Williamreomo
    Posted @ 2023/09/27 10:05
    http://onlineapotheke.tech/# online apotheke preisvergleich
    gГ?nstige online apotheke
  • # farmacia online migliore
    Rickeyrof
    Posted @ 2023/09/27 18:17
    acheter sildenafil 100mg sans ordonnance
  • # farmacia online piГ№ conveniente
    Rickeyrof
    Posted @ 2023/09/27 21:15
    acheter sildenafil 100mg sans ordonnance
  • # licensed canadian pharmacies
    Dannyhealm
    Posted @ 2023/10/16 16:31
    Top-notch medications sourced globally. https://mexicanpharmonline.shop/# mexican border pharmacies shipping to usa
  • # mexico drug store online
    Dannyhealm
    Posted @ 2023/10/16 17:54
    Their mobile app makes managing my medications so easy. http://mexicanpharmonline.com/# mexican pharmaceuticals online
  • # top mail order pharmacies
    Dannyhealm
    Posted @ 2023/10/16 22:10
    They offer great recommendations on vitamins. http://mexicanpharmonline.shop/# pharmacies in mexico that ship to usa
  • # canadian online drug store
    Dannyhealm
    Posted @ 2023/10/17 9:41
    Their international team is incredibly knowledgeable. http://mexicanpharmonline.com/# reputable mexican pharmacies online
  • # canadian and international prescription service
    Dannyhealm
    Posted @ 2023/10/17 14:15
    Their worldwide delivery system is impeccable. https://mexicanpharmonline.shop/# reputable mexican pharmacies online
  • # top rated canadian mail order pharmacies
    Dannyhealm
    Posted @ 2023/10/17 15:23
    A trusted partner in my healthcare journey. https://mexicanpharmonline.com/# mexican border pharmacies shipping to usa
  • # mexican pharmacies that ship to usa
    Dannyhealm
    Posted @ 2023/10/17 22:43
    They source globally to provide the best care locally. http://mexicanpharmonline.com/# mexican rx online
  • # online mexican pharmacies
    Dannyhealm
    Posted @ 2023/10/18 2:42
    A one-stop-shop for all my health needs. https://mexicanpharmonline.com/# pharmacies in mexico that ship to usa
  • # canadian mail order medications
    Dannyhealm
    Posted @ 2023/10/18 7:52
    They offer great recommendations on vitamins. http://mexicanpharmonline.com/# mexican border pharmacies shipping to usa
  • # perscription canada
    Dannyhealm
    Posted @ 2023/10/18 13:42
    Their international health forums provide crucial insights. http://mexicanpharmonline.com/# mexican mail order pharmacies
  • # order prescription from canada
    Dannyhealm
    Posted @ 2023/10/18 16:02
    A game-changer for those needing international medication access. http://mexicanpharmonline.com/# mexican mail order pharmacies
  • # buy rx online
    Dannyhealm
    Posted @ 2023/10/19 3:33
    They provide a global perspective on local health issues. http://mexicanpharmonline.com/# mexico drug stores pharmacies
  • # paxlovid covid https://paxlovid.bid/ paxlovid covid
    Paxlovid
    Posted @ 2023/10/26 0:38
    paxlovid covid https://paxlovid.bid/ paxlovid covid
  • # top ed pills
    WilliamApomb
    Posted @ 2023/11/22 4:01
    http://tadalafil.trade/# tadalafil pills for sale
  • # top erection pills
    WilliamApomb
    Posted @ 2023/11/23 14:20
    http://sildenafil.win/# sildenafil generic usa
  • # doxycycline 100mg dogs https://doxycycline.forum/ generic doxycycline
    Doxycycline
    Posted @ 2023/11/25 9:11
    doxycycline 100mg dogs https://doxycycline.forum/ generic doxycycline
  • # paxlovid generic
    Mathewhip
    Posted @ 2023/12/01 3:36
    paxlovid pill http://paxlovid.club/# paxlovid cost without insurance
  • # farmacia online madrid
    RonnieCag
    Posted @ 2023/12/07 15:22
    http://tadalafilo.pro/# farmacia envíos internacionales
  • # farmacia online envío gratis
    RonnieCag
    Posted @ 2023/12/07 18:26
    http://tadalafilo.pro/# farmacias online baratas
  • # farmacia online envío gratis
    RonnieCag
    Posted @ 2023/12/07 21:41
    https://vardenafilo.icu/# farmacias online seguras en españa
  • # farmacias baratas online envío gratis
    RonnieCag
    Posted @ 2023/12/08 0:50
    https://vardenafilo.icu/# farmacia online 24 horas
  • # ï»¿farmacia online
    RonnieCag
    Posted @ 2023/12/08 18:24
    http://farmacia.best/# farmacia online
  • # ï»¿farmacia online
    RonnieCag
    Posted @ 2023/12/09 16:00
    http://tadalafilo.pro/# farmacias online baratas
  • # ï»¿farmacia online
    RonnieCag
    Posted @ 2023/12/09 19:22
    https://tadalafilo.pro/# farmacia online 24 horas
  • # farmacia online envío gratis
    RonnieCag
    Posted @ 2023/12/10 1:59
    https://farmacia.best/# farmacia envíos internacionales
  • # farmacia envíos internacionales
    RonnieCag
    Posted @ 2023/12/10 5:58
    https://tadalafilo.pro/# farmacia barata
  • # ï»¿farmacia online
    RonnieCag
    Posted @ 2023/12/10 9:14
    https://sildenafilo.store/# sildenafilo precio farmacia
  • # farmacia online barata
    RonnieCag
    Posted @ 2023/12/10 15:10
    http://sildenafilo.store/# se puede comprar sildenafil sin receta
  • # farmacia online envío gratis
    RonnieCag
    Posted @ 2023/12/10 18:28
    https://vardenafilo.icu/# farmacia online
  • # farmacias baratas online envío gratis
    RonnieCag
    Posted @ 2023/12/10 22:43
    http://farmacia.best/# farmacia online madrid
  • # farmacia envíos internacionales
    RonnieCag
    Posted @ 2023/12/11 14:18
    http://vardenafilo.icu/# farmacia online madrid
  • # ï»¿farmacia online
    RonnieCag
    Posted @ 2023/12/11 20:52
    http://farmacia.best/# farmacia envíos internacionales
  • # farmacia 24h
    RonnieCag
    Posted @ 2023/12/12 4:01
    https://vardenafilo.icu/# farmacia online madrid
  • # ï»¿farmacia online
    RonnieCag
    Posted @ 2023/12/12 7:31
    http://tadalafilo.pro/# farmacia 24h
  • # farmacias baratas online envío gratis
    RonnieCag
    Posted @ 2023/12/12 16:14
    http://sildenafilo.store/# sildenafilo sandoz 100 mg precio
  • # ï»¿farmacia online
    RonnieCag
    Posted @ 2023/12/12 19:44
    https://sildenafilo.store/# sildenafilo 100mg precio farmacia
  • # farmacia online envío gratis
    RonnieCag
    Posted @ 2023/12/13 2:45
    https://vardenafilo.icu/# farmacia barata
  • # Pharmacie en ligne fiable
    Larryedump
    Posted @ 2023/12/13 19:11
    http://pharmacieenligne.guru/# Pharmacie en ligne livraison gratuite
  • # pharmacie ouverte
    Larryedump
    Posted @ 2023/12/14 9:45
    http://pharmacieenligne.guru/# Pharmacie en ligne France
  • # Pharmacies en ligne certifiées
    Larryedump
    Posted @ 2023/12/15 0:15
    http://pharmacieenligne.guru/# acheter medicament a l etranger sans ordonnance
  • # lana rhoades boyfriend - https://lanarhoades.pro/ lana rhoades
    LanaRho
    Posted @ 2024/03/06 18:12
    lana rhoades boyfriend - https://lanarhoades.pro/ lana rhoades
  • # Ahaa, its fastidious conversation regarding this paragraph at this place at this webpage, I have read all that, so at this time me also commenting here.
    Ahaa, its fastidious conversation regarding this
    Posted @ 2024/09/04 11:35
    Ahaa, its fastidious conversation regarding this paragraph at this place at this
    webpage, I have read all that, so at this time me also commenting
    here.
  • # Ahaa, its fastidious conversation regarding this paragraph at this place at this webpage, I have read all that, so at this time me also commenting here.
    Ahaa, its fastidious conversation regarding this
    Posted @ 2024/09/04 11:36
    Ahaa, its fastidious conversation regarding this paragraph at this place at this
    webpage, I have read all that, so at this time me also commenting
    here.
  • # Ahaa, its fastidious conversation regarding this paragraph at this place at this webpage, I have read all that, so at this time me also commenting here.
    Ahaa, its fastidious conversation regarding this
    Posted @ 2024/09/04 11:36
    Ahaa, its fastidious conversation regarding this paragraph at this place at this
    webpage, I have read all that, so at this time me also commenting
    here.
  • # Ahaa, its fastidious conversation regarding this paragraph at this place at this webpage, I have read all that, so at this time me also commenting here.
    Ahaa, its fastidious conversation regarding this
    Posted @ 2024/09/04 11:37
    Ahaa, its fastidious conversation regarding this paragraph at this place at this
    webpage, I have read all that, so at this time me also commenting
    here.
タイトル
名前
Url
コメント