タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

JavaとCsharpとprogrammingに関するraimon49のブックマーク (28)

  • 9時間足すんだっけ引くんだっけ問題~あるいは、諸プログラミング言語はいかにタイムゾーンと向き合っているか - エムスリーテックブログ

    私は日付時刻の処理が大好きです。 タイムゾーンの問題でデータ抽出が9時間分漏れていたとか、朝9時の始業前のログが昨日付けになってしまっていたなんていう問題が起こると喜んじゃうタイプ。 そんな私にとって、各プログラミング言語が標準で持っている日付時刻型クラスにはそれぞれ思うところがあり、今日はちょっとその品評会をしてみたいと思います。 エムスリーエンジニアリンググループ、Unit1(製薬企業向けプラットフォームチーム)三浦(@yuba@reax.work) [記事一覧 ]がお送りいたします、エムスリー Advent Calendar 2023の2日目です。 至高の日付時刻型を持つ言語、BigQuery SQL 不足はないが蛇足、Java 8 日付時刻で画竜点睛を欠いたC# C#よりややまし、Python 型は良い構成、なのに命名と処理関数で損しているPostgreSQL まとめ We ar

    9時間足すんだっけ引くんだっけ問題~あるいは、諸プログラミング言語はいかにタイムゾーンと向き合っているか - エムスリーテックブログ
  • 「Rust」言語はCよりも遅いのか、研究者がベンチマーク結果を解説

    「C」や「C++」に代わるシステムプログラミング言語として「Rust」が注目を集めている。メモリ安全性が高く、メモリ破壊バグといった脆弱(ぜいじゃく)性を作り込みにくいからだ(関連記事)。 ただし、システムプログラミング言語では、高い処理性能が必須条件であり、これがCやC++が使われ続けている理由となっている。Rustはどの程度「速い」のだろうか。 ドイツのミュンヘン工科大学で博士課程の学生であるポール・エメリク氏は2019年9月9日、Rustで作成したデバイスドライバの性能評価をGitHubで発表した。 同氏のグループはさまざまな言語で同じ機能を備えたデバイスドライバを記述し、性能を比較している。 何が性能低下を引き起こしているのか 性能評価用に作成したのは、Intelのイーサネットコントローラー向けのLinux用デバイスドライバだ(ixgbeタイプ)。 エメリク氏は解説の冒頭で研究に取

    「Rust」言語はCよりも遅いのか、研究者がベンチマーク結果を解説
    raimon49
    raimon49 2019/09/14
    配列アクセスをCより安全にしてくれてパフォーマンスこれだけしか違わないなんてRust最高じゃん。
  • オブジェクト指向プログラミング -- 1兆ドル規模の大失敗

    CodeIQのブログより。🤔 なぜ、OOPから移行する時なのか Ilya Suzdalnitski OOPは、多くの人にコンピューターサイエンスの重要資産と考えられています。コード構成(code organization)に対する究極のソリューション。すべての問題の終焉。私たちのプログラムを書くための唯一の当の方法。自分自身をプログラムするという真なる唯一神から私たちに授けられました… それまでは、そうではなく、抽象化の負担、そして無差別に共有されるミュータブルなオブジェクトの複雑なグラフによって、人々は屈し始めています。現実世界の問題を解決するのではなく、「抽象化」と「デザインパターン」について考えるのに貴重な時間と頭脳が費やされています。 非常に著名なソフトウェアエンジニアを含め、多くの人々がオブジェクト指向プログラミングを批判してきました。驚くことに、OOP自身の発明者でさえ、今

    オブジェクト指向プログラミング -- 1兆ドル規模の大失敗
  • 私と型システムとポエム

    最近巷では俄に型システムについての言及が増え、型システムポエマーが増えてる気がするので自分もその時流に乗りたい。 完全にポエムだけどなんかあったら随時指摘ください。直します。 TL;DR 言いたいことはまとめると次 型システムは程度問題なのでちょうどいいところを探すべき 型は万能でも強さが正義でもない(だから未だに研究されてる) よく知りもしないくせに計算機科学を侮辱するのはやめろ 予防線 あくまでポエムですので中身はないです 私は型理論専攻で学位はとったものの研究者ではないのであまり信用しすぎないように 型システムの過去 型システムは大まかに次のような利点があるとされてきた(個人的主観) 「異常」なプログラムを検出する仕組み 静的解析による分かりやすいエラーメッセージ 型そのもののドキュメント性 IDEでのcompletionに貢献 最適化に貢献 (数学に正しく裏打ちされたsemanti

  • Go言語(Golang) はまりどころと解決策

    Go の言語仕様はシンプルで他の言語に比べてはまりどころが少なくて学習コストが小さめな言語のように思います。しかし、それでもはまるところがないわけではないので、自分がはまって時間を無駄にしてしまったことを書き留めておきます。 念の為誤解のないように追記しておくと、この文書の目的は Go を批判することではなく GoGo であるがゆえに C++/Java/Python など利用者が Go を使い始めるときに困惑あるいは誤解するであろうポイントをまとめておくことで初めて Go を触る人がスムーズに Go を使い始められるようにすることです。私個人は Go はバランスがとれた良い言語でだと思いますし、気に入っています。 目次 interface と nil (Go の interface は単なる参照ではない) 文献 メソッド内でレシーバ(this, self)が nil でないことをチェ

  • 長文日記

    raimon49
    raimon49 2016/07/01
    これくらい主観による好みというか、愛憎入り乱れてる文章の方が、読み物として面白い。
  • re:僕にとってMaybe / Nullable / Optional が、どうしてもしっくりこないわけ。 - ぐるぐる~

    元ネタ: 僕にとってMaybe / Nullable / Optional が、どうしてもしっくりこないわけ。 - 亀岡的プログラマ日記 OOPの文脈で見ると、元の記事が言っていることもわからなくはないのですが、対象が広すぎていろいろと不正確になってしまっているので、ちょっとまとめてみます。 元の記事が対象にしているのは、Maybe / Optional / Nullableの3つです。 対応する型を持つ言語を見てみると、下記のようになります。 Maybe(Haskell) Optional(Swift/Java) Nullable(C#) これらは、「値がないこと」を表すもの、という見方では同じですが、それぞれ異なる価値観の元に作られています。 Maybe/OptionalとNullable これらはすべて型パラメータを取ります*1。 しかし、この中でNullableだけは型パラメータに

    re:僕にとってMaybe / Nullable / Optional が、どうしてもしっくりこないわけ。 - ぐるぐる~
    raimon49
    raimon49 2015/11/30
    C#は値型へのnull許容、Javaは戻り値での明示
  • Less is more:プログラミング言語設計の進歩史 | POSTD

    多くの言語は冗長性を有していますが、これらの機能を省いていくことも言語設計の進歩につながります。 巷には数多くのプログラミング言語があり、新しい言語も継続的に紹介されています。でも新しいものが古いものより優れているかというと、そうとは言えません。なぜなら、何が“優れているか”を判断する明確な尺度は存在しないからです。 それでも過去からの流れを見ていくと、優れた言語を作る1つの方向性は、言語にある冗長性を特定し、それらを持たない新たな言語をデザインすることにあるように思えます。 「完璧とは、それ以上足せない時ではなく、それ以上引けない時に達成される」 – Antoine de Saint Exupéry この投稿では、現在までに知られている言語の冗長的機能を見ていくと共に、恐らく冗長性を有しているだろうと思われる機能についても触れていきます。 自ら墓穴を掘るあらゆる可能性 初めてコンピュータ

    Less is more:プログラミング言語設計の進歩史 | POSTD
  • なごやかJavaで発表してきた - ぐるぐる~

    .NET系開発者から見たJava from bleis tift なごやかJava第一回で、「.NET系開発者から見たJava」というタイトルで発表してきました。 Javaのこの機能って.NET開発者から見てどうなの?というような内容です。 大阪から参加してくれた方の感想を載せておきます。 おかしい、終わった後の感想が「F# すごい!」だ…… #ngojava— irof@Javarista (@irof) 2014, 11月 30

    なごやかJavaで発表してきた - ぐるぐる~
    raimon49
    raimon49 2014/12/14
    それなんてusing それなんてstruct
  • getter/setterとはなんだったのか - プログラマーの脳みそ

    Javaのgetter/setterのお話。 僕は当時を語るには若すぎるのだけど、過去を振り返って書いてみる。当時を知る人は誤りがあれば指摘してほしいし、情報があればコメントなりトラックバックなりして欲しい。前世紀の話というのは今となっては探すことがなかなか難しくなりつつある。 「privateな変数にpublicなアクセサを定義する」? - ネットの海の片隅で getter/setterとは何か Javaのオブジェクトにフィールドがあったとして、そのフィールドに値を設定するメソッドがsetter(せったー)、そのフィールドの値を取得するメソッドがgetter(げったー)と呼ばれる。慣習としてsetterはsetXXX(int value)といった様にsetから始まる名前をつけ、引数はひとつ。戻り値はvoid型。getterはgetXXX()といった様にgetから始まる名前をつけ、引数はな

    getter/setterとはなんだったのか - プログラマーの脳みそ
    raimon49
    raimon49 2014/10/11
    JavaBeansが出自でJava ServletやStrutsの時代には「そういうもの」として定着していた流れの整理。
  • Martin Fowler's Bliki in Japanese - アクセス修飾子

    http://martinfowler.com/bliki/AccessModifier.html オブジェクト指向言語ではプログラムはクラスと呼ばれるモジュール群に分かれます。 それぞれのクラスは機能(features)をもっており、データ(フィールド)とメソッドで構成されます(すべての言語がこの用語を使うわけではありませんが、役割は一緒です)。 言語には、どのクラスがあるクラスの機能にアクセスできるのかについてのルールがあり、たいていクラスに適応されるアクセス修飾子に基づいて決まっています。 C++ の選択 おそらく最も影響力のあるアクセス修飾子はC++の3つから始まりました。 public: どのクラスもアクセスできる protected: どのサブクラスもアクセスできる private: どのクラスもアクセスできない 他のクラスやメソッドに対して _friend_ を使ってアクセス

  • 細かすぎて伝わらない Xamarin にして良かった事(その1) - Qiita

    それ Xamarin じゃなくて C# じゃん!とかのツッコミはナシでw まあ Java よりも Objective-C よりも C# がイイから選んでいるわけで。 サンプルコードは Xamarin.Android ですが iOS でも同じです。 1. イベントのマルチキャストができる! setOnClickListener とかリスナー系が全部 Event になっているので、複数のリスナを登録可能、削除もできます。 protected override void OnCreate(Bundle bundle) { /** 省略 **/ Button button = FindViewById<Button>(Resource.Id.myButton); // Label 変えます button.Click += delegate { button.Text = string.Format

    細かすぎて伝わらない Xamarin にして良かった事(その1) - Qiita
    raimon49
    raimon49 2014/01/02
    RunnableもAsyncTaskもC#だとめっちゃシンプルになるなー。
  • Qoncept, Inc.

    Realtime Visual Tracking Technology Specialists 画像処理によるリアルタイムトラッキングをコア技術として 高い専門性を持ったメンバーが集まり 実社会に活きる技術を開発し続けます Latest News ゴルフ弾道計測アプリ Golfboyが全世界で月間25,000アクティブユーザーを突破 - 全世界の有料サブスクリプション数は月間8000を突破 Golfboy(ゴルフボーイ)は、iPhoneのカメラを利用したゴルフの弾道計測アプリです。 スマートフォンと三脚さえあれば誰でも手軽に利用でき、独自の画像処理技術により 飛距離、ボールスピード、打ち出し角度、クラブ速度などをリアルタイムに計測します。 またスイング自動撮影、フォーム解析、パター解析、シミュレーションゴルフ機能など、 1つアプリで実現。他の追随を許さない圧倒的なコストパフォーマンスと、Q

    raimon49
    raimon49 2013/11/27
    コレクションでもUnion typeで宣言出来るのか。Nullableの話題も。
  • 値渡しと参照渡し (と参照の値渡し) - ぐるぐる~

    値渡しと参照渡しは、分かってしまえば何も難しいところはないんだけど、分かるまでにちょっとした壁があるというかなんとうか・・・ てことでちょっとまとめておきますねー 値渡し (call-by-value) と参照渡し (call-by-reference) の違い 値渡しと参照渡しの違いは、「呼出し元の値自体を変更できるかどうか」と説明されることが多い。 しかし、例えば Java ではミュータブルなオブジェクト *1 を渡した場合、呼出し元の値自体を変更できるという勘違いをする可能性があるため、この説明はあまり好ましくない。 そのため、参照渡しを「呼出し元の別名を渡している」と覚えるのが分かりやすいと思う。 値渡しは「何かの値をコピーして渡している」と覚える*2。 Java の場合 Java には値渡ししか存在しないが、「参照型」のためにややこしく感じる。 参照型は参照渡しとは無関係で、C

    値渡しと参照渡し (と参照の値渡し) - ぐるぐる~
    raimon49
    raimon49 2013/07/19
    いわゆるByRefとByValな話題。ミュータブルなオブジェクトのポインタが値渡しされている。
  • C# 使いから見てうらやましい Java8 の default 実装の使い方 - ぐるぐる~

    Java8 から追加されるインターフェイスの default 実装ですが、C# の拡張メソッドに似てますよね。 実際、このどちらも「シンインターフェイス」を定義するだけで「リッチインターフェイス」が手に入ります。 しかし、C# の拡張メソッドと Java のインターフェイスの default 実装には、それぞれの利点と欠点があります。 拡張メソッドの利点 拡張メソッドの利点は、インターフェイスの実装者だけでなく、 インターフェイスの使用者に対してもインターフェイスの拡張が開かれている点です。 既存の型ですら、後付けでメソッドを追加することができるということです。 using System; public static class StringExtension { // インターフェイスでなくても、どんな型に対しても拡張可能 public static int ToInt(this str

    C# 使いから見てうらやましい Java8 の default 実装の使い方 - ぐるぐる~
    raimon49
    raimon49 2013/05/28
    インターフェイスのにデフォルト実装を持つことと、既存クラスを拡張出来る仕組みのメリット
  • Java 8を関数型っぽく使うためのおまじないをF#でやってみた - ぐるぐる~

    Java 8を関数型っぽく使うためのおまじない - きしだのはてな Java 8を関数型っぽく使うためのおまじないをC#でやってみた - ぐるぐる~ Java も C# も大変ですね。 F# さんは、ラムダ式も関数型も最初から使えたので、似たようなことはすでにできます。 上記の記事のパクリなので、上記の記事をまずは読んでから読むことをおすすめします。 関数型(関数を表す型の方) F# では FSharpFunc という型があります。名前空間や型パラメータまで含めると、Microsoft.FSharp.Core.FSharpFunc<'T, 'U> です。 ただ、この型を直接使うことはありませんし、見ることもそうそうないです。 その代わりに、'T -> 'U という表記が使えます。「'T を受け取って 'U を返す関数」と読みます。 ちなみに、型パラメータの最初に「'」が付いているのが割と大

    Java 8を関数型っぽく使うためのおまじないをF#でやってみた - ぐるぐる~
  • 一つのメソッドに上から下にずらっと全部書いてしまう現象の考察 - basyura's blog

    とある機能を実装するとする。例えば外から Excecute が呼ばれてその結果を返すような場合。多いのが Execute メソッドの中に全部書いてしまって、何 10 行を超えて何回スクロールするんだろうになっているパターン。その際はレビューで以下のようにアドバイスする。 Execute にはシナリオを書いて、中身は別に書くと良いですと。僕の経験的にこの方が良かった、という深い根拠のないものではある。けど、間違った考えとも思わない。自然だろうと。private なメソッドではインスタンス変数を直接扱うのはやめて、public なめそっどから引数で渡したほうがいいとか細かいところもあるけど、そのへんはすっ飛ばしてまずは上記のようにいう。 そんな考えを持っているので、レビュー依頼されたものやコミット済みの資源をなにかの機会で見たときに、上記に反するものを見かけると気になってしまう。 もうちょっと

    一つのメソッドに上から下にずらっと全部書いてしまう現象の考察 - basyura's blog
  • 【PC遠隔操作事件】被疑者の素顔を弁護人に聞く(江川紹子) - エキスパート - Yahoo!ニュース

    4人を誤認逮捕し、うち2人から虚偽の自白を引き出したことが明らかになっているPC遠隔操作事件。威力業務妨害容疑で逮捕された片山祐輔氏は関与を否認している。当初は、事件と片山氏を結びつける決定的な証拠があると報じられ、警察は絶対的な自信を持っているように見えたが、その後も160人もの捜査員を動員して証拠集めを続けるなど、苦労している状況も伝わってくる。 片山容疑者の弁護人となったのは、足利事件で菅家利和さんの無実を証明するなど、刑事事件の経験豊富な佐藤博史弁護士だ。佐藤弁護士に、2月19日時点での弁護人としての考えや主張を聞いた。 【弁護人となるいきいさつ】ーー佐藤先生がなぜ弁護人に? 報道で彼の逮捕を知った時には、他の方と同じように、警察がこれだけの発表をしたのだし、まず間違いないのだろう、ただ人は否認しているんだな、と思っただけでした。彼が当番弁護士を要請し、その時にたまたま当たったの

    【PC遠隔操作事件】被疑者の素顔を弁護人に聞く(江川紹子) - エキスパート - Yahoo!ニュース
    raimon49
    raimon49 2013/02/20
    取り調べ手法が明るみに出る時代。
  • 「遠隔操作ウィルス事件の容疑者がJavaを使っていた事実」が判明(江川紹子さんと高木浩光先生の会話まとめ)

    まとめ (当なら大問題)高木浩光先生による「遠隔操作ウィルス事件の容疑者が、C#での開発経験が無かった可能性」に関する考察 高木浩光先生による遠隔操作ウィルス事件に関する考察のまとめです 当ならば、話がひっくり返るレベルの大問題かもしれません 読売新聞の記事によると、(接見した弁護士の話として)、「容疑者はウィルス作成に使われたC# (.NET Frameworkの開発環境)を使う事ができない」と主張しているそうです そもそも個人的にも、(逮捕の経緯が経緯だっただけに)警察からの続報などで 「自宅からウィルスのソースコードが発見された」などの続報が何故出てこないのか? と不思議だったのですが、もし、今回の話が正しくて、「そもそも容疑者の自宅や会社から、 C#の開発環境そのものが見つからなかった場合」、誤認逮捕の可能性が激増する可能性も強くなり、 仮に万が一「また誤認逮捕」だったという話

    「遠隔操作ウィルス事件の容疑者がJavaを使っていた事実」が判明(江川紹子さんと高木浩光先生の会話まとめ)
  • C#に関するアンダース ヘルスバーグへのインタビュー (2005年)

    2012-07-17 19:45:12 翻訳許可を与えてくださったJohn Osborn氏とO’Reilly社に感謝します。 原文は下のリンクを参照してください。 C#: Yesterday, Today, and Tomorrow: An Interview with Anders Hejlsberg, Part 1 C#: Yesterday, Today, and Tomorrow: An Interview with Anders Hejlsberg, Part 2 C#: 昨日、今日、明日 アンダース・ヘルスバーグは1996年にマイクロソフトに転職し、初期はVisual J++とWindows Foundation Class (WFC) のアーキテクトとして仕事をした。 ヘルスバーグは現在Microsoft Distinguished EngineerかつC#のチーフアーキテク

    C#に関するアンダース ヘルスバーグへのインタビュー (2005年)
    raimon49
    raimon49 2012/10/22
    C# 2.0から3.0当時のインタビュー。LINK、ラムダ式、Nullable