ぶっちゃけ始めるのにいい言語て何 part7
■ このスレッドは過去ログ倉庫に格納されています
Go「初心者でも理解しやすいです。静的型付け言語です。処理が速いです。コードがシンプルです。ライブラリ豊富です」←こいつ以外を勧める理由 goは触れたことないけどなんとなくイヤ
package main // ←なにこれ
import "fmt" // fmtって約し方がイヤ
func main() { // funcがイヤ
fmt.Println("Hello, World") // Pが大文字なのがイヤ
} 大手IT企業たちの方針
プログラミング言語「Rust」のための「Rust Foundation」設立 -- AWS(Amazon)、Microsoft、Google、Mozilla、Huaweiが創設
https://japan.zdnet.com/article/35166267/
Facebookが「Rust Foundation」に参加
https://japan.zdnet.com/article/35170192/ >>5
Rustはプログラミング言語の集大成といった感じだな
まず基本のC言語と同じくネイティブにコンパイルされガベージコレクションも無く最高速かつ低水準も記述できるのでOSや組み込みまで全ての分野で使える
それに加えてHaskellなどから強力な静的型付けを導入し高度でかつわかりやすいプログラミングによりミスを避けられ保守性も高い
それらの良い特性にも関わらず他のモダンなプログラミング言語などと同様の利便性や記述が出来てプログラムが非常に書きやすい
これら良いとこ取りをしただけではなくRustの独自性としてコンパイラに通った段階でメモリ安全性の保証をGCなく実現したことが大手IT企業たちから強い支持を得るに至った 最初の言語なんてBASIC程度のものでいい
始めから何もかもやらせようとすると高確率で挫折する >>9
スレタイ見ればわかるように最初の言語とか初心者などに限定したスレではない
プログラミング経験あるけど久々に始める人でもいいし
現役プログラマーが次に始める言語でもいい 日本の企業でRustはそんなに定着してない
まだ数年はGoやってた方がいい >>8
向こうがなんか臭いのでこっち建てました
タイトルも勝手に変えてるし >>12
たしかにgoやってるの話は直接耳に入ってくるけど
rustやってる話は直で聞いたこと無いな
>>13
スレたてありがとうございます 滅茶苦茶CPUバウンドでかつGCあると困る用途でない限りはGoでいいんちゃうの
生産性はやっぱ正義 あわしろ氏はHaskellを強く勧めてる。
これからの若者は数学志向プログラミングに触れるべき。 >>16
Go信者は、Go以外の言語は生産性が悪い、と本気で思い込んでいて恥ずかしいと思います。 無難にPythonかな
アルゴリズム本はPythonで書かれてることも多いから初心者向けだし
Juliaに進むにしてもPython知っといたほうが良い
いずれにせよPython完璧に覚える必要はないかな多分 Pythonは癖が強いとおもってたけど
今や使ってる人めちゃ多いからいいかもね REPLがあったほうが良い?
やっぱチョコチョコ反応みながら書いていくのがやりやすそうだけど >>21
REPLあったほうが学習効率は断然いい
ただ最近は動的言語だけじゃなく静的言語でもだいたいREPLあるよ
使いやすいかどうかは別だけど REPL は、いらない
VSCode の拡張機能・Code Runner で、右クリックメニューから、
選択したコード片か、またはファイル全体を実行できる
JavaScript なら、拡張機能・Quokka.js で、リアクティブに表示される >>21
行単位REPLは制御文や関数など複数行になると修正も大変かわかりにくくなってしまうから
初心者にはウェブブラウザ上で書いて実行できるタイプの方がオススメかな
例えばRustでも公式でプログラムをブラウザ上で書いて実行できるplay環境を用意してくれてるね
https://play.rust-lang.org/?code=fn%20main%28%29%20%7B%0A%20let%20a%20=%201;%0A%20let%20b%20=%202;%0A%20println%21%28%22%7B%7D%22,%20a%20%2B%20b%29;%0A%7D%0A 黙ってC言語だけやってりゃいい
ポインタを分かるとこまでやってりゃいい Haskellで数学志向プログラミングに触れてはどうか。 あわしろ氏がお勧めする数学志向プログラミング。
知らないとは言わせない。 オブジェクト指向は「指向」であり
数学志向は「志向」であり謎が謎を呼ぶ https://www.weblio.jp/content/%E6%8C%87%E5%90%91
し‐こう〔‐カウ〕【指向】
[名](スル)ある方向・目的に向かうこと。また、方向や目的を指示してその方に向かわせること。志向。「輸出先として指向する国」「主力を激戦地に指向する」
https://www.weblio.jp/content/%E5%BF%97%E5%90%91
し‐こう〔‐カウ〕【志向】
[名](スル)意識が一定の対象に向かうこと。考えや気持ちがある方向を目指すこと。指向。「高い志向をもつ」「音楽家を志向する」「上昇志向」
ふむふむ Haskellから型クラスやモナドなどを参考に採り入れたRustをまず学ぶのも進みやすい道かもね
Rust自体はそれでいてベースがC言語の手続き型言語だから多くの人が入りやすい おばあちゃんが今から始めるのもHaskellとかRustがいいんですか?
こないだ有線リモコンの冷房から無線のエアコンに買い換えて驚いてたおばあちゃんなんですが Rustは手続き型ベースなので、最初の言語として相応しくない。 数学は関数であり工学の基礎なので、最初の言語として相応しい >>36
大半のプログラミング言語が手続き型なんだけど
本当に手続き型は最初の言語として相応しくないの? というわけで黙ってC言語やっとけば間違いないんすわ プログラミングの初心者が参照する
どんなテキストや動画コンテンツでも
最初は手続き型でしか教えない
最初からオブジェクト指向とか
構造化とかコンポーネントとか関数型とか教えない
どんな言語も構文は大体同じなので
学習コストが安く
学ぶ情報環境が整っている言語がいい
ただしjavascriptは言語構造は混乱しやすいので
Ruby,Pythonあたりがお手軽でおすすめ
C系やRustは学習コストが高め
javascriptは文法があやふや(互換性)
なので、避けたほうがいいでしょう JavaScriptは触れ合いやすいけど
ちょっと癖が強いわなぁ
Foo.prototype.bar = とか
これを覚えたところで他に生かせなくて無駄 あとそれと「巻き上げ」とかな
JavaScriptって入り組んでくるとことごとく捻じ曲がってる印象 古いJavaScriptで書かれたソース読む機会あったけど呪文みたいだったわ
設計もめちゃくちゃだったしクソコードに触れる機会を減らしたいならサーバサイドを中心にした方がいい C#かkotlinに一票
Rustはいい言語だけどはじめての人がいきなりはちょっとやめたほうがいい やっぱPython→Juliaとクラスチェンジするのが良いよな javascriptはHTMLを動的に扱うために作られたので
発想はマークアップを装飾するためのアクセント言語だったのが
その時代の言語構造を引き継ぎながら
ブラウザプログラミング言語を志向したので
互換性やらなんやらで、最終的に学習コストが高くなった
始めるのなら最初から軽量で
言語構造もシンプルに洗練されている手続き型の言語で
学習情報が豊富なPythonがおすすめ
そこで基本を学んでから関数型やオブジェクト指向や
いろいろ広げるのが正解 pythonは昔はオフサイドルールが癖強すぎて避けてたけど
今となったら癖とかなんとか以前にユーザが増えすぎて
そういう意味で有利になっちゃったな
ネット上に文章が多いし求人でも有利だろうし Javascriptでバグ無くせとかなんの修行なのか。
バグりやすく作られた言語なんだから、バグ入れるのが正しいのではないのか。
バグ入れたらダメなら、何でバグりやすい言語仕様にしたのか。
謎が謎を呼ぶ。
だれかコナン呼んできて。 昔はカーソルの形変えるための言語だったのにねw
あのころのことがあるからイマイチ信頼できない
応援してるし頑張ってほしいけど ブラウザ言語でバグっても誰も損しない
バグはCSSでかっこよく装飾して見栄えでごまかす
エラーが出たらCSS装飾に飛ばすようにトラップかければ
クライアントも気が付かないで喜ぶこと間違えなし Pythonは入門は簡単だけど、使いこなそうと思ったら難しいから途中で他の言語もやるのが良いと思う >>56
手っ取り早くプログラミングの構文を学んだら
あとは必要な言語やプログラミング志向を学んで
好きな分野で活動すればいい
基礎的構文は
データ型、変数、関数、インスタンス程度
癖なくそれを学べる言語をチョイスすればいいよ Haskellで数学志向プログラミングに触れてみては。 >>43
それはclass導入前の凄く古い記述方法ですよ
今は便利になりました
>>44
「巻き上げ」もlet導入前の凄く古い話ですね
あなたは時間が止まっているようなので勉強し直したほうが良いでしょう
>>49
それは昔の話
現在のJavaScriptは非常に分かりやすい言語になりました
そのためブラウザの外でも使われることが増えました
>>52
それはJavaScriptの話ではなく動的型付けなスクリプト言語(Python, Ruby, JavaScript, ...)全てでそうですね
しかしJavaScriptなら静的型付けできるTypeScriptがあるのでその中で最も有利です それは昔の〜とかが本当にムダ
何か調べようと思った時に古い情報がでてきたり、
そのやり方を継承するような方法がでてくるのは効率が悪い
JavaScriptが(現在は)悪い言語とは言わないが、
始めるのに良い言語では、ぶっちゃけない JavascriptはWebサイトの後方互換性のために仕様が汚れまくっていてTypescriptで延命してるが早急に滅びるべき言語なんだよ
そろそろブラウザ用の機能もコトリンやGoで書いてWebasmで動かす時代になる >>62 >>63
現在のJavaScriptは非常に筋の良い良い言語だよ
だから利用者数がどんどん伸びている
サーバーサイドでもデスクトップアプリにも使われるようになっている >>60
なっ!?
JavaScriptでもclass宣言かけるようになってんだな
有難いけどTypeScriptの立場どうなっちゃうの 言語として良いか悪いかはさておき
プロトタイプベースのOOPLに触れようと思ったら
すぐこれに触れる手軽さはいいかと
これはこれで面白いもんね JavaScriptってすごく便利で強力だけど
習得が難しい言語のように思える
プログラミング初心者には厳しいのでは >>68
Pythonよりは簡単だし
JavaScriptは文法記述もいわゆるC言語系の王道プログラミング言語標準だから
Pythonを学ぶよりJavaScriptを学んだ方がその先も有利かと JavaScriptは色々ふわふわしすぎて苦手だわ
ブラウザで挙動変わったりするしこんなもんに時間掛けたくねえ jsはVBやPHPよりはましだとは思うが
どっちかというとそいつらは全部カス arguments.calleeなんかあるのも面白い
再帰の関数式を書ける
[1, 2, 3, 4, 5].map(function(n) {
return !(n > 1) ? 1 : arguments.callee(n - 1) * n;
});
でも今じゃ
[1, 2, 3, 4, 5].map(function factorial(n) {
return !(n > 1) ? 1 : factorial(n - 1)*n;
});
こう↑書けるしこっちがオススメみたいだけど
前者の場合は完全に無名関数の再帰になるんで凄みがある(個人の感想です) >>70
なぜそこで嘘をつくんだよw
ブラウザでJavaScriptの挙動が変わるって何の話だ?? >>73
Chrome、Firefox、Safariで挙動変わるだろ。特にSafariはクッキー関連厳しくて動かないことが多い
古いプロジェクトだとここにIEが加わって地獄化するよ >>74
え??
それはJavaScriptとは一切関係ない話
クッキーはHTTPの一部でありプログラミング言語と何ら関係がない
その区別ができてないのはちょっとマズいと思う ぐぐったけどイベント付近で差異があるね
これが「JavaScriptの挙動が変わる」に値するかどうかは不明
https://codezine.jp/article/detail/158
Internet Explorerの場合マウスダウンX座標はwindow.event.offsetX
Mozilla系ブラウザの場合はf(e)のe.pageX >>75
うるせえオタク
俺が変わるって言ってるんだから変わるんだよ >>76
16年前の記事を見付けてきて何をしたいの?
はるか昔に統一されていますよ
ちなみにそれもJavaScriptの言語仕様とは全く無関係な話
ブラウザ上でのWeb APIの話です
いずれにせよ大昔に統一されています >>72
それは昔の仕様なのでarguments.calleeは現在strictモードで使用不可となっている
arguments自体も使用不推奨となっていて今はrest引数(いわゆる...restArgs)形式が使われている
現在のJavaScriptはすっきり洗練されていてわかりやすく初心者にもオススメ こうも書けるしああも書ける、10年前はこう書いたけど今は違う書き方をするがどっちも動く
こういう言語のクソっぷりはPerlで懲りたでしょうに >>76
2005年の記事を持ち出してきてる時点でJavaScriptを叩きたいためにワザとやってるんだな
例えば2005年には現在のPython3も当然ないから2005年のPython記事を見たら仕様が違っていて混乱するのは当たり前
Rubyだって当時はRuby1であり現在のRuby2やRuby3ではない
今後もこのスレで古い話を持ち出して叩いている人が現れたらキチガイであると断言できる >>79
> 16年前の記事を見付けてきて何をしたいの?
> いずれにせよ大昔に統一されています
失礼しました
不勉強で申し訳ないです
>>80
> それは昔の仕様なのでarguments.calleeは現在strictモードで使用不可となっている
勉強になりますサンクス
ド素人なので参考になります >>83
ワザとじゃないし叩きたいなんて思ってないよ
ただ単に俺がド素人で知識が古いだけ
みなさんにはご迷惑かけるんで今後JavaScriptについては発言を控えるよ >>85
他のプログラミング言語でも同様だけど古い仕様を持ち出すのは意味がないのでそれぞれ現在の言語の話をすれば控える必要ないでしょう
現在のJavaScriptはもちろん初心者にも最適な一つですが初心者が辿る動的型付けから静的型付けへ進む時にTypeScriptへとほとんど学習コストなく進めるのも大きな推奨点ですね JavaScript()にも熱心な信者が居るんだな >>41
Fe → FeO → Fe3O4 → Fe2O3 と進む C++だって仕様の隅から隅まで覚えようとすると激難しいのであって
初心者が触りの言語として四則演算するのに大して影響は無い C#最強説
Webサイト作れます
デスクトップソフト作れます
Windowsストアのアプリ作れます
AndroidとiPhoneのアプリ作れます
PCゲーム作れます C#は色々嫌いだけど値型だけは好き
in/out/refつけてみたりつけなかったりで自分の好きにできて嬉しい
これを用意しなかったJavaも割り切っててスッキリしてて悪くは無いと思うけど >>92
in/out/refなんて飾りに過ぎないよ
コンパイル結果のコードが変わるわけではないしref付けてなくてinでも配列の中身書き換え通ってしまう
しかもoutなんて本来は返り値でやればいいものであってC#は1つしか返り値を返せなかった名残りで無理矢理に引数にしている失敗策
C#は中途半端なところが多いので避けたほうがよい C#って言語は良くてもあんまりモダンな感じがしないのがなぁ
色んなクラウド技術使ってるプロジェクトとは無縁そう >>94
配列は参照型だからまた話が違うのでは
値型の構造体などをrefやoutで指定するときは
複製を避けつつスタックへアクセスしたいという欲求を叶える >>82
これですよね
学習コストが高くなる
調べてても新しい情報なのか古いのか
初学者ではわからない
他の言語では表現は一つなのに
javascriptでは色々あるから
学習遅くなるし混乱する
プログラミングを学びたいのなら
pythonかRubyにしておけ
javascript、php、kotlinその他の言語は必要になったらマナブで十分 企業で働く9割ぐらいのやつはデータをシコシコ出し入れするだけの業務やってるしSQLを最初にやるべき ■ このスレッドは過去ログ倉庫に格納されています