Movatterモバイル変換


[0]ホーム

URL:


はてラボはてな匿名ダイアリー
ようこそ ゲスト さんログインユーザー登録

「予約語」を含む日記RSS

はてなキーワード:予約語とは

2025-10-23

慣用句予約語みたいな立ち位置持たせるのやめろよ

赤ちゃんが安らかに眠る」本当に字義通りのことが起こってるのにそう書いたら死者だと勘違いするとか慣用句がわかってないとか言われるの言語の欠陥だろ。

無言の帰宅若者がわからないとバズってたそうだが問題若者慣用句としてそれを知ってるかどうかじゃなくて、字義通りのことが起こってても慣用句に同じ表現あったら避けなきゃ書き手が悪いとみなしてくる受け手側なんだよな。

いちいち別の表現捻り直さなきゃいけなくしてるっていうこと、つまり慣用句に対して予約語並みの特別待遇をしてるのが問題

dorawiiより

-----BEGINPGP SIGNEDMESSAGE-----Hash: SHA512https://anond.hatelabo.jp/20251023185834# -----BEGINPGP SIGNATURE-----iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaPn8SwAKCRBwMdsubs4+SGzsAP9km2RcWr68h6hZlI1JFspztpz+vVZGU5kV5AkZjAaEJwEAgPjYDU7a3mLBU7O4w7L1P4UHcUu7pT/BMDnfWCfm0gI==Llp0-----ENDPGP SIGNATURE-----

Permalink |記事への反応(0) | 18:58

このエントリーをはてなブックマークに追加ツイートシェア

2025-07-05

生成AIを利用したプログラミング初級者向けの温故知新提案

はじめに

ここで言う「プログラミング初級者」とはプログラミング記述が上から下へ向かって順番に処理されること、条件分岐ループという概念があることを理解しており、RPGゲームが作れる「RPGツクール(現RPG Maker)」や学童向けプログラミング環境Scratch」、「ナビつき! つくってわかる はじめてゲームプログラミング(ナビつく)」、ADVゲームが作れる「吉里吉里(もしくは吉里吉里2)」、過去BASICやC、HSPJavascriptあたりでプログラミングへ挑戦し挫折したなどなど、ある程度の「プログラマブルロジック」構築の経験がある者を指します。

前日談(初級者は読まなくて良いです)

ある時、筆者はふと思いました。「生成AIはなんだかんだで膨大なテキスト情報を処理している事がキモだよなぁ」とありきたりなことを。

そして、同時にプログラミング初級者の弱点として「現在記述されているコード管理においてテキストと実際の処理フロー脳内で一致しない」「プログラミング言語ごとに定められているルール関数予約語の把握が困難」なのが問題とも考えました。

前述したプログラミング初級者の弱点の考え自体車輪の再発明であり、「Scratch」や、より高度な「UML」が既に存在しており、特筆すべきことは何もありません。

しかし、「Scratch」や「UML」、なんなら「RPGツクール」や「吉里吉里」などに無い点として、現代では自然言語処理が大幅に向上した生成AI実用の域にまで到達しつつあるのが従来とは異なる点でした。

まり自然言語を混ぜ込みやすテキストベース言語、かつ、処理を記述するとフロー視覚的に理解やす言語可能であれば情報量が多くて一部の界隈で広く使われている言語があればプログラミング初級者も気軽にプログラミングできるのではないか?と発想しました。

そこで前述の条件を満たす1つの言語へ目を付けました。

本題

コンピュータ(コンパイラインタプリタなどソフトウェアを含む)が解することができる言語にはプログラミング言語以外にも様々あり、今回取り上げるのは「データ記述言語」と呼ばれるものです。

データ記述言語の中でもグラフ作成へ特化しており、特にフローチャート作成で真価を発揮する「DOT言語というものがあります

早速ですが、実際に手を動かしてみましょう。ちなみにDOT言語Graphviz OnlineというWebツールがあるため別途に何かしらをインストールして環境構築する必要はありません。便利な世の中ですね。

上記Graphviz Onlineを開くと、既に左側のDOT言語記述された内容が、右側で作図されています。DOT言語はこのような図を作図するためのデータ記述言語です。

一旦、左側の記述をCtrl+Aで全選択をしDeleteなどで全削除し、下記の内容をコピペしてみましょう。

digraph graphname {

A -> B;

}

一瞬で○に囲まれたAとBが繋がった図が作成されました。

DOT言語の詳細な使い方は様々なWebサイトやブログ記事Qiitaなどへ譲るとして、A - > Bの見た目から発想の転換をしてみると処理Aから処理Bという流れに見えませんか?

DOT言語は生成AIを利用する上で有利なテキストベースでありながらグラフ作成できるのがキモであり、例えばこのA -> BがA「Webページを開いたら」 → B「Hello, Worldと表示する」という風にできるのであれば処理のフロー可視化されており本当に素晴らしいことです。

Hello, worldを表示してみる

ここでプログラミング有識者は「DOT言語UMLなどに見立てて処理を記述するのは良いが、プログラミング初心者は求めた結果を出力するロジックアルゴリズムを発想する知見や経験値が圧倒的に足りていないのが問題ではないか?」と至極真っ当かつ反論余地がない問題点の指摘をすると思いますが、そこで活きるのが生成AIです。

