programmingに関するso-appsのブックマーク (40)

  • Python普及しろ協会に入会したい

    この記事はタナイ氏によるPython滅ぼす協会に入会したいを読んでから執筆したものです。 この記事の趣旨はPython滅ぼす協会に入会したいに対する反論という形をとりながら、タナイ氏により「バカの言語」と揶揄され、「使ってエンジニアを名乗るというのは」「滑稽」とまで言われたPythonの立場を再考することです。 追記 記事は「Pythonはこれだけ優れた言語だからみんな使おう!」というものではなく「言うほど酷くないと思うよ」程度のものです。 型アノテーションがあるからと言って静的型付けを軽視しているわけでもなければ、map関数をもってmapメソッドを不要だと言っているわけでもありません。 この記法は嫌い〜この記法が好き〜と表明することは個人の自由ですが、同様に「この記法は実はこういう意味があって〜」という意見があればそれを聞いた上で、物事を判断して欲しいです。もちろん、聞いても意見が変わ

    Python普及しろ協会に入会したい
    so-apps
    so-apps 2024/04/04
    時代遅れだがライブラリが充実してるから仕方なく使う言語。マルチコアが当たり前の時代にGILを抱えた言語が普及するのは、人類にとって損失。
  • Python滅ぼす協会に入会したい

    なぜ令和にもなって動的型付け言語を使うのか シフトレフトという概念が生まれたのは二十年以上も前のはずだ。 それにもかかわらず動かしてみるまで答え合わせもできない言語で開発をするという発想自体がどうかしている。 同じ動的型付けといってもJavaScriptはブラウザという事情があるし、型の表現力に優れたTypeScriptがあるからまだよい。 しかし、Pythonはどうだ。他にいくらでも選択肢があるなかで、サーバーサイドにわざわざ選定する言語ではなかろう。 貧弱な型ヒント、しかも書いたところで大した効用もない。 使っている外部ライブラリにひとつでも型ヒントがクソなものがあれば即座に破綻する。 型というガードレールもシートベルトもなしで糞を撒き散らしながらする開発にはうんざりだ。 シンタックスもキモい 動的型付けもさることながら、シンタックスもキモい。とにかく思考を妨げる語順になっている。 m

    Python滅ぼす協会に入会したい
    so-apps
    so-apps 2024/03/30
    あの手の言語は、使い捨てのスクリプトのために作られていると思う。大きいプログラムを作るには向いていない。
  • オブジェクト指向宗教史

    OOC 2024 の発表資料です。後のフィードバックを参考に、より妥当な文言に改訂してあります。 ※ コンテンツには、一部特定の宗教思想の迫害に言及する表現がございますが、そのような行いを肯定する意図の内容ではございません。

    オブジェクト指向宗教史
    so-apps
    so-apps 2024/03/25
    『残るのは結局、遅延束縛への期待だけ』そもそも、分岐のテクニックでしかないのだと思う。
  • 米ホワイトハウス「将来のソフトウェアはメモリ安全になるべき」と声明発表。ソフトウェアコミュニティに呼びかけ

    米ホワイトハウス「将来のソフトウェアはメモリ安全になるべき」と声明発表。ソフトウェアコミュニティに呼びかけ 米ホワイトハウスの国家サイバー局長室(The White House Office of the National Cyber Director:ONCD)は、サイバー空間における攻撃対象領域を積極的に削減する目的で、テクノロジーコミュニティやソフトウェアコミュニティに対してメモリ安全(Memory Safe)なソフトウェアの実現を積極的に呼びかけるプレスリリース「Future Software Should Be Memory Safe」(将来のソフトウェアはメモリ安全になるべき)を発表しました。 プレスリリースの中で、国家サイバー局長Harry Coker氏は「私たちは国家として、サイバースペースにおける攻撃対象領域を減らし、あらゆる種類のセキュリティバグがデジタルエコシステムに

    米ホワイトハウス「将来のソフトウェアはメモリ安全になるべき」と声明発表。ソフトウェアコミュニティに呼びかけ
    so-apps
    so-apps 2024/02/27
    OSのAPIがCを前提にしているのでね…
  • オブジェクト指向は業務システムで本当に不要なのか? - Qiita

    主旨 以前はシステムの状態をオブジェクト指向でカプセル化し、オブジェクト同士の通信でシステムの制御をしようとしていた しかし、Webアプリケーションのように状態をメモリ上に保持し続けるのが難しい環境が増えると、上記のことがやりにくくなった(ORMのインピーダンスミスマッチの影響が大きくなった) 現在では、システム全体の状態を管理するためにオブジェクト指向を用いるシーンは減っているが、要所要所でシステムを抽象化する道具の一つとして用いるシーンはあり、適材適所で使い続ければ良い はじめに 一時期あれだけもてはやされた「オブジェクト指向」ですが、現在では「業務システム開発においてオブジェクト指向で作るとろくなことがない」、とか、いっそ「不要である」、という意見もよく見かけます。 オブジェクト指向、この記事では特に「オブジェクト指向プログラミング」を対象として話をしますが、その利点は以下の3点に集

    オブジェクト指向は業務システムで本当に不要なのか? - Qiita
    so-apps
    so-apps 2024/02/13
    WebフレームワークでMVCとか言い出した連中が混乱を招いたような気がする。
  • Bourneシェルの終焉まで残り1年 ~ 新しいシェルへの移行は完了していますか? - Qiita

    はじめに 30年以上もの長い間 UNIX を支えてきた Bourne シェルも UNIX のサポート終了とともに消え去ろうとしています。みなさん、他のシェルへの移行はお済みでしょうか? 残り一年、まだ移行が済んでいないという人のために、移行のための簡単なガイドラインと各シェルの特徴をまとめました。 sh は昔は Bourne シェルのことでしたがそれも過去の話です。今どき「Bourne シェル」を解説している記事や sh のことを Bourne シェルと呼んでいる記事は情報が古い(大学関係に多い)、または古い情報を元にして書かれたか、シェルのことを正しく理解してない不正確な記事なので参考になりません。分かりやすい基準ですね。 関連記事 シェルとUNIXコマンドの未来 ~ これからの10年で起きるシェルスクリプトの変化 残り1年というのはどういうこと? Bourne シェルは POSIX に

    Bourneシェルの終焉まで残り1年 ~ 新しいシェルへの移行は完了していますか? - Qiita
    so-apps
    so-apps 2023/12/31
    シェルをここまで愛せるのはすごい。
  • C++erですがCOMに翻弄されています: 再入との戦い - Qiita

    C++ Advent Calender この記事はC++のカレンダー | Advent Calendar 2023 - Qiita の21日目の記事です。 20日目: Try to make a try ! by @wx257osn2 22日目: C++ コンパイル時「出力」で画像ファイル生成 #C++ - Qiita by @Raclamusi はじめに 2021年に新卒で今の会社に入社して以来、ずっととある一つの製品の開発部門に所属していて、その中のWindowsチームというところにいます。 WindowsチームなのにiOSの要件が来たり、サーバーEoLの要件が来たりとなんだか特殊部隊感があるのですが、きっと気の所為です。 さて、ここまで入社以来ずっと格的な理解から逃げ続けてきた存在があります。それがCOMです。 ところがついにこの秋から冬にかけての要件ではVisual Studio

    C++erですがCOMに翻弄されています: 再入との戦い - Qiita
    so-apps
    so-apps 2023/12/28
    なぜ新しいアプリケーションでSTAを選んだのだろう?
  • 1959年に開発されたプログラミング言語「COBOL」が抱える現代の問題にIBMはどう立ち向かっているのか?

    1959年に開発されたプログラミング言語「COBOL」は、自然言語に近いコマンド構文が採用されていることから、金融や自動車、医療業界などで広く使用されています。しかし、柔軟性に欠けるCOBOLを扱える人材は減少傾向にあり、COBOLを用いたシステムは窮地に陥っています。このような状況を打開するために、IBMはCOBOLを最新のプログラミング言語に変換できるジェネレーティブAIwatsonx Code Assistant」を開発しています。 The World Depends on 60-Year-Old Code No One Knows Anymore | PCMag https://www.pcmag.com/articles/ibms-plan-to-update-cobol-with-watson 1959年に開発されたCOBOLは、「コーディングが複雑」「タイピング量が他言語と

    1959年に開発されたプログラミング言語「COBOL」が抱える現代の問題にIBMはどう立ち向かっているのか?
    so-apps
    so-apps 2023/12/17
    テスト・デバッグはどうする?
  • Linux カーネルをバイパスして TCP 通信を 10 倍速くする | IIJ Engineers Blog

    IIJ 2023 TECHアドベントカレンダー 12/16の記事です】 この記事について 背景:TCP はコンピュータネットワークの通信において広く利用されているプロトコル・標準化された通信規格です。コンピュータは TCP/IP スタックと呼ばれるようなソフトウェアを実行することで、定められた規格に則って通信を行います。汎用 OS 環境では、TCP/IP スタックは多くの場合、カーネル空間に OS 機能の一部として実装されています。 課題:通信に関するソフトウェアの研究コミュニティでは、そのようなカーネル空間に実装されている TCP/IP スタックは、近年の高速な NIC の性能を十分に引き出すことが難しいという課題が指摘されてきました。 テクニックの紹介:当記事では、近年の研究コミュニティにおいて比較的一般的な高速化テクニックとされている「カーネルをバイパス(迂回)して TCP 通信を

    Linux カーネルをバイパスして TCP 通信を 10 倍速くする | IIJ Engineers Blog
    so-apps
    so-apps 2023/12/15
    そのやり方だと、TOEをはじめハードウェア支援は諦める感じなんだろうな。でも、CPU使用率は大事。req/secしか計測していないのも気になる。
  • Vim で SQL を素で編集してるの?

    タイトルは釣りです。 この記事は Vim Advent Calendar 2023 16 日目の記事です。 はじめに みなさんは SQL はどんな環境で編集しているでしょうか? Visual Studio Code?それとも Vim?まさか Vim/Neovim の素の状態で編集していたりしませんよね? 僕はしていました。 sqls (SQL Language Server) 以前、lighttiger2505 さんが開発した sqls に少しコントリビュートしていた頃がありました。 既に public archive になってしまっていますが、機能として実用的なままです。コントリビュートしていた頃は、あくまで OSS としての興味の方が大きく、如何に機能的にしていくかだけ着目していたため、常用はしていませんでした。 あらためて常用してみる sqls の導入 Vim から sqls を使う

    Vim で SQL を素で編集してるの?
    so-apps
    so-apps 2023/12/15
    だいたい、Copilotさんが一発で書いてくれますが…。
  • goroutine leakを解消したい!

    この記事は、Magic Moment Advent Calendar 2023 15日目の記事です。 こんにちは! Magic Moment で Backend Engineerをしている 大塚 です。 Magic MomentではGo言語によるマイクロサービス開発をしているのですが、ある日、あるサービスのメモリ使用量が継続的に上昇する現象を観測しました。 そこで、どういった調査をしてどのように解消までいったかをまとめました。 メモリ使用量の上昇を観測 メモリ使用量が日々上昇していることが確認できます。さっそくどこで何が原因でメモリリークしているか確認してみます。 Cloud Profilerで確認 以前よりCloud Profilerを導入していたため、まずはCloud Profilerでメモリ使用量やgoroutineの数を確認しました。 Cloud Profilerについては弊社Te

    goroutine leakを解消したい!
    so-apps
    so-apps 2023/12/15
    GCがある言語、実際にはいろんなモノがリークする。みんなでC++に戻ったほうがいいのでは。
  • あらゆるプログラミング言語の最先端を行くScala 3のマクロ - 貳佰伍拾陸夜日記

    この記事はScala Advent Calendar 2023の11日目です. 最近, 趣味Scala 3のコードをだいぶ書いていて, マクロの使い心地のよさに感心しました. 理論的な背景も含めて, 産業界で多く使われているプログラミング言語の中では筆者の知る限りぶっちぎりに優れたマクロを備えています. 他の言語にも見習ってほしいですね. たぶん見習おうとすると処理系を作り直す羽目になりますが. この記事ではScala 3のマクロのすごいところを例を使って紹介します. マクロの実践的な例 準備 実践的な例: NamedArray – 名前でアクセスできる配列 NamedArrayのマクロ実装 記述が明瞭 メタレベルのプログラムの扱い クォートとスプライスがある パターンマッチもある 生成コードに型がつく 多段階計算に基づいている クォートとスプライスの当の意味 ネストしたスプライス ネ

    あらゆるプログラミング言語の最先端を行くScala 3のマクロ - 貳佰伍拾陸夜日記
    so-apps
    so-apps 2023/12/11
    Scalaはこのまま最先端を行って、おいしいところだけが他の言語に取り込まれてほしい。
  • Scalaはもうだめなのか?…というかJVM言語がもうだめじゃん?|sugitani

    AndroidのためのJava/Kotlinはスコープ外とします まず断っておくと、俺はScalaが好きだ。 自分が作ったScalaプロダクトは二個現存している。うち一つはまだまだ自分が開発している。というか今は会社を作って1人でプロダクトを作っている身なのだが、それもScala3+ZIO2でゴリゴリ書いている。 でも残念、もうScalaというかJVM言語がオススメできません。TypeScriptGoRustをオススメします。 どういうこと?まずこの記事を見ていただくのが一番分かりやすい。 https://aws.amazon.com/jp/builders-flash/202310/java-serverless-saas-backend/?awsf.filter-name=*all 素晴らしいエントリーだ。読みに行かないせっかちな方のために概要を紹介する JavaプロダクトをAWS

    Scalaはもうだめなのか?…というかJVM言語がもうだめじゃん?|sugitani
    so-apps
    so-apps 2023/12/08
    Scalaは、怖い関数屋さんがこれからも使うのではないか。better java として受け入れられたら良かったのに。
  • 「型システム入門」の先へ:TypeScriptの型システムのいくつかの側面 | 雑記帳

    この記事は TypeScript Advent Calendar 2023 の8日目の記事です。言語実装勢にも役立つ内容を含んでいるかもしれないので、 言語実装 Advent Calendar 2023 にも登録しています。 TypeScriptで型システムに興味を持った人が「型システム入門」を読んだという話を時々聞きます。「型システム入門」は、Types and Programming Languages (TAPL) というの邦訳で、型システムに興味を持った人が読むのは自然なことです。 型システム入門 プログラミング言語と型の理論 | Ohmsha 型システム入門 サポートページ ですが、このの原著は2002年出版で、最近の話題がカバーされていなかったり、邦題に「入門」とあるように発展的な話題は扱っていなかったりします。一応続編的な感じのAdvanced Topics in Typ

    so-apps
    so-apps 2023/12/08
    便利にしようとするのはいいが、あまり難しくなると使えなくなってしまう。ガチ勢にはいい落とし所を探ってほしい。
  • 「//このコメントを消したら動かない」は大体Shift_JISの2バイト目が原因で発生する - Qiita

    TL;DR Shift_JISにしただけでコンパイラが通らなくなる恐ろしい事件とその回避法について。 \ (¥)のASCIIコードは0x5c 表、能は良くない UTF-8は神 2023/12/06追記 誤りがあったので訂正します。こんな読まれると思ってなかったので正直ちょっとびっくりしていますが、いろいろコメントありがとうございました。(ツイート等全て拝見しました。) Shift_JISが悪いわけではない(デフォルトのエンコーディング設定の問題)→追記しました UTF-8にはUTF-FSSという仕様でこの問題が回避されている→マジでタメになる知識ありがとうございます OSによってデフォルトのエンコーディング設定が異なるせいで、デフォルト環境での動作がOSにより異なる→なるほど?(調査中) CRLFとLF問題では→なるほど?(調査中) そんな問題何を今更→UTF-8が出てから生まれたからです

    「//このコメントを消したら動かない」は大体Shift_JISの2バイト目が原因で発生する - Qiita
    so-apps
    so-apps 2023/12/05
    { のぶら下げ方によってはコンパイルできてしまうのが面白い。
  • F# 8 のリリースで F# が最強の言語になってしまった件 - Qiita

    おはようございます. 遅ればせながら,11/14/2023 の .NET 8 のリリースの内容を確認し,コードジェネレータの新しい最適化機構(PGO)のデフォルト有効化や AI/LLM のアプリケーションへの統合,各フレームワークのアップデートや,C# の方ではコレクション記法の統合など様々なトピックがある中で,付随してリリースされた F# 8 についても新機能をチェックしてみました. ヤバすぎました. 私は涙しました.これまであらゆる F#er が望んでも得られなかったものがそこにはありました.F# という言語がこれまでの不満点を一気に払拭し,至高の領域に到達しようというヤバみを感じるリリースだったので,今回は以下のブログポストに記載されている新機能から個人的に凄いと思ったものを抜粋して解説します. 11/24/2023 一部サンプルコードのミスを修正しました. F# および F# 8

    F# 8 のリリースで F# が最強の言語になってしまった件 - Qiita
    so-apps
    so-apps 2023/11/24
    こういう超マイナー言語を愛でる心の余裕がほしい。
  • プログラミング初心者が挫折するまでの道のり - Qiita

    結論 複数の設計工程(PSやSSなど)とコーディング(PG)をごちゃ混ぜに勉強しているせいでプログラミングが理解できないんじゃね? はじめに この記事は、新卒で採用された会社の研修にて、プログラミングができない人と半年近く一緒に過ごした筆者が、現在のプログラミング教育の問題点を考察したものである。 googleで「プログラミング初心者 挫折」と調べると、大多数のホームページにて「質問できる機会がない!」だとか「エラーが解決できない!」などの定型文が転がっており、そうじゃねぇだろと思いこの記事を書こうと思った次第である。 この記事は大きく分けて2つに分かれる。1つ目は、プログラミング初心者に立ちはだかる大きな壁。2つ目に、私が考えたプログラミング教育だ。 あくまでも少ししかプログラミングに触れていないただの初心者がほざいているだけだが、もし一つでも共感できるところがあったらとても嬉しく思う。

    プログラミング初心者が挫折するまでの道のり - Qiita
    so-apps
    so-apps 2023/11/22
    こういうあさっての方向に行ってしまう人が、Excel方眼紙に詳細設計を書くようになるんだろうな。
  • GitHub、Copilotの将来像となる「Copilot Workspace」発表。人間がコードを書くことなく、Copilotが仕様作成からコード作成、デバッグまで実行。GitHub Universe 2023

    GitHub、Copilotの将来像となる「Copilot Workspace」発表。人間がコードを書くことなく、Copilotが仕様作成からコード作成、デバッグまで実行。GitHub Universe 2023 GitHubの年次イベント「GitHub Universe 2023」が米サンフランシスコで開幕。同社CEOのThomas Dohmke(トーマス・ドムケ)氏は1日目の基調講演の最後に、GitHub Copilotの将来像となる「Copilot Workspace」を発表しました。 Copilot Workspaceは、人間が書いたIssueを起点にCopilotがIssueに対応した仕様を書き、実装計画を示し、それに沿ってコーディングや既存のコードの修正を行い、ビルドをしてエラーがあれば修正まで行うという、コーディングのほとんど全ての工程をCopilotが自動的に実行してくれる

    GitHub、Copilotの将来像となる「Copilot Workspace」発表。人間がコードを書くことなく、Copilotが仕様作成からコード作成、デバッグまで実行。GitHub Universe 2023
    so-apps
    so-apps 2023/11/10
    AIが作るコードを一日中レビューし続けるのはキツそう。生産性は上がるが、疲労度も上がる。
  • ドメイン駆動設計の正体

    はじめに "ドメイン駆動設計は当たり前のことを言っているだけ" "ドメイン駆動設計はただのオブジェクト指向プログラミング" "ドメイン駆動設計はより良いアーキテクチャだ" "軽量DDDはアンチパターンだ" このようなドメイン駆動設計に関する言及を聞いたことがあるでしょうか? ドメイン駆動設計に言及する記事や書籍は多くありますが、それぞれ着目する側面が異なったり色々なコンテキストから言及されています。 おそらくそれが原因でドメイン駆動設計が何であるかをぼやけさせ、正体のわかりにくい概念になっているように思えます。 そこで今回は色々な観点から整理し、ドメイン駆動設計とは何であるのか、その正体を考えていきます。 ドメイン駆動設計の基的概念について ドメイン駆動設計はEric Evansが出版した「Domain-Driven Design」という書籍がルーツになっています。 ドメイン駆動設計を一

    ドメイン駆動設計の正体
    so-apps
    so-apps 2023/10/22
    要するに、古いんだな。今更ありがたがるようなものではない。
  • まるで詩のような日本語で書いたプログラム - 実際に動きます - Qiita

    はじめに 日語プログラミングの議論が続いていますが気分転換にこんな奇抜なプログラムはどうでしょうか。 経緯 木村 明さん 1 の傑作かつ芸術的な日語プログラムに「ポエム(Poem)」があります。 1986年に作られました。当時はPC-9801やFMRなどMS-DOS環境のPCが全盛で、このプログラムもPC-9801向けに書かれていました。プログラムは大変面白いのですが、そのような事情で現在では実際に動かすことはできず長いこと眠っていました。 一方で、Mindのほうは長らく開発していたGUI版が動き始め、Poemが使うグラフィック描画もできるようになったことから、Poem を実際に動かしてみたくなりました。9801グラフィックの互換処理を差し込むことでなんとか動かすことができました。動いたときは「ああ、こんなプログラムだったな」とちょっと感動しました。 公開について 氏の許可を得てソース

    まるで詩のような日本語で書いたプログラム - 実際に動きます - Qiita
    so-apps
    so-apps 2023/10/15
    IOCCCを思い出した。おもしろい。