タグ

GO言語と言語に関するslay-tのブックマーク (7)

  • Go 言語でスライスから要素を消すには

    の様に直感的な操作ができるはずです。しかし Go 言語の場合、スライスの伸長にて発生するメモリアロケーションを append 関数と代入を使う事で透過的に行える仕組みを採用しています。例えばスライスの伸長は この様に行います。C言語をかじった事のある方や、プログラミング言語の内部データ構造をご存じの方であれば、リストといった物が伸長の度にメモリを再確保する様な事をやっていない事はご存じだと思います。Go 言語のスライスも同様で、スライスには長さとキャパシティを持っており、キャパシティを超えない範囲で長さだけが増えていき、キャパシティを超えるとメモリが再確保されるという作りになっています。ですので、上記のコードであれば、スライス(実際は SliceHeader)が内部で持っているポインタ、長さ、キャパシティを、代入してやる事で上書きしています。 スライスから要素を消す スライスの伸長と同様に

    Go 言語でスライスから要素を消すには
  • スクリプト言語としてのGo

    原文(投稿日:2020/04/23)へのリンク ハイパフォーマンスなネットワークシステムや並列システムを開発するプログラム言語として、Goの採用が拡大していることから、開発者たちはこれをスクリプト言語として使用することに熱意を持ち始めている。ただし現在のGoは、そのままではbashやpythonの代用としては使えないため、これには多少の努力が必要だ。 CodelangのElton Minetto氏が説明しているように、そのパワーや簡潔さ、goroutineのサポートなど、スクリプト言語として使用する上でのGoには多くのアピールポイントがある。GoogleのソフトウェアエンジニアであるEyal Posener氏は、Goをスクリプト言語として使用するさらなる理由として、豊富なライブラリが使用可能であることと、言語自体が簡潔であるためスクリプトのメンテナンスが容易であることを挙げている。やや違う

    スクリプト言語としてのGo
  • GoのためのGo

    Go言語はシンプルさを念頭にデザインされた言語です。仕様は単純明瞭さのために小さく収められていますが、そのため表現力に欠けているとか、コードが冗長になるという印象を持つ人も多いでしょう。有名なところでは、ジェネリクスや例外といった機能が(今のところ)存在しないことが問題にされることが多いようです。 一般に、ソフトウェアエンジニアリングというものは書かれる言語だけに依るものではありません。視点を拡げてGoを取りまくツール群を含めて見てみると、go fmt や goimports といったツールが広く使われていること、また go generate コマンドの存在などを見ても、Goという言語には、人間のプログラミングを機械によってさまざまな面から補助しようという態度があります。

  • Go言語を簡単に調べてみた印象 - 空想クソ野郎日記

    なぜに今Go言語? Node.jsからGo言語に切り替えたという記事を最近よく見かける気がします。Go言語ってGoogleが作った言語っていうくらいしか前提知識なかったのであまりピンと来てなかったんですが、下記のid:yosuke_furukawaさんの記事で最近ようやく興味を持ち始めました。 はてなブログに投稿しましたFarewell Node.js (翻訳) - from scratchURL 2014-07-06 09:46:24 via Hatena 記事はNode.js界隈で貢献の大きかったvisionmediaがNodeを捨てて、Goに切り替えて開発を行うと宣言したという内容です。ぼくはNode.jsも最近触り始めた程度なので記事に書かれているようなNode.jsならではの苦労についてはまだあまりピンと来てないところもあるのですが、確かにJavaScriptのエラーハンドリング

  • Go言語がダメな理由 | POSTD

    私はGo言語が気に入っていますし、多くの場面で使用します。現にこのブログもGoで書いています。Goは便利な言語ですが、優れた言語とは言えません。つまり、悪くはないけれど、十分ではないということです。 満足できない言語を使用する際は注意が必要です。注意を怠ると、その言語を次の20年間使い続ける羽目になるかもしれないからです。 私のGoに対する主な不満を文にまとめました。既に何度も指摘されていることも含まれていますが、中にはこれまでほとんど話題になっていない指摘もあります。 これから列挙する全ての課題には既に解決策があることを示すため、私が優良な言語と考えるRustやHaskellと比較して説明します。 汎用プログラミング 課題 誰でもさまざまな事柄に幅広く対応できるコードを記述したいと考えます。例えば数のリストの合計を求めるために定義した関数が、小数、整数、またその他の合計を求められるもの

    Go言語がダメな理由 | POSTD
  • LinuxコミュニティはRustを受け入れた

    私が最近注目しているプログラミング言語がある。Rustだ。Rustとは、錆のことである。何が錆なものか。JJだ。 RustはMozillaが開発しているプログラミング言語である。恥ずかしいことに私はRustの存在をつい最近まで知らなかった。私がRustの存在を知ったのはkernelvmでのことである。発表をustで聴いたあと自分で調べるとなるほどこれは私の望んでいた言語だと思った。そしてそれは、Linuxコミュニティが望んでいた言語でもあったのだ。 昨今、Go言語なるものが流行っている。も杓子もDockerの実装言語として採用されているためだ。しかし、Goは私のテイストに合わない。プログラミング言語というのは、異性のようなもので、一目見ただけで良いとか悪いとか感じるものである。これがまさにテイストということであり、言語にこだわりがないなんて人は、「誰でも良い」と言ってるようなものである。

    LinuxコミュニティはRustを受け入れた
  • PythonプログラマがGo言語を使った感想 - ワザノバ | wazanova.jp

    https://medium.com/p/3228b624c946 PythonプログラマのBrett CannonがプライベートのプロジェクトGo言語を使ってバックエンドを開発してみた感想をシェアしてます。 Go言語のポイントは生産性をあげるためにある程度のコントロールを諦めることにあるが、C++支持派は、そのコントロールを諦めたくないので、Go言語には移らない。しかし、Python/Rubyの開発者は、生産性のためにローレベルのコントロールを諦めることに慣れてるので、ローレベルのスピードを上げるために、ハイレベルのconstructを諦めることは気にしないのではないか。 個人的には、トレードオフというのは好きでないので、Pythonを使う選択肢があるときは、スピードを優先するためにPythonを諦めてその柔軟性に頼れなくなる前に、PyPyとの比較をしたいころ。とはいえ、Go言語にもア

  • 1