言語の歴史は人類の歴史。そして人類はコンピュータを言語で動かすようになった。

なんでAccessが嫌われるか

»

前回、Accessに関するコラムを書いてみましたが、ネットではAccessに対する否定的な意見も多いです。「Access使われるとゴミが増える!」みたいな意見も見かけました。この意見には私も同意です。Accessでシステムを書いても、役目を果たせばゴミです。ゴミにしたくなければにコピペで使い回さず、一から書き直すののが正解だと考えています。ここではっきりと言っておきます。Accessを使うからゴミが増えるのではありません。ゴミを書いているのは人間です。ゴミをばらまく人は、Accessを使おうと、Excelを使おうと、ゴミを書き散らかします。

ただ、AccessやExcelのVBAを問わず、誰でも最初に書くコードはゴミレベルです。ゴミから脱するかどうかは、何回書き直したかというそれだけです。コードも生き物も同じで、新陳代謝しなければ腐って死にます。自分の書いたコードがゴミと言われたくなければ、コードを何度も書き直して、自分が成長するしか方法は無いです。AccessやExcelでゴミが出やすいのは、一度書いたコードを末永く使おうとするからです。確かに、一生懸命頑張ってコードを書いて、やっとの思いで動くようになったものです。相応に愛着はあるでしょう。でも、使い続ければ陳腐化してゴミになります。定期的に書き直しましょう。

まず、開発の業務をやったことのない人がAccessでシステムを書くと、行き当たりばったりで書いてしまいます。こういう書き方では、一度使ったら壊れてしまうような粗悪品みたいなコードしか書けません。しかも、AccessはExcelより高度な機能がたくさん備わっています。その分、ぶちまけられるゴミの汚さもひどくなります。これがITをやってる人が素人の作るAccessのシステムを嫌う所以かと思います。私も人の書いたAccessは触りたくありません。使い続けるとするなら、一から書き直します。人の書いた訳の分からないAccessのお守りはストレスが溜まります。これも、Accessが嫌われる要因の一つでしょう。

自分がAccessやExcelで苦労して書いたシステムをゴミ呼ばわりされるのに腹を立てる方もいるでしょう。私もExcelやAccessでシステムを書くことはよくあります。ただ、過去に書いたものを振り返ると、膨大なゴミみたいなものを書いています。ゴミと言われるのが嫌なら、「百回書き直せ」としか言えません。現に、開発の現場で一流と言われるような人は百回書き直すくらいのことはやっています。コードの品質は積み重ねの上に成り立ちます。その場の頑張りと達成感だけでそういうレベルと同等と思い込むと、大きな落とし穴にはまります。

Accessのシステムをクソ化させないためには、個人か数名の利用に留めることがベストだと考えています。ちょっとVBAが書ける程度の人が、継続的なメンテナンスを考えることは難しいです。また、要件定義もせずに大人数が使える品質のシステムは書けません。何かあっても手数でリカバリできる範囲での使用に留めましょう。ミスがあっても謝るくらいで済みます。中規模や大規模で活用したいのであれば、クラウドのシステムでも使ってください。AccessやExcelはそういう用途のツールではありません。やればできるかもしれませんが、そのくらいのスキルがあるなら別の言語でシステムを書いた方が確実です。ツールは用途に合った使い方をしましょう。

Comment(8)

コメント

匿名

別にAccessが悪いモノとは思わないがわざわざ使うか?と聞かれたら微妙
性能が云々ではなく実務上のシチュエーションとして活かせる場面が殆どなかった
小さなツールのデータ保持用に.mdbを入れた記憶がある程度


SQLの練習等で使う分には一番手軽で役に立つとは思う

たこ焼き

Accessを他のプログラム言語に書き換えても成り立つと思いました。

リファクタリングを嫌がる企業は多いですよね。

moldman

正直AccessはITエンジニア未満の方が簡単に触れるDBという印象。
これからエンジニアになりたい人が取っ掛かりとして取り組むにはちょうどいいと思います。
ただAccessがゴミ化しやすいのは保守性の低さが原因だとは思います。何がどこに書いてあるかが非常に分かりにくい。これはマクロ、これはVBA、これは画面に埋め込まれたSQL。とか。慣れればある程度はわかりますが、たまにこんな所に隠れてやがった!ってのが現れてきますよね。
それがイコール「他人が作ったAccessは触りたくない」につながるのだと思います。
Accessで何度も書き直すくらいなら他の言語やDB触った方がいいでしょうね。

匿名

インパクトのあるタイトルでクリックさせ(俺も釣られた)いざ開いてみると、内容の無い記事。
タイトルの「なぜAccessは嫌われるのか」の答えに全くなってない
もっとOfficeとの親和性とかその辺突っ込んでくると思ったら、VBAはプログラム初心者でもかけるからゴミが生まれる、程度の理由しか書いてない
そんなこと言ったら、業務アプリで比較的よく使われる.NetFrameworkだって初心者が書いたらゴミみたいなコードできる。Web系でいえば初心者に書かせるとサードパーティーのスタイルシートインストールしまくって、UIがぐちゃぐちゃ。


-- Horus --
コメントを別立てするのも面倒なので、こちらに追記します。


言い分からするに、インパクトの無いタイトルで内容を予想させてクリックさせるのが正義なんですかね?私から見ると、あなたがタイトルに対して勝手に内容を組み立てて、それと違っていたから機嫌を損ねているように見えます。思考回路が子供です。


> もっとOfficeとの親和性とかその辺突っ込んでくると思ったら、


そもそも、AccessとExcelやWordと連携することはあまりないです。やったとしても、せいぜいがExcelへのインポートかエクスポート程度です。Accessを使ったことはあるんですかね?その程度の知見で、「ぼくの考えた最強コラム」を語られても、失笑でしかありません。

匿名

Accessだと中規模のシステムをつくるスキルに達していない人でもとりあえず動くものが出来てしまう、ってところがポイントだと思う
他の言語やフレームワークだと、学習コストの問題で、設計や保守の概念を知ってる人しか開発を始めることができないのでは

匿名

問いに対する回答がない。
釣りタイトルと言われてもしょうがない。


- Horus -
二つ、はっきりと書いてますよ。何も読んでいないと言われてもしょうがない。

おたみ

まぁ、いわゆる個人/小規模事業者向けのツールであって大規模システム向けのツールではないですからね。>Access


ただ、ゴミになることが分かっているコードでも書くすべを知っていると小遣い稼ぎにはなります(笑)

偽名

「誰に」嫌われるかが抜けてるから判りにくい話になっちゃうのでは?


ユーザーにとっては「道具なんてどーでもいーから、なんか動いて定型出力出来れば何だっていい」し「こっちの言ったとおり都度データが出せれば何使ってようが関係ないから、言われた納期にExcel頂戴」程度なんですよ、開発側がどんなに口酸っぱく説いてもね。


どっちかと言うと「ゴミにならずに仕様を回収して何とか出来る作り方」を押さえておけばSQL系DBのフロントエンドとして「開発環境のバージョン違いの苦悩」を感じずに環境をアップデートできるんじゃんいですか? ただし小規模環境に限る、ですけど。
ユーザー任せにしてゴミが増えるのはNotesでもあった話なので、開発環境に限らないと思いますよ。


- Horus -
> 「誰に」嫌われるか


いちいち詳細全部書いていたらコラムとして成り立たなくなるし、書いたら書いたで違うと騒がれます。むしろ、想像の余地を残しとくことで読み物として成り立っていると認識して頂けると助かります。


> ユーザー任せにしてゴミが増えるのはNotesでもあった話


おもしろそうなテーマなので考えてみます。

コメントを投稿する