「Servlet」を含む日記 RSS

はてなキーワード: Servletとは

2018-08-12

サマータイム反対の意見表明をする方法

政府

関係省庁の問い合わせフォームから意見を送ることができる

政党

支持している政党にも支持していない政党にも有権者として堂々と意見を送ろう

政治家

自分の住んでいる選挙区政治家意見を送ろう

anond:20180807003156

新聞

ネットをやらない世代新聞投書欄などに目を通している。サマータイムは良くないものだということを前提にした投稿投書欄川柳欄に載れば載るほど反対意見は浸透する。サマータイムによって悪影響を直接受ける業界にいるのなら、情報提供フォームを使って取材を促すのも良いだろう。

テレビ

朝、昼、夜の情報番組の影響力は大きい。各情報番組で取り上げるよう要望を各局に送ろう。

ラジオ

ラジオ仕事をしながら個人で聞いたり、職場食堂や各種待合室で流しっぱなしになっていたりするのでネットとは違う層に届く。情報番組投稿コーナーにサマータイム反対の意見を送って幅広い層と認識を共有しよう。番組で取り上げるよう要望を送るのもいいだろう。

SNS

TwitterFacebookで「いいね」をしたり、はてなブックマーク上でブックマークをしたりすると、それだけで対象投稿が多くの人のトップページに表示されるようになる。サマータイム反対の投稿は片っ端からいいね」してブックマークしよう。

ネット署名

change.orgで探してみたところ、現時点で2つキャンペーンが立ち上がっているようだ。

生活

実家テレビを見ていてサマータイム話題が出るなどしたら、自分サマータイムに反対だということを家族や周りの人に伝えよう。「なんとなく良さそう」くらいに思っている人を「なんとなく良くなさそう」にするくらいのことはできるだろう。デモなどがあれば参加しよう。

2016-06-17

1.0から学ぶJava

タイトルを見て釣られクマーな皆さんこんにちは

ホッテントリメーカーで作るような煽りタイトルって、みなさんもう見飽きてると思うんですよね。

今調べたらホッテントリメーカー2008年だそうで。どうりでねー。古臭いなーと思いましたよー。

「一から学ぶJava」ってのをね、1.0にするだけでこんなに素敵なタイトルになるんだから面白いですねー。

タイトルを思いついただけだったんですけど、思いついたらやっぱりちゃんと中身も書かないと行けないじゃないですか。やだー

面倒くさいんですけどね。ちょっと1.0から学んでみましょうか。

Java 1.0 1996年1月23日

Javaの1.0がリリースされたのは1996年1月23日ですね。発表されたのが1995年5月23日でJavaの誕生日といった場合にどちらを取るかで揉めることがあります。

かれこれ20年前なわけで、当時のパソコンというとハードウェアはCPU が Pentium 133MHz メモリ16M とかそんな感じだったかなあ。今どきの携帯電話の例としてiPhone 6sを挙げるとCPUが1.85GHz メモリ 2G ってんだから凄いですね。OSは1995年11月23日リリースされたWindows95とかそんな時代背景です。インターネットがようやく一般に普及し始めたところでしょうか。

今から思うと相当弱いハードウェアですけども、そろそろVM方式を採用しても良さそうな、そんな時代でした。インタープリタだと流石に遅い、でもC言語のようなコンパイル言語だと"Write once, run anywhere"とはいかない、という判断もあったのだろうと思います。Javaが純粋なオブジェクト指向言語ではなくintなどのプリミティブ型を持つというのは、当時のマシンスペックを考えた場合、ある程度妥当な判断だったと言えるでしょう。これが後々苦しくなってくるわけなのですが。

Javaを作った会社はSun Microsystems(サン・マイクロシステムズ)というアメリカの会社で、2010年1月27日オラクルにより吸収合併され今はありません。SolarisというOSとSPARCプロセッサでUNIXサーバーの販売で90年代後半までは一人勝ちのような状況だったと聞きます。当時にすでに「ネットワークこそがコンピュータ」(The Network is the Computer)というモットーを掲げてたんだからおかしい。1996年リリースのJavaが標準でネットワーク機能を備えていたのもこのあたりの思想から来ているのかもしれませんね。

当時のプログラミング言語としてC++が挙げられますが、C++でのプログラマへの負担といいますか、ヒューマンエラーの起きやすさといいますか、その辺を改善する目的で開発されたのがJavaだったわけです。

