プログラミングは悪くありません! 少なくとも彼であってはならない。

権利化されたマインドブログ記事の翻訳



最近、私は答えるしか仕方がなかった2つのテキストに出会いました。 最初の最悪の記事は、デイリーWTFの記事「プログラミングの裏技」です。 またはそのようなもの 2つ目は、 なぜ関数型プログラミングが普及していないのかについての投稿です。



IT業界のほぼすべての分野で何らかの方法で自分自身を試したことがありますが、私は、面白くない重要な問題はないと確信しています。 非常に単純な理由で、どんな機械でも、退屈でささいな、機械的な作業に従事する必要があります。 いや、本当に! 私たちはプログラマーです。 他の人にも同じことをすれば、私たちではないにしても、だれがコンピューターを使って作業を簡単にすることができますか?



プログラミングは、完全な愚かさのためにのみ吸い込むことができます。 ユーザーインターフェイスプロパティを公開するために5行のコードを繰り返しますか? なんてこった ルーチンを聞いたことがありますか? 抽象化? コード生成はどうですか、それともDSLを書く価値がありますか? さて、これらの5行を数回コピーしただけでも大丈夫です。 しかし、何度も繰り返し行う場合(これらの行をわずかに編集する場合もあります)、おそらくこれを無視する方法について考える必要があります。



抽象化は、面白くて日常的な作業の割合を増やし、退屈なコードの量を減らすのに役立ちます。 5行のコードが1万回繰り返されるのではなく、同じ1万回繰り返される1行を書くことができた場合、プロジェクトは5行から1万行に減り、少なくとも5行、さらには25倍も速く書けます。 できるだけ早く汚い仕事を取り除いてください、そうすればあなたは本当に面白いことをするより多くの時間を持つでしょう。



開発言語の変更については一言も言いませんでした。標準的でない思考、または少なくとも単なる思考について話しているだけです。 しかし、少なくとも新しいツールと抽象化の方法を提供するため、新しい言語を学習するとプログラミングがより魅力的になります。 実際、一部のプログラミング言語他のプログラミング言語よりも優れており、知識が豊富なほど、優れた言語を知っている可能性が高くなります。 何もよくわからなければ、それを利用することはできません。



Daily WTFに関する記事の私の最初の印象は、これがアフリカの飢えた赤ちゃん症候群のもう1つの症状だということでした。 さて、あなたは写真を見ました。 通常はアフリカにある第三世界のいまいましい穴にいる子供ですが、アジアや南アメリカに行きます。 病気や寄生虫に疲れた空腹の子供たちは、短い人生を運命づけられ、剥奪と残酷さに満ちていました。 しかし、彼らはそのような人生しか知らないので、彼らは幸せそうに笑っています。 彼らは他に何も見なかったし、最高のシェアについて聞いていなかった。 それが彼らの人生です。 私は、多くのプログラマーがこれらの子供のようなものだと思うことがよくあります。 彼らは和解しており、インターフェイスのプロパティを設定するコードの半ダース行を書くことに何の問題もありません。 バグやウイルスに感染し、肥大化した、遅く、完全にサポートされていないソフトウェア-それらのためのプログラミングです。



しかし、2番目の投稿は、実際には状況がはるかに悪いことを確信させました。 これは単なる無知ではありません。 多くのプログラマーは知らないだけでなく、もっと良いことを知りたくないし 、無知のままでいられる言い訳を求めます。 空腹の子供が提供された食べ物を拒否したかのように。



事実、私はすでにその投稿からすべての議論を聞いていました。 業界が手続き型プログラミングからオブジェクト指向に移行したとき、パラダイムの最後の大きな変化を目の当たりにしました。 さらに、以前の革命の反響、つまり非構造プログラミングから手続きプログラミングへの移行を聞きました。 C ++やJavaを学びたくない人から、これらすべての議論、あるいは言い訳を聞きました。



これらの言い訳は、いかなる門にも登りません。 自分で見てください:



これらの引数のそれぞれが、一度にC ++およびJavaに対してどのように使用されたかを聞きました。 これが本当なら、FortranとKobolでプログラミングしていることになります。 一般的に、すでにこれを行っています。 コボルは、それ自体が悪口ではありませんでした。 悪いことは、インターフェイスパラメーターを設定するために5行のコードを書かなければならなかったことです。さらに悪いことに、Kobolのプログラマーは抽象化を強調することさえせず、単にこれら5行を何度もコピーしました。



私は「退屈な」データ処理に従事していました。 この「退屈な」コードでは、 面白くて深い問題を見つけることができます。 特定の言語やパラダイムを賞賛するとき、私はあなたに何かの製品を詰め込もうとはせず、ただのがらくたプログラミングを取り除く方法を提案しています。 あなたが決定したら、私と一緒に、面白いタスクの魔法の土地に来てください。そこでは、副産物コードを時々ではなく、長い間扱う必要があります。 人生が常に沸騰する神秘的な国、ワトソン! どうやってこれを実現し、どのように人生をより良くするか? プログラミングが時代の偉大な芸術と工学の奇跡であり、決して悪いことではない場所に私と一緒に来てください。



最初の一歩を踏み出すには? 最初に新しい言語を学びます。



All Articles