プログラミング言語、次は何を学ぶ?
俺はC++くらいしかまともに扱えないが時代の流れとやらに乗るために新たな言語を学ぼうと思う
意見を聞かせてくれ >>1
私は rails/ruby と lisp/scheme をやっています、どちらもなかなか頭に入りません… >>2
rubyといったらweb系か
lispは詳しく知らないがどこかで学べば世界が変わるとかなんとか見たことがある >>3
>学べば世界が変わるとか
まだ私は最初の方だからなのかもしれません
https://mevius.5ch.net/test/read.cgi/tech/1531587928/6
が、まだ世界観が変わるという気配はしてはいないです >>4
なるほど
Lisp以前に関数型プログラミングというものに触ったことがないのでなんともいえないが、きっと何か革新的なものを得られるのだろう
健闘を祈る C#は開発ならなんでもできる感が強いが実際のところどうなんだ? >>7
なんでもはできないけど、大抵のことはカバーできるし、パフォーマンスも良い
書いててストレスのない言語って感じ ブラウザで直接動かないし、blazor使うと1ページ10MBとかになって全く実用的でない。
組み込みにも向かない。
なんでもできるなんてとんでもない。 ほーん、最近の言語って感じだ
C++の改良版らしいが、一番近い言語を上げるとしたら何だろう C++をまともに使いこなせるならそれで充分じゃん
目的とか理由も書かれていないから質問にすらなっていないのにスレたてまでするとか C++は組み込みに使えるがC#は逆立ちしたって無理。 >>14
感覚的な表現に逃げないでどういう意味かハッキリ言ったら?
まさか、C++がC#より遅いとでも言いたいのかな?ww すまんな、別に目的があるわけでもないし、ただ何か新しいことがやりたかっただけだ
C++使えれば大体のことはできるのは確かだが C++よりも早いとかでRustには興味があって少し触ってみたことがある
速度を体感するまでは習得できていないが、C++よりも断然安全な印象 rustみたいな
特定企業のしょうもない車輪の再発明なんか使うヤツはアホ 速度を体感とか人間の感覚じゃ体感できるわけ無いだろ 速度は言語によって結構変わらないか?
例えばC++とPythonじゃ大分違うだろ 3年も開発してると言語の実行速度がホントに必要になる開発はごく一部だと思うようになった JavaコンパイラはJavaで書かれているので一瞬でコンパイルする。
C++コンパイラはC++で書かれているので、一晩たってもビルドが終わってなかったりする。 間違えました。
×コンパイルする。
○コンパイルするする。 さすがJavaプログラマ、なんとIQ高いレスwww >>26
> C++コンパイラはC++で書かれているので、一晩たってもビルドが終わってなかったりする。
コンパイラぐらいCで書け、近頃は情けない連中がコンパイラ作ってるんだなあ 対話型の言語になってくんじゃないの?。
キーボードなんて無くなって、あいと会話をしながら作る時代が来るでしょ。
で、対話型と言えばBASICかな。 新しいことやりたい、って大抵今やらなきゃならないこと行き詰っているときだよな 対話型、いかにもSFって感じがするけど現実になりつつあるんだな >>26
Python のコンパイラは Python でかかれてるんですね。 Ruby のランタイムは、Rubyの簡素なバージョン、mini Ruby で作る >>26
PascalとかGo使え。
構文解析で有利だからコンパイルは速い。
実行速度はCだが。 javascriptいいんじゃない
c++で組み込み
js(node.js+クライアントjs)でwebアプリ
js + c++でguiアプリ
出来ない分野ナッシングやで >>1 python は簡単で時代の流れに乗ってると思う。
大学の入門用プログラム言語としても人気。
web系はperl みたいな感じで簡単だし、excel を直接読み込んで統計処理したり日常的に使いやすそう。
アメリカではプログラマじゃなくても、pythonを使える人という条件で人集めをしてたりするらしい。
丁度Excel word が使えないと事務すらできないのと同じ感覚なのかも。
言語的な面白さはないが、現実的。 突き詰めると拒絶反応を示さない、くらいまで落ちそう >>1
必要に応じてでいいと思うけど
一つの言語がある一定以上できればその知識を元に別の言語に入れるからそこまで多言語に苦労はしないはずだし
強いて言えばpythonなんだけど
日本国内でだと未だにjava or C#が多いからそっちでもいいのかもしれないね NumPy とか使ってもメソッド呼び出すだけで
別にPythonじゃなくてもいい感じ。 そろそろKotlinやろうかなと思ってる
スマホアプリ作る気はさらさら無いが
デスクトップアプリでもKotlinの需要とかKotlinの方がいいとかあるのかな >>48 C はすべての基礎言語だし、web でjavascriptは外せない。
この二つを理解した上で他に進んだ方が良いんじゃないのかな。
java やjavascript もCの方言みたいなものだし。 >>49 別に言語はなんだって良いんだけど、入門のしやすさと、試行錯誤のしやすさでpython がモテてるんだろ。
スピードはその通り上の言語がなんであろうが、Numpyとかが高速に下働きしてくれれば良いだけだし。
また、初心者教育する上で環境を問わないというのも大きな理由なんだろうな。 日本でpython の導入が遅れてたのは、Ruby があったこともあるが、何よりもpython が多言語(Unicode) 対応に遅れていたことだろう。
日本語での解説書もまだまだ不足してるし。
しかし、python.org の公式ドキュメントの言語として日本語が選べるようになってるのは有りがたいね。
https://docs.python.org/ja/3/index.html >>54 草が生えるほどおかしいか? 科学なんて試行錯誤の繰り返しじゃん。
パラメータを頻繁に変え、ロジックを頻繁に変え、結果を即座に確認。
このループがいかに早くできるかだろ。
数学じゃないんだぞ。 pythonで日本語の言語処理は結構しんどいよな。
まあ、しんどくない言語はあるのかって話はあるが。 最近の言語って、まともに設計されたものってあんまりないんだよな。Javaなんかも、どこに行きたいのかよくわからん改修してるし。 >>57
> 最近の言語って、まともに設計されたものってあんまりないんだよな。Javaなんかも、どこに行きたいのかよくわからん改修してるし。
最近の言語のほとんどは、昔の言語に比べて頻繁に改訂するし平気でBackward-compatibilityを無視した変更もするからね
そういう意味で、最近は昔の言語ほど深く長く考えずにさっさと取り敢えずの言語仕様を決めては実装して使いにくい部分はどんどん変えてしまうってスタンスで言語を作っては発表してる
こういう変化の原因の一つは恐らく実装する(コンパイラやインタプリタを作る)のが昔に比べてずっと簡単になったことがあると思うが
それだけでなく、社会の風潮がじっくり考えるよりもフットワーク軽く試しては変えるというサイクルを好むようになったことがあると思う
言ってみれば、昔の言語の仕様策定のやり方はコンパイラ的、つまり様々なアイデアを仕様に含めるか否か、また含めるとしたらどういう形で仕様に取り込むかを
じっくり考えて良く煮詰めた上で言語仕様を作るのに対して、今の言語仕様の作り方はインタプリタ的だという印象がある
だから設計がしっかりしているか否かと言えば昔の言語のほうがずっとしっかり設計されている
それは仕様を発表するまでに考えている時間が昔の言語のほうがずっと多いからね
そして昔の言語(だけでなくソフトウェアも)の場合Backward-compatibilityを捨てた変更をするというのは論外という価値観があった >>58
>設計がしっかりしているか否かと言えば昔の言語のほうがずっとしっかり設計されている
そんな気はしないのですが、具体例を例示していただけますか? >>58
そうだな、どうも仕様が熟考されてない気がする。
フットワーク軽くして、なにか斬新で有効なものが出てくれば良かったんだが、蓋を開けてみると40年前以上の概念の焼き直し。
同じところをぐるぐると回ってる気がするぜ。 じゃあjsでも使ってれば?
don't break the webとか言ってクソみたいな仕様もずーっと残ってるぞwww
アホくさ 改訂2版 Ruby逆引きハンドブック、2018/8/28、株式会社マネーフォワード
この本で、多くのデザインパターンを網羅しているから、
オブジェクト指向・関数型や、シェルでのフィルターの作り方なども学べる
一方、Python では、逆引き本は良くないという書き込みを見た 奇遇だな
俺はrubyはクソ言語だという書き込みを見た >>60
Adaの言語仕様とか読むと精緻さに感動するタイプの人は感動できると思う
あるいはとても古いけれどAlgol 60の言語仕様に関する解説書である米田信夫(この人は圏論の米田の補題Yoneda's Lemmaでも有名な数学者)の『Algol 60講義』を読んでみると良い
(残念ながら久しく品切れだけれど大学の情報系の学部・学科の図書室にはあるだろうし古書でなら今でも入手可能だろう)
とにかく頻繁に言語仕様を改訂する、しかもbackward-compatibilityを捨てる言語仕様の改訂を平気でするというのは
本来ならば単なる暫定的な代物というべき段階で言語仕様をリリースしているかということの裏返しだと私自身は思っている >>65
Adaそのものではないが、そこから派生したPL/SQLは愛用している。というかまともなプログラムは、最近それしか使ってない。
Adaの古書をかき集めてたが、その本は知らなかった。大きい図書館で探してみるよ。 今後のAIエアコンやAI冷蔵庫とかAI家電製品に使われそうな言語って何ですか? >>68
Ada はアメリカの国防総省が軍事用に制定した言語だったので、
昨今の強力な CPU と 広いメモリ空間という環境では
組込み用としても有望だとは思うんだが、
いかんせん処理系とか開発環境に乏しいんだよなぁ ……
とはいえ C++ ほどややこしくはないので、
Java とか C# とかで遊びながら横目で見ている、というのも
アリかもしれない。 >>69
Java と C# とだったらどちらがAIに有利ですか? >>1
安定して飯が食えるという点でphpかな
仕事に使うにはフレームワークが必須だけどそこだけ頑張れば
言語仕様自体はC++と似てるんですぐにモノにできるはず
最近良く話題になるPythonやGoやRust覚えたって案件ないよw
そりゃぁまぁjavaかな。
c#はもう何年かやってるからそろそろ違う言語も試そうかな 言語やフレームワークが爆発的に増えすぎwww
ただし、多くの言語がマルチパラダイムになってきているから
言語間の差は縮まってきているかもね。
1つを深く学べばなんとかなるのかも。 次に覚えるならVerilogかVHDLかな。
System Verilogとかね。 >>75
ハードウェア記述言語について調べていたら
現代ではそれらは廃れて
C/C++で記述できるようになっているんだって
情報を得たことがある。 >>77
動作合成ね。
ある程度はできるけど、ハードウェアの場合には1クロックサイクルで確実に回さなくてはならないとか、ゲート数などの制約が強い場合も少なくないので、どうしてもRTLレベルで記述する必要性はあるのよ。
C/C++が使えればスーパーコンピュータから米粒マイコンまで、ソフトウェアは書ける。
ハードウェアの方はVerilog/VHDLができればFPGAなどの論理回路設計はメーカーを問わず使える。
両方が使えれば活躍できるフィールドは大きく広がる。
他の言語は必要に合わせて覚えたら良いんでない? HDLはプログラミング言語というよりはマークアップ言語らしい。 >>80
HDLはRTLレベルで書くならビット処理の得意なイベント駆動型の並列動作記述言語ってかんじかな?
a=1,b=2
の時に
b<=a;
c<=b;
が実行されるとb=1,c=2になるって具合ね。
あなたの使っているCPUも、GPUもHDLで書かれているだろうな。 なんか議論が噛みあってなくて山ほど草生えそう。
現状、開発環境が整備されている言語のどれかは
使えるから、「次は何を学ぶ?」っていう話に
なっているわけだろう?
だったら「本で勉強する(処理系や開発環境は
なくてもいい)」のか「ちょっとはいじってみたいから、
処理系はあったほうがいい(できれば IDE もあったほうがいい)」のか
「次の仕事を請けられるために準備しておきたい」
(会社では嫌われそうだが (-_-!))のか、
それによって違うと思う。 >>1
カネになる言語
案件のない言語を覚えても仕方がない RustかCarbon勉強したいんだがどちらがおすすめ?