生成AIは初級者プログラマ個人ロジックアルゴリズム作成能力無関係ロジックアルゴリズムを生成できる(可能性が少なくともある)ので、処理のフローをDOT言語記述することにより処理フローから初級者プログラマが求めるプログラムを生成AIへ推論させ生成させるというのが狙いです。実際に試してみましょう。

digraph graphname {

A[
label = "Webページを表示する"
];

B[
label = "Webページを表示したらHello, worldとテキストを表示する"
];

A -> B;

}

プログラミング有識者はこの時点で「なるほど、自然言語記述をそのままDOT言語に入れ込んでしまうのか」と気付いたのではないかと思います

このDOT言語Google Gemini 2.5Flash「下記のデータ記述言語のDOT言語記述された処理フローJavascript言語へ変換をしWebページ上へ「Hello,world」を表示したいので変換をお願いします。」命令すると以下のコードが生成されました。

<!DOCTYPEhtml>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <metaname="viewport" content="width=device-width, initial-scale=1.0">
    <title>Hello World Page</title>
</head>
<body>
    <divid="output"></div>

    <script>
        //Webページが表示されたら(DOMが完全に読み込まれたら)実行される
        document.addEventListener('DOMContentLoaded', function() {
            // "Webページを表示する"ステップは、このHTMLファイル自体が表示されることで達成されます

            // "Webページを表示したらHello, worldとテキストを表示する"ステップ
            const outputDiv = document.getElementById('output');
            outputDiv.textContent = 'Hello, world';
        });
    </script>

</body>
</html>

フロー記述する利点は、ロジックアルゴリズムを発想する知見や経験値が足りなくとも、フローステップが明確に分かれているので生成AIが処理を切り分けて推論してくれることであり、そしてプログラミング初心者自身フローチャートを視覚確認できるので「Aを処理したらBを処理する」と切り分けて考えやすいことです。

また、求めている結果ではなく誤った結果が生成されても、A - > B - > Cとフローを細分化していくことで生成AIの推論精度を高めていくことができるのも利点です。

応用編

より生成AIへ精度の高い推論をしてもらうために補足情報を付加するのも有用です。

digraph graphname {

A[
label = "Webページを表示する"
];

B[
label = "Webページを表示したらHello, worldとテキストを表示する",
comment = "Webページが完全に読み込まれるまで待機"
];

A -> B;

}

labelの記述内容もcommentの記述内容も生成AIが推論のための情報として利用するので誤った結果が生成されてもA - > B - > Cとフローを細分化しなくとも良い場合があります

DOT言語を知るプログラミング有識者が「DOT言語仕様を考えれば確かにそうだが、その発想はなかった」と言っていただけるであろうDOT言語コード例だとこういう記述方法もアリです。

digraph増田コード {

最初の処理[
label = "Webページを表示する"
];

次の処理[
label = "Webページを表示したらHello, worldとテキストを表示する",
comment = "Webページが完全に読み込まれるまで待機"
];

最初の処理 -> 次の処理;

}

ノード名称自然言語採用することにより、例えばゲームプログラミング時に「キャラクタージャンプする」という読んだそのままな処理のためのノード、というか一般的に言うオブジェクト作成することが可能で、後は->で繋げて処理をさせられます

ちなみに別のノード作成する際に「"キャラクタージャンプする"から継承する」の様なことをcommentなどへ記述しておくと生成AIが推論して継承します。なんならcommentなどへ「キャラクター画像image.gif使用」などと記述しておくとファイルの読み込みもします。

更にDOT言語にはカスタム要素という仕様存在しており、DOT言語仕様で定められた予約語以外も使用可能です。

digraph増田コード {

最初の処理[
label = "Webページを表示する"
];

次の処理[
label = "Webページを表示したらHello, worldとテキストを表示する",
comment = "Webページが完全に読み込まれるまで待機",
font_style = "フォントを太字のボールド体、色を赤(#FF0000)とする"
];

最初の処理 -> 次の処理;

}

生成AIカスタム要素の名称からも推論を発揮し、上記場合であればフォントスタイル指定していると推論をするので生成AIの推論精度を高める補足情報として機能します。

まりこれはカスタム要素の名称として"Action"などの名称採用すると"動作"として推論をし、"decision"ならば"条件分岐"ですし、"input"ならば"入力"ですし、"loop"ならば"繰り返し"ですし、"Type"ならば"種別"です。

より詳細に process[type="Action"] などのノード作成してどんどん生成AIの推論精度を高めていくことが可能であり、そろそろ察してきているかと思いますが 処理[種別="動作"] と自然言語記述しても機能します。

プログラミング有識者は更に「プログラム言語自体予約語、例えばJavascriptを生成する事を前提にlengthを名称にすると配列を使おうとするのか?」と疑問に感じるでしょうがお察しの通りで生成AI配列を使おうとするので、敢えて使いたいプログラム言語機能や外部ライブラリなどがある場合は補足情報として機能する形で記述しておくと生成AIは推論へ利用します(まぁそこまで知識ある方なら該当のプログラム言語使ったほうが手っ取り早いと思いますが)。

