はてなキーワード: 予約語とは
東京電機大学を卒業後、VisualBasicを用いた会計支援ソフトウェア開発、自社サイトの制作に従事するなど、アプリケーションエンジニア、フロントエンドエンジニアとして5年にわたって業務をおこなって参りました。
今後は、その中で得られたVisualBasicの予約語暗記の実務経験を活かして、VB.NETによる開発に取り組んでいきたいと考えています。
VisualBasicを用いた会計支援ソフトウェア開発
VisualBasicを用いた内製ソリューションの引き継ぎ・バージョンアップ開発。
特に、複数の法定通貨をないまぜに扱うため、レート換算と端数処理が至るところに発生する困難な会計処理でした。
社長がホームページ・ビルダーで作成したプロトタイプを元に、HTML5/CSS3で再構築した自社コーポレートサイト。
プロトタイプのコードは全く利用せず、スタイルデザインのみを参考にいちから構築しました。
また、その2年後にスマートフォン対応も行っており、SCSSやflexboxを利用したモダンなHTMLコードを構築できたと自負しております。
プログミングを勉強で英語のサイトを見ていると分からない英単語が多い。
基本の予約語ならあるていど分かるが、統計学・機械学習・グラフ作成で使われている英単語は専門用語としてつかわれているケースがあるために、意味が掴みづらい。
少しググると適当な英単語を羅列しているサイトもあるようだ。Qiita, 会社のサポートサイトなどでも。
一方で、ウェブ上の英単語集の中には熟語や慣用句は少ないようだ。
こうなると、頻出英単語を抽出するプログラムを作ってみようかとも思うが。
探したら、あるのかな。。(実際、オライリー本にも、そんなサンプルコードあったし)
しかし、プログミングを習得したいのだからまずは日本語訳の本を手に取って概略をつかむべきカナとも思う。
実務でこなせるようになるには、いずれは英語でプログミングの意味をとれる必要がある。
迷っているうちに、日が暮れそう。
これまでの経験から、日本語で、学びたいことの概念を掴んでからが、自分には合っているのかな。
動くものをつくらなきゃ、その一方でもっと楽にプログミングできるライブラリーは英語でドンドン出てくるのだろうか。
器用な人はサクサク進んでいそう。
swift playgroundとかswiftが知ってる人フレンドリーではあるけど、初心者には分かる仕組みになってるのだろうか?
SI業界に入った子がSQL書けとか、ES6書けみたいなこと言われたってハードル高すぎないかねぇ。
AWSとかアラフォーの俺も全然分からない。awscliでスナップショットとれるなんて今日初めて知ったよ。
今のプラグラミング言語って色んな言語を取り込んで高機能化してる訳じゃない?なんでそんなことしてるのか分かんないと思うのね。
伝わる人に言うと、JavaだってAutoBoxingが前提だったりするわけじゃん?42+"円"とか書いちゃう訳よ。コンパイルエラーにならないのも頑張りすぎだろと思うけど。
あとmaven使えば色んなライブラリ使えるわけじゃん?今ならGradleなのかい?よくわかんねぇけど。俺はよく分かんないけど、使いこなせてるのかね?
AWSもES2の説明はできてもS3の説明できる先輩がどれほどいるか。ストレージや仮想化の知識が前提にない人は説明はキツいなと。AIMとか混ざると地獄よね。
プログラミングに戻ると、今どきの言語って最先端で書かれると記号や謎予約語が多かったりするんだけど諸先輩方は大丈夫かなと。
WordやHTML+CSSで文章を書くのと比べて、桁違いに書きにくい。
お蔭で後年SQLに出会った時は、記法のセンスの素晴らしさに感動したわ。
何故なのかは知らないが、バックスラッシュに中括弧に$に^に、fracみたいな覚えにくい予約語のオンパレードにその他諸々、記法があまりにも暗号的すぎるんだよ。
マークアップ的要素があるくせに、XMLやHTMLよりも「どこからどこまで」を遥かに把握しにくいし。
あと、記法の問題だけじゃなく印刷に持っていくまでの処理もマジめんどくさいわー。
WYSIWYGを捨ててかかってるだけでも十分めんどくさいのに、dviにしてレイアウトを視覚的に確認しようとするだけで「文法間違ってます出力できませーん」とか、いい加減にしろアホ!と何度思ったことか。
こういうTeX使ったことある奴なら当たり前に経験している使いにくさを「インターフェース」と言ったのに、エディタの問題などと矮小化して捉えられるのは、正直言ってメチャクチャ不愉快だわ。
てか、viでもemacsでもなんでもいいけど、こんなのどんなエディタ使っても使いやすくならないだろ。
いろいろツール入れれば多少は負担が軽減されるのかも知れないが、そんなふうにいちいち環境整える手間を掛けてまでTeXで書く理由なんて微塵も感じられないから。
車の運転がAT全盛の時代にあってMTに凝るくらい趣味的かつ滑稽な話だよ、TeXは。
「C言語に対する最新最良の処方は、可能な限りC言語を使わないこと」というのは有名だが、これはそっくりそのままTeXにも当てはまる。
SQLは意識して書かないと死ぬほど読みにくくなるのが気に入らない。
前の職場には何もかも全部大文字で表記し、ろくに改行も入れないバカが居て死ぬほどつらかった。あろうことか、読みづらいクエリを書ける自分にプライドを持ってるっぽかった。ああいう奴とは二度と仕事をしたくないよ。
SELECT COL0,COL1,COL2 FROM TABLE0 WHERE COL0=1000 AND COL2 IN (100,102)
これを少しでも読みやすくするために予約語を大文字、カラム名やテーブル名を小文字で表記している (カラム名・テーブル名が大文字で決め打ちされているなら、予約語を小文字で統一している)。
SELECT col0,col1,col2 FROM table0 WHERE col0=1000 AND col2 IN (100,102)
しかしこの方法も万全ではなくて、例えば複数のテーブルが関連するクエリが
SELECT t0.col0, t0.col1, t0.col2, t1.col0 FROM table0 t0 LEFT OUTER JOIN table1 t1 ON t0.col3=t1.col3 WHERE t0.col0=1000 AND t0.col2 IN (100,102)
みたくなってしまう (テーブル名のtable0、仮名t0、カラム名col0が全部小文字になっているため、なかなか読みづらい)。
皆さん、どうやって工夫されてますか?
定期的に思うんだけどプログラムで無理な英語にせず日本語にすればいいのにって思う。
(実践はしていない)
日本語で書ける言語使うんじゃなくて変数名や関数名がUnicode対応で日本語書けるもの。
○画面に表示する時
フレームワークや言語にもよるけど表示するときに英語の名前から日本語の名前に変換して表示って手間があるものがある。
最近見かけた例だと.NETでプロパティの属性に表示名書いて表示するときに取り出していた。
最初から日本語だとそのまま表示でいいことが多くて一段手間が省ける
次に他の人の英語化したのを見る時。
その人の英語力にもよるけど、動詞名詞が変に混ざっていたり、sがついてたりなかったり、そもそもchildsみたいな謎の語があったり。
そこそこできる人同士でも、「私はニュアンス的にこっちの単語」「僕はこの単語のほうがいいと思う」とかある。
相手の書いたところがわかりづらいのはもちろんだけど、プログラム的に同じ意味なのにクラスや関数によって呼び方違うと辛い。
かといって全員に日本語と英語の対応を先に渡しておいて統一しようというのは大変すぎる。
(日本語だと仕様の時点で日本語で書いてるからまぁおかしなことにはそうならないはず)
----
次にデメリット
軽く調べた感じ主にこの2つな感じ。
○IME
と思うけど、実際チャットやこういう文章書いてて英語が出るときに割りと頻繁に押してる。
ほぼ無意識でやってて意外と苦じゃない。
短いとF10変換で半角にすることもあるけど、キーボードのタイプ数カウンタとか入れてみると半角全角キーはけっこう上位にいた。
それに、なんだかんだコメントは日本語で書くことが多くて、他の人と作るのならこまめにコメント書いてる。
そうなると全角半角の切り替えは普段からあるもので、あんまり気にするほどじゃない気がした。
最近じゃIDEやエディタの補完が優秀だし、日本語にするにしても「最初はjから始める」とかルール入れておけば「j」って打ってあとはスコープにあるいくつかの候補から選ぶだけで全角にしなくていいかもしれない。
githubで公開したりとかライブラリで再利用してもらうときに日本語じゃ使ってもらえない。ってことみたい。
私が日本語にすればいいじゃないって思ってるのは、ビジネスロジックというかそのアプリケーションの固有名詞みたいなところ。
「足し算」って関数名は 「add」 でいいと思うし、配列のそれぞれは element とか item とかそういう一般的な英単語でいいと思う。
具体例がいいづらいけど、業務システムで表示する金額の名前とか、日本語独特なものとか、一般的な単語じゃなさそうなの。
こういうのを日本語にしたいってわけなので、ライブラリ的な共通なところは英語で良いからgithubで公開する範囲も英語のものでいいと思う。
ただ、最近はやってるマストドンとか、ライブラリ的なものじゃなくアプリケーション自体をgithubで公開する場合はできない気がする。
でも、海外も対象にしてるものだと日本語特有なせいでわかりづらい英語になる苦労とか少なそうだしそういうのだと英語でいいんじゃないかな。
----
長くなったけど、まとめると、
業務システムの固有名詞とか日本語特有なものとか無理に英語化してよくわからないことになってり、見づらくなるくらいなら日本語使えばいいんじゃないかな
ということ。
まあ思ってる割には実践してないので、やってる人がいたら良かった・悪かったとか聞きたいなと思ったのが書いた理由。
帰ってきたらすごいブクマついてた。
絶対「自分でやってから言えよ」みたいな意見来るだろうと思って今日の空き時間に日本語行ける言語調べたり軽く日本語使ってコード書いてみたので、そのあたりと目についたコメに答えてみる。
まず、思いの外日本語プログラミング言語上げてる人がいたので、うまく伝わってなかったぽい。
具体例上げずにサッと書いたらからかな。
あと自分もわりとするけどタイトルだけ見て中身見ずにコメントしてた人もいるだろうなー。
これが、などしこやひまわりや、BF系のmisaやら北斗のあれやらうにゃーとか色々な「構文など最初から日本語を前提とした言語」ではないってこと言ってた。
---
最近の主要な言語ならだいたい Unicode 対応でしょと思って環境があった言語を試した結果はこうだった。
JavaScript/Python/PHP/Scala/Kotlin/C#/Go/Swift
rust と Lua は無理だった。
rust は確か前に、変数名が ascii 文字だけなことに日本以外のどこかの国からUnicode対応にしてって多くの要望あったみたいな記事があったし将来的に対応するんじゃないかなって思ってる。
実際に今どんな状態かは知らない。
その記事のコメントとかでみたけど、日本語以外は割りと自国の言葉を使ってたりするっぽいね。
VBA を上げてる人がいたけど、私はそこまでのはみたことない。(幸せ者っぽいな)
稀にエクセルマクロいじるときに使い方ググってて出て来る、解説してるページで関数名が日本語なのをたまに見るくらい。
パット見なんか気持ち悪い感はあるけど、読んだときのわかりやすさはけっこう大きい。
---
○使ってみて
大規模案件に使ってみてこその問題もあるだろうけど、簡単なスクリプト程度のを日本語にしてみて気づいたこと。
割といける。
PHPて言語は変数は全部$からはじめないといけない欠陥言語。
まあ変数のみのgrepのしやすさや予約語キーワードを変数名に使えるからメリットもある。
だが、$って打ちづらい。
Shift+4ってすごいつらい。
に比べて全角半角キーってちょい遠いけどそこまで苦痛じゃない。
GoogleIMEだけど、多少のタイプミスは補完で修正してくれるし、予測変換が優秀だし。
IDE重いから補完機能のない軽いエディタで書くようなときなら、IMEのおかげで英語の変数名で書くより速度は早いと思う。
---
少し前に知人から言われた日本語のデメリットを思い出したのでそれも触れとく。
「仕様変更で言葉変わったときに日本語だと全部書き換えないといけないよ。英語だと別にそのままでいいし。」
英語わからない人が、英語を言葉とみなさずただの記号として考えてるから、っていうような発言。
仕様変わって変数名まで変えるのは面倒なのはわかるけど、あとからコード読む人が英語で見て意味不明になる。
英語と日本語の対応をコメントに書いたとしても、全然意味の違う英語があるのは混乱でしかない。
こういう考えの人がいたら本当にやめてほしい。
---
あとは気になったコメントについて書いてく。
表記ゆれとか方言とか言い回しなどについては、全部日本語にするとあるだろうけど、私が想定してるのは直感的に英語にならないような固有名詞とか。
年金の例も○○年金というのがいろいろあって、全部英語だと嫌になってくるしよくわかる。
こういうのを日本語にしたい。
なので年金額を取得する関数で「年金額を取得する」「年金額を取得」「年金額を取り出す」とかの表記を迷うんじゃなくて「get年金額」でいいと思う。
特にDBにある項目だと仕様とかで先に言葉が決まってることが多いだろうし。
---
見た目について。
見た目が残念とか見づらいというのは同意。
見た目が悪いというのも全部英語っていう前提があるからで1ヶ月も日本語のコード見ればなれるんじゃない?って思う。
---
へとヘ
これはありそうな問題。
ただ、IDEを使う前提なら未使用変数のエラーとか、選択したときに色が変わってないとか、割と気づけると思う。
lとIとかアルファベットでもあるけど、IDEや高機能エディタ使うと困ることはほぼなくなった。
---
私が日本語にしたいような固有名詞をローマ字化してるプロジェクトにであったことはある。
それにローマ字のほうが「ん」でnは1つか2つかや、ヘボンorローマ?という日本語より表記が揃わない問題ある。
特にローマ字の場合自分がキーボードで打つ方じゃないと書きづらいのでそろえてもらうのに抵抗がある。
---
海外向けとか海外の人と一緒に作る系なものって最初から英語で困らない単語ばかりだと思う。
そういうのは対象外。
今回いいたいのは、元から日本しか対応してないような業務システムなど。
そういったところの固有名詞が日本語になったからって、困ることはないはず。
日本でしか使われないもの・海外向けにするにしてもフルスクラッチで作り直すことになるようなもの、
---
テストだと日本語が使ってる人多いのかな?ブコメのスタートップだし。
---
長くなったけど参考になる意見もいろいろあって助かった。