ぶっちゃけ始めるのにいい言語て何 part3
■ このスレッドは過去ログ倉庫に格納されています
>>108
ほとんどの言語はCの応用なので
あとアセンブリ言語やるのも悪くない 真面目に習得考えたらやることはやらないといけない
というかハードウェアの知識すっ飛ばして初心者向きだなんだのいう傾向って何なん? オートマや自動運転ならエンジンやら内燃機関やらモーターの知識は不要という風潮
新人研修なんて無駄は省きたいから即戦力で動かせれば良いよね
APIとライブラリの使い方さえ覚えれば良いのでブラックボックスのおまじないも気にしてはいけません >>108
いや、Cはおすすめだがアセンブラはおすすめではない
Cは他のモダンな言語に似ているが、アセンブラはどんな制御系でもまるで違う C#やJavaまではCに似てる言語が多かったけど、GoもRustもPythonもSwiftもCと似ても似つかないよね。
流石にCの影響も近年は薄れて来た気がする。 >>113
> ほとんどの言語はCの応用なので
そんなことはない >>112 1000円って何やねん。 無料だぞ。
javascript は、HTML , CSS 込みのWeb制作なしでは語れない。
Webを作るならさらなる高級言語で作り、javascript はおまけみたいな物。
普通は元となる高級言語を覚えた後でWeb制作に入れば簡単。スクラッチって何やねん。
Python は、
1+2 と入力するだけで
3と言う答えが出てくるんだぞ。 インタラクティブ シェルが使えるってだけならPerlもRubyもHaskell(ghci)も使える。
runghcでスクリプトとして動くし、ソースコード見られたく無いから実行ファイルで配布したいならghcでコンパイルすれば良い。
PureScript使えば、ほぼHaskellな文法で書いてコンパイルすればJavaScriptのコードを吐く。
Haskellのキラーアプリはプログラミング言語のPerl。
5か6だったと思うけど、Perl本家より早く最新のPerlの処理系完成させた事で2006年当時は注目された。 >>120
知らんがや月1000円の件は>>87と>>89に言えって
>>121
インタラクティブシェルで始めるのは否定しないが
どうも周りくどい気がする 何故・・・。
大規模開発に向く静的型言語と、手軽な動的型言語(LL)の良いとこ採りなのに・・・。
速度こそコンパイルしてやっとLLと同程度か少し速い程度だが、定数に出来るところは定数にする様な最適化(CやC++で多い)が実装されれば劇的に速くなるはず。
(式に対して効く最適化だから、式と文に別れてる言語より最適化の効果が大きい)
Haskellは理論だけが先行していたマルチスレッドと最適化の内、マルチスレッドはほぼ理論に追い付いた。
後は最適化が論理に追い付くのを待つだけ。 >>123
ほんとに良いとこ採りなのか?
単に実用性を後回しにした理論先行の言語設計なだけでないの? 5chで曖昧に質問された前提で答えるならJS
おま環を避けつつGUI可のお試しプレイ(jsfiddleとか)を紹介出来るので後が楽
勧めるだけの無責任野郎にはなりたくないが
かといってネット越で環境構築のフォローとかストレスしかない >>124
速度以外は言語としては良いとこ採りで間違いない。
注目集めた当時、モナディウスと言うシューティングゲーム作られたりと実用面も問題は無い。
Haskell信者がGUIライブラリが関数型っぽくないとか言って作っては飽きてを繰り返すのでライブラリやフレームワークが揃わないのが問題。
そう言う仕様の普通の言語として普通に使えば良いだけ何だけど・・・。
鯖アプリとかHTMLを加工して返す様なのは得意だからWeb系に本来は強くて、Haskellで仕事してるプログラマーの記事を読んだ事あるけど、
何から何まで自分で作る覚悟があれば作ってしまえばすごく使い易い言語との事。
言語ではなく、コミュニティの問題なのよね・・・。 >>126
これまで見てきたhaskellを推す人の論調って、下手な営業のセールストークみたいに勢いと雰囲気だけで自分の論を押してくるだけで、相手の疑問を解消して良さを理解してもらおうと言う視点が欠けてる人ばかりだったから、未だに理解しがたいなと思う。
良いとこ採りというけれど、具体的にどこがいいのだろうか。都合のいいところだけを見て良いとこ採りできてると思い込み、その裏では多くのデメリットもあるんでないの?そして一般の人にとってはそちらこそ無視できない重要な差異なのではないだろうか。思うぞ。
普通の言語として普通に使えばというが、その普通が困難なことだと言うことに気づいてみなやめてしまうのではないの?けして飽きっぽいからやめてしまうと言う訳ではないと思う。
確かにhaskellで書きやすいパターンの利用例はあるだろうが、別のケースでは他の言語で簡単に書けるのに何でhaskellではこんな面倒なことしなければならないのと言う場面も頻繁にあるのではないの?
ダラダラかいてきたけど、言いたいことは、安易に良いとこ採りだなんて言えるような代物ではないのではないか、ということ。 >>113
カッコの開きと閉じとかセミコロンとかダブルクォートを
似せてるだけじゃね?
俺程度の頭じゃよくわからんけど、perl なんか言語に
詳しい人が見ると LISP そっくりらしいし、たぶん見た目を
Cに似せてるだけで、中身は違うと思う。 >>123
Haskellって結構速いという話だったような気がするけど、LL言語よりちょっと速い程度なのか。
最適化が最大限利いたらどこら辺までいけるのかな。
C/C++並は無理にしても、Rustに迫るくらいのパフォーマンスは出るん? 関数型なら、Ruby 風のElixir で良いだろ。
パイプラインで、メソッドチェーンできる
処理A
|> 処理B
|> 処理C 今までメソッドチェーン出来なかったの?
え?できてた?
じゃあ出来てるものを何故パイプラインでやるの?
え?流行りだから?
あっ、そうやって意味もなく無節操になんでもかんでも流行りを適当に取り入れてって収拾つかなくなる文化の言語でしたねwww >>130
exlixirのは関数型言語のパイプラインと違って、シンタックス的にはUFCSと同じ
「メソッドチェーン」でしかないよな。
パイプライン演算子じゃなくて普通にドットにしておけばよかったのに。 c言語の動きはその後どんな言語使っても結局意識する部分多いし、やって損にはならんもんだと思うがな。 >>134
プログラマになるならどこかでやるべき言語なのは間違いないけど
入門向けではないと思う >>132
Ruby君といつもの粘着君だからスルーしとけ
特に粘着君は知ったかバレしてすぐ荒らすから >>127
うーん・・・。
言語としてのデメリットはコンパイラ言語にしては遅いくらいなんだけど、
純粋関数型言語って言うのに拘り過ぎてライブラリを既存のGtk2hsやWinAPIを使いたがらないとか、
フレームワークを関数型言語に相応しく!ってなかなか開発が進まない事かな。
純粋関数型言語ってネーミングに振り回されなければ、バグを良く洗い出してくれるしテストし易い、コンパイラ言語なのにLL並に型を書かなくて良い、良い言語だよ。
まあ、遅いのと周辺ツールが揃ってないってだけで致命的だけど・・・。
実用重視のユーザー(プログラマー)が増えれば変わると思うんだが・・・。
確かにまだ理論先行な言語ではある。
でも、言語としては後は最適化だけだから使わなくとも気にはしてて欲しい。
>>129
マルチスレッドし易い(容易にシングルスレッドのコードをマルチスレッドに書き換えられる)から、同じコード量でって意味なら速い。
(昔はここも遅延評価が邪魔してたけど、ライブラリ側で解決)
ハードに近い処理もライブラリ駆使すれば出来なくは無いから、シングルスレッドでも本気出せば嘘では無い。
ただシングルスレッドの場合、HaskellでそこまでするならCで良い。
シングルスレッドの最適化が解決すれば、高級言語最強になれるし、理論上はそれが出来るから追いかけてる。 >>116
そのくせ新入社員には何の意味もない雑用や営業からやらせる
使い捨ての営業はそれはそれで別口で雇う こんなスレでガチで布教しようとしても無駄なんだけどな
やる気のある人は自分で調べて始めるし、やる気も調べる気もない人は何見ても始めたところで続かない
そんなところで「これは素晴らしい言語」とか「初心者に最適」って言っても受けとる側から見たらみんな詐欺みたいなもの >>140
そうは言っても初心者向け=学習用だろう。
覚える概念が少ないHaskellはその点では評価出来る。
高級言語の目指すべき姿に一番近いと思う。
(高級言語が登場して何十年も経つのに、何故、未だに人間様がコンピュータの仕組みを気にせにゃならんのだ?)
ぶっちゃけ、スクリプトが初心者向けって言われてるけど、型を書かないで良いとか、リストみたいな構造を持った値を直接表示出来ないとか、
後はメモリのある限り大きな数を扱える多倍長整数は自分でライブラリ用意(自作orどっかから持って来る)しないと使えないとか、
コンパイラ言語とスクリプト言語の違いってその程度。
(Haskellはコンパイラ言語なのに、これらの問題は無い)
その程度で使い方自体はコンパイラ言語でも変わらんし。
だったら、やりたい事に向いた言語に始めから取り組めよって思う。 そう言う意味じゃ、上で出たC#が安杯じゃないか?
Pythonでもpipやらanacondaでライブラリ入れようとして失敗します。どうしたら良いでしょう?的な質問良く見るし、
ライブラリ全部入りのC#は文法は初心者向けじゃ無いけど、バランス良い。
>141じゃ無いけど一票入れよう。 windowsならC#が一番環境構築が楽かもな。次にjavascript pipに失敗するのはプロキシとかじゃない?
学校や職場でやると失敗するやつ。
C#は様々なパラダイムを内包しているから、プログラマーにはオススメしたいけど、初心者には難しい気がする。
いきなり、クラスとオブジェクト指向の本質を理解できるか疑問。
C言語やPythonみたいにクラスを使わずに手続きを記述できないという点が気になる。
俺らだったら難なく覚えられるだろうけどさ。 pipは成功したけどimportして使おうとしたらエラーになりますってのもかなり頻繁に見かける
他の言語ではなかなか見られない現象 >>145
初心者には環境の構築とか、すぐ動くものを作れる方が重要だろ
その点、C#だとVSにしろunityにしろ、インストールするだけでビルドやデバッグの環境ができるし
プロジェクトを作るだけでビルドできる雛形が出来る ファイルひとつではできずプロジェクト作らないといけないの?
ビルドしないと動かない?
インストールも必要なの?
javaみたいにブラウザでF12押してすぐ動かせないの? F12押せばすぐJavaを実行できるブラウザがあるのか
珍しいブラウザだな >>147
俺のC#だとクラスを使わないとコンパイルエラーになるんですが。
C#Scriptでもない限り、文法的に無理じゃね?
>>151
Java11で廃止されてるからオススメできぬ。 htmlファイルひとつで動くJavaScriptの間違いじや >>154
C#Scriptを動かすためにはC#Scriptを動かすためのプログラムをC#で書かないといけないんですが。
そもそも、C#Scriptって有名か?
自分の製品に組み込む用途以外で見かけないのだが...俺が知らないだけで何らかの業界で使われている可能性は否めないけどさ。 Unityググってみたけど、なるほど。
そこで使われているのか。
自分はフリーのゲーム開発フレームワークが充実していなかった時代に同人ゲーム作ってたが...良い時代になったな...。
自分はゲーム開発に興味を持って、その流れでアプリ開発技術者になったけど、やっぱり始まりはそこなのかな?
そういう意味ではゲーム開発に強い言語を教えるのも手なのかもな。 Azure Functionsでもサポートされてるよ
まったく初心者向けではないけど >>157
ゲームを作るにはプログラミングの総合力が要るからやるべきなんだけど
今やスマホゲームなんて美麗で機能テンコ盛りで無料でダウンロードして遊べてしまうので
個人でのゲーム開発はモチベーションが続かない >>109
にも書いたけど、
ただし、Unity は、AWS でも採用しているように、スマホアプリで使う。
今後、iOS, Android のネイティブ開発と、Unity のシェアがどうなるか?
まあでも、初心者向けではない Unityは初心者向けだと思うがなぁ
Youtubeとかに上がってるのを単純に真似するだけで、簡単なゲームができてしまう
俺はこれより簡単な開発環境を知らん >>161 それはプログラミング言語ではなくツールじゃないの? そうだな。Unityの分はC#に合算しとけばいいだろう。 >>145
クラスやオブジェクト指向の本質は、ライブラリ使ってる内にライブラリ設計者の思想を読み取って自然と身につくと思うんだけど、
入門書が猫クラスと犬クラス、その共通の親クラスとして動物クラスとか書くから変なのが量産されるのがね・・・。
オブジェクト指向に限らず、機能毎に分類するものなんだけど。
Haskellの型クラスはオブジェクト指向のクラスと違う概念だけど、機能で分けるのは共通で、犬猫クラスみたいな変な例がないからクラス設計の参考になるよ。
あと、C#やJavaがmain(またはMain)をクラスで包むのはオブジェクト指向言語として、よりオブジェクト指向プログラミングを取り入れた結果。
C++みたいにどんなにオブジェクト指向で作ってもmainだけはクラスに属さないのは再利用性に限界がある。
C#やJavaはmainを含む完成したプログラムもクラスとして再利用出来る。
(新しいプログラムのmainを起動させて、クラスとして利用するプログラムのmainは起動させないと言う使い方)
とは言え、main起動させないならC++とどう再利用性で違いが有るのよ?って言う、思想的な拘り先行で終わった感は否めない。
そう言えばC#6でCのHello Worldより長いのが許せないって短い書き方出来る様になってなかったっけ? Haskellの型クラスに近いC#/Javaの概念はインターフェースだろ? そのインターフェースも分類はクラスとやり方は一緒でしょ?
でも、Haskellの型クラスはインターフェースとも違う。想像だけど、群論や圏論の同型とかの概念使って
メソッド(関数や演算子)の書き方もこの型クラスのインスタンスはこう言う書き方って決まってるのか、自動化出来る。
(こういうのはオブジェクト指向でみた事ない。Lispのマクロとかでは有るみたいだけど、オブジェクト指向じゃない)
また、インターフェースと違ってメソッドにデフォルトの定義があって、例えばEq型クラスは==か/=のどちらかを定義し直せば他の(Eqが提供する)メソッドは書かなくても動く。
(どうしても自力で書く場合でも、全部は書かなくて済む。こう言うのってオブジェクト指向だと抽象クラスとかだよね)
Haskellの型クラスはオブジェクト指向のクラスやインターフェースと違って、自作の型にderivingで既存の型クラスが備えるメソッドを自動で作ってくれる。
オブジェクト指向のtoStringに相当するshow関数をいちいち書かなくて良い。
data List a = Empty | Cons a (List a) deriving (Show)
main = (putStrLn.show) (Cons 1 (Cons 2 Empty))
out:
(Cons 1 (Cons 2 Empty)) derivingしない場合はオブジェクト指向言語と同様、自分で書く。
例はShow型クラスと同じ機能のMyShow型クラスを自作して、Bool型に関数を書いてる。
(自作リストみたいな構造を自力で文字列にするとかだと大変だよね・・・)
class MyShow a where
myshow :: a -> String
instance MyShow Bool where
myshow True = "True"
myshow False = "False"
こういう難しい所は言語にお任せ出来るから、Haskellは周辺環境はともかく、言語としては初心者向け。 >>161のレスでUnity+C#ならゲームが簡単に作れるってのが言及されているが他の言語は具体的に何ができるか書けないの?
「自分の紹介する言語は機能的に優れている」とかより「言語ですぐに何ができるか」の方が理由づけとしてはるかに大きいのに 初心者はWindowsだろ。WindowsはC++製だろ。Windowsでなんでも出来るから、C++最強!
Unityバカが言ってるのはこういうこと〜 >>109
に書いた
YouTube で有名な雑食系エンジニア・KENTA が、初心者はRuby から始めろって言ってる。
それで、全ての学校は、Ruby on Rails ばっかり
マコなりの所が80万円とか、
1週間のイナズマコースは、20万円とか
東京フリーランスのとだこうきが、デイトラで10万円とか、価格破壊を起こした HTML5でJavaScriptするならインストール不要。
ローカルストレージでデータベースや
canvasタグを使ってお絵描きから3Dゲームまで
書こうと思えばメモ帳でも始められます。 >>171
メモ帳で3Dゲームをすぐ作れる初心者なんていないと思うが >>172
別にスレタイも初代>>1主も初心者とは書かれてないからね (ソロバンやろうと思う)ぶっちゃけ始めるのにいい言語て何?
(ピアノ演奏させてみたい)ぶっちゃけ始めるのにいい言語て何?
(webアプリ作ろうとしたら)ぶっちゃけ始めるのにいい言語て何?
(お絵描きしたいんだけど)ぶっちゃけ始めるのにいい言語て何?
(3Dゲームで遊びたいんだが)ぶっちゃけ始めるのにいい言語て何?
なんだって当て嵌まるだろう? >>176
言語よりライブラリだな。
もしくはプログラマーがデータ(構造)の規格書に金払えるか。(8-10万超)
または自力で解析するハッキング能力があるか。
プログラミング能力とは別種の能力。(人脈だったり検索能力だったりの、必要な情報に辿り着く能力)
ビットマップでの画像処理は入門書にもあるが、jpegやgifで画像処理する入門書はほぼ無い。
表示するだけなら出来るが。 承認欲求じゃねえよ
「意見が違う人同士と対話する能力」がこうも軟弱な人間ばかりで
ウンザリしてんだわ
日本オワッテル
俺もこの辺にしとく 板で見かけるほとんどの言語はいずれ使われなくなる。
しかし、C/C++はそうではない。
ISOだから。 ISOのサザエをアチチチッペンっ
パっナッポーアッポーぺっ・・ワイルドだろお >>183
そうそうModula-2やBASICもISOだから使われなくなったりしてないもんねー 残念ながらそういう嫌味は素で通じない連中しかここにはおらん。 >>183
C/C++が使われ続けるのは同意だけど、ISOだからじゃ無いよ^^;
言語とライブラリがはっきりと分離されてて、言語単体でメモリ弄れるから。
OS作る時とか、printfも使えなくなる。
でもRAMやVRAMに直で書き込めるから、ハード知ってれば問題無い。
他の言語と違って、ライブラリ無いと何も出来ませんって言語じゃ無いから廃れない。 メンテしていく意思もないならISO規格になんてするなよな、ruby。
実装と規格の乖離が大きすぎて役に立たない。 JavaScriptはISOじゃなくてECMAだから全然使われてないよな! どの言語をやるべきかは何をやりたいかによるって言われても、
今の段階ではそれは決められないしなぁ だから、何すれば分からないならHaskellだって。
データ構造やアルゴリズムの勉強にこれ以上分かり易い言語は無い。
Haskell でクイックソート
qsort [] = []
qsort [x] = [x]
qsort (x:xs) = qsort [s | s <- xs, s < x] ++ [x] ++ qsort [b | b <- xs, x <= b]
例:
qsort [3,5,1,4,2]
= qsort [1,2] ++ [3] ++ qsort [5,4]
= qsort [1] ++ [2] ++ qsort [] ++ [3] ++ qsort [4] ++ [5] ++ qsort []
= [1] ++ [2] ++ [] ++ [3] ++ [4] ++ [5] ++ []
= [1,2,3,4,5]
アルゴリズムの動きが分かりさえすれば、その上で普通の言語は配列だから・・・と、
考えて行く方がいきなり普通の言語でアルゴリズム学ぶより挫折し難い。 >>195
世の中の実用的なプログラミング言語のほとんどが手続き型、オブジェクト指向なことを考えたら、プログラマを目指す初心者がhaskellから入っても「変な癖」を身に付けるか、早々に挫折するだけだと思うぞ。
変な癖というのはhaskellが悪いものだといってるのではなく、現実で直面する手続き型でのプログラミングで大きなギャップに苦労するだろうということ。
現時点ではhaskellは、数学的論理的思考をする際の道具か、好事家のオモチャの側面が強いと思うぞ。
世の中に初心者向けの情報や身近な教えてくれる人がほとんどないhaskellが、初心者に適切だということは現時点ではあり得ないと思う。
ただ、数学好きの人の論理的思考のオモチャとしては向いていると思う。実用的な目的でプログラミングを習得したいという一般人に向けて勧めるようなものではない。 Pythonが首位維持--IEEE Spectrumプログラミング言語ランキング
2019-09-13
https://japan.zdnet.com/article/35142590/
IEEE Spectrumが発表した最新のプログラミング言語人気ランキング2019年版では、Pythonが引き続き首位となり、その座を盤石のものにした。
こうしたランキングは、ほかのプログラマーがどんな言語を使っているのかを知ることが難しい中、開発者が各言語の人気について理解するのを手助けすることを目的としたものだ。
略
米国時間9月10日に発表されたIEEE Spectrumの年次ランキングでは、Pythonの100のスコアに対して、2位のJavaのスコアは96.3で、その差は広がっていた。3位のCは94.4だった。C++は87.5のスコアで4位にランクダウンし、5位にスコア81.5で統計処理用の言語である「R」が入った。 >>194
何をやりたいか決められないなら
なぜプログラミングを学びたいのか?という問いに答えられればいいよ 中国雑技団に対抗できる日本の団体って、じつはチアリーディングなんですよね。
アメリカの競技のような印象もあるのですが、日本の女子高生が熱を入れすぎ捻じ曲げた結果、もはや往年の面影は有りません。
近年では、成人競技に自衛隊が関わることもあり、格闘技の様相を呈しています。
スタンツと呼ばれる人間ロケットでは10Mを超えて上空にぶっ飛ばすこともあるそうです。
この競技にもはや芸術性は無く、技と力の応酬です。 そういうわけなんで、私はあえてC++をお勧めしたいですね。 て、C++やるくらいならJavaでいいってなる
C++はWindowsのフレーム操作が難しすぎる 女子高生が空に打ち上げられる様は、まさに忍者と言えます。 C++は面白いので、飽きっぽい僕でも、50年続いています。 >>196
アルゴリズムなんて論理的思考そのものだが・・・。
むしろアルゴリズムと普通の言語のギャップを埋める緩衝材になるんだが・・・。
関数型言語にかぶれるのは危険だが、言語各々の文化を尊重する様にすれば変な癖は付かないよ。
むしろ正しい手続き型言語のプログラムは数式に置き換えられるのを実感出来る。
(チューリング等価だから当たり前と言えば当たり前なんだが、動かせる数学と言って良いHaskellに変換出来るなら、数式にも変換出来る)
変換出来ないという事はバグがある。 最強言語ランキング
Python>C♯>JavaScript>C/C++>>>TypeScript
こんな感じだろ
他の言語はゴミ マシン語は他言語と比較にならないくらい偉大なので、
敢えて書かなかったのだろう webassembly が普及してくればJava の存在価値は無くなるだろうな。
>>208 高級マシン語 WebAssembly
多分どんなコンパイラからもWebassemblyのバイナリを吐き出せるようになる。
実行すればJavascriptやJavaよりも早くなる。
ブラウザさえあれば、クライアントのマシン環境に依存しないで全てブラウザが吸収する。
PythonインタプリタですらWebAssembly で動いてる。 クライアント環境に何もインストールすることはない。
Intel , Arm ... どんなCPUでも動く。 ■ このスレッドは過去ログ倉庫に格納されています