2024/07/27 TechRAMEN 2024 Conference 概要: 私にとって何番目の言語になるかはもう数えていませんが、昨年 Rust を学び、 OSS の開発ができるところまでやってきました。私はそれまで Rust の学習に何度か挫折しており、今回ようやくその壁を乗り越えたので…
本日は人生の数ある選択肢のなかから、こちらのブログを読むという行動を選んでくださいまして、まことにありがとうございます。 はじめに プログラミングの世界には多くの指針や原則が存在します。Chris Zimmerman氏の「The Rules of Programming」(邦題:ルールズ・オブ・プログラミング ―より良いコードを書くための21のルール)は、不変の知恵を凝縮した一冊です。これらの原則は、多くの開発現場で活用できる有益な内容となっていると思いました。 The Rules of Programming: How to Write Better Code (English Edition) 作者:Zimmerman, ChrisO'Reilly MediaAmazon 本書は、大ヒットゲーム『Ghost of Tsushima』などで知られるゲーム制作スタジオ、Sucker Pun
Join the O'Reilly online learning platform. Get a free trial today and find answers on the fly, or master something new and useful. Learn more Betty Jean Jennings and Frances Bilas (right) program the ENIAC in 1946. Via the Computer History Museum Eventually, interpreted languages, which are much easier to debug, became the norm. BASIC, one of the first of these to hit the big time, was at first s
2025年8月にO'Reillyから出版される『Vibe Coding: The Future of Programming』のEarly Release版として2つの章が公開されていたので読んでみた。 The 70% Problem: AI-Assisted Workflows That Actually Work Beyond the 70%: Maximizing Human Contribution learning.oreilly.com タイトルとは裏腹に"Vibe Coding"の話は少なく、むしろ副題の"The Future of Programming"やこれから AI を活用していくエンジニアに求められるスキルに焦点が当てられているのが興味深かった。実際には"AI-assisted Coding: The Future of Programming"という言葉のほうがタ
「Programming is Dead」──この挑発的な言葉を公の場で語ったのは、NVIDIAのCEO、ジェンスン・フアンだった*1。 彼は、「AIの進化により、誰もが自然言語でプログラムを作れるようになる」「もはや子どもたちにコーディングを教える必要はない」とまで言い切った。この発言は、ソフトウェア開発の現場だけでなく、教育界にも波紋を広げた。 そしてこの発言は、彼ひとりのものではない。例えば元Googleエンジニアで、現Fixie.aiの創業者であるマット・ウェルシュは、「AIの台頭によって、プログラミングのやり方そのものが根本から変わる」と述べており、自身の論考『The End of Programming』の中で、プログラミングの終焉ではなく“変容”を論じている。 たしかに、生成AIが提示するコードは、十分に実用レベルに達しつつある。ノーコードツールも進化し、「コードを書かない開
> BTC: bc1qs0sq7agz5j30qnqz9m60xj4tt8th6aazgw7kxr ETH: 0x1D834755b5e889703930AC9b784CB625B3cd833E USDT(Tron): TPrCq8LxGykQ4as3o1oB8V7x1w2YPU2o5n Ton: UQAtBuFWI3H_LpHfEToil4iYemtfmyzlaJpahM3tFSoxomYQ Doge: D7GMQdKhKC9ymbT9PtcetSFTQjyPRRfkwTdismiss OOP: the worst thing that happened to programming [2/24/2025] In this article, we will try to understand why OOP is the worst thing that happened to prog
RubyKaigi 2025 キーノートレポート まつもとゆきひろさん「Programming Language for AI age」 ~RubyKaigi 2025 3日目キーノート 2025年4月16日(水)から 18日(金)まで、愛媛県民文化会館にてRubyKaigi 2025が開催されました。最終日のキーノートはRubyの生みの親であるまつもとゆきひろさんが登壇し、「Programming Language for AI age(AI時代におけるプログラミング言語)」について話しました。 登壇の際に舞台のせり上がりからまつもとさんが登場し、会場は大いに盛り上がりました。そして、「 他のテックカンファレンスではAIについての話題で持ちきりですが、(RubyKaigiでは)誰もAIについて話してないのでこのタイトルに決めました」と話し始めました。 AIに対する逆アルファシ
はじめに 2024年も終盤ですね。ちなみに今年のマイベスト技術書は関数型ドメインモデリングでした。「日本語で読みたいなあ」と思っていた矢先の出版、あまりに僥倖でした。1 この記事では、関数型ドメインモデリングでも紹介されていた、鉄道指向プログラミング(Railway Oriented Programming)をJavaで実践する方法について、難しい言葉は使わずに説明していきます。 関数型という言葉だけでちょっとハードルが上がる気持ち、わかります。ですが安心してください。この記事は気楽に読み進めていただけると思います。2 Vavr 本題へと入る前に、Javaで関数型プログラミングを行うためのライブラリであるVavrについて、簡単に説明します。 この記事では主にEitherを利用します。 EitherはLeftとRightどちらかの値を返す型です。それぞれが成功と失敗を表すような使い方をする場
use glam::UVec3; use spirv_std::spirv; enum Outcome { Fizz, Buzz, FizzBuzz, } trait Game { fn fizzbuzz(&self) -> Option<Outcome>; } impl Game for u32 { fn fizzbuzz(&self) -> Option<Outcome> { match (self % 3 == 0, self % 5 == 0) { (true, true) => Some(Outcome::FizzBuzz), (true, false) => Some(Outcome::Fizz), (false, true) => Some(Outcome::Buzz), _ => None, } } } #[spirv(compute(threads(64)))] pub
The Go Blog [ On | No ] syntactic support for error handling Robert Griesemer 3 June 2025 One of the oldest and most persistent complaints about Go concerns the verbosity of error handling. We are all intimately (some may say painfully) familiar with this code pattern: x, err := call() if err != nil { // handle err } The test if err != nil can be so pervasive that it drowns out the rest of the cod
SummaryMost visual programming environments fail to get any usage. Why? They try to replace code syntax and business logic but developers never try to visualize that. Instead, developers visualize state transitions, memory layouts, or network requests. In my opinion, those working on visual programming would be more likely to succeed if they started with aspects of software that developers already
Pragmatic Functional Programming in TypeScript Yuichi Goto | TSKaigi 2025 on May 24, 2025 発表者について Yuichi Goto @yasaichi パーフェクトRuby on Rails共著者 株式会社EARTHBRAIN [PR] EARTHBRAINとプロダクトについて 2021年7月創業のテクノロジースタートアップ 建設生産プロセスの生産性・安全性の向上を実現するデジタル ソリューション「Smart Construction®」を開発・保守 相互連携する複数のソフトウェア・ハードウェアの形で提供 プロダクトの一部は世界20カ国以上で利用 本セッションについて 関数型プログラミング(FP)を学んでも、実務での活用方法に悩む方は少なくありません。純粋関数、イミュータブルな値、モナドなどの概念を、具
import { fmt } def Main(start any) (stop any) { println fmt.Println<string> --- :start -> 'Hello, World!' -> println -> :stop }
-- Returns the last number of a list. last :: [Int] -> Int last (_ ++ [x]) = x -- Returns some permutation of a list. perm :: [a] -> [a] perm [] = [] perm (x:xs) = insert (perm xs) where insert ys = x : ys insert (y:ys) = y : insert ys Curry is a declarative multi-paradigm programming language which combines in a seamless way features from functional programming (nested expressions, higher-order f
Discuss on Reddit, Lobsters, and Hacker News. Summary I am thrilled to introduce Hypershell, a modular, type-level domain-specific language (DSL) for writing shell-script-like programs in Rust. Hypershell is powered by context-generic programming (CGP), which makes it possible for users to extend or modify both the language syntax and semantics. Table of Contents Estimated reading time: 1~2 hours
I’ve been a programmer since the age of 8, and some kind of developer for most of my life. Throughout my life as a coder, both hobbyist and professional, I’ve learnt plenty of programming languages that felt like cookie-cutter clones of each other, but also a few programming languages that changed the way I looked at programming, sometimes even at thinking. Ranking by order in which I discovered t
I did it. On Wednesday, I will hand in my badge and gun, so to speak, and dedicate the rest of 2025 to shipping my programming language, jank. It's been a long time coming, and actually a gradual transition, but how did we get here? The start of jankTen years ago, to the month, I started tinkering with programming language design and compiler development. At that point, I was deep into C++ and my
Can Rust replace C? This is a question that has been on my mind for many years, as I created and now am tech lead for upb, a C library for Protocol Buffers. There is an understandable push to bring memory safety to all parts of the software stack, and this would suggest a port of upb to Rust. While I love the premise of Rust, I have long been skeptical that a port of upb to Rust could preserve the
Promises In Lwt, a promise is a write-once reference: a value that is permitted to mutate at most once. When created, it is like an empty box that contains nothing. We say that the promise is pending. Eventually the promise can be resolved, which is like putting something inside the box. Instead of being resolved, the promise can instead be rejected, in which case the box is filled with an excepti
Most of my readers are probably familiar with procedural programming, object-oriented programming (OOP), and functional programming (FP). The majority of top programming languages on all of the language popularity charts (like TIOBE) support all three to some extent. Even if a programmer avoided one or more of those three paradigms like the plague, they’re likely at least aware of them and what th
The Go Blog Go Turns 15 Austin Clements, for the Go team 11 November 2024 Thanks to Renee French for drawing and animating the gopher doing the “15 puzzle”. Happy birthday, Go! On Sunday, we celebrated the 15th anniversary of the Go open source release! So much has changed since Go’s 10 year anniversary, both in Go and in the world. In other ways, so much has stayed the same: Go remains committed
Literate programming is a style of programming invented by Donald Knuth, where the main idea is that a program's source code is made primarily to be read and understood by other people, and secondarily to be executed by the computer. This frees the programmer from the structure of a program imposed by the computer and means that the programmer can develop programs in the order of the flow of their
The Go Blog Goodbye core types - Hello Go as we know and love it! Robert Griesemer 26 March 2025 The Go 1.18 release introduced generics and with that a number of new features, including type parameters, type constraints, and new concepts such as type sets. It also introduced the notion of a core type. While the former provide concrete new functionality, a core type is an abstract construct that w
The Vine Programming Language description Docs GitHub Discord
Luon is a high-level programming language with a syntax similar to Oberon+, Oberon-07 and Oberon-2, integrating concepts from Lua, and targeting the LuaJIT VM. Luon can be regarded as a statically typed version of Lua. The name is thus a combination of "Lua" and "Oberon". Luon procedures can be declared "external" and be implemented in Lua. This allows the re-use of libraries written in Lua, and a
Compared to traditional debuggers, CodeTracer gives you two major superpowers: Once you capture a bug in a recording, consider it squashed! Bugs that are hard to reproduce can be painful to fix — you’ve surely been there. Once such a bug is captured with CodeTracer, you'll rarely need more than 30 minutes to track it down! This is largely a consequence of the next superpower: Most bugs are easily
Welcome to Category Theory in Programming, a journey into the conceptual world where mathematics meets software development. This tutorial is designed for Racket programmers who are curious about the mathematical ideas underlying computational systems. It offers insights into how familiar programming concepts can be reinterpreted through the lens of category theory, and even goes further to direct
Acton is a general purpose programming language, designed to be useful for a wide range of applications, from desktop applications to embedded and distributed systems. In a first approximation Acton can be described as a seamless addition of a powerful new construct to an existing language: Acton adds actors to Python. Acton is a compiled language, offering the speed of C but with a considerably s
#Zinc, a systems programming language prototype Zinc is my attempt at a low-level systems programming language prototype. I found this parser, called Owl mirrored here, that generates parsers for visibly pushdown languages. Visibly pushdown languages are those where recursion to other grammar productions must be guarded by tokens which can only be used for that purpose. While somewhat limiting, th
The Go Blog Go Protobuf: The new Opaque API Michael Stapelberg 16 December 2024 [Protocol Buffers (Protobuf) is Google’s language-neutral data interchange format. See protobuf.dev.] Back in March 2020, we released the google.golang.org/protobuf module, a major overhaul of the Go Protobuf API. This package introduced first-class support for reflection, a dynamicpb implementation and the protocmp pa
The Go Blog What's in an (Alias) Name? Robert Griesemer 17 September 2024 This post is about generic alias types, what they are, and why we need them. Background Go was designed for programming at scale. Programming at scale means dealing with large amounts of data, but also large codebases, with many engineers working on those codebases over long periods of time. Go’s organization of code into pa
An Introduction to Asynchronous Programming in Rust and a High-level Overview of Tokio's Architecture Asynchronous programming allows the development of services that can handle millions of requests without saturating memory and CPU utilization. Support for asynchrony is usually baked into the programming language; we take a look at async support in Rust, a type-safe and memory-safe systems progra
Ever tried making large changes in a codebase using AI? If you are like me, you probably were very impressed – at first. The initial bliss quickly fades away when you realise the code will be very hard to maintain, or is flat out wrong. A proactive agentAide proactively proposes fixes or asks to include files that may be missing in the context. Our agent can do so by iterating on linter errors and
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く