Go language part 2
■ このスレッドは過去ログ倉庫に格納されています
インタプリタはないのかなあ
いちいちコンパイルすんのめんどくさい 二者択一じゃなくてswiftやkotlinみたいにREPLもあったら良かったってことじゃないの。 >>280
go run
じゃダメかね。コンパイルと実行を続けてやってくれる goが生まれた経緯を調べるとなんでああいう言語が生まれたかわかる。
要は実用性重視で、過去の言語仕様見直して、削られるだけ削った言語と言える。
たぶん1番の使命はコンパイル速度を早くすることかな。 そういや昔Delphiが最速のコンパイラとか言われてた時代が懐かしいな >>285
削って大丈夫な部分は全て削った感じよな
個人的にはいくらなんでも削りすぎな気もするけど、やるからにはそれくらい徹底しないとダメなんだろうな >>280
Go言語でつくるインタプリンタ
を読んでGoのインタプリンタを作ればいい >>287
そうかな?
やたら省略形とかシンタックスシュガーが多かったり、同じ構文で別の意味に用いられたり、
最近の言語にしてはけっこうごちゃごちゃしてるという印象なんだが。個人的には。 scala,rust,haskellとかむずい(;_;) それは2000年頃のJavaのポジションか。ワイはペーペーで高給は取れなかった >>289
予約語の数とか見てみればわかると思うが。 予約語の数は一つの目安だけどそれがすべてじゃあないよね。
記号はカウントされていないし他言語なら予約語になりそうな定義済み識別子がごっそり抜けている。
それよりも>>289で言いたかったのは、例えば型アサーションの構文に型名じゃなくて
予約語のtypeを渡したら型switch内で使えるとか、そういう一貫性の無さからくる複雑さ。
同じような構文に機能を詰め込むから表面上は予約語が増えたりしないわけ。 返り値型宣言したらreturnだけで値が返るとかか。
あれはいらんね >>294
一貫性がないというより他の言語には無い書き方が引っかかるって感じじゃ無いかな?
それは理解できる。 どこをどう読んだらそうなるw
型アサーションの括弧に渡すものが型名のみに限定されていればシンプルだったのに、
それがswitchの中でだけ予約語のtypeを使うことが許されていたりするから一貫性がないって
言っているんだよ。 /\___/\
/ / ヽ ::: \
| (●), 、(●)、 | / ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ,,ノ(、_, )ヽ、,, | < まーたはじまった
| ,;‐=‐ヽ .:::::| \_______
\ `ニニ´ .:::/
/`ー‐--‐‐―´´\ もともとグーグルの天才たちが内輪で使うために作った言語だろ?
Cと同じで、俺ら凡才には理解できない・向かない部分があるのは仕方ないと思う >>297
それに引っかかるのってせいぜい数時間だよね。
俺は仕事でさわるコードの一貫性のなさに苦しんでるけど、そっちのほうがしんどい。 一貫性が無いのは事実なのにズレた話で絡み続けるのはなんなんだ
場当たり的な構文糖衣も多いのに削るだけ削ったとか嘘もいいとこだろ
妙な幻想持ちすぎ 話の腰をブチ折ってすまんが、「Go言語でつくるインタプリタ」の
最終章のマクロ展開(expansion)のトコ、マクロを再定義しても元
の定義で展開されちゃうんだけど、誰か試した奴おる? >>302
気に入らない事どんどん上げていきなよ。
他にはどんな問題を感じてんの? やっぱりGo言語来そうだね。
だがGoogleでしか使えないのが心配。 Google様に逆らったらインターネットに住めなくされちまうだ >>306
一応、念のため確認しておくけど、GASと混同してないよね? >>314
え、まじで何の話をしてるか分からないからどういう意味なのか教えて >>308
Googleのクラウドでしか使えないと思った >>316
awsのlambdaとかで使えないのかと思っただけ ああそういうことね
なんか、割と根本的なところをあまり理解してなさそうだね Node.jsとかPythonとかとは根本的に違うの? はいはい初心者は退散しますよ
せいぜい威張っててください
下らねえ ちなみにNodeとかPythonとかとはすごく大きなところで違いがあって、それがGoたんの大きな大きな特徴の一つだったりする。 いつまでたっても具体的な噺が出てこないところを見ると
あまり詳しい人はこのスレにはいないようだな 素直に教えてくれって言えよw
もうここまで来たら誰も教えてくれないだろうけどw もったいぶって言わないってことは
そいつにとってそれが限界だってこと 実はGo言語のマスコットがとても可愛いんだ
それが大きな違いだな >>336
Pythonの間抜けそうな蛇よりははるかに可愛いだろ マスコットで言えばD言語もかなり人気だけど言語自体を使ってる人って殆ど見たことないよね D言語なんて存在は知ってるけどHello Worldすら書いたことがない Plan9とGoは作ってる人が一緒(ケン・トンプソン)だからかな? プロファイリングが簡単にできるのもいい…あるプログラムを調べて
いたら、整数値の 2^n 乗を計算するのに math.Pow() 使ってる部分が
あって、そこを直すだけで 15% 高速に Plan9インストールしたことあるのはこのスレでは俺ぐらいだろうな >>344
むむ。お主やるな。
BeOSなら俺もある。ブラウザが不安定で使い物にならなかった。 >>345
どちらも一応うごいた
くらい・・・
BeOSのほうがPlan9よりはうごいた
かな 隔離されてある程度守られて監視うけてるから死んでないよ。死んだことにしたいらしいが。 お作法外と知りつつ、コーディング中の簡易的な動作確認としてテスト作ってfmt出力しちゃう
自動テストにゴミ混ざるしやめたいんだけど、どうするべき?
関数名引数で受け取ってリフレクション実行するようなプロジェクト作るとかしか浮かばない >>357
俺もよくやるけど。必要な機能をテスト上で書き始めて、動かしてモジュール化して。
最後に必要なテストとして残る。
だからプロジェクトとしてなんの問題もない。 静的型付言語でリフレクション使いすぎるとあんまり良くない気がする 外部APIの動作確認とかから始まって
SQLにレコード追加するバッチ処理を1件分だけ回すやつとか
きれいにテストに昇華させてく、は間違いないな 学習し始めたからスレ見に来たら結構やべーやついたんだな… 5ちゃんだぞ。やべー奴しかいないに決まってる。
俺もお前もやべー奴だ。 go modでGOPATHのsrc以下にある自分のパッケージはどうやって使うの?
// main.go
package main // import "a/b"
import "a/hello"
// go.mod
module a/b
$ go build
build a/b: cannot find module for path a/hello おい、Go2がアナウンスされたのになんで誰も話題にしないんだ 1.11がリリースされても誰も話題にしないし
もうこのスレは死んでるんだよ Errorのハンドリングで迷い出してんのな、今の仕様の方が時点の処理を考えるようになったし
冗長に見えるが実際堅牢さに貢献してると思うのだが >>366
go mod も自作パッケージ使う場合は src 以下で作らないといけないんですかね?
// import "a" とか // import "a/b" みたいな src 外では自分のパッケージを使えないということなんですか >>369
んー。でも冗長コードはあんまり書きたくないし、良いことじゃないの? >>371
俺もそう思うんだけど、これは思想の問題だから揉めそう 確かに思想の問題なんだよな、例外的なの望んでる人は大抵デプロイするまでのプロセスの簡略化
現状で良い人は少ないと思うけど、リリースしてからの堅牢さを実感した人らで双方のステージが違う感じがする そういえば os.Exit() だと defer で登録した処理が実行されない、って
仕様はそのままなのかな ところが runtime.Goexit() の場合はしてくれるんだよね… ■ このスレッドは過去ログ倉庫に格納されています