1996年の時点にこんな言語が登場したのですから革新的でした。

いろんな企業がJavaに賛同します。その中にはMicrosoftもありました。この時期、Microsoftは次期のWindows開発用のプラットフォームにJavaを据えようと考えていました。その後、袂を分かつことになるのですが……。

プログラム言語として構文などを見ると、C++を強く意識した構文なのは間違いなく、しかしポインタ演算を廃してポインタを機能を限定した「参照」に置き換えるなど簡素化が多く見られます。C++からはいろんな機能が削られています。関数ポインタ、構造体、演算子オーバーロードテンプレート((テンプレートについては実装が間に合わなかったという話を聞きます))などなど。そのためC++の劣化であるように揶揄する人もいますが、こうしたものを捨てて言語仕様を比較的小さくシンプルに抑えた点は評価に値すると思います。しかし、今でもこうした削減された機能を愛する人からはJavaを腐す要素として挙げられてしまうのでした。

Java 1.1 1997年2月19日

Wikipediaからピックアップすると1.1での大きな機能追加は

といったところです。当初よりJavaの内部文字コードUnicodeで文字を表すchar型は16bitで設計されていました。Unicodeは当時それほど普及しておらず、Unicode対応のテキストエディタさえ少なかったと記憶しています。時代を先取りしていると言えますが、大きな誤算はUnicodeが当初16bitのコードポイントに世界のあらゆる文字を格納しようとしていたことで、漢字圏の我々からすると16bit=65,536程度の空間に文字が全部入るわけないだろ!というものだったが故に早々に破綻し、Unicodeは21bitのコードポイントに拡張されることになるのです。これはまた後の話。

なんにせよ、日本語が対応されたのは1.1からで、日本でのJavaの採用が始まったのはこの頃からと言えましょう。

当時のJavaのGUIはAWTというものでしたが、これを用いたGUIの開発は当時は結構行われていたイメージですね。Visual BASIC でGUIを作るプロダクトも結構あったと思います。GUIのためのオブジェクト指向言語としてJavaが使われていたイメージがありますね。JavaBeansもそのための仕様でした。件のsetter/getterの話題に繋がっていくのですが。

JDBCはJavaとデータベースをつなぐインターフェースです。RMIではあるJava VMから別のJava VMにオブジェクトを送って実行する、といったことができます。こうした機能が用意されたことで、ソフトウェアフロントとしてのGUI、裏方の実装のためのネットワーク機能、データベース機能、さらにはソフトウェアを配布するためのJava Appletという布陣でJavaでのソフトウェア開発が加速していた時代といえます。

Microsoft Visual J++ もこの時代ですよ。

Java 1.1以降のバージョンのものは互換性確認のためにOracle Java Archiveからダウンロードすることができ、今でも入手することができます。もちろん、Java7ですら2015年4月にEOL(End of Life,サポート終了)となっているので、通常利用するのはJava8としてください(本稿執筆時点)。

当時のドキュメントを見るのも一興です。現在と比べると標準APIがかなり小さい。なお、当時のjavadocは今とはデザインが大きく異なります。

  • java.applet
  • java.awt
  • java.awt.datatransfer
  • java.awt.event
  • java.awt.image
  • java.beans
  • java.io
  • java.lang
  • java.lang.reflect
  • java.math
  • java.net
  • java.rmi
  • java.rmi.dgc
  • java.rmi.registry
  • java.rmi.server
  • java.security
  • java.security.acl
  • java.security.interfaces
  • java.sql
  • java.text
  • java.util
  • java.util.zip

この時代であれば、全パッケージを舐めて標準APIを学ぶこともそう難しくはありませんでした。この時代から触っている人間は新バージョンが出るたびに増えるAPIを順に学んでいけたのです。しかし、現代にJavaを学ぶ場合、どのバージョンでは何があって……というのをいちいち学ぶ必要はほぼありません。Java5以前は一緒くたでいいと思いますし、一部のAPIで歴史的経緯があってねーというのを知っていればおそらく十分ではないでしょうか。

Java 1.2 1998年12月8日

strictfpキーワード浮動小数点演算をやる人は覚えておきましょう。JavaはパフォーマンスのためにCPUの浮動小数点演算を扱うことが許されており、そのため実行するCPUによって精度が異なることがあるんですね。まあ今時のCPUだと大丈夫だとは思うんですが。