おわりに

以上をもって「生成AIを利用したプログラミング初級者向けの温故知新提案」を終えたいと思います

色々とツッコミどころには筆者自身が気付いていて。例えば「結局はDOT言語仕様を覚えないといけないのでは?」とか「プログラミング初級者に任せると生成前のソースであるDOT言語コードスパゲッティになりそうだよな」とか「面倒くせぇから普通にプログラミング覚えろや」とか理解してますし至極真っ当かつ反論余地がないと思ってます

今回の提案プログラミング有識者向けの本質は「生成AIへ向いた中間言語の発掘」であり、「DOT言語ならそこそこ普及してるしプログラミング初級者でも扱えるんじゃね?」と業務中に発想したものを書き留め公開いたしました。

何かプログラミング有識者の皆さんからより良い発想があれば参考にしたいと考えていますのでよろしくお願いいたします。以上。

Permalink |記事への反応(36) | 19:36

このエントリーをはてなブックマークに追加ツイートシェア

2024-10-22

conconアタックについてAIに聞いてみた

ChatGPT (OpenAI)

マイクロソフトがひどい目にあったというconconアタックについて説明してください。と質問

「Conconアタック」というのは、1990年代後半から2000年代初頭にかけて話題になった「SYN flood攻撃」と呼ばれるDDoS攻撃分散サービス妨害攻撃)の一種です。~

(以下ずっと長い説明が続くが全部嘘だった。タダで使えるやつだからこんなもんか)

Gemini(Google)

マイクロソフトがひどい目にあったというconconアタックについて説明してください。と質問結構よさそうだったんで下の方の設定から専門的な観点で書けというのをクリック

## ConCon攻撃に関するより専門的な解説ConCon攻撃は、1990年代後半に顕著に見られた、MicrosoftWindows 95/98のファイルシステムにおける脆弱性悪用した攻撃手法です。本攻撃は、特定予約語である「CON」を繰り返し使用することで、オペレーティングシステム挙動意図せず変更し、結果としてシステムクラッシュデータ損失を引き起こすというものでした。###攻撃原理** **予約語濫用:** 「CON」は、DOS時代からデバイス名として予約されていた文字列です。Windowsにおいても、この予約語特別意味を持つファイル名として扱われます。** **ファイルシステムの誤動作:**複数の「CON」を含むパス名を指定することで、ファイルシステムが正常に動作せず、無限ループメモリリークといった異常な状態に陥ります。** **システム不安定化:**上記の異常状態が深刻化すると、システム全体が不安定になり、最終的にはブルースクリーンエラーが発生し、コンピュータ使用不能となるケースも少なくありませんでした。### 影響と対策ConCon攻撃は、そのシンプルさ故に、悪意のあるユーザーだけでなく、誤って特殊文字列を含むファイル作成してしまったユーザーにとっても、深刻な問題となりました。この問題を受けて、MicrosoftWindowsセキュリティ対策を強化し、以降のバージョンでは同様の攻撃を受けにくくなりました。** **パッチ提供:**Microsoftは、ConCon攻撃対応するため、Windowsセキュリティパッチを随時提供しました。** **ファイルシステム改善:**ファイルシステムロジック見直し予約語の扱いをより厳密にすることで、同様の攻撃を防ぐ対策が講じられました。** **ユーザー教育:**ユーザーに対して、安全コンピュータ利用に関する教育が強化されました。### まとめConCon攻撃は、OSセキュリティ脆弱性いかに深刻な問題を引き起こすかを示す典型的な事例です。この事件は、IT業界全体にセキュリティ対策重要性を再認識させ、より安全ソフトウェア開発へとつながる契機となりました。***技術的な視点から見た特徴**** **バッファオーバーフローとは異なる:** ConCon攻撃は、一般的バッファオーバーフロー攻撃とは異なり、特定予約語悪用することで、意図しない動作を引き起こす点が特徴です。** **ファイルシステムレベル攻撃:**攻撃対象がファイルシステムであるため、OS根本的な機能に影響を与える可能性があります。** **単純だが効果的な攻撃:** 複雑な技術必要とせず、誰でも簡単に実行できる点が特徴です。***現代における教訓**** **ゼロデイ攻撃の脅威:** 未知の脆弱性を突くゼロデイ攻撃危険性は、いまだに高い。** **継続的セキュリティ対策:**OSアプリケーションアップデートは、セキュリティ対策の基本。** **ユーザーセキュリティ意識向上:**パスワード管理フィッシング対策など、ユーザー自身セキュリティ対策意識することが重要。***キーワード:** ConCon攻撃,Windows 95/98,ファイルシステム,予約語,ブルースクリーン,セキュリティパッチ,バッファオーバーフロー,ゼロデイ攻撃この説明は、より専門的な用語を用い、技術的な背景についても言及することで、ConCon攻撃性質をより深く理解できるように記述しました。

(何も指定しなかった場合フツーに当時の攻撃コードみたいなサンプルを出したのですげーなお前と思った)

Copilot(microsoft)

マイクロソフトがひどい目にあったというconconアタックについて説明してみてほしい と質問

