はてなキーワード: javaとは
カネの力ねぇ。
デファクトになるにカネは必要だが、カネを得るには良い所がなきゃダメだろ。
つか、言語言語ってやる事出来る事は五十歩百歩だろ。要はやり易いか否か。
後は文法が単純単機能なことだな。言語としては単純で、標準ライブラリが多機能でそっちで何でもできる。それが一番。
無駄に文法多くて自由に書けるとかいったらカオスってクソになってくに決まってるだろ。
後付けライブラリが沢山、自由に選べる作れるってのもカオス。自由って何求めてるの?
C++はCの資産あるうちは良かったよ。でもそれだけ。あとに碌なライブラリ残さなかった。
javaはライブラリに力入れてたし、文法もまあまあすっきりしてる。PHPも近い所はある。
javascriptはダメだ。ただDOMがある、それだけだ。
pythonはライブラリがそこそこいい。ただ、言語自体は下手に色々ありすぎ。
それでもperlよりマシ。あれはCとshしかなかった時代だからこそのもの。
perlの後釜なんにするの?python以外あるの?つか、日本に選択権ないって言ってるじゃん。
つか、javascriptはDOMなきゃ意味ないし、javaはVMなきゃ意味ないし、PHPはHTMLなきゃ意味ないし、
C#はMicrosoftなきゃ意味ないし、Objective-CはAppleなきゃ意味ないし。
棲み分け出来てるのに、それ以外どうするの?
つか、SQLどうにかしろよ。
http://d.hatena.ne.jp/yamasawa8911/20120519/1337407233
だそうなので、俺が思うところを書いておきます。
基本的にMacのほうが羨ましいとは思うけれども(まあ、MacBookとかが欲しいんだよね、きっと)、でもきっとMacなんてフルスペックで使えるわけない。
周りの子に自慢したいとかいうのであるならば、あるいはどうしてもiOSアプリが作りたいというんだったら、それしか選択肢がないけれども、そうじゃないんだったら辞めましょう。
あとWindowsも、Windowsアプリとか、C#をいじりたいんです!っていう話であるならば、それに固辞するのも結構ですけど、そうじゃなくて、ITに行きたいなら、Windowsを捨ててLinuxにしましょう。
自分はGentooが好きですけど、ハードコアすぎるので、Ubuntuのほうがいいかと思う。
Linuxとか難しいんじゃないの……とか思うかもしれないですけど、Ubuntuは素晴らしいです。
Ubuntuは、知り合いの絵師のパソコンに入れたら、わりと好評でちゃんと使っていたので、それなりにパソコンが使えるならば、ちゃんと使えます。
プログラミング言語関係は、そのOSに依存するような環境を使いたいというわけではないのなら、Linuxにしておいたほうが、無難に使えます。
CとJavaでもいいとは思うんだけど、どちらもコンパイルが必要だし、コードを書くのに、ある程度の量(書きたいときに気軽に書くという感じではない、という意味)が必要なので、もう一つ言語を覚えた方がいいです。
PHP、Ruby、Python、Perl、Clojure、Haskell、お好きな言語をどうぞ。
ただ、PHPはどちらかといえばWebアプリケーションよりかな?という気がするので、PerlかRubyかPythonがいいかとは思いますが、お好みで。
自分はPythonのほうが好きですけど、Rubyのほうが割と見つけてもらえる確率は高いかもしれません。
あと、パブリックマンも「Railsでいこう!」というブログ名だったので、尊敬する人にあわせるならRubyのほうがいいんじゃないかと。
こわいおじさんににらまれたいならPerlのほうがいいでしょう。
ちなみに、Ruby on Railsは、割とWebサービスを作るのが楽になります。Herokuとかありますしね。Webアプリケーション周りということだったら、ついでにそのプログラミング言語で使われているメジャーなフレームワークとか調べながら勉強するといいかもしれません。
で、上記を踏まえて、エディタをちゃんと使いましょう。
パワーが有り余っているなら、総合開発環境であるところのEclipseでもいいんだろうとは思うんですけど、それはおっくう、というのならば、ちゃんとエディタの使い方を覚えましょう。
もう既にUbuntuを入れていると思うので、EmacsかVimを使いましょう。Vimのほうが好きではあるんですけど、キーバインドや、その他の癖を考えるとEmacsのほうがいいかなあという気がします。
Ubuntuを入れたなら、Geditというエディタも、Windowsのメモ帳の非じゃないくらい極まったエディタなので、それでもいいです。Windowsがそんなに好きなら、サクラエディタを使うといいでしょう。
あなたはどうやら貧乏だけれども、インターネットは使えているようなので、英語を読む練習をするといいです。
英語なんて全くわからない?ノープロブレム。そんなの適当でいいです。「なんとなくこういう意味かなー」とか、あるいは英語を読むだけでクラクラしない程度でいいと思います。
英語を読めると便利です。少しだけ多くの解説が読めるからです。
あと、英語が読めると「pdf Orailly」という魔法の言葉が使えたりするんですけど、何に使うかは想像におまかせします。
で、上記を踏まえてなんですが、コードを書きましょう。
コードなんて書いてなんぼです。「如何に優秀なハッカーになるべきか」という記事はゴロゴロありますが、そんなのは気休めに読むべきで、まずはコードを書きましょう。
なんだかんだいって、コードを書くのは経験がモノをいいます。量を書きましょう。そして躓きましょう。最初から質なんて無理です。
躓いたら、なんで躓くのか考えましょう。また、「こんなところが、コードを書く点で不満だなあ」と思うことがあれば、それも考えていきましょう。
偉い人がいろんなソリューションを考えてくれています。最初からそのソリューションがなぜ素晴らしいかなんて理解できないとは思います。躓いて始めて「ああ、だからこういう開発手法がいるんだ」ということを理解できるでしょう。
ついでに、コードで躓いたら、その躓いたところを、Twitterアカウントに積極的に発信していきましょう。
そのついでに、そのプログラミング言語を学んでいるTwitterアカウントをフォローしましょう。
あなたの呟いていることによっては、その人は興味を持ってくれるでしょうし、場合によっては手助けをしてくれるかもしれません。
あなたがサービスを立ち上げたら、積極的にRTをしてくれるかもしれません。
だいたいなれてきたところで、自分が作りたいものを作ってみましょう。そして公開してみましょう。できるならGithubで。
Githubに載せる理由は、ソースコードを公開したほうが、突っ込まれる率が高くなり、それに応じて勉強になるというところと、あとはGitというバージョン管理システムの勉強をしていたほうが、のちのちに便利だからです。SVNとかありますが。
あと、コードの引き写しに関しては、ブログに書くか、あるいはコードの断片を載せるという意味で、Gistに載せるという点もありますが、その辺りはご自由に。
VPSを借りてみましょう。あなたが貧乏だというのはわかっています。VPSとは、仮想専用サーバーのことです。
別に最初っから何でも揃ってるようなホスティングサービスでもいいんですが、サーバーを一から立てるという作業は、勉強にもなります。下手な技術書より余程勉強になったりします。
最初から借りると宝の持ち腐れとなると思うので、一つのWebサービスでもいいので、それを自分のマシン内でのみ見られるようなったら、借りるというのは一つの手だと思います。
VPSがつらいというのならば、Herokuとかもありかもしれないです。
コードを書くのが辛いなら、コードを読みましょう。人のコードはアイデアの山です。
自分の場合は、割と実例が無いと、挙動がピンとこなかったりするので、コードを読むことのほうが多いです。
特に、その言語で有名なライブラリとかいいかもしれません。ガンガン読みましょう。
あとは若さでなんとかなるでしょう。
ついでに、この文章を「テメーはなんにもわかってねえんじゃボケ」という言い方をして修正してくれる人もいると思うので、そういう人のアドバイスも真摯に受けとりましょう。
Eclipseがemacsやvimより優れている点を挙げてみよう。
・CVSリポジトリの構成を直接覗ける →redmineとかを使ったほうがいいんじゃないのか
・設定できる警告メッセージの種類が豊富。→警告そんなにいるのか
・復元機能が非常に充実している。 →バージョン管理ソフトがあれば普通だし
CVSのように以前の状態に復元すること、以前の状態の →diffじゃダメか、というかなんでいまどきCVSなの
ソースコードとの比較も容易。CVS(Eclipse標準装備)/Subversionプラグインにもこの機能は存在する。
・プラグインの数が豊富、膨大。 → 数があってもつかえるのは少ない
・プラグイン開発環境もEclipse自体に用意されている。 →開発環境を使って作る程のものでもなく、バッチファイルとかスクリプトでよくね
・ライセンス形態がCPLであり商用利用もしやすい。 →eclipse組み込んで出荷するの?
・上位版にWSADが存在する。 →WSDADってなに、WebSpereの残骸?
・Smalltalkで有名なVisualworksの影響を受けているため、
JUnitプラグイン(Eclipse標準装備)によるテストファースト、リファクタリングの他、eXtreme Programming環境が充実している。→Jenkinsのほうがよくね
・SubclipseプラグインによりSubversionにも対応できる。これはCVSよりも強力!→コマンドラインから実行するsvnコマンドを覚えておくとはターゲットでも動いて便利だよ
・Call Hierarchyプラグイン(Eclipse3.0から標準装備)によりメソッドの呼び出し階層を調べることができる。この機能は強力だ!→スタック見るだけのことじゃないの
・プラグインによってはURLを指定するだけでプラグインの自動ダウンロード、自動インストール、
自動アップデートができるためプラグインのインストールが非常に容易。→勝手に変わったら怖くない
・Eclipse上から直接Tomcat, JBossなどを再起動できるSysdeoプラグイン、JBoss-IDEプラグイン
という強力なプラグインが充実している。→えー、今頃Tomcat
・EclipseUML Omondoプラグインによりクラス図などを書いたり、
UMLによるModel Driven Architecture, リバースエンジニアリング
・RSSリーダープラグイン、MP3プラグイン、All The Newsプラグイン、
など様々なプラグインが充実している。→それ開発ツールじゃなくて携帯でやったほうがよくね
・PHP開発が可能なTruStudioプラグイン、Perl開発が可能なPerl E.P.I.C. プラグイン、
C/C++開発が可能なCDTプラグイン、AspectJ開発が可能なAJDTプラグインなど
他言語プラグインが充実している。→Java以外は所詮おまけだけどね
・そのほかにD言語プラグイン、C#プラグイン、Pythonプラグイン、JavaScriptEditorプラグイン、
CSSプラグイン, HTMLプラグイン, XMLプラグイン、(Jakarta)Velocity UIプラグイン、
Apache Antプラグイン(Eclipse標準装備)、非常に強力なApache Mavenを使うことができるプラグイン、
ゲームができるプラグイン、メーラとしてつかえるプラグイン、Wikiプラグイン、Hibernateプラグイン、
FindBugsプラグイン、CheckStyleプラグイン、Jalopyプラグイン、Sobalipseプラグイン、ソロプログラマープラグイン、
など様々なプラグインが充実している。→それぞれ単機能のソフトのほうが充実してるんじゃないの
どうしてもeclipseというなら止めないけど
ソフトウェア開発会社に新入社員として入社して1年とちょっと。
今俺は先行きについてものすごく悩んでいる。
こういうのは業界柄よくあることなので致し方ない、とは思う。
別にそれはこの際どうでもいい。
一世を風靡するしたJavaも今では一部でオワコンと呼ばれる時代だ。
新卒面接の時には「新しい技術を追いかけ続け、会社に貢献したい」とか言った気がする。
だが、その想いは入社半年を過ぎたあたりから見事に裏切られた。
レガシーコードとの戦いも覚悟はしていたが、俺が想定していたスマートなレガシーコードとの戦い方とはひどく遠いものだった。
テストなんてものは書かない。テストはExcel方眼紙で書かれたテスト項目が全てだからだ。
xUnitだとかSpecなんてものはもちろん知らないし覚える気もない。
極めつけはExcel方眼紙のテスト仕様書兼報告書と呼ばれる代物の抜けの多さ。素人でもわかるレベル。
足りなさそうな部分は経験則に則り適当にテストする。だがその結果は報告書には書かない。
バージョン管理なんてものも存在しなかった。上司に聞いたところ、あるにはあるらしいがCVSらしい。
だがそんなもの社内のどのチームを見ても使っている様子すらない。唯一のバージョン管理はファイルサーバー上の日付が書かれたフォルダーのみ。
とにかく現状がひどい現場だが、誰も変える気がない。
現場改善に向けていくつか提案もしてみたが、ただただ否定の言葉だけが帰ってくる。
なんとかしてやろうとも思い、個人的にいろいろやってみたものの、必要かどうかもわからない大量の雑務に押し潰された。
彼らには新しいものを学ぶ気なんて全く無かった。
会社を変える気も無かった。
俺はとにかく現場に失望した。憧れた業界はこんなものなのか、と。
同期や上司と気軽に話ができなくなった。
雑談でさえも話を続けることができない。
現場の問題点だとか新しい技術だとか業界の動向だとか、話したいことはたくさんあるのに。
彼らはそんな話に見向きもしない。
元々静かな現場であった上、コミュ障気味であることも災いし、その結果会社で話せる人はほとんどいなくなった。
雑談でもいいから話せなかった俺も悪い。だが今更何かを話にいく気にもなれない。
明日の飯を食うだけのために、1ヶ月、あるいは1年、もしくはそれ以上かかるようなつまらない仕事でも淡々とこなす。
生きていく上でのれっきとした一手段だとは思う。
だが俺はそんな生き方をしたいと思わない。
だが、現場ではどれだけ訴えても理解してはくれなかった。
俺は今、先行きに不安を感じすぎて俺自身が潰れそうになっている。
転職すればいいのかもしれないが、第二新卒枠がまだなんとか使えるとはいえ、今の実力でどこまで通用するのかわからない。
1年ちょっとで会社を辞めてしまう奴などクズだと見られるだろう。
その上就活もうまくいっていたほうではなかったから、その時の思いが蘇り、踏み出すこともできない。
八方塞がり。
きっとこの業界で自殺を考える奴の心境ってこんな感じなのかと、今日も1人日陰者としてExcel方眼紙の画面を睨み、与えられた作業を淡々とこなす。
はじめに僕はプログラムが苦手です。
ほんとに苦手です。
誰かがやってくれるんであれば絶対自分でプログラムしようなんて思いません。
寝る時もあーやってこうやったらこうなるとか考えてしまって睡眠不足になるし
9年くらい前のことです。
仕事でプログラムを使う必要があったので仕方なくparlの本を買ってきてシコシコやってました。
おなじみの「 hello world 」とかをモニターに表示させたりしました。
ものすごく簡単に理解してもらうためにこういう感じ書いてるんでしょうけど
ぶっちゃけ、本やネットの通り学習していくと大半の人が前半で飽きるか挫折します。
掲示板作ってどうするの?
自分に興味のないことをやるのって絶対続かないし覚えないんですよね!
僕もperlを学習したあとJavaを覚えようかなと本を買ってきて一通りやってみたんですけど
書かれてあるとおりに電卓とか作っても全く興味ないし作りたくもなかったので
全然頭に入ってきませんでした。
多分、すごい勢いでいろんなことを覚えていくと思います!(男ならw)
最近、そんなことをエロいWEBサービスを作りながら考えていました。
もうほんとに楽しくて、夢中になって自家発電・・いえ、プログラムしていました。
「はじめてのエロサイト」
「3日でできるエロ」
「できるエロサイト」
こんな感じのタイトルの本があったら僕だったら間違いなく買いますw
そんなわけでこれからプログラムを始めようと思っている人はエロい物をプログラムで作ってみてはいかがでしょうか?
そして、僕が今回作ったエロサービス(エロ動画検索兼ランキングサイト)
http://adultmovie-clip.com/ を作るのに必要だった知識について書いてみますので参考にしてみて下さい。
【今回作った物はどんなWEBサービスか?】
お気に入りの動画はログインなしでブックマークできるようにする。
人気ブログランキングのように外部サイトを登録できるようにし逆アクセスランキング機能をつける。
【必要な知識】
■html
http://www.tohoho-web.com/wwwbeg.htm
今回はhtml5でやってみた。
http://webdesignrecipes.com/semantic-html5-with-outline/
http://higashizm.sakura.ne.jp/jquery_first/
http://webdesignrecipes.com/jquery-beginners-guide-for-web-design/
http://helog.jp/javascript-2/jquery-javascript-2/1406/
■php
phpの基礎からできるからおすすめでかつデータベースの勉強もできる
エロデータの作成はスクレイピング(エロ動画データの収集)により行う。
例えば
該当ページをhtmlSQLで取得する。
http://tenderfeel.xsrv.jp/php/628/
http://plog.pya.jp/program/php/lesson11/sample01.html
ランキング部に利用、APIがあるのでリファラーでサイトのアクセス数をカウント
http://kota.oue.me/php%E3%81%A7google-analytics-api%E3%82%92%E3%81%84%E3%81%98%E3%82%8B%E3%80%82/
https://developers.google.com/analytics/resources/articles/gdataCommonQueries?hl=ja
■負荷対策
http://www.doyouphp.jp/tips/tips_apc.shtml
mod_evasive
DOS対策
http://www.makizou.com/archives/1341
mod_expires
http://www.ahref.org/tech/server/apacche/389.html
http://thinkit.co.jp/free/article/0707/2/6/
■サーバー関係
VPSを借りてこのサイトの通りやればWEBサーバーが構築できる。
できればメモリは1Gほしい。
無修正じゃなければKAGOYAのVPSでいいんではないでしょうか。
外部に公開しないのであればローカルでシコシコして下さい。
SSH・・・クライアント(Windows)からLinuxサーバーをリモート操作する
apache・・・WEBサーバー ※チューニング関係はググりまくって下さい。
mysql・・・データベース 全文検索を利用する場合、一旦mysqlは削除してsennaをインストール。インストールする順序に気をつける http://anond.hatelabo.jp/20110804021353
chkrootkit・・・rootkit検知ツール導入
■全文検索
経験上、サーバー代にもならないと思うので今のところ掲載しません。
以上です。
3月くらいから心身ともに疲れきっていたのでリフレッシュする意味で作ってみました。
エロサービスは以前にも何度か作っていてその時は非常に楽しくてわくわくしながらプログラムしていたので
それを思い出して、じゃあ作ってみようという感じです。
いろんな意味でw
学生が就職活動で、WEB系の会社で面接した時なんかにプログラムでどんなの作ったことある?と聞かれて
とか言っちゃうと「こいつできる」と思われるかもしれませんので(あくまで僕がそう思うだけですw)
これからプログラムをやろうと思ってる人はエロサービス作りで覚えてみて下さいw
きっとあっという間にできるようになりますw
さて最後になりますがこんなの作ってみたんでよかったら利用してみて下さい。
272 :名無しさん@引く手あまた:2012/03/07(水) 01:07:37.91 ID:ycorXG6u0
これで生き残れ
javaやlinuxは手間がかかる 一人でやるには手間がかかりすぎる 手間がかからないで一人で一括開発できて
人の多いところで直接販売できる仕組みが提供されてているメーカ製の言語だけやる ずばりiphone またはWindow 8 Metro App Store C#
やるならメーカー製の言語、洗練された仕様、脆弱性が少なく 開発ソフトが優れていて開発しやすく情報も多い
奴隷になりたければオープン系をやればいい 時間がかかり 人は多く 足の引っ張り合い 脆弱性が多く 癖があり
大規模開発で詳細設計しかやれない体になって年取ってぽいだ 独立もできない 手間のかかりすぎる仕様だから
派遣屋・IT経営者はその方が喜ぶ 分散開発で使い捨てしても独立されない 代わりはいくらでもいる ひどいピンハネ 嫌なら辞めろ
オープン言語、日本独自開発フレームワーク ガラパコ携帯 html5 Android java linux codezineやgihoでよく紹介されるステマ言語rubyやnode.jsとかやめとけ メディアで釣っておいて数年後廃れて自己責任だと言われ捨てられる
手間がかかり一人でできない 売る場所もない 金にならない 使い捨てられ続け 生きれない ずっと奴隷仕様のままだ ここから抜け出すにはiphone一択 またはWindow 8 Metro App Store(未確) C#
Objective-CやC#を身に着けるとサーバーからクライアントまでカバーでき人の多い場所でソフトを売る権利を得られる セーフティーネットを得ることができる
派遣切りされても会社辞めることになってもソフトを売って生きていける オープン言語にはそれがない
潰しのきかないガラパコ日本仕様、オープン言語の完全否定から始めよう!!
地方で安い土地を買いコンテナ型の格安高性能オフィスを建て(300万~500万)
http://d.hatena.ne.jp/nishiohirokazu/20120323/1332504404
最近、Webクローラクライアントを作るお仕事が増えた。WebクローラクライアントというのはHTTP(S)を介して様々なファイルをダウンロードして解析し、結果を溜め込むだけのプログラムである。ボットともいう。
クローリングの規模が大きくなると、クロール処理部と結果貯蓄部を分離する必要がある。クローラには様々なものがあるが、ものによっては特定のサーバに集中的にクローリングを行うこともある。このとき、1つのIPを使って集中的にクローリングを行うと、攻撃とみなされ一瞬でbanされてしまう。そこで、一見するとまったく関係なさそうなIPを複数確保し、それぞれにクローラーを仕掛けて走らせるのである。
結果貯蓄部は、要するにデータベースサーバであり、何を使用しても良い。クロール処理部とのやりとりに使用するプロトコルはRDB依存プロトコル(MySQL Socketとか)でもHTTPでもなんでもいいが、とにかくクロール処理部が解析した結果を随時溜め込めるようにしなければいけない。逆に言うと、まぁ、口さえできるのであれば何を使用しても良い。
問題は、クロール処理部に何を使用するかである。おおまかな要件は次の通りである。
これらの要件を満たそうとすると、ぶっちゃけJavaかPythonくらいしか選択肢が無い。
Java | Python | |
---|---|---|
HTTP(S) | HttpURLConnectionかApache HTTP Client | urllibかurllib2 |
環境依存性 | Write once, run anywhere (VMが最初からインストールされてるのはSolarisくらいのものだが、どんなOSでも大体はすぐインストールできる) | UNIXであればほぼ標準で入ってる、Windows用インストーラも用意されている |
キャッシュ機能 | JDK6にDerby標準搭載 | Python 2.5からsqlite3標準搭載 |
JavaとPythonの違いは山ほどあるが、簡単なことをやらせるだけならPythonはJavaよりも使用メモリが少なくなりがちなので、そういう場面であればPythonは(現時点においては)最強の座に君臨すると考えられる。
もう終わりだろうから言うけど、すげー苦手だった
他でもやってるとこあったけど、たしかJAVAスクリプト切ればつかなかったんだよね
それが確かみくしはだめで、監視されてるようでやでやで仕方なかった
こういうのが何でいやかって言うとログインしてるのに何で来ないの?みたいな空気がどこのマイミクでもあったからだ
Uzeeeeee!!!
私たち友達だよねーみたいにいっしょにトイレに行く女子中学生かつーの
なんかもうめんどくさくてめんどくさくて行かなくなった
アプリがどうとか言われてたけどそんなのどうでもいい
ミクシの外に秘密を出すなみたいな暗黙のおきてみたいのもうざかった
そこまでやるなら実際にあったほうがよくね?
ああいうのが主流になるとやらざるをえない空気もあってそれもうんざり
いつでもやめられる感じはツイッターの方がいい
しかしやっぱりお友達強要空気が好きな人がいるのでそういうのからは距離をおきたいキモイ
追記
あーついでに言うと
はてブの「お気に入り」機能って、オフにできねえかな(お気にいられてもお気に入りにできないようにオフ)
こっちは別にお気にいられたくないし、お気にいる人もいないので邪魔邪魔邪魔
お友だちほしくてぶくましてるわけじゃないし(単なる情報整理)
それ以前に、再発したらこの規模の災害の責任とらされる可能性のある全自動プログラムを誰が書くんだよ。
で、金のためのプログラマにやらせんのか?って話でFAだとおもうが?
海外?テロというか戦争に備えて意図的に暴走機能を盛り込まれる可能性は?まさか、イランとかでやられたことが日本で起きないとはいわんよな?実例があるんだから。
まで想定内になるぞ。そこまで想定できるトップが東電にいるとはおもえんが?ただでさえ文系会社で原発関連技術者は社長になれないとまでいわれてるのに
ましていわんや、ソフトウェアエンジニアなんて本気で土方扱いだろ。無理。
それに・・・まさか、原発関連ソフトをアジャイルでとかRubyでとかいうわけにはいかんだろ。技術者を選びすぎる。
Java? そのJavaのVMのバグ取りを誰がするんだと。C?C++メモリ管理できるの? だからなぁ。
http://www.yamdas.org/column/technique/hatenablog.html
なお、タイトルに PART I とあるが、このネーミングはメル・ブルックスの『珍説世界史 PART I』にちなんだもので、PART II 以降は存在しない。つまり、あなた(ソフトウェア企業)が絶対すべきでないことは、Joel Spolsky にとってこの文章に書かれることだけなのだ。それは何か?
まぁ、そんなわけないんだけどね。
「最近のはてなの体たらくへの失望感に名前を付けたい」というだけの文章にマジレスするのも我ながらどうかと思うし、気持ちは分からなくもないんだが、最近は「はてブ」以外全く使ってない俺でも、長年お世話になってきたはてなに対してそれなりに愛着というものがあるわけで、ディスられるばかりの流れに少しばかり反抗を試みたい。これは、それだけのエントリだ。
というわけで、以下に書くのは、技術の話でも倫理の話でもない。どうか気軽に読んでほしい。
実例を挙げる。
今やワールドワイドな影響力を持つ勝ち組ソーシャルサービスのTwitterだが、彼らは、ここ数年でバックエンドの大半をスクラッチから完全に書き換えた。しかも、RubyからJavaへと、使用言語すら変更してしまった。
http://d.hatena.ne.jp/teppei-studio/20110709/1310168002
もう一つ。Tumblrも、LAMPアーキテクチャからJVMベースへ切り替えた。その過程で、Twitterがオープンソース化した技術を取り入れたりもしている。
http://blog.kyanny.me/entry/2012/02/19/002256
『「古いコードはクズだ」というのは錯覚だ』というJoelの意見は、一面では正しいが、他の面では間違っている。なぜなら、あるソフトウェアに求められていること(要件)は、時間と共にどんどん変化するからだ。
書き直そうが、書き直すまいが、一番ダメなソフトウェアとは「ユーザの要求に応えられないソフトウェア」だ。規模や環境の変化によって古い技術の技術的限界に直面したり、ビジネス環境の変化に追随する必要が出てきたのなら、「スクラッチから書き直す」のは立派に一つの選択肢だ。
はてなダイアリーの最初のバージョンがどういうものかは俺もよく知らないが、おそらく「LAMP」がエッジなキーワードとして持て囃されていた頃に書かれたプロダクトなんじゃないかな(間違ってたら突っ込みを)。それから時代は下り、Ruby on Railsに代表されるCoCなフレームワークの登場を経て、今や大規模分散や非同期を前提としたアーキテクチャが当たり前の時代。当然改修はしているだろうけど、MySQLを職人芸で負荷分散していた時代からは大分遠いところに来たのは間違いない。
何より、はてなダイアリーといえば「はてな記法」とカスタマイズの自由度の高さがウリだったわけだが、これらの存在が、今や機能追加や改良の妨げになっているとしても不思議じゃない。
はてなブログ開発の動機として「今どきの技術で、最初からやり直す」というのがあるのは間違いないが、それは「スクラッチからの書き直し」だから悪手なのだろうか。結局のところ、レガシーコードのメンテナンスを続ける場合と比べてどちらがより低コストか、という話の結論によるとしか言えない。
はてダのソーシャル要素といえば「トラックバック」と「idコール」と「キーワードリンク」だったわけだが、全部Twitter(とTogetter)に持っていかれたよね、という話。
だから、「はてダver.2」や「ブログ2.0」を望む声が大きいのは理解できるけど、ぶっちゃけ、そんなもんに開発リソースを突っ込んでも勝ち目なんか無い。んで、それに代わるアイディアを持ってる奴はどこにもいないと。だから、既存コードの改良ではなくスクラッチから書き直し、スモールスタートでフィードバックを受けながら方向性を考えていく、という方向性はそんなに間違っていないと思う。
ただ、現状を放置すると「それTumblrでできるよ」という話にしかならん、というのはその通りで。それ以外だと、もしgithubがblogサービスを始めたりすると、かなり客を持っていかれるのではないかという予感はする。いっそのこと、Tumblrのデッドコピーから始めるのが一番早いのかもしらんね。
少し別の話を。
これは、Twitterのgithubレポジトリだ。上でも書いた通り、Twitterはサービスをスクラッチから書き換えた。で、その過程で開発した内部向けのフレームワークを、どんどんオープンソース化している。彼らが、内部の技術をきちんと体系化して再利用可能にしていることの証左と言える。
一方、はてなのgithubレポジトリ。正直、サンプルとかプラグインばかりですね、と。
色々と理由はあるんだと思うが、一つ思うのは職人芸頼りで自分たちの技術を体系化するという部分が弱いんじゃないか、ということ(はてな発のオープンソースで広く使われてるのって何かあったっけ?)。
先ほどから散々「書き直していい」と主張しているが、誰かが言っていた通り、技術の本質を捕まえきっていない状態でフルスクラッチをやっても、失敗する可能性は高い。はてなブログがどちらなのかは、中の人にしか分からないことだけど。
はてなが経営的にあまり状況がよろしくない、という推測はおそらく当たっているのではないかと思う。
タイムラインで、誰かが「まっとうな方法で収益化する方法を真面目に考えるべきだった」と言っていたのを見た。それをしていれば、今回のような事態を招くことは無かったのだろうか。
だが、「まっとうなビジネスモデル」とは何だろう。実際問題として、ここ最近成功しているネットサービスのビジネスモデルで「ターゲティング広告」と「マスなユーザベースから抽出したビッグデータを解析して売る」以外で何か有力なものはあっただろうか。FacebookにせよTwitterにせよ、収益化の原動力はユーザ行動解析だったりするわけだ(彼らがオープンソース化に積極的なのは、インフラ技術が差別化の源ではない、という面もある)。
まぁ、あとはガチャだが、どちらにせよ現状では高木先生の逆鱗に触れるようなものしかないよね。
そんなわけで、それらに代わる第四のマネタイズモデルを思いついた人は、ぜひ近藤さんに教えてあげると良いんじゃないかな。あればだけど。
今後はてながどうなるかは分からないけど、一つ希望したいことがあるとすれば、故伊藤計劃氏のダイアリーがこの先も保全されることを望みたい。
それは、エントリを全て魚拓しろ、という話ではもちろんない。彼の生前に書かれたエントリは、当時の「はてな」という生態系を構成する一部でもあるわけで、そこから切り離して文章だけをアーカイブしてもあまり意味がない。
脆弱性で話題になっているAndroidアプリのES File Explorerですが逆アセンブルしてみたらなんか大量に外部ライブラリが混ざってました。
どこかに著作権表示ありましたっけ?ってかLGPLも混ざってるんですが。
色々含まれているけれど一部の例