リフレクション機能ではJavaのクラスを抽象的に扱うことができます。設定ファイルに書かれたクラス名のclassロードして実行する……みたいなことができるんですね。フレームワーク的なものを作る場合には多用することになります。

1.2からは新しいGUIのSwingが採用されました。AWTがOSごとのGUIパーツを用いていたためデザインに違いがあったのに対し、Swingでは統一的なルック・アンド・フィールが用いられるようになりました。まぁ今ならJavaFXを使うのが良いと思います。

初期のJavaはやはりVM方式の実行速度の遅さが指摘されていました。実行時の構文解析を伴わないだけインタープリタよりは早いものの、実行バイナリを作るC/C++よりは遅い、そうした評価です。ここではサン・マイクロシステムズのVMにJIT(ジャストインタイムコンパイラ)が乗ったことが挙げられていますが、JIT自体は別の会社が先駆けて開発していたことは記しておきたいと思います。

JITコンパイラは実行時にJavaのバイトコードを環境のネイティブコードコンパイルして動かす技術です。この後、JITコンパイラ、動的再コンパイル技術、世代別ガベージコレクションを備えたHotspotといった様にJavaVMは進化していきます。現代では実行時の最適化が進み、大きなスケールで見た場合、Javaの実行速度はC/C++での実装と比べてそれほど遅れるものではありません。遅くても倍の時間は掛からない程度といったところでしょうか。

あとは特記すべきはコレクションフレームワークです。皆が多用しているであろうjava.util.Listやjava.util.Mapといったライブラリが整備されたのがこの時なのです。それ以前はjava.util.Vectorやjava.util.Hachtableというクラスが可変長配列の機能を一手に担っていました。今ではVectorやHashtableは使うべきではありません。

Microsoft 離反

Java の開発はSun Microsystems が主導していたけども、すべてがSunのものだったというわけでもなく。Javaには多くの会社が出資していてその中のひとつMicrosoftだったわけですね。

Microsoft の Visual J++ では delegate とか独自機能拡張もありましたけど、裁判で問題になったのは J++ でコンパイルしたclassファイルMicrosoftのVMでしか動かないという部分ですね(他社製のVMで動くclassファイルを作ることもできる)。classファイルがどこのVMでも動くの大事だろ、"Write once, run anywhere"だろ、お前何してくれてんの!と喧嘩になったわけです。当時のMicrosoftブラウザまわりでも独自拡張がやりたい放題、標準規格?なにそれ美味しいの?みたいなスタンスをあちこちで見せていたものです。

結局、この事件でMicrosoftのJavaはバージョン1.1相当でストップ。好き勝手にやれないなら独自に言語作るわーとばかりに.NET フレームワークと C# といった方向に舵を取ります。

JavaがPC上でのUI開発の主力になろうとした勢いはここで潰えます。

Java EE

Java SE とは別にこの時代に Java EEリリースされていることは特記しておきたいですね。これ以後、それまでのCGIに取って代わって、JavaはWebサービスの開発のプラットフォームとして多用されるようになります。

2000年あたりからはJavaはGUI開発というよりは、Webサービスの開発が主流という流れになっていきます。インターネットサービスが非常に発達していった時代、背後ではとてつもない量のJavaのプログラムが支えていたわけです。ただまあ、こうした産業利用は一般的ユーザーの目にはあまり入らないわけです。一般人からすればJavaといえばJava Appletみたいなイメージはずっと残っていたでしょうが、実体としてはJavaといえばServletという時代になっていたわけです。

企業で用いられる社内システムにもServletは多く採用されました。

理由はいろいろ挙げれると思うのですが

というのが大きな理由だろうと思います。JSPというテンプレートエンジンを用いてHTMLを整形してWebページを作り出す、というアーキテクチャある意味では便利で簡単でした。

もっともHTMLの表現力に足を引きずられるため、GUIの機能性という点では後退したわけなのですが。それでもメリットが大きいと判断されたのでしょう。というか、まともにGUIを組めるプログラマがほとんどいないから、GUIのシステム開発がなかなか成功しないってのもあったんでしょうけどね。

iアプリ Javaアプリ EZアプリ

2000年あたりというと携帯電話の普及も取り上げなければなりません。現代のスマホガラケーに比べれば非常に機能は貧弱で、まさに携帯「電話」でした。要するに電話とメールぐらいしかできなかったんですね。