「Conconアタック」というのは、実際には存在しないもので、インターネット上での都市伝説ジョーク一種です。マイクロソフトが「ひどい目にあった」という話は、フィクションであり、実際には起こっていません。このようなジョークは、インターネット上で広まりやすく、時には誤解を招くことがありますが、基本的にはユーモア提供するためのものです。もし他に興味がある話題質問があれば、ぜひ教えてください!

(なかったことにしやがった。お前最高だよ)

Permalink |記事への反応(1) | 15:58

このエントリーをはてなブックマークに追加ツイートシェア

2022-08-01

anond:20220727115933

main予約語なのでやめてください...

Permalink |記事への反応(0) | 00:46

このエントリーをはてなブックマークに追加ツイートシェア

2022-03-16

anond:20220315214705

意味不明言葉でも「罵倒」や「誹謗中傷である定義されてしまうと、途端にその意味不明予約語も使えなくなってしま

ある小学校児童の間で「ホバーランランルー」が「死ねクソ野郎」と同等の罵倒になったように

Permalink |記事への反応(1) | 12:08

このエントリーをはてなブックマークに追加ツイートシェア

2022-03-15

anond:20220315213515

この手の話って、予約語を決めておけばいい話だと思う。

まり、全く意味を持たない文字の連なりを「こういう意味です」と予め定義しちゃえばいいの。

この場合なら、犯罪予告にならない怒りや憎悪表現方法を示す予約語を、例えば「ぽんぽこぽんのぷっぷくぷー」みたいな感じで定義しとくことにしとけばいいわけよ。

Permalink |記事への反応(6) | 21:47

このエントリーをはてなブックマークに追加ツイートシェア

2021-09-03

職務経歴書

職務要約

東京電機大学卒業後、VisualBasicを用いた会計支援ソフトウェア開発、自社サイト制作従事するなど、アプリケーションエンジニアフロントエンドエンジニアとして5年にわたって業務をおこなって参りました。

今後は、その中で得られたVisualBasic予約語暗記の実務経験を活かして、VB.NETによる開発に取り組んでいきたいと考えています

 

活かせる経験スキル

  1. VisualBasic予約語暗記についての1年の実務経験
    独力で業務遂行しました。必要に応じてチームや組織に協力を仰いだり、時には主導するなど、他者と協力してプロジェクトを進めることを心がけました。
    また、スキルの習熟を目的として、業務外で暗唱・復唱・間隔反復学習に取り組みました。
  2. エンジニアとして組織をまとめた実務経験
    ぞうさんチーム(開発部)に責任を負う立場で、3年にわたって業務遂行しました。
    加えて、エンジニアとしては、VBエンジニアリングに率先して取り組みました。
  3. クリティカルシンキングでの実務経験
    1日あたりの創出アイディア数が100片という特徴を持つ環境で3年にわたり取り組みました。
    日々働く中で、問題に関わることのみを洗い出す看破力に注力しました。

 

職務経歴

グッドサムシング株式会社アプリケーションエンジニア

プロジェクト

VisualBasicを用いた会計支援ソフトウェア開発

プロジェクト詳細

クライアント企業の社内システム

VisualBasicを用いた内製ソリューションの引き継ぎ・バージョンアップ開発。

特に複数法定通貨をないまぜに扱うため、レート換算と端数処理が至るところに発生する困難な会計処理でした。

 

グッドサムシング株式会社フロントエンドエンジニア

プロジェクト

自社サイト制作

プロジェクト詳細

社長ホームページ・ビルダー作成したプロトタイプを元に、HTML5/CSS3で再構築した自社コーポレートサイト

プロトタイプコードは全く利用せず、スタイルデザインのみを参考にいちから構築しました。

また、その2年後にスマートフォン対応も行っており、SCSSやflexboxを利用したモダンHTMLコードを構築できたと自負しております

 

学歴

東京電機大学卒業

 

LAPRAS Smart CV Creator β

Permalink |記事への反応(0) | 14:21

このエントリーをはてなブックマークに追加ツイートシェア

2021-04-30

anond:20210430112627

SQL予約語かぶるはいやん

Permalink |記事への反応(0) | 11:27

このエントリーをはてなブックマークに追加ツイートシェア

2020-12-09

英語が先か、日本語で概略をつかむのが先か

プログミングを勉強英語サイトを見ていると分からない英単語が多い。

基本の予約語ならあるていど分かるが、統計学機械学習グラフ作成で使われている英単語専門用語としてつかわれているケースがあるために、意味が掴みづらい。

少しググる適当英単語を羅列しているサイトもあるようだ。Qiita,会社サポートサイトなどでも。

一方で、ウェブ上の英単語集の中には熟語慣用句は少ないようだ。

こうなると、頻出英単語抽出するプログラムを作ってみようかとも思うが。  

探したら、あるのかな。。(実際、オライリー本にも、そんなサンプルコードあったし)

  

しかし、プログミングを習得したいのだからまずは日本語訳の本を手に取って概略をつかむべきカナとも思う。

実務でこなせるようになるには、いずれは英語プログミングの意味をとれる必要がある。

英語公式サイトやhelpが読めるようにはしておきたい。

世界的な競争なんて。アラフォー過ぎたら、今更だしな。

迷っているうちに、日が暮れそう。

英語プログミングも両方って、大変だな。

これまでの経験から日本語で、学びたいことの概念を掴んでからが、自分には合っているのかな。

動くものをつくらなきゃ、その一方でもっと楽にプログミングできるライブラリー英語ドンドン出てくるのだろうか。

器用な人はサクサク進んでいそう。

  

Permalink |記事への反応(1) | 13:41

このエントリーをはてなブックマークに追加ツイートシェア

2020-07-31

Swift予約語「async」が追加された、とかで少し沸いているようだが

個人的には、もしMicrosoft言語のようなasync/awaitが導入されようとしているなら

絶対にやめて欲しいと思う。

JavaScriptC#のasync/awaitは見ての通りデザイン醜悪だし、Rustには少しだけ

形が変わって導入されたが、言語デザインとしては更に悪くなってしまった。

Swiftには、既存のようなデザインのasync/awaitは不要だ。

あんなのよりはコールバックを重ねる方がまだましだ。

と思うのは自分だけなんだろうか?

Permalink |記事への反応(2) | 19:02

このエントリーをはてなブックマークに追加ツイートシェア

2019-11-20

anond:20191120022252

神の目線予約語から王の目線かにしとけ

Permalink |記事への反応(0) | 02:25

このエントリーをはてなブックマークに追加ツイートシェア

2018-11-30

の子IT開発のハードル高すぎない?

入り口スマホだったりするわけじゃない?

swift playgroundとかswiftが知ってる人フレンドリーではあるけど、初心者には分かる仕組みになってるのだろうか?

SI業界に入った子がSQL書けとか、ES6書けみたいなこと言われたってハードル高すぎないかねぇ。

AWSとかアラフォーの俺も全然からない。awscliでスナップショットとれるなんて今日初めて知ったよ。

今のプラグラミング言語って色んな言語を取り込んで高機能化してる訳じゃない?なんでそんなことしてるのか分かんないと思うのね。

伝わる人に言うと、JavaだってAutoBoxingが前提だったりするわけじゃん?42+"円"とか書いちゃう訳よ。コンパイルエラーにならないのも頑張りすぎだろと思うけど。

あとmaven使えば色んなライブラリ使えるわけじゃん?今ならGradleなのかい?よくわかんねぇけど。俺はよく分かんないけど、使いこなせてるのかね?

AWSもES2の説明はできてもS3の説明できる先輩がどれほどいるかストレージ仮想化知識が前提にない人は説明はキツいなと。AIMとか混ざると地獄よね。

プログラミングに戻ると、今どきの言語って最先端で書かれると記号や謎予約語が多かったりするんだけど諸先輩方は大丈夫かなと。

っていうか、ラムダ式とかもSI業界とかだとキツいよねと思うのだ。全然最新の技術じゃないのにね

Permalink |記事への反応(3) | 23:11

このエントリーをはてなブックマークに追加ツイートシェア

2018-09-07

anond:20180907114019

JavaScriptJSと略す人も気になる

JS女子小学生を指す予約語

Permalink |記事への反応(0) | 11:44

このエントリーをはてなブックマークに追加ツイートシェア

2018-08-09

anond:20180808193420

そんなのTeX記法のことを言ってるに決まってるだろ。

WordHTML+CSS文章を書くのと比べて、桁違いに書きにくい。

お蔭で後年SQL出会った時は、記法センスの素晴らしさに感動したわ。

何故なのかは知らないが、バックスラッシュに中括弧に$に^に、fracみたいな覚えにくい予約語オンパレードにその他諸々、記法があまりにも暗号的すぎるんだよ。

マークアップ的要素があるくせに、XMLHTMLよりも「どこからどこまで」を遥かに把握しにくいし。


あと、記法問題だけじゃなく印刷に持っていくまでの処理もマジめんどくさいわー。

WYSIWYGを捨ててかかってるだけでも十分めんどくさいのに、dviにしてレイアウト視覚的に確認しようとするだけで「文法間違ってます出力できませーん」とか、いい加減にしろアホ!と何度思ったことか。

こういうTeX使ったことある奴なら当たり前に経験している使いにくさを「インターフェース」と言ったのに、エディタ問題などと矮小化して捉えられるのは、正直言ってメチャクチャ不愉快だわ。

てか、viでもemacsでもなんでもいいけど、こんなのどんなエディタ使っても使いやすくならないだろ。

本当に救いようがない、センスゼロソフトだと思うわ。


からそこそこ整った文章書くだけならWordでいいんだよ。

いろいろツール入れれば多少は負担が軽減されるのかも知れないが、そんなふうにいちいち環境整える手間を掛けてまでTeXで書く理由なんて微塵も感じられないから。

車の運転AT全盛の時代にあってMTに凝るくらい趣味的かつ滑稽な話だよ、TeXは。

C言語に対する最新最良の処方は、可能な限りC言語を使わないこと」というのは有名だが、これはそっくりそのままTeXにも当てはまる。

Permalink |記事への反応(0) | 11:22

このエントリーをはてなブックマークに追加ツイートシェア

2018-02-20

PHPJavaScriptのfunctionはタイピングしづらくて糞!

javaScriptPHP関数呼び出しの予約語

function という冗長単語なのはなぜだろうか?

タイプやすいし、書くのがめんどくさい。誰か止める人はいなかったのだろうか?

rubypythondefだし、最近言語であるgoswift は func というように書きやすいのに。

C言語javaはこれは関数ですと明示的に示す予約語存在しないから、可読性をあげるために function という長い予約語を導入したということだろうか?

その辺の歴史的経緯が知りたいものである

Permalink |記事への反応(0) | 13:57

このエントリーをはてなブックマークに追加ツイートシェア

2017-10-19

スマホプログラミング学習というのに限って

プログラムキーボードから全量入力させるのな

ボタンメニュー選んだら予約語が挿入されるシステムでいいじゃないか

PFキー押したらPRINTとかSAVEとか挿入されてた40年くらい前のハンドヘルドコンピュータのほうが機能的だぞ

Permalink |記事への反応(0) | 10:48

このエントリーをはてなブックマークに追加ツイートシェア

2017-05-31

http://anond.hatelabo.jp/20170530233852

SQL意識して書かないと死ぬほど読みにくくなるのが気に入らない。

前の職場には何もかも全部大文字表記し、ろくに改行も入れないバカが居て死ぬほどつらかった。あろうことか、読みづらいクエリを書ける自分プライドを持ってるっぽかった。ああいう奴とは二度と仕事をしたくないよ。

SELECT COL0,COL1,COL2 FROM TABLE0 WHERE COL0=1000 AND COL2 IN (100,102)

これを少しでも読みやすくするために予約語大文字カラム名テーブル名を小文字表記している (カラム名テーブル名が大文字で決め打ちされているなら、予約語を小文字統一している)。

SELECT col0,col1,col2FROM table0WHERE col0=1000  AND col2 IN (100,102)

しかしこの方法も万全ではなくて、例えば複数テーブルが関連するクエリ

SELECT t0.col0, t0.col1, t0.col2, t1.col0FROM table0 t0  LEFTOUTERJOIN table1 t1ON t0.col3=t1.col3WHERE t0.col0=1000  AND t0.col2 IN (100,102)

みたくなってしまう (テーブル名のtable0、仮名t0、カラム名col0が全部小文字になっているため、なかなか読みづらい)。

皆さん、どうやって工夫されてますか?

Permalink |記事への反応(2) | 00:57

このエントリーをはてなブックマークに追加ツイートシェア

2017-04-21

プログラム日本語で書けばいい気がするけど(追記した)

定期的に思うんだけどプログラムで無理な英語にせず日本語にすればいいのにって思う。

実践はしていない)

日本語で書ける言語使うんじゃなくて変数名や関数名がUnicode対応日本語書けるもの

日本語でいいと思う理由は主に2つ

○画面に表示する時

フレームワーク言語にもよるけど表示するとき英語名前から日本語名前に変換して表示って手間があるものがある。

最近見かけた例だと.NETプロパティ属性に表示名書いて表示するときに取り出していた。

最初から日本語だとそのまま表示でいいことが多くて一段手間が省ける

英語がわけわからん

まず自分英語化するとき

いい単語が出てこないとか、しょっちゅう

慣れが必要だし慣れてもなんかコレジャナイ感とかで苦戦する。

次に他の人の英語化したのを見る時。

その人の英語力にもよるけど、動詞名詞が変に混ざっていたり、sがついてたりなかったり、そもそもchildsみたいな謎の語があったり。

そこそこできる人同士でも、「私はニュアンス的にこっちの単語」「僕はこの単語のほうがいいと思う」とかある。

相手の書いたところがわかりづらいのはもちろんだけど、プログラム的に同じ意味なのにクラス関数によって呼び方違うと辛い。

かといって全員に日本語英語対応を先に渡しておいて統一しようというのは大変すぎる。

日本語だと仕様の時点で日本語で書いてるからまぁおかしなことにはそうならないはず)

そういうわけで日本語で書けば色々解決するのにって思う。

----

次にデメリット

軽く調べた感じ主にこの2つな感じ。

IME」「英語圏のものへの対応

IME

半角全角を打つのってめんどい

と思うけど、実際チャットやこういう文章書いてて英語が出るときに割りと頻繁に押してる。

ほぼ無意識でやってて意外と苦じゃない。

短いとF10変換で半角にすることもあるけど、キーボードタイプカウンタとか入れてみると半角全角キーはけっこう上位にいた。

それに、なんだかんだコメント日本語で書くことが多くて、他の人と作るのならこまめにコメント書いてる。

そうなると全角半角の切り替えは普段からあるもので、あんまり気にするほどじゃない気がした。

最近じゃIDEエディタの補完が優秀だし、日本語にするにしても「最初はjから始める」とかルール入れておけば「j」って打ってあとはスコープにあるいくつかの候補から選ぶだけで全角にしなくていいかもしれない。

英語圏への対応

githubで公開したりとかライブラリ再利用してもらうとき日本語じゃ使ってもらえない。ってことみたい。

私が日本語にすればいいじゃないって思ってるのは、ビジネスロジックというかそのアプリケーション固有名詞みたいなところ。

「足し算」って関数名は 「add」 でいいと思うし、配列のそれぞれは element とか item とかそういう一般的英単語でいいと思う。

具体例がいいづらいけど、業務システムで表示する金額名前とか、日本語独特なものとか、一般的単語じゃなさそうなの。

こういうのを日本語にしたいってわけなので、ライブラリ的な共通なところは英語で良いかgithubで公開する範囲英語のものでいいと思う。

ただ、最近はやってるマストドンとか、ライブラリ的なものじゃなくアプリケーション自体githubで公開する場合はできない気がする。

でも、海外対象にしてるものだと日本語特有なせいでわかりづらい英語になる苦労とか少なそうだしそういうのだと英語いいんじゃないかな。

----

長くなったけど、まとめると、

業務システム固有名詞とか日本語特有ものとか無理に英語化してよくわからないことになってり、見づらくなるくらいなら日本語使えばいいんじゃないかな

ということ。

まあ思ってる割には実践してないので、やってる人がいたら良かった・悪かったとか聞きたいなと思ったのが書いた理由

追記


帰ってきたらすごいブクマついてた。

色々意見あってとりあえず感謝

絶対自分でやってから言えよ」みたいな意見来るだろうと思って今日の空き時間日本語行ける言語調べたり軽く日本語使ってコード書いてみたので、そのあたりと目についたコメに答えてみる。

まず、思いの外日本プログラミング言語上げてる人がいたので、うまく伝わってなかったぽい。

具体例上げずにサッと書いたらからかな。

あと自分もわりとするけどタイトルだけ見て中身見ずにコメントしてた人もいるだろうなー。

日本語で書ける言語使うんじゃなくて変数名や関数名がUnicode対応日本語書けるもの

これが、などしこやひまわりや、BF系のmisaやら北斗のあれやらうにゃーとか色々な「構文など最初から日本語を前提とした言語」ではないってこと言ってた。

---

日本語かえる言語

最近の主要な言語ならだいたいUnicode対応でしょと思って環境があった言語を試した結果はこうだった。

JavaScript/Python/PHP/Scala/Kotlin/C#/Go/Swift

これらは日本語変数作れた。

rust とLua は無理だった。

rust は確か前に、変数名がascii文字だけなことに日本以外のどこかの国からUnicode対応にしてって多くの要望あったみたいな記事があったし将来的に対応するんじゃないかなって思ってる。

実際に今どんな状態かは知らない。

その記事コメントとかでみたけど、日本語以外は割りと自国言葉を使ってたりするっぽいね

(正確なデータはないか信憑性はあるとはいえないけど)

VBA を上げてる人がいたけど、私はそこまでのはみたことない。(幸せ者っぽいな)

稀にエクセルマクロいじるときに使い方ググってて出て来る、解説してるページで関数名が日本語なのをたまに見るくらい。

パット見なんか気持ち悪い感はあるけど、読んだときのわかりやすさはけっこう大きい。

---

○使ってみて

大規模案件に使ってみてこその問題もあるだろうけど、簡単スクリプト程度のを日本語にしてみて気づいたこと。

割といける。

全角半角キーPHP の $ より楽。

PHP言語変数は全部$からはじめないといけない欠陥言語

まあ変数のみのgrepのしやすさや予約語キーワード変数名に使えるからメリットもある。

だが、$って打ちづらい。

Shift+4ってすごいつらい。

に比べて全角半角キーってちょい遠いけどそこまで苦痛じゃない。

ふだんから多用してるキーなわけだし。

ただPHP日本語の組み合わせは相性悪い。

$は半角でその後に日本語から手間が多すぎる。

それ以外の言語だと、IMEのおかげでかなり楽。

GoogleIMEだけど、多少のタイプミスは補完で修正してくれるし、予測変換が優秀だし。

IDEいから補完機能のない軽いエディタで書くようなときなら、IMEのおかげで英語変数名で書くより速度は早いと思う。

---

少し前に知人から言われた日本語デメリットを思い出したのでそれも触れとく。

仕様変更言葉変わったとき日本語だと全部書き換えないといけないよ。英語だと別にそのままでいいし。」

英語からない人が、英語言葉とみなさずただの記号として考えてるから、っていうような発言

仕様変わって変数名まで変えるのは面倒なのはわかるけど、あとからコード読む人が英語で見て意味不明になる。

英語日本語対応コメントに書いたとしても、全然意味の違う英語があるのは混乱でしかない。

こういう考えの人がいたら本当にやめてほしい。

---

あとは気になったコメントについて書いてく。

表記ゆれとか方言とか言い回しなどについては、全部日本語にするとあるだろうけど、私が想定してるのは直感的に英語にならないような固有名詞とか。

DBの項目名日本語っていうのは私の思ってるのと近い。

年金の例も○○年金というのがいろいろあって、全部英語だと嫌になってくるしよくわかる。

こういうのを日本語にしたい。

なので年金額を取得する関数で「年金額を取得する」「年金額を取得」「年金額を取り出す」とかの表記を迷うんじゃなくて「get年金額」でいいと思う。

こういう単語だけだと表記はそれなりに揃うと思う。

特にDBにある項目だと仕様とかで先に言葉が決まってることが多いだろうし。

---

見た目について。

見た目が残念とか見づらいというのは同意

ただそれ以上に読んだときのわかりやすさが大きいと思う。

見た目が悪いというのも全部英語っていう前提があるからで1ヶ月も日本語コード見ればなれるんじゃない?って思う。

---

へとヘ

これはありそうな問題

ただ、IDEを使う前提なら未使用変数エラーとか、選択したときに色が変わってないとか、割と気づけると思う。

lとIとかアルファベットでもあるけど、IDEや高機能エディタ使うと困ることはほぼなくなった。

---

ローマ字

私が日本語にしたいような固有名詞ローマ字化してるプロジェクトにであったことはある。

やすい語は見やすいけど、見づらい語は圧倒的に見づらい。

それにローマ字のほうが「ん」でnは1つか2つかや、ヘボンorローマ?という日本語より表記が揃わない問題ある。

特にローマ字場合自分キーボードで打つ方じゃないと書きづらいのでそろえてもらうのに抵抗がある。

---

ラバゴス化・日本が遅れる

海外向けとか海外の人と一緒に作る系なものって最初から英語で困らない単語ばかりだと思う。

そういうのは対象外

今回いいたいのは、元から日本しか対応してないような業務システムなど。

そういったところの固有名詞日本語になったからって、困ることはないはず。

もともとガラバゴスなわけだし。

日本しか使われないもの海外向けにするにしてもフルスクラッチで作り直すことになるようなもの

こういうのは日本語化いいんじゃないかと思う。

---

テスト

テストだと日本語が使ってる人多いのかな?ブコメスタートップだし。

とりあえずはテストから使い始めてみようと思う。

---

長くなったけど参考になる意見もいろいろあって助かった。

Permalink |記事への反応(17) | 23:03

このエントリーをはてなブックマークに追加ツイートシェア

2014-02-21

プログラマの俺が思うLispの弊害

お前らLispしろ

Lispすれば、知識はつくし抽象化力がつく。

アイディアは途方もなく出てくるし、言語設計スキルもつく。

多分、世の中のプログラミングパラダイムといったものは、大半はLispでまかなえる。

その辺にあるScheme仕様50ページくらい実装すれば、自分の成長ぶりに驚愕するぞ。

でもな、Lispすると他のプログラミング言語が滑稽に見えてくる。

マクロに自惚れて、予約語が許せなくなる。

そんな括弧肥大人間社会には受け入れられないんだよ。

からさ...社会で生きたいなら、Lispするな。

http://anond.hatelabo.jp/20140221132243

Permalink |記事への反応(0) | 17:48

このエントリーをはてなブックマークに追加ツイートシェア

2008-05-22

ハブサイト予想

perl-users.jp

インスパイアされてハブサイト祭り開始

eroge-users.jp開始(のちに日本最大級のハブサイトへ成長)

ホッテントリハブサイトだらけに

ハブサイトジェネレーター公開

なぜかperl-users.jp予約語だけで記述される、なぜかruby-users.jpも記号だけで記述される

ハブサイトためのハブサイト開始

Hatelabo::Habサービス開始

404 habsiteNot Found 「勝手添削ハブサイト

「はじめてのハブサイト 第一版」

中略

HAPC::Asia2009開催、ハブサイトに重大なセキュリティホールが見つかる

XHSS脆弱性探しが流行 ハブられるサイト続出

米国ハブサイト研究者、新タイプハブサイトHab Hatで発表 世界中ハブサイトが公開される

Permalink |記事への反応(0) | 22:14

このエントリーをはてなブックマークに追加ツイートシェア

2007-12-02

マジレスしてみる

自然言語の場合、文字セットと発音が言語ごとにスットンキョーに違うので、元増田が期待したような差分学習は無理。もうひとつ、古い言語活用が複雑かつ不規則すぎる。数千以上ある単語に対してその過半数が不規則活用なんてのもある。だから、甘い考えはやめろ。

プログラム言語の場合、基本文字セットと予約語英語ベースになっている。だから、元増田が「3つもあれば」というのは実は言語設計者の手のひらの上で踊っているだけ。まぁ、大言するならLispPrologも入れといてくれよ。

http://anond.hatelabo.jp/20071202085518

Permalink |記事への反応(1) | 09:50

このエントリーをはてなブックマークに追加ツイートシェア

2007-11-13

http://anond.hatelabo.jp/20071113123218

俺に任せろ

JJ
トムソン電子電荷研究ノーベル賞を受賞した
CanCam
CANバス対応の低ビットレート動画伝送規格。ドアミラーカムなどに使う
With
Pascalで使われる予約語。特定の構造型変数のメンバを集中的にアクセスする際、構造型変数名を省略するために使う。
More
ニュージーランドに居た巨鳥

Permalink |記事への反応(0) | 12:42

このエントリーをはてなブックマークに追加ツイートシェア

 
ログインユーザー登録
ようこそ ゲスト さん
Copyright (C) 2001-2025 hatena. All Rights Reserved.

[8]ページ先頭

©2009-2025 Movatter.jp