タグ

開発とGoに関するmohnoのブックマーク (24)

  • Go言語がGenericsを導入、過去最大の変更となる「Go 1.18」正式版リリース

    Googleが中心となってオープンソースで開発されているGo言語の最新版となる「Go 1.18」正式版がリリースされました。 Go go1.18 is released! Release notes: https://t.co/UFumhMjcOL Download: https://t.co/fnDCVVhJXK#golang pic.twitter.com/uWNSy5V7nv — Go (@golang) March 15, 2022 ブログ「Go 1.18 is released!」によると、Go 1.18は、「massive release that includes new features, performance improvements, and our biggest change ever to the language.」(新機能、性能改善、そして過去最大の変更の変

    Go言語がGenericsを導入、過去最大の変更となる「Go 1.18」正式版リリース
    mohno
    mohno 2022/03/19
    「Go 1.18」「最大の変更点が、Genericsの導入」←これを“今”やってるのか、って感じなんだけど、みんな使うのか?
  • Rustの標準ライブラリは小さいのか? - Qiita

    はじめに 「Rustの標準ライブラリは小さい」と言われます。実際、正規表現や乱数など多くの言語で標準ライブラリに入っているようなものが、Rustの標準ライブラリにはありません。こうなっている理由は「標準ライブラリに入っていなくても依存関係を簡単に追加できる」「後方互換性を保ちながら大きな標準ライブラリを維持するのは難しい」といったことが挙げられます。もちろん標準ライブラリが小さいと不便なこともあり「サードパーティライブラリの選択が難しい」というのはよく言われるところです。 ところでRustの標準ライブラリは実際に小さいでしょうか?小さいというと、どうしても低機能・できることが少ないというイメージになりますが、個人的な印象としては「Rustの標準ライブラリはカバー範囲は狭いが高密度」というものです。 あまりこういう観点で書かれたものは見たことがないので、この記事ではRustの標準ライブラリの

    Rustの標準ライブラリは小さいのか? - Qiita
    mohno
    mohno 2021/12/04
    「いろいろな言語の標準ライブラリのソースコード行数」←C#(というか.NET系)が入ってないけど、ものすごい行数になりそうな予感。
  • Goへのヘイトに対する考え方

    https://www.kbaba1001.com/entry/2021/09/17/073149 (該当記事が削除されました) RubyのサービスをGoで置き換えるのは3倍人手がかかる 何するにも機能不足 JSONの読み書きにわざわざ構造体書くの面倒 同僚がGoを選ぼうとしたら愚かな選択ですねと答える サーバーサイド開発にGoを使うのは危険 っぽい内容だったかと。 だいぶGoの特徴や既存の言語との考え方の違いが広まってきてるのかなぁと思っていた矢先だったので十年くらい前のような指摘をあえて今されていてびっくりした。 正直、ここに書かれたようなヘイト項目は既出すぎるので、もし影響の大きい項目を多くの人が同様に嫌っているならばGoはここまでの人気のある処理系になることはなかったと思う。(もしくは多くの人が嫌ってはいるが影響の小さい項目ということ) Goは出た当初、こういうヘイトが世界中のブロ

    Goへのヘイトに対する考え方
    mohno
    mohno 2021/09/18
    わが道をGo(行く)、ってことだね。「「RubyのRoRのようなサービスをGoで置き換えるのは3倍人手がかかる」なら納得」←C言語を使ったら、もっと人手がかかるだろうけど、なくなりそうにないしね。
  • Go言語を嫌う6個の理由 - さめたコーヒー

    ある仕事でそれまでRubyで書かれていたサーバーサイドをGo言語ですべて書き直すことになって、それまでRubyのコードを書いていた僕はそのままGo言語を書くことになった。その仕事そのものはお客様(僕は外部委託のエンジニアとして参画していた)との関係も良好で素晴らしい仕事をさせてもらうことができたと思っているが、Go言語だけは好きになれなかった。 はじめは流行っている言語だから何か素晴らしい魅力があるのではないかと期待していた。しかし書き始めるうちにどうも自分には合わないなと思うようになり、2年ほど書いて案件の契約が終わる頃にはGo言語でサーバーサイドを書くことは危険だとさえ思うようになった。 あれから数年がたちますますGo言語の案件は増えている。サーバーサイドを書く選択肢としてGo言語を選択する会社も増えている。しかし当にそれでいいのか?ただ流行っているからという理由だけで選択するにはあ

    Go言語を嫌う6個の理由 - さめたコーヒー
    mohno
    mohno 2021/09/17
    「Rubyエンジニアが1人いれば十分だったプロジェクトをGo言語に置き換えると3人はエンジニアが必要だと感じている」/C言語のことは好きになってもらえそうにないな(←オイ)
  • 高収入エンジニアは「ラスト」に注目、ファインディ調査 - 日本経済新聞

    IT(情報技術エンジニア採用支援のファインディ(東京・品川)はプログラミング言語についての調査を実施した。それによると高収入のエンジニアほど新世代言語の「Rust(ラスト)」に注目していることが分かった。データ処理などでの需要増が見込まれている。調査は6月30日から7月18日にかけてインターネットで行い、1044人のエンジニア年収別に現在仕事で扱っているプログラミング言語と今後習得したい言

    高収入エンジニアは「ラスト」に注目、ファインディ調査 - 日本経済新聞
    mohno
    mohno 2021/08/02
    たぶん新聞紙面が縦書きだからってことなんだろうが、プログラミング言語名が全部カタカナ表記になるのも珍しい気はする。
  • Goに三項演算子が採用されない理由

    Goには「なぜ三項演算子がないの?」という意見を時々見かけます。言語開発側の意見と僕の見解をまとめていきますー。 FAQ その回答はGoのFAQに明瞭に書かれています。 Goに?:演算子がないのはなぜですか? Goには3項テスト操作がありません。 同じ結果を得るには、次を使用できます。 Goに?:がない理由は、言語の設計者が、操作が頻繁に使用されて不可解な複雑な式を作成するのを見ていたためです。 if-else形式は、長くなりますが、間違いなく明確です。 言語に必要な条件制御フロー構造は1つだけです。 ネストを許す GoPythonもif-elseが文であり、式として扱えない方針を採りました。式として扱えないということは、一定の構文でのみ記述が可能ということです。三項演算子はその性質上式として扱えることになります。 式として扱える場合なにが書けるようになるのかというと、各項や条件に式が書

    Goに三項演算子が採用されない理由
    mohno
    mohno 2021/04/10
    「コードカバレッジ」←Goは論理演算の短絡評価ないのか、と思ったら、普通にあるみたいだし、だったら「f1() && f2()」でf2が呼ばれないケースあるよね。と思ったら、FAQに書いてあるのは訳されている最初の理由だけか。
  • Go 言語にやってくる Generics は我々に何をもたらすのか

    2021 年リリース予定の Go 1.17 に、多くの皆さんが待ち望んでいた Generics が導入される予定です。Go が Generics を採用したプロセス、C++Java の Generics とどの様に違うのか、また Go の Generics はどの様に使えるのかをご紹介します。

    Go 言語にやってくる Generics は我々に何をもたらすのか
    mohno
    mohno 2020/09/22
    今どき、ジェネリクスないんだ、とは思ったものだ。
  • 「プログラミング言語Go完全入門」の「完全」公開のお知らせ | メルカリエンジニアリング

    メルペイ エキスパートチームの@tenntennです。稿は Merpay Tech Openness Month の11日目の記事です。 「プログラミング言語Go完全入門」の期間限定公開のお知らせでも書いたように、メルペイでは、社外の方向けにGopher道場という体系的にGoを学べる場を無償で提供してきました。Goの普及を目的にこれまでに8回開催し100人以上の方に参加していただきました。 また、Gopher道場の動画や資料はGopher道場 自習室として誰でも利用できるようになっており、現時点で300名以上の方が利用されています。 Gopher道場の資料のベースになっている「プログラミング言語Go完全入門」は、2020年7月31日までの限定公開になっていましたが、日より公開期限を撤廃し、完全公開することになりました。 また、日8月31日から始まる「Online Summer Int

    「プログラミング言語Go完全入門」の「完全」公開のお知らせ | メルカリエンジニアリング
  • 「Goの父」ロブ・パイクの「プログラミング5カ条」、ネット上で話題に

    「UNIXはただ死んだだけでなく、当にひどい臭いを放ち始めている」「キャッシュはアーキテクチャではない。単なる最適化だ」などの語録を生んだ「Goの父」とも呼ばれるロブ・パイク氏の「プログラミング5カ条」について、ネット上で話題となっています users.ece.utexas.edu/~adnan/pike.html http://users.ece.utexas.edu/~adnan/pike.html Rob Pike's Rules of Programming (1989) | Hacker News https://news.ycombinator.com/item?id=24135189 パイク氏の「プログラミング5カ条」は以下。 ルール1:プログラムのどこで処理時間がかかるかはわからない。ボトルネックは意外な場所で発生するので、ボトルネックがどこにあるかを証明するまでは、臆測

    「Goの父」ロブ・パイクの「プログラミング5カ条」、ネット上で話題に
    mohno
    mohno 2020/08/17
    割と普通の話だった、と思ったら、1989年の言葉なのか。
  • とほほのGo言語入門 - とほほのWWW入門

    Google が開発したプログラミング言語です。「Go言語」や「Golang」と表記されます。 UNIX、B言語(C言語の元)、UTF-8の開発者ケン・トンプソンや、UNIX、Plan 9、UTF-8の開発者ロブ・パイクによって設計されました。 静的型付け、メモリ安全性、ガベージコレクションを備えるコンパイル言語です。 シンプル、高速、メモリ効率が良い、メモリ破壊が無い、並行処理が得意などの特徴を備えています。 メモリ破壊が無く、並行処理を得意とする、進化したC言語という側面があります。 LinuxMac OS X、WindowsAndroid、iOS で動作します。 おおよそ半年に一度バージョンアップを行っているようです。このページは Go 1.14 をターゲットに記述しています。 Go 1.18 2022年3月15日 速度改善、ジェネリクス、ファジングテストツール、ワークスペースモ

    mohno
    mohno 2020/06/23
    更新履歴を見ると C# とか Rust とか FORTRAN77 とか TypeScript も入ってる→ http://www.tohoho-web.com/wwwhist.htm
  • The VS Code Go extension joins the Go project - The Go Programming Language

    The Go team 9 June 2020 When the Go project began, “an overarching goal was that Go do more to help the working programmer by enabling tooling, automating mundane tasks such as code formatting, and removing obstacles to working on large code bases” (Go FAQ). Today, more than a decade later, we continue to be guided by that same goal, especially as it pertains to the programmer’s most critical tool

    The VS Code Go extension joins the Go project - The Go Programming Language
    mohno
    mohno 2020/06/10
    "The VS Code extension for Go is officially joining the Go project."/まあ、使うことはないだろうけれど。
  • 開発者がもっとも好きなプログラミング言語は「Rust」、Stack Overflow「2020 Developer Survey」より

    調査結果のうち、言語またはその技術を使用して開発を行っており、継続的に利用したいプログラミング言語を尋ねた質問(複数回答)では、Rust(86.1%)が1位となった。その理由としては、パフォーマンス、制御のしやすさ、安全にメモリを利用できること、システムプログラミングに適した同時実行性の高さ、マクロなどが挙げられている。オープンな開発プロセスを採用していることもあって、(利用していない人を含む)多くのプログラマから高い評価が寄せられた。 2位はTypeScript(67.1%)で、WebフロントエンドおよびNode.jsコードベースにおけるサイズと複雑さの増大と相まって、TypeScriptの静的型付けによるコードの正確性が、プログラマの信頼感を高めている。また、TypeScriptpolyfillによって、ECMAScriptにおけるアロー関数や非同期処理、クラスといった変更との高い互

    開発者がもっとも好きなプログラミング言語は「Rust」、Stack Overflow「2020 Developer Survey」より
    mohno
    mohno 2020/05/30
    C#がかろうじて8位で、CもC++もランクインしていないのか。そして2つの言語がランクインしてるAnders Hejlsbergすごい。
  • Let's EncryptがはまったGolangの落とし穴 - ぼちぼち日記

    0. 短いまとめ 300万以上の証明書の失効を迫られたLet's Encryptのインシデントは「Golangでよくある間違い」と書かれているようなバグが原因でした。 1. はじめに、 Let's Encryptは、無料でサーバ証明書を自動化して発行するサービスを行う非営利団体として2014年に設立されました。 2015年にサービス開始されると証明書の発行数はぐんぐん伸び、先月末のプレスリリースでは累計10億枚のサーバ証明書を発行したことがアナウンスされました「Let's Encrypt Has Issued a Billion Certificates」。CTLogの調査から、2020年2月末の時点では有効な全証明書の38.4%がLet's Encryptの証明書であるとみられています「Certificate Validity Dates」。 無料の証明書を提供してもらえるのは非常に嬉し

    Let's EncryptがはまったGolangの落とし穴 - ぼちぼち日記
    mohno
    mohno 2020/03/09
    「ループ内でループ変数iの参照を配列に入れてしまう…配列が全て同じ値になってしまう問題」←そこが最適化(?)されちゃうの?理屈が分からん。「修正されました。単純に参照渡しを値渡しに変えるだけです」
  • GoとRustの言語比較記事を書くのが流行ってるらしい

    コンテキスト 私もGoRustの比較記事書いてバズるやつやりたい — みょん (@myuon_myon) February 27, 2020 仕事GoRustを書いています。いずれもWebのサーバーサイドです。パフォーマンスとかほとほどって感じなので極限までチューニングしたりしません。という前提で読んでください。 Rust/Goはいずれも習得してから2年くらい書いています。書いてる量も多分そんなに変わりません。 Go なんと言っても習得難度が低いので人を選ばず書けるようになります。現状だと仕事で書くなら一番無難な選択肢だなと思っています。一方言語もエコシステムも何もかもかなりクセが強いので、Go Wayにちゃんと従うことが大事だなと思ったりします。 ジェネリクスがないことは高速なコンパイルなど利点もありますがmap,filter等を型ごとにfor文書きまくることになるのでとても手が疲

    mohno
    mohno 2020/03/04
    ぶっちゃけ「言語としての良し悪し」で言語を選ぶ時代でもないので、C#やC/C++の仕事がなくなるんでなければ、GoやRustに向かう理由がないというか、かつては心配もしていたが、今のところ大丈夫そうかな、という。
  • 実装言語を「Go」から「Rust」に変更、ゲーマー向けチャットアプリ「Discord」の課題とは

    ゲーマー向けの無料音声テキストチャットアプリケーション「Discord」を開発、提供するDiscordは2020年2月5日(米国時間)、アプリケーションを支える基盤サービスの一つである「Read States」をRust言語で再実装し、その結果サービスのパフォーマンスが大幅に向上したと公式ブログで明らかにした。 Read StatesサービスはこれまでGo言語で実装されていた。それにもかかわらず、なぜRead StatesをRustで再実装しようとしたのか、どのように再実装したのか、再実装によってどのようにパフォーマンスが向上したかを解説した。 Rustで再実装した背景とは Read Statesサービスの目的は、Discordユーザーがどのチャンネルのどのメッセージを読んだのかを追跡することだ。つまり、ユーザーがDiscordに接続したり、メッセージを送信したり、メッセージを読んだりする

    実装言語を「Go」から「Rust」に変更、ゲーマー向けチャットアプリ「Discord」の課題とは
    mohno
    mohno 2020/02/10
    メモリ管理は、どのようなシナリオでメモリが使われるかで変わるからなあ。汎用かつ高速にするのが大変で、Cのライブラリでもすごく複雑な実装になってると聞いたことがある。
  • Go言語がWebAssemblyをサポートへ。GOARCHは「wasm」、GOOSは「js」に

    Googleが中心となってオープンソースで開発されているGo言語は、WindowsmacOSLinux、FreeBSD、iOS、Androidなど、さまざまなOSやCPUに対応したバイナリを生成できることが特長の1つとなっています。 そのGo言語のコンパイラが生成するバイナリにWebAssemblyが追加されました。WebAssemblyは、Webブラウザ上でネイティブコードに近い実行速度で高速に実行できるバイナリフォーマットです。 WebAssemblyのサポートは昨年2月から検討がはじまり、先月末に最初のコードがコミットされた状態で、現在も開発が進んでいます。 GOの今後のバージョンアップで正式にWebAssemblyがサポートされる見通しです。 Go言語はサポートするOSやCPUの種類をそれぞれ「GOOS」と「GOARCH」の値で示しています。例えばWindowsGOOS値は「

    Go言語がWebAssemblyをサポートへ。GOARCHは「wasm」、GOOSは「js」に
    mohno
    mohno 2018/04/16
    JavaScriptの高速化で「差はあるけど桁違いではない」ところで位置づけが微妙というか、ブラウザ中にGACみたいな仕組みでライブラリを持てるようにしてほしいところというか、それを誰が管理するのかという話はある。
  • [速報]AWS Lambdaが機能強化。.NETとGo言語をサポート、サーバレスアプリケーションのリポジトリも登場。AWS re:Invent 2017

    Amazon Web Services(AWS)は、米ラスベガスで開催中のイベント「AWS re:Invent 2017」で、サーバレスコンピューティングを提供するAWS Lambdaの機能強化を発表しました。 API GatewayVPCとの統合機能、3GBメモリサポート、コンカレンシー制御の強化などに加え、.NET Core 2.0のサポートおよびGo言語のサポートが発表されました。 Amazon.com CTOのWerner Vogels氏がGo言語のサポートを発表すると、会場からは大きな拍手があがりました。「たくさんの人から、Go言語はサポートしないのかと聞かれた」(同氏) さらにサーバレスアプリケーションを再利用可能にする公開リポジトリの「AWS Serverless Application Repository」が登場。 AWS コンソールからサーバレスアプリケーションの登録

    [速報]AWS Lambdaが機能強化。.NETとGo言語をサポート、サーバレスアプリケーションのリポジトリも登場。AWS re:Invent 2017
    mohno
    mohno 2017/12/01
    「我々は関与してません」(Microsoft)とかじゃないだろうな:-p
  • Re: Re: Go にジェネリクスがなくても構わない人たちに対する批判について - methaneのブログ

    kmizu.hatenablog.com Twitterである程度レスをしたのですが、やはり繰り返される話題なので残る形で書いておきたいと思います。 Goユーザーの中で、ジェネリクスがなくても構わないと主張するユーザーへの批判はしたけど、Goユーザー全てがそうだと思っているわけではない Goユーザーの中でジェネリクス不要論を唱えているユーザーへの批判はしたけど、そういうユーザーを馬鹿にしているわけではない 私の前の記事は、まさに前者の批判に対する返答です。私はGoにジェネリクスを追加することに賛成ですが、別にそうならなかったとしても失望しない程度に「なくても構わない」人です。 一方で後者は、もしGoに限らず一般論としてのジェネリクス不要論だとすれば、批判にも値しないと思いますよ。話題にするつもりはありません。 Goは特に今で言うマイクロサービス的なものを(色んな意味で)効率よく開発するため

    Re: Re: Go にジェネリクスがなくても構わない人たちに対する批判について - methaneのブログ
    mohno
    mohno 2017/09/23
    長くて飛ばし読みしただけだが「C#のLINQは確かにモダンでクールな書き方だと思いますが、単にループを書く書き方に比べて劇的に生産性があがるとは思えません」←ヲイw
  • Go にジェネリクスがなくても構わない人たちに対する批判について - methaneのブログ

    なんども繰り返される話でうんざりなんだけど、繰り返されるたびに反論するのもアレなので、URL貼れるように記事にしておく。 Goが頑なにジェネリクスいらないというだけ他の言語勢から失笑買ってるというのは自覚して— {{alert()}} (@mizchi) 2017年9月19日 頑なに要らないと言ってる人が具体的にどの発言のことを差してるのか分からないけど、コア開発者たちはツールチェインやランタイムの進化を優先していただけで頑なに拒否してたりはしません。今はツールチェインやランタイムが大分進化したから、Goの適用範囲を広げるためにジェネリクスを含めて機能追加も検討し始めようかっていうフェーズです。 あとどの言語にもちょっと公平的な見方ができなくなった痛いファンはいるもので、そういった人たちをいちいちあげつらってこういう言い方で失笑するのは、別に止めはしないけど自分の格を下げるだけだと思う。

    Go にジェネリクスがなくても構わない人たちに対する批判について - methaneのブログ
    mohno
    mohno 2017/09/20
    Go、ジェネリクスないんだw まあ、C++も最初からテンプレートがあったわけじゃないし、C#もジェネリクスは2.0からだし、もちろんJavaも後から追加された機能だけど。
  • なぜCLIツールはGoで書くべきなのか? Go beyond Python

    Goは興味あるけど、会社は(Python|Ruby|PHP|Perl|Java|C#)だからなぁ」というあなた。 個人的なCLIツールを、Goで書き直してみたらいかがでしょう? GoはLL並に書きやすいだけでなく、LLには無い優れた特徴を兼ね備えた言語なのです。

    なぜCLIツールはGoで書くべきなのか? Go beyond Python
    mohno
    mohno 2017/07/16
    「CLI」って Common Language Infrastructure じゃなさそうだし……と思ったら、Command Line Interface のことなのか(置いてきぼりされてる感)