そこにdocomoiアプリJフォン(ボーダフォンを経て現ソフトバンク)のJavaアプリ、auのEZアプリという携帯電話上でちょっとしたアプリが動くよ!というのが乗るようになってきたんです。これがJavaを組込み用途にコンパクトにしたJava MEというものが土台となっていて(正確にはiアプリちょっと違う)Servletと並ぶJava言語の大きなもうひとつの領域となっていました。

iアプリは当初は容量が10k byteまでといった制約があり、容量制限が非常に厳しかったのですが、新機種が出るたびに容量は緩和されていきました。

docomoiアプリ含めiモードによって一世を風靡します。こうした土台を作ると、その上で商売をしたい人がたくさんやってきて、勝手にコンテンツを作ってくれる。docomoはそれらから手数料を取るので労せずして大金を稼げるというわけです。賭場の胴元というわけです。

この賭場が、将来にAppleiPhone, GoogleAndroidに荒らされることになります。docomoがなかなかiPhoneを出さなかったのもiモードという自前の賭場を失うことを良しとしなかったためです。金づるを失ったdocomoSamsungと組んで独自の携帯向けOSであるTizenの開発に乗り出します。そんなTizenですが鳴かず飛ばず。噂ではインドあたりではリリースされたとか、なんとか。

RIA時代

話を2001年に戻しましょう。

Microsoft離反でGUIのプラットフォームとしてのJavaというものは存在感を弱めていました。この分野の復権に寄与したのはJava 1.4 (2002年2月6日)で導入されたJava Web Startです。

Java Appletブラウザ埋め込みで動作したのに対し、Java Web Startではブラウザから起動しつつも独立したアプリとして起動するのです。

Webシステムが企業の社内システムに採用された話は先に述べたとおりですが、やはりWebシステムのGUIというのはHTMLに引きずられて貧弱だったんですね。

端的に言えば入力値が数字かどうか?みたいなチェックがなかなか難しい。HTML上でJavaScriptでやるわけなんですが、なかなか気持よく入力できるような感じにはならなかったんですね。

また、Ajaxによるブラウザのページ遷移を伴わない通信というのが出てきたのも2005年ぐらいなので、入力値に対してサーバ問い合わせするようなことはできなかった。当時だと一旦画面遷移させないとできなかったわけです。

こうした事情から、クライアントサイド、要するにPC側でもっとリッチなUIが使いたい!という要望があったわけです。Webシステム使いにくい!という不満の噴出と言ってもいい。そこで出てきたのがRIA (Rich Internet Applications)というわけです。

Javaは1.0時代のAppletからそうですが、ネットワークを介して別のPCにプログラムを送り込み、そこで動作させるという能力を持っていました。それこそまさにRIAに求められる機能性だったわけですね。

RIAの代表とされるのは

あたりです。三つ巴の戦い、どこに軍配が上がるのか!?と注目されましたが、勝利したのはHTML / JavaScriptでした。

Google MAP で注目を浴びたAjax技術、それまでブラウザでは不可能と思われていた高級なGUIをHTML / JavaScriptで実現させました。もうやめて欲しいですよね。せっかく脱ブラウザの流れが来たと思ったのにまたWebシステムに逆戻りですよ。

RIAが失速した理由として考慮して置かなければいけないのはスマートフォンの台頭です。RIAでは端末を選ばずどこでも同じアプリが動かせる点がポイントひとつでしたが、スマートフォンではそうは行かない。"Write once, run anywhere"を破壊したのはスマートフォンだったというわけです。

しかし、先日インストールなしでアプリを実行するAndroid Instant Appsが発表されたりしまして、結局RIAの思想といいますか、要求というのは今でも息づいているのだなと思った次第です。

Java 5 (2004年9月30日)

1.3 / 1.4 では機能追加はあっても言語構文が大きく変わることはありませんでした。大きく変わったのはJava 5です。この時からバージョニングが変わって1.5ではなく5と表記されるようになりました。

Java5の特徴はなんといってもジェネリクス。それまでjava.util.Listにデータを出し入れするのにはキャストが必須だったわけですが、ようやくキャストから開放され型の安全度がぐっと高まりました。その他に以下のような変更があります。

言語としては随分変わっったわけですが、もうかれこれ10年以上前のことですからこれらの機能が「Java5から導入された」という知識は今となってはあまり必要とされません。これらの機能が使えないJava 1.4で開発をする事案が殆ど無いからです。0ではないのが悲しいところではありますが。

その後

Java 6 (2006年12月11日)がリリースされた後、Java 7 (2011年7月28日) が出るまでJavaは停滞してしまいます。その間にSun Microsystemsという会社がなくなってしまったためです。

Sun Microsystems の経営状況が悪化しており、ついに身売りをすることになりました。身売り先はIBMともGoogleとも噂されましたが結局2010年1月27日オラクル吸収合併されました。

Javaの停滞中にはJava VM上で動く非Java言語も台頭してきました。Scalaなどですね。

やや戻って2007年Androidが発表されます。Androidの開発言語にはJavaが採用されていますが、実行環境はJava VMではなく、ライセンス的な事情でJava(TM)は名乗らない微妙な位置関係にあります。

Java 5 以降で大きく言語仕様に手が入るのは Java 8 (2014年3月18日)です。並列処理を行うためのStream APIと、そのために簡易に関数を定義するためのラムダ式が導入された点が大きいですね。日付APIも刷新されました。

このように、Javaは1.1の黄金時代から今に至るまで利用ジャンルを転戦しながら産業の土台となって支えてきた歴史があります。ジャンルの趨勢により浮き沈みもあります。今後についても決して楽観視はできないでしょう。Javaを学ぶことはプログラミングを学ぶステップとしては意義はあると思いますが、Javaを学べばゴールというわけではありません。プログラム言語次世代へと移りつつあります。業界動向には注視していきましょう。

2014-10-23

http://anond.hatelabo.jp/20141023122508

ServletとかRackとかのベースの上に作るんじゃなくて、既存フレームワークを直接書き換えて、独自とか言っちゃうのか。

そりゃひどいわ。

2014-04-06

Windowsに慣れない

情強ぶってMacばっか使っていたら

会社から支給されたのがレッツノートだったため

エディタとか何使えばいいのか全然からない状態になってる…

今はHTML/CSS/JavaScriptくらいだけど

これからJSP/ServletもかくからEclipseで間違いないのかしら

まわりはSublime textとかVimかいものを使っている人が多い

果たして何を使うのがいいのでしょうか

問題は会社ではWindows,家ではMacしかないので

家に持ち帰ってコードいじるときエディタが変わるのがめんどくさそうだから

共通で使えるエディタにしたいと考えてる

でもショートカットとか違うから同じでもめんどくさいのかな


結局cygwin入れてのVimが最強なのかな

2013-03-18

SI業界中の人間は、凄惨世界を望んでいる件について

http://d.hatena.ne.jp/iad_otomamay/20130318/1363596244

この記事。本当に腹が立ちました。

まず質問自体が酷いのが多い。

省略したのは知らないと障害の危険があるので知っとくべきってことで同意なんですが、

HTTPクライアントブラウザの種類などの情報を知るためのヘッダは何ですか?(筆記解答)

HttpRequestオブジェクトからPostされたデータを取得するServletメソッドは何ですか?(筆記解答)

これは使うときにググれば良い話。暗記しておくメリットがわからない。

結合テスト中のシステムで、OutOfMemoryErrorが発生しました。UTソースコードの変更はしていません。ヒープメモリは足りているようです。原因として何が考えられますか?(筆記解答)

UTソースコードの変更はしていません」という一文が意図不明単体テスト終わった後にソースコード変更したら、再度単体テスト必要だと思うのですが?この一文は何のヒントにも制限にもなっていないです。

String オブジェクトを+で結合するのはなぜNGなのかメカニズムを説明してください。(筆記解答)

なぜNGなのかというのは「文字列連結演算子(+)では速度が遅いから」であり、StringBufferかStringBuilderのような結合用クラスのappend()を使うことでパフォーマンスは向上する、というところまでが質問の狙いなのかと思いました。もう一歩踏み込むならば、+をしたときコンパイラでどのようになるかを知っているかどうか、みたいな。しかし結合用クラスにはデメリットもありまして、append()は冗長過ぎて可読性が酷く低下するデメリットがあります文字列の連結時にクラスをnewするタイミングを調節したほうが速くなることもあります近年ではマシンスペックもあがってますので、そんなに気にする部分ではないと思います。そもそも、このStringBufferの仕組みは絶望的に救いがないJava言語の汚点と言ってもよい部分です。なんで文字列の連結方法に複数のやり方を速度だけの理由で取捨選択させるというバッドノウハウなので、早くコンパイラ最適化して一元化くれることを望む部分です。

StringBufferかStringBuilderと書いていて、そういやスレッドに関しての質問がないのはどういうことなのかと感じました。JavaWeb系ってスレッド重要だと思うのですが。

JavaScriptHTML要素をid属性の指定により取得するメソッドは何ですか?(筆記解答)

もうjQueryDojoも使われるようになってきたからこれも知らなくてもいいんじゃないかと。id指定で取れるということとを知っておけば答えにはたどり着けるはず。バッドノウハウです。どうしてJavascript最近になって流行ってきたかを思い出して欲しいです。

プログラマーバッドノウハウの塊でなくてはならない、というのが見えてくる質問内容ですが、最近は覚えなければならないことが多く、技術更新スピードも早いので、あの質問のような重箱の隅まで暗記するようなことをしていては、重要な部分が抜け落ちているし、暗記の苦手な人は辛いと思います書籍ネットのような情報の蓄積と抽出する部分は充実してきたので、概念は知っておいて、実装手段はその都度調べるほうが効率的であるかと思います質問は、応用の効く根本的な部分を問う方がよかったです。

現実は、もっと凄惨世界を経て時代が進んでいくようだ。」などと締めくくっていますが、この人は凄惨世界が嫌なのでしょうか?不安を煽るだけで対策も講じていません。まず、質問の回答を書くだけでも、読んだ人の知識の底上げに貢献できると思うのが普通です。「これは基礎教育をやってれば当たり前」とか言ってドヤ顔して、できない人間馬鹿にしているだけに見えます本心では凄惨世界を望んでいるのでは?としか思えてなりません。

この記事を読んだことで、またSI業界から優秀な人が遠のくことでしょう。こんな人間が居る業界には居たくないと。

どうして悲しみを減らす方向に動いてくれないのかと…

※追記

頭沸騰しててスルーしてしまったのですが「淘汰」って書いてあったので、業界底上げは望んでないんだなあと、見当はずれなこと書いてしまったなあ、と、後悔した。

2012-02-20

http://anond.hatelabo.jp/20120220150055

ライブラリが違うのが一番大きい所なんだがな?

JavaみたいにApplication組めるなら、Servletも何とかなるだろ的な余裕が無い。

文法(四則演算とか関数宣言)ぐらいしか同じ所ねぇし。

変数周りでもvar無い場合挙動の違いとか、letとか、型宣言とかあるけどなー。

2011-03-30

http://anond.hatelabo.jp/20110329150439

MovableTypeのコアはPerlだ。

ちなみにPHPerの主戦場Web業界

JavaできてもServlet,JSPが下火だからWeb業界ではメシ食えない。

それよりRubyPerlおすすめするよ

2009-07-08

今話題のポケゲーと昔、話題になったマージュとの関係

UserAgentなしでアクセスすると。。

http://marj.jp/

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented
it from fulfilling this request.

exception

javax.servlet.ServletException
       at org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:545)
       at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:486)
       at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
       at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
       at com.hmsystems.common.struts.extension.HmsActionServlet.process(HmsActionServlet.java:28)
...

http://pkga.jp/

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented
it from fulfilling this request.

exception

java.lang.NullPointerException
       at com.hmsystems.sns.presentation.struts.RequestProcessor.processForwardConfig(RequestProcessor.java:91)
       at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
       at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
       at com.hmsystems.common.struts.extension.HmsActionServlet.process(HmsActionServlet.java:28)
       at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:696)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)

両方ともHM SYSTEMSさんが作っていたんですね。

http://www.hmsystems.com/

http://www.youtube.com/watch?v=k6_1P2EKKYo&feature=PlayList&p=56E3E51E650A4CE7&index=0

2008-11-19

教えてくれ!Webフレームワークって本当に便利か?

ちまたじゃ、みんなフレームワークのことを当たり前のように論じててすごいなーと思うんだ。尊敬するぜ。だから、ミーハーなオレもフレームワークが気になって仕方ない!

だから、30歳近いプログラマのオレがプライドを捨てて優秀なハテナ住人に聞くが、

Webフレームワークって本当に便利か?

バカなオレだけど、MVCパターンが良い事は理解できるよ。

だが、そこまでだ。

Javaだと、StrutsSpringSeasarWicket等をよく目にするけどよぉ、ドキュメントの量どんだけだよ。

入門ドキュメントだけ見ると簡単そうに思えるけど、仕事で使えるレベルまで理解が深まるまでどんだけ時間かかんだよ。

起動遅い、動き遅い、定型パターンを外れたら、やる方法が見つかんねー。

で、苦労して作ってもよぉ、結局は、HTMLがピロッって出力されるだけで、見てくれが変わるわけでもなく、全然努力が報われん。

これって、どゆこと?

Servlet+JSP+簡単なライブラリ 程度で十分じゃね?

PHPだと、Zend FrameworkCakePHPsymfony等をよく目にするけどよぉ、ドキュメントの量どんだけだよ。

入門ドキュメントだけ見ると簡単そうに思えるけど、仕事で使えるレベルまで理解が深まるまでどんだけ時間かかんだよ。

デバッガの使い方分かってねーオレが悪いとは思うんだが、開発効率悪いぞ。(フレームワーク以前の話だが…)

統合開発環境何使えばいいの?わざわざクラス名や関数名覚えてられんぞ。(フレームワーク以前の話だが…)

何で、拡張子変えたがる。何で、変なテンプレートエンジン使う。エディタ認識されねーから開発効率悪いじゃねーか。デザイナがコーディングした分かりくいHTMLコードをよ、何で編集してるわけ?

PHPフレームワーク使わない方が便利じゃね?

ついでに聞くけどよぉ、ORマッピングライブラリって使えるの?

確かに書くコード量は少なくなっていいんだがよぉ、目に見えて遅いと思うのはオレだけか?

ディスクアクセスは明らかにボトルネックになるのに、巨大なライブラリコードを毎回走らせるんだよ。普通サーバじゃ余裕なの?

話題がそれたが、

Webフレームワークって本当に便利か?

実は、みんな、上司や先輩に言われて使ってるだけなんじゃないの?

ハテナ住人の優秀なエンジニアは、どんな目的フレームワーク使ってんだ?教えて偉い人!

ま、誰も見ないんだろうけど。

2008-04-12

http://anond.hatelabo.jp/20080412115419

芸術性って・・・。

だったら言語から作れよ。

芸術性のあるソースなんて見たくもない。

芸術性は見る人に訴求するものがあり、人によって解釈が違う。そういう定義の言葉だろ。

素敵すぎるだろそんなソース

芸術をも感じさせるソースを見て、どうやったらこんな独自進化を遂げられるんだよと何度ヒザをついたことか…。

人を満足させるために作るのか、自分が満足するためにつくるのか。

自分を満足させるために作り出したものが結果的に人を満足させるということは殆どない。

だって最初のスタート方向が違うんだもの。

コーディングポリシーはもっていてもいいとおもうけど、そのポリシーアクションの枷になっているのだったら本末転倒だとおもうな。

どんな立派な機能があるクラスだろうが最初で弾かれて落ちてこないだったら意味ないじゃーん。

Google App Engine

というかApp Engineってなに?

つかって何かやりたいとまだ思えてこない以前にApp Engineがまだ未チェック。

PythonGMO証券会社が外部APIを公開したのがPythonだった。うんこだった。

勉強するには至らなかったが、そんな特殊だったという印象はもってないな。

どうせLL、学習コストなんてないに等しいだろ。

plのcgiがあって、そっからasp,jsp,cfmという時代をえて、

php5,RonR,Pythonとかになってきているわけだが、時代は違えどひとつ覚えておけば学習コストっていう意味は殆どかわらないと思うよ。Oracleを覚えてからSQL-serverにいこうがpostgresqlにいこうがmysqlにいこうが一緒みたいなもの。

後継に位置するものであれば必ず似た機能はある。

むしろiis-ocxとかtomcat-Servletとか、ns-ldapとかそういう周辺が違うのであって、

基本的な部分に収まっているあいだは殆ど一緒じゃない?

今の時代みたいに殆どがApacheごにょごにょしただけで動く時代ならphpもRonRも殆ど変わらないと思うな。

所詮LL。

いまだってデータ処理はDBに任せたり、画面だってjavaなりFlashにまかせるじゃん。

LLがクラスに対応したときはおお!!と思ったし、どんどん進化しているのは感じる。

そんな感じで、どんどん面白いのがでてくればいいとおもう。

言語なんてこだわりもって選らんだところで変遷は激しいよ。

コールドフュージョンがどれだけすばらしいかについてプレゼンしてた坊を思い出すたびに涙を禁じえない。

いい音楽が売れるんじゃない。

話題になる音楽が売れるんだ。

 
アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん