「1つのプログラミング言語を学んだら別の言語も簡単に習得できる」という説は本当なのか?
プログラミング言語を教える人々の中には、「1つの言語を習得することができれば、新たな言語も簡単に習得できる」と主張する人が多く存在します。
ところが、ミシガン大学で電気工学とコンピューターサイエンスの教授を務めるMark Guzdial氏はこの主張に疑問を投げかけており、現代におけるプログラミング言語習得の実情にはそぐわないと主張しています。
(以下略、続きはソースでご確認下さい)
Gigazine 2021年06月25日 06時00分
https://gigazine.net/news/20210625-first-programming-language-important/
引用元: ・【話題】「1つのプログラミング言語を学んだら別の言語も簡単に習得できる」という説は現代の実情にそぐわないという主張 [すらいむ★]
プログラムなんて判断と処理の羅列に過ぎない
あとはセンス
2つがほぼ同じ奴だとあまり意味ないが
あとはライブラリ豊富な奴を覚えて他の言語でライブラリ内とかか?
そうだね
いまは文法そのものを覚えるというより、
便利なライブラリをどれだけ知っていて使いこなせるかが重要
>>4
ほんこれ
ふたつくらい身につければ、他もなんとなくで扱えるようになる
で、なんとなく調べながら使ってるうちに、身につく
チュートリアルをこなした後は、とにかく手を動かして身に付けることだな
それが旧世代の考え
今はどうなの?
コード量が増えると「C++使わないと収拾つかなくなる」と思い移行した。
printfなどは桁数フォーマット指定などが上位互換でなかったのでC流儀を残してある
C++に移行できないってどういうことなんだ?
オブジェクト思考の設計ができなかったという事じゃ?
>>5
オブジェクト指向だけだった昔のC++ならいざ知らず、関数型も含めてありとあらゆる新機能を持ち込む今のC++を使いこなせる奴など、殆どいない。
大抵はオブジェクト指向をIDEの支援でしこしこしている程度だからな。
>>5
構造化プログラミングより後のなんたら思想とかは完全にファッションだからなあ。
システム会社以外への論理的なロジック説明は、フロー図があれば十分。
>>5
できないんじゃなくて
しないんじゃない
手伝うときは++使うけど
一人でやるならCでやってるわ
事態を複雑にしてるだけなんだもんw
一人出来るプログラムしか書かないならcで十分やがcで書かれた巨大システムは悲惨。
>>187
C++はともかく、C#を始めて頃
Cのように細かくハード寄りの事を
やるのにスゲエ手間がかかって閉口したわ。
より高級な言語は、用意されたライブラリや
フレームワークを使い、型にはまった処理を
少ないステップ数で書くのには適してるがな。
cの時点でオブジェクト指向的なことしてた人はいた
すごい読みやすく、よく整理されてて簡単に見えるコード書いてた
みんなどうしてるかな
コレだろ
動的型付から入った人の中には分かってない人が多い印象
そりゃそうだ
結局プログラミング教育より数学の強化なのにね
高校数学を習得してれば次々に言語を使えるようになる
使う文字も語順も発音も違うプログラミング言語が出てきたら
習得も大変だろうな
さらに、アラビア文字みたいに右から左に書く言語だと
もう勉強する気もなくなるわ
>>9
自分は昔phpで仕事してた時に、フランス人の書いたphpは解読できなかったw
php自体は英語だけど、コメントはフランス語、変数名はフランス語由来の単語だから、皆目見当がつかなくてギブアップした
サーバサイドでは動機非同期に癖があるからもにょる
オブジェクト指向の手続型
lisp
SQL
アセンブラ
3、ないし4つ覚えればほぼ大丈夫だろ
LISPとアセンブラはしらんでも問題ないような
>>31
アセンブラが使いこなせれば、たいていのプログラミング言語は理解できると思う
むしろアセンブラとLisp的なやつが出来たほうがいい。
一応プログラマならアセンブラはある程度できた方が良いとは思うが、
アセンブラは泥臭い現実世界を記述し、現代の先進的な言語は美しい抽象世界を記述するからなあ。
まあ アセンブラ最強だろうな
レジスタの概念(他の言語には無い) と
命令語、データ、アドレス(ポインタ)の区別が付くから ポインタで悩むことは無い
Basic、Z80アセンブラ、C、Postscript、VBA、Delphi、R、と進んできたが、
アセンブラ・Postscript が多少異質だったものの、基本は全部同じだと思う。
>>66
なるほど。ポインタで引っかかる意味が分からなかった。
ポインタの概念は別に難しくないのよ
Cでの仕様や記法がわけわからんのよ
>>14
prologとforthがぬけてる
sqlは実務で必要になればってレベル
アセンブラはどういうアーキテクチャをやるのか
昔々の正統派か、riscが流行り始めた頃か、その後か
教養としての言語は学ぶべきだね
万人受けはしないが、FORTHが最強だろうな
個人的にはPostScriptが面白かった
今はプログラミングはライブラリやフレームワークが使える事みたいになっているから、
言語(の文法みたいなもの)は相対的に重要でなくなっているんじゃないの?
言語だけ理解していてもフレームワークなんかも違うからそれが使えないと意味がない。
例えばCとLispみたいに体系の差が大きすぎるのは論外だろうな
Pythonだとcupyに丸投げしたら動いてくれましたが
そういう問題ではなくて直接扱うって意味ですか
グラフィックスは行列分からなければ無理だしね
CUDAとかOpenCLとか?
たしかにCUDA使って動くプログラムはできるんだが最適化となるとハードルが高い
全然速くならない
プログラムを組む流れが分かって来ると
ここで次はこれをしたいけどこの言語ではどう書くのかな?
という問題意識を持てるようになって、
要するにググりまくって部分部分をコピペして変数名関数名クラス名
書きかえまくって、何とか動くものが出来る!
というのならまああり得る
だがメモリ操作の分かってない人がVBAやPythonやPHPだけ
切った貼ったコピペで覚えてるけどCは分らんとか
昔ながらの手続き型のプログラムしか分からん人が
何でオブジェクト化なんてするんだ?とか
あるいは何でもかんでも関数に纏めるなよ!ラムダ式とか何なんだよ!
こんな矢印⇒書いてんじゃねーよ!!!って関数型言語辺りで吠えだすとか色々あるw
どっから何を始めたらいい?プログラムは全く経験なし。
スマホアプリ用で万能なのを目指すならJavaScriptを使った
Reactが一番まし
ありがとう。
調べて挑戦してみる。
言語パラダイムという概念が抜けている記事かと
同じ言語パラダイムの言語や、影響を与えたり関連が深い言語同士は習得が簡単になる
だから学生の時に複数の言語パラダイムの言語を少しずつ触っておくのが重要
現実の実務能力で考えると、API、ライブラリやフレームワークなど
短期的に変わる部分の知識、能力が重要なため言語より上のレイヤー起因で
他の言語に乗り換えにくくなっている。>>1の記事は的外れ
ずいぶん変わったんだろうな
0→1 大変
1→2 意外に大変
2→3 嘘みたいに楽
それ以降 最低限はすぐにできるようになる
馴染むとか以前に考え方を理解するから習得が早くなる。俺も経験してるし、周りもそう。
言語を学べたとしても壁は高い
訂正:どの言語を学んでも壁は高い
ポインター操作
オブジェクトの実装
GUI,WYSIWYG
結局は個人の資質かなとぼんやりした結論
本当の意味で触って理解した人は
次は基礎部分は簡単。
もちろん言語固有のところは多少ムズいけど。
そしてプロレベルという意味なら次の言語でも
もちろんすごく難しい。
ついつい自分の得意な言語呼び出したりしてやってしまうw
Scheme やって
Squeak をやる
その後
C をやると関数ポインタを使いまくる奴になれる
Java, Ruby, Python が快適だと実感できる
そして
Prolog をやってショックを受ける
最後に
C++ の記述の癖に困惑する
・昔の人(1960年代後半)は数学的な知識がある上で言語を学んだ。
・数学が得意な人は様々な言語を学ぶのも容易だった。
・現代は様々な人がプログラム言語を学んでおり、(数学が得意な人と違って)複数の言語を学ぶのが得意とは
限らない。
うーん、なんか違うような気がします。1960年代後半で数学というと、
C言語(1969年)とか、PL/Iくらいしかないでしょうし。 今は言語も多分100以上ありますよね。
そもそも、一つのプログラム言語を学ぶと~って、
語学でいうと「ラテン語を学べばそこから派生した他の言語を習得するのも容易」みたいな話だと思うのですが。。
この記事の数学は数値計算的な意味じゃなく計算理論関係だと思う
昔の人にとっての言語は脳内のノイマン型コンピュータと同じ動きを
目の前のコンピュータで実現するための命令信号にすぎなかったから
文法のバリエーションは割とどうでもよかったって話
最近はpromiseであきらめる人が多いな
async awaitはなかなか大掛かりだね
あるいは並列化とか
どっちも何が難しいのか分からない
将来はマシン語を使いこなすのがみんなの夢になってるだ
コボルができれば一生食っていけるらしい。
分かる気がする
Webフレームワーク(フロント・バックエンド)の細かな機能や
iPhoneやAndroidのライブラリの細かな機能を知ってるほうが有能扱いされる
プログラマーのほうが圧倒的多数だからな
各々のAPIの習得が重要だからやろ?
ほとんどが ALGOL の子孫なので
PYTHON
C
assembler
Perl
LISP
FORTH
ぐらいを適当につまみ食いだいたいおk
lispはつまみ食いできる代物じゃないとおもう
ラムダ式を変数で捕まえる感覚だけつまみ食いすればいいよ。
昔みたいに細かなコンパイラとかの原理知らなくてもいいから
空いた勉強の時間を機械学習ライブラリとか最新の技術バシバシ使う時間にして
新しいイノベーション起こしたほうがいいって話だった
純粋関数型は毛色がかなり違うよね。
新しいフレームワークを覚えるのが辛い
と言ってももうプログラム組まなくなっちゃったけど。
言語は目的(アウトプット)のための手段に過ぎないのに
金を稼ぐためにか、言語が増え過ぎで
これから始めようとする人にはやさしくないな
既存プログラムのメンテとか移植もあるし
SDGsとか言うなら、もう言語を簡単に増やすなよ
言語を覚えるやり方だと応用がきかない。
オブジェクト指向とかもな。
単なるアルゴリズムの指向パターンでしかないしな。
>>1
それはレベルが高い話。
1つ目の言語を習得できなかったら、高い確率で2つ目も3つ目も無理。
BASICとFORTRANをマスターし
アセンブラまで手を出したが
C言語まではギリギリだな
今はVBAすらよくわからん
似たような感じだわ
独学でベーシック覚えて学校でFOTRUN勉強し
後はアセンブラを86 68を覚えて
c言語を仕事で使って、C++、遊びでD言語覚えてる最中で
転職してまったくやってないw
記事結論の、「昔は数学的バックグラウンドを前提としていたから別言語の習得も容易」の結論はイマイチ納得いかん。
>>68
BASICとZ80アセンブラとC、Objective-Cもちょっとだけ。
読むだけなら68kアセンブラとVBとJAVAも分からなくもない。
俺みたいなアマチュアにはC++は大規模すぎる。
>>69
> Java/Javascript/PHP : 魔境、周りの大半がここで死ぬ。
javascriptもアレだけど、これはもう言語を作る言語みたいなものだし、割り切ってしまえばね
むしろphp がダメすぎるのに(MVC フレームワークとかもやってるけどどうにもムリがある)、
wordpress とかメジャーなCMS でいまだに使われてるからなあ……
php をやるくらいなら、
適当なバックエンドにxsltとかを組み合わせる方がはるかに見通しがよくなるんだけどね
ほかの言語でも最低限動くだけのコードなら
なんとかこしらえることはできるだろうよ
だがそんな書き捨てレベルのコードは負債でしかない
8086系と68000系を理解すればな
今やるならRISC系が一つ欲しいな。
いまでも遅延スロットある?
8086は互換性問題を抱えているから純粋にやるなら6800でいいだろう
インテル系を無理にやる必要はない
というか、実行コードとはなんぞって話でいいんだからcometで十分
80系と68系は考え方の違いを知るのに役に立つ。
80系から入って68系のアドレッシングモードの豊富さを知るとびっくりするが、
どういう局面で使うんだろうと感じることも多い。
80系は68系に比べるとダサいが、プロテクトモードを学ぶとその膨大さに驚く。
RISCをやるとそんな複雑なものが無い世界というのが分かる。
80系や68系がアセンブリコードレベルで上位の概念に近づこうとして、
結局必ずしも成功しなかったことも分かる。
新たなアーキテクチャを組み立てる人はエンジニアとして最優秀だと思うが、
彼をしても20年先は見通せないという話だな。
>>93
アセンブラで書く必要があるかと言えば、もう一般にはない
なぜアセンブラを知るかと言えば、高水準言語がどのように機械が実行できるコードに落ちるか、そこを学ぶためだと思う
となれば、単純なものでいい
それじゃ意味が無いというなら、最初のc言語を調べるといい
殆どアセンブラと一対一
アーキテクチャの話は誰が最適化するか、という話。
cpu側でやるのか、コンパイラに全てお任せするのか
cpuが複雑化するのはわかっていたことだけれど、当時は選択肢が無かった
コンパイラが最適化する能力を持つにはメモリや二次記憶が多く必要だから
1990年頃?だと思うけど、あのあたりのbitが手に入るなら参考になるよ
>>98
OSの一部は今もアセンブラで書かれる。アセンブラはシステム・プログラミングには必須。
(コンパイラのインライン・アセンブラを使うかも知れんが、それもアセンブラ)
あやしいな。今、Linuxのソースツリーみてみたけど、アッセンブラはなかったよ。
よく探せば見つかるかもしれないが、
>>201
何を見てんだか、このアホは。
$ find linux-4.4.0/arch -name "*.S" | wc -l
1384
>>98
というか、ムーアの法則は既に定説の時代で、その時に年々増加するトランジスタをどこに割り振るのが最適解か?
という問題で68000は間違ったんだと思うよ。当時学生だった自分はあの直交した美しいアーキテクチャーが生き残るものと考えた。
一方「シリコンOS」を目指した80286はその野心は素晴らしかったと思う。今あんな技術的ジャンプをメインストリームの商品で出来ないだろ。
bitは当時定期購読して読んでいたよ。
アセンブラをやるべきなのは、やっぱりコンピュータを生で触ってる感を得る事かなあ。
CPUの動きを実感すると、どう書いた方が効率的に動くかを推定することが出来るようになる。
少なくともコンピュータが苦手とするやり方を選ばなくなる。
同じアルゴリズムでも書き方で効率が一桁違うなんて当たり前にあるからねえ。
アセンブラは学んでおくと他のプログラミング言語の習得と理解が早くなる。
原理を知っておくことは重要。
敷居は高いけど
C学んでおけばわりとなんでもとっつきやすい気はするけど、そうでもないのだろうか。
今はPythonから入ってんだっけか?
「概念を学ぶことができたなら、構文が違う別のプログラミング言語にも同様の概念を適用できる」
「しかし、これは基本的な概念が異なるプログラミング言語には応用できない」
そらせやろ
>>1
応用の効かないバカもプログラムするようになったから、
これまでの常識は通用しないって話かよ
バカは昔からいただろってw
要は実情にそぐわない必ずしも言えないという話だがそれはそういう場合もあるのは当然であって
いちいち否定することじゃないと思うんだが。だからってどうするって話がないと殆ど意味がない
学校で教える必要はないとか、とりあえず○言語やるとか無意味である、というわけでもないんだろ?
得意でない人は、目に見えるコードの切り貼りと模倣に集中しすぎる
MAUI
ネイティブより処理遅いアプリしか作れなさそう
ちょまどに聞け
>現代におけるプログラミング言語習得の実情には
つまりCOBOLかCかフォートランかJAVAか、
という言語論だったはずが、マクロが雨後の筍のように乱立していて、
各会社のマクロやAPIには一貫性がないからどれか覚えても
他には全然通用しませんゼ、って話でOK?
ほぼ言語的にはC言語が制覇した感じだけどな。
授業でCかjava習ってればどーにでもなる。
微量の電気信号とタンパク質の塊
方程式の様な書き方するから
そんだけ?
だったらむしろ国語のほうが大事な気がするんだよな
プログラムで何をしようとしているかにもよるが
多くの人が、求めたい結果のプログラムのために数学が必要になったり
2進数、16進数の計算が必要になったりしてくるから
国語、超大事
むしろ国語においても数学においてもプログラミングにおいてもロジックが重要というだけ。
そしてロジックは国語より数学に近いところにある。
>>168
日本ではロジックを国語の時間に教えている、事になっている
だがそのせいで厳密性を欠く議論を学んでしまう傾向にある
CPUは突き詰めると足し算回路、それに掛ける命令は数学そのもの
GOTO 1
敷居は高いけど
人「ここのボタン押したら、ほにゃららを表示して」
AI「ワカリマシタ」
翻訳より楽じゃね
仕事では全く役に立たない趣味レベルと分かった
すなわち最初にCを習得するとすべての言語が使える
最初にpythonやRubyを習得すると、Rは使えない
最初にVBAを習得するとなにもできない
誰だろ?
それが事故らないとか商売できるかどうかは別として。
トラックやバスはきつくないか?
LispとC比べたらオートバイと乗用車くらいに違うかも
こりゃ今のプログラムとは完全に別もんだなと思ったよ
objetive-cもC言語を知らないからか覚えにくかった
java,C#.NET,VB.NET,PL/SQL,ruby,python,Swift,JavaScriptあたりは横移動してもすんなり馴染めた
最近久しぶりに研究でプログラミングするようになって
Pythonを使ったのだが、簡単でびっくりしたわ
昔はJavaとかC++とか使ってたんだが、Python自体は半日でほぼ使いこなせるようになったし
機械学習も数日で簡単にできるようになった
なので>>1は言っていることがよくわからんのだが、どゆこと?
Pythonなんて初心者向けの言語は関係ないって?でも今どき、少なくとも理系の研究者では
Pythonつかってる人むっちゃ多いと思うが
>>130
>データサイエンティストになりたい学生はC言語よりもR言語やPythonを学ぶ方が理にかなっており
記法が別物のプログラムが沢山あるからってことみたいよ
R言語もレアな気がするけど、データサイエンティストとやらの間でもポピュラーなんだろうか
>>130
機械学習ってそれライブラリ使っただけだろ
元はCで作られてるしCライブラリも当然ある
NumpyだってCで開発だしな
てかPythonで書かれた野良ライブラリつかうと読み取くだけで何日もかかる
読ませるようにはできてないよね
Pythonもアルゴリズムという点で言えばC++と変わらんしわざわざ上げる必要もないわ
その辺の設計方法を知ってなきゃ簡単とは言えないわ
個人的にはselfのオンパレードを何とかやっつけたいんだけどなかなか難しいな
手続き型と関数型じゃね?
今だったら Haskell かもね。
外国語と同じだろ
似た言語もあれば
似てない言語もある
得意言語の訛りは
なかなか抜けないけどね
BASIC→C→Perl→C#
C++とかJavaとかやらないでアプリで1億円稼いだ
プログラムを習う前に、論理的思考、優先順序の構築能力位は身につけておかないと
プログラム文法を習っても効率の良いわかりやすくスタイリッシュなソフトを記述出来ない。
そういう話か?
環境は多様だしググればいい時代だから覚えることは減ったね
z80アセンブラとbasicとLispは使えたけど、Cは挫折したな
同じような名前で微妙に機能が違うとかが多くなるとつらくなる
C言語なんて機能はほとんどないだろ。
「機能」って言ってるのはライブラリ関数のことだろうね。
LISPとか無理ぽ。
javaとかpythonとかだったら絶対挫折してた
特にpythonは特殊すぎて何の役にも立たなかった
スマホの簡単なアプリで小銭を稼ぐようになると
あら不思議プログラム学習急上昇
要は必要かどうかだよ。
子供に教えるなら小銭を稼がせながらプログラムさせるといいよ
現在70歳
学校 → フォートラン 理解不能
仕事 → アッセンブラー、コボル、RPG
趣味 VB
その後30年間は何もせず
現在 → java 定年後趣味でアプリ制作(5本目)
要はコツコツ毎日少しずつということが最近分かった
お前らアセンブラ板にmovしろよw
あとはどうとでもなるようになった
perl、phpも昔ECサイト構築でいじってたけど・・
なんか他にも使ってた気がするけど何だっけ・・。
Cできればある程度できるような気もするんだけどねぇ。
おすすめのサイトある?
解説サイトはやめた方がいい
素直に参考書を買うべき
vbはろくなのがもう売ってない
昔Cで次にC++でも
COBOLで開発できないってことだろ
あたりまえじゃん
すぐ仕様変更するし。
他の言語でもググって自分用にカスタマイズだから
C#とpythonは苦労なく行けたのに
同系列言語
pythonは別物
PythonもJavaもC#も基本手続き型言語だから大差ない
関数型言語とかとはかなり差がある
アセンブラとCやれば、どんなプログラミング言語も習得できるよ
条件分岐や比較・演算などコーディングの基礎は同じ
IBM Quantum 触ったことあるやつくらいいるだろ
>>1
(C++, Haskell, Common Lisp)
最初にこの3つの中の1つを学び
次はその残りのうちから1つ
こういうのは難しそうだw
やっぱパラダイム共有したのじゃないとキツイ
そのうちアレクサがこの商品を購入してくれたら代わりにプログラミングしますとか言い出しそう
なんで滅びないといけないんだよ
Linus はバカがプロジェクトに入り込まないようにCである必要があるみたいなこと言ってたな
だってあんな危ない言語使いたくないだろ。ああいうのは人間が本来やらなくていいことをやるための言語。
自分の責任範囲が限定されるから安全?という考えはあまりよろしくないでしょ
Unityだって買ったアセットがダメでしたのでアセットのせいです、じゃ済まないわけで結局自分でネイティブ実装できなきゃ話になんない
低レベルはいつまでたっても必要
だからCは仕方なく使う言語だ、ということでしょ。チューニング必要だからアセンブラからできないとダメ、ってことにはならないわけだし。一部の、OSとか実装する人間だけが扱えればいいよ。
後ろに書いたのが先に実行される
そりゃこんなパスワードならラピュタ人滅びるわw
起動:リテ・ラトバリタ・ウルス・アリアロス・バル・ネトリール
終了:バルス
OCamlとかLispみたいに副作用があるのは便利だが分かりづらくなる
おれはC++かなー
IDE なし、emacs で
それかなり昔から言われてるよね。フリーランチは終わった、とか言って。でもpureな関数型には移行はしてないね。なんか根本的に難しいのかもしれない。
文法というよりは考え方が違う
手続き型は副作用ありきだけど、関数型は基本副作用は無しだから
だから何?
プログラム言語で云う低級高級は、バカでもできるのが高級だからな
相対的な話だから何に比べてって書いたほうがいいかも
相対的w
分からないなら書かなきゃいいのに
おまえは分からないから具体的な内容を書いてないわけねw
CはOSを記述するためにCPUのアーキテクチャに近づけて設計された言語だから、何かと比べて低級なんではなくて絶対的な低級言語として存在してるのよ
向いてない
むしろオブジェクト指向と関数型言語を理解すれば
たいていのメジャー言語はいけるから楽だと思う
オブジェクト指向と関数型言語って1980年代の技術で全然進歩していない
それ言ったらLISPなんか最古のプログラミング言語だしね。
最古の関数型言語だろ
最古のプログラミング言語はやっぱりFORTRAN
>>230
そうなんだけど、LISPはそれくらい昔からある言語なのに、全く古びてない、ということが言いたかった。
実用性を考えずに、論文として出てきた言語だからね。
よりアセンブラに近いものが低級
人間の言葉に近いほど高級
だっけな?
メモリ操作の自由度が高いほど低級
最近は人間の使う言葉で仕様書を書くだけで
システムを作ってくれるものも出来つつあるけど
これは超高級言語って事になる
>>1
俺もプログラミング言語をいくつか体得してきたけど、最初にBASICやったおかげでかなり覚えやすかった記憶がある。
ただし簡単とは必ずしも言い切れない事も事実。
言語の習得に合わせて概念を学びながら習得することが重要と思う。
BASIC : 簡単
↓
COBOL : 簡単だがただただめんどい
↓
C : 鬼ムズイ。なんだポインターって・・・コンパイル通らねぇ・・・
↓
C++ : 鬼ムズイがまあ分かる。しかしメモリリークしまくり。
↓
Java/Javascript/PHP : 魔境、周りの大半がここで死ぬ。
↓
C# : なんだこれ簡単すぎぃ
↓
Python : 簡単すぎてしぬぅぅぅぅぅ
>>239
Pythonは他のプログラミング言語とほんの僅かだけ
書き方の違う部分もあるからそれを乗り越える時間は多少いるが、
それさえクリアしたら、変数とif文とfor文とライブラリの使い方を理解して
後は先人のプログラムをロジックを考えつつコピペして変数名と関数名を書き換えて行けば
何でもできちゃうじゃねえか!!!
ということで、ある程度のストーリー性のあるロジックを理解できるような
国語とかも好きな理系、なら殆どの人が簡単に理解できちゃうw
人文系でも暗記オンリーじゃなくてある程度筋書きのあるものを
理解できる人なら十分に使えるようになる
学校で数学とか習って来たけど、それを実際の問題に対してどうやって実装するのか
今一つ分からないなあ、って思っていた人にとって
Pythonはまさに救いの手であった
>Java/Javascript/PHP : 魔境、周りの大半がここで死ぬ。
PHPというかWebプログラミングって色々コツがいるよね
HTMLとの連携を理解できていないとダメだし
XMLHttpRequestとかHTMLとJavaScriptとPHPの3段階を踏むことになるし
覚える事も多い
今や、ローコードツールやノーコードツールの
時代らしいわ。
職人的なプログラマは、その辺のツールつまり
マザーマシンを開発できるプロ。
先端ツールを使うのに必要なのは
主に数理的な論理思考が出来ること。
業務を数理モデルで設計できればOK。
何度もそんなブームあって実際に定着した試しがないからなあ
時代が完全に変わりオブジェクト指向に変わりIDEも高性能になり超快適
だが、C++は出来てもCだけはダメだったな
C++できてC出来ないってのは、もとJava使いのバカかな
要求仕様をロジック列に翻訳する、ってのが非プログラマには理解されてないもの。
A なら B をする、は if A then B じゃなくて B とだけ書いても満たしてる、っていくら説明しても分かってもらえない。プログラマは仕様を汲み取ってロジックに落とさないといけない。で、齟齬が起きる。
これ全然わかんないんだけど
Aは前提だから考慮しないでいいってこと?でもガードくらいするよね
Bは独立して実装できるモジュールだからAと関係なくやっときますよってことかな?
これは Interface 誌で藤田さんが解説してた。
B だけの行は A の時にも実行されるから、日本語で表現した「AならばBをする」を満たしてる。if A then B に相当するのは「AならばBをする。Aでないならば何もしない」。自然言語で書かれた仕様書は厳密じゃなくプログラマの常識による解釈が入る(必要)から、仕様作成者とのコミュニケーションが必要、って話。
「Aでないならば何もしない」で無駄なelse文を無駄に書くし挙句にネストまでしてそうだな
何もしないを理解できないから、最悪だな
シネレベルのバカだな>>268
> A なら B をする、は if A then B じゃなくて B とだけ書いても満たしてる、っていくら説明しても分かってもらえない。
お前が馬鹿だなw
解説記事のままなんだが。
お前らも理解出来ない馬鹿だってことだ。
お前は小さな声でクチャクチャ喚くから相手に聞こえないんだろw
>>269
315: 名無しのひみつ 2021/06/29(火) 19:38:51.72 ID:w5WvVNeW
>>268
それ、if/then/elseでやるからバカみたいにみえるんじゃないの?
命題論理では、A→B(AならばB)は、Aが真でBが偽のときだけ全体が偽になるからね
これを”AのときにBをやらないのがダメ(ほかはどうでもいい)”って意味に解釈するなら、たしかに”つねにBをやってもいいよね”となっちゃう
ただ日本語の”ならば”は、A→BかつB→Aの意味に近い
確かに>>245の説明がどういう状況で起きたか分からないねえ
AならばBする
とか書いてあるんだから、
条件が少なくとも2つ以上あると思われるので
A1ならばB1する
A2ならばB2する
と分けてみよう
手続き型のプログラムならifにA1の時の処理、else ifにA2の時の処理って書かないとダメだろうな
でも関数として何か完成してる場合、A1もA2も同じく「Bを行うためのシグナル」と見なして、
その出力結果としてB1も出て来るしB2も出て来る、って事かなあ?
お前もバカすぎ
気持ち悪いから消えろ
>>259
AならばBする
だけなのになぜこうなるのか?
> 条件が少なくとも2つ以上あると思われるので
> A1ならばB1する
> A2ならばB2する
↑こんなアホはさっさと切れ
馬鹿
>>268
それ、if/then/elseでやるからバカみたいにみえるんじゃないの?
命題論理では、A→B(AならばB)は、Aが真でBが偽のときだけ全体が偽になるからね
これを”AのときにBをやらないのがダメ(ほかはどうでもいい)”って意味に解釈するなら、たしかに”つねにBをやってもいいよね”となっちゃう
ただ日本語の”ならば”は、A→BかつB→Aの意味に近い
仕様屋 「AだったらBでよろ」
>>245 「Aとか関係なしにBでよくない?」
仕様屋 「AだったらBでよろって言ってんじゃん。AじゃないならBじゃないよ?」
>>245 「だーかーらー、Aとか関係なしにBでいいんだってば!?」
仕様屋 「なんだこいつ?」
俺 「なんだこいつ?」
まったく議論がなされず齟齬しかない空間じゃないかこれ。
議論なんか要らないだろ?
キチガイの齟齬以前の問題
だからif/then/elseなら”AのときだけBをやる(AでないときはBはやらない)”でよく、ふつうは>>245 みたいな齟齬は起きないよね?
その”藤田さん”の言いたいことは分かるよ(論理は厳密なのに自然言語は曖昧)
ただ命題論理の”ならば”と自然言語の”ならば”は意味が乖離しているということも論理学では習ってるはずだし、その例はさすがにどうかと思う
> だからif/then/elseなら”AのときだけBをやる(AでないときはBはやらない)”でよく、ふつうは>>245 みたいな齟齬は起きないよね?
ああ、起きないよ。この例で齟齬が起きたと解釈した
アホが大量に涌いた事に驚いているが。
>>320
で、こいつが大量に湧いてるのか?お前だけじゃなくて?w
> A なら B をする、は if A then B じゃなくて B とだけ書いても満たしてる、っていくら説明しても分かってもらえない。プログラマは仕様を汲み取ってロジックに落とさないといけない。で、齟齬が起きる。
要求仕様が非ロジックとわかっているならば、設計者はAならBを非ロジックの解釈で対応しなければならない。
ちなみに、AならばBは、実用的にはAかつBだよ(論理的にはnot AまたはBだが)。普通はifを使うが&&で十分だ。
スマホが普及して話通じない人が沢山ネットに流入してきたのと一緒な感じだな
ポインタ以前で躓くよ
きっとそのC++のコードは相当ヤバいと思う
それな
素人さんは妙なこと言っても気づいてないんだろうな
STLやboost使うからCのポインタで躓くのはあるかも。
参照型その他で乗り切ってるって事なのかなあ
(*・ω・*)
ベン図とか使えばいいじゃない
誰に言ってんの?
お前ちょっと
「AならBを処理する」件について
こいつバカすぎ
> A なら B をする、は if A then B じゃなくて B とだけ書いても満たしてる、っていくら説明しても分かってもらえない。
>>277
このバカどう思うよお前は
> A なら B をする、は if A then B じゃなくて B とだけ書いても満たしてる、っていくら説明しても分かってもらえない。
if文が理解できないマヌケ
ID:f8DfVubU
ID:bSgP2A/p
脳が満たされてないからこうなるwwwww
ID:bSgP2A/p「A なら B をする、は if A then B じゃなくて B とだけ書いても満たしてる、っていくら説明しても分かってもらえない。」
ID:f8DfVubU「B だけの行は A の時にも実行されるから、日本語で表現した「AならばBをする」を満たしてる。」
Aに副作用があったらBとだけ書くんじゃダメだろうって話じゃないの?
Aが真正の副作用なので分からせるBをする。
#include
/* aが真ならば、Bを処理する(無限) */
int main(void){ nt a = 1: hile(a){ puts("ID:f8DfVubUは最悪なマヌケです^^\n"); } return 0; }
○ int main(void){ nt a = 1: while(a){ puts("ID:f8DfVubUは最悪なマヌケです^^\n"); } return 0; }
嗤い過ぎて手が滑りすぎじゃねw
○ int main(void){ nt a = 1; while(a){ puts("ID:f8DfVubUは最悪なマヌケです^^\n"); } return 0; }
世の中には忖度が必要な場合もあるからね
基本A->Bではあるんだけども
A(be)だったら特例でゴニョゴニョするとか
まあ可読性や後々の拡張性を考えるとif文で条件きちんと明示しておいた方がいい
この板のせいなのか可読性よく書くと規制に引っかかる
つまり、AがアホならBされる
こんなバカな奴は居ないと思うが、たまにびっくりするほどのガイジおじさんが居るからな
ID:bSgP2A/p「A なら B をする、は if A then B じゃなくて B とだけ書いても満たしてる、っていくら説明しても分かってもらえない。」
バカでもやらないバグを生んだ奴だとテスターごときに嘲笑をあびせられてカワイソウ
挙句に言い訳がこれならもう出禁かクビ
> これは Interface 誌で藤田さんが解説してた。
> B だけの行は A の時にも実行されるから、日本語で表現した「AならばBをする」を満たしてる。if A then B に相当するのは「AならばBをする。Aでないならば何もしない」。自然言語で書かれた仕様書は厳密じゃなくプログラマの常識による解釈が入る(必要)から、仕様作成者とのコミュニケーションが必要、って話。
一つ目のプログラム言語習得が、二つ目以降の言語習得よりは、ハードル高いのは間違いないし、だからこそ興味と実益のある分野でないと乗り越えられないんだろ。
二つ目のハードルが多少下がるからって理由で、わざわざ最初に実用性も興味もない言語を選ぶ奴居るのか?
まあできるおじさんたちは、空ループでラップして、B処理の前で半手氏ブレークして最終行へすっとばしの刑
マヌケってのはこいつら
ID:f8DfVubU
ID:bSgP2A/p
「AならBして」では曖昧だと
そんな奴はマジで即刻クビにしないとな
プログラム技術板のpythonスレでは
インデントに全角アンダースコア使って
読み易くしてたな
if A:
_B
elif A1:
_B1
else:
_pass
こんな感じ
無視すべきアホレスでスレッド伸ばす奴
おそらくその藤田氏は仕様書などのテクニカルライティングの指南として曖昧さの排除を言ったんだろうね
現場の方ではこの場合だと not A でも通すのは論外としても条件が A だけなのか今後 A’ A” と増えそうかでコードを変えているかで腕の違いが出る
大企業ではプログラミングはほどんどが外注だよ
藪蛇言語を俺は知らんけど
switch文がないならfor文を使って1回ループで疑似スコープを作り
一行だけのif判定処理でbteakすりゃいいだけだ
条件が増えたらその判定処理をつらつらと書けばいいだけ
素人pgは圧倒的に工夫が足りない
bteak
ブターク
#defin bteak break
目に見える金銭の動きだけでなく、見えない債務や債権も見える形にする。
モデル化とはどういうことかよくわかる。
複式簿記を考え付いた奴は素晴らしいSEだと思うよ。
信号が赤なら止まれ
これが理解できない馬鹿は確定的明らかに危険が危ない
家からもう出るなよw
薄ら気持ち悪いわアホ
言語にもよるし習得の度合いにもよる。
ちゃんとした言語をちゃんと習得したなら応用はできるよ。
>>322
> ちゃんとした言語
とりあえず各パラダイムを体現してそうな言語を触ってみるなら、
項書き換え系ならmathematica 、関数型ならhaskell 、論理型(制約論理ふくむ)ならswi-prolog (prolog) 、
手続型+オブジェクト指向ならrubyとかsqueak (smalltalk)とか……?
>>1
>なぜ多くの人は最初に学ぶプログラミング言語が重要ではないと考えているのか?
だって…N88BASICだもの…
必要条件や十分条件なんて小学生のころにやったもんだ
ゆとりか、それとも最近小学生からプログラム教育とかやってるらしいからそれか?
大穴でそんなことも分らないチンパンか
いずれにせよプログラム以前の知能だな
まあ知ったかBASICおじさんが論理式をしらなくてそのままIF THENに展開したのマヌケw
頭が良い人っていいよな
javascriptを弄ると楽しいぞ
>>328
プログラミングへの適性って、以前は”ふたこぶラクダ”の論文とか取り上げられてたけどね
いまはトンデモあつかいだけどw
その論文の主張ってのが、”プログラミングが得意な人=雑多なできごとに一貫した性質を見出そうとする人”、って仮説
ただ正直、もしかしたらそういう面もあるかも、とは思ったかな……(あくまで個人的感想)
とはいえそういう人は、プログラミングができたとしても、共同体の中ではけっこうストレスを感じるのかもしれない(人間社会と一貫性はなかなか相容れないから)
いっぽう論理より感性という人は、曖昧でつかみどころのないヒト社会にうまく適応してるともいえる
>>329
回路設計から入った人たちは、論理回路を組むのと同じように論理設計をコードに落とし込む
これは異常系ルートをGNDに落とすのと同じ概念
ベン図ともはや死後の世界すぎて何もかも懐かしい
Javaはテキスト量が無駄に増えるイメージ
義務教育卒業レベルの知能でいけるだろ
そういう低俗なマウント取りをする程度の知能で十分だな
だよな?
難しいって言ってる奴は明らかに教える人や教材が悪い
概念自体は難しくはないけど、それを使ってバグがなくメンテしやすいプログラムをどう作るかが難しい
手なりに作ると失敗すること多い
言ってることが無駄に小難しいからすぐバレる
1980年代学生時代にやった
BASICしか使えない
10年前社会人大学院生として
大学に戻った時もネットで
探したBASICを使った