人気になること
新しいプログラミング言語のビジネスプランとして書かれた記事。良い言語に必要な強力な抽象化機能が前提とされている点が特徴。
キーポイント
プログラミング言語の人気は技術的メリットだけで決まらず、エキスパートハッカーの評価が長期的に最も重要な要因である
優れたプログラミング言語の設計基準は「ハッカーが好むかどうか」であり、人間中心のツールとして設計されるべきである
エキスパートハッカーは少数派だが、優れたソフトウェアを全て書き、他のプログラマーに使用言語を決定する影響力を持つ
レガシーソフトウェアやマーケティングも言語の人気に影響するが、十分な時間と初期ユーザー基盤があれば、言語は本来の価値に見合った人気を得る
影響分析・編集コメントを表示
影響分析
この記事はプログラミング言語設計の哲学と普及メカニズムを分析しており、技術的優位性だけでなくユーザーコミュニティの力学が重要であることを示唆している。AI開発言語やフレームワークの普及戦略を考える上で、開発者体験とエキスパート層の採用が決定的な役割を果たすという洞察は現在のAIツール開発にも適用可能である。
編集コメント
2001年の記事ながら、現代のAI/MLフレームワーク競争(PyTorch vs TensorFlow等)にも通じる「技術的優位性 vs コミュニティ採用」の洞察が示されている。
プログラミング言語の人気の力学
2001年5月に書かれたこの記事は、優れたプログラミング言語の設計について考察している。ある友人が著名なOS専門家に「本当に良い言語を設計したい」と伝えたところ、専門家は「それは時間の無駄だ」と答えたという。その主張によれば、言語の良し悪しで人気が決まるわけではなく、たとえ優れた言語でも使われない可能性が高い。専門家自身が設計した言語がその運命をたどったからだ。
このエピソードを起点に、筆者は以下の核心的な問いを立てる:言語の人気を決めるものは何か? 人気言語はその人気に値するのか? 良い言語を定義することに意味はあるのか? どう定義すればよいのか?
筆者は、これらの答えは「ハッカー」を観察し、彼らが何を求めるかを理解することで得られると主張する。プログラミング言語はハッカーのための道具であり、言語の良さは(表示的意味論やコンパイラ設計の演習としてではなく)ハッカーがそれを好むかどうかで決まる。
人気のメカニズム
確かに、大多数のプログラマーは言語の長所だけに基づいて選択するわけではない。多くの場合、使用言語は他者から指示される。しかし、こうした外部要因の影響は過大評価されがちだと筆者は考える。より大きな問題は、「ハッカーが考える良い言語」と「言語設計者が考える良い言語」が往々にして一致しないことにある。
重要なのはハッカーの意見である。プログラミング言語は定理ではなく、人間のために設計される道具だ。靴が人間の足に合わせて設計されるのと同じように、言語も人間の長所と短所に適合するよう設計されなければならない。履いた時にきつい靴は、たとえ彫刻として優雅でも、悪い靴なのである。
大多数のプログラマーが良い言語と悪い言語を見分けられないかもしれないが、これは他の道具と変わらない。だからといって、良い言語を設計する試みが無駄だとはならない。熟練したハッカー(エキスパートハッカー)は良い言語を見分け、それを使う。彼らはごく少数派だが、すべての優れたソフトウェアを書き、その影響力は絶大である。残りのプログラマーは、彼らが使う言語を使う傾向にあり、実際、彼らが上司や教授として他のプログラマーに使用言語を指示することも多い。
エキスパートハッカーの意見だけが人気を決める唯一の力ではない。レガシーソフトウェア(COBOL)や誇大宣伝(Ada、Java)も役割を果たす。しかし筆者は、長期的に見ればエキスパートハッカーの評価が最も強力な力だと考える。十分な初期規模と時間が与えられれば、プログラミング言語はおそらく「それに値する程度」の人気を得る。そして、一度人気が確立されれば、それはさらなる成功を呼び、言語の地位を強化していくのである。
原文を表示
May 2001(This article was written as a kind of business plan for a new language. So it is missing (because it takes for granted) the most important feature of a good programming language: very powerful abstractions.)A friend of mine once told an eminent operating systems expert that he wanted to design a really good programming language. The expert told him that it would be a waste of time, that programming languages don't become popular or unpopular based on their merits, and so no matter how good his language was, no one would use it. At least, that was what had happened to the language he had designed.What does make a language popular? Do popular languages deserve their popularity? Is it worth trying to define a good programming language? How would you do it?I think the answers to these questions can be found by looking at hackers, and learning what they want. Programming languages are for hackers, and a programming language is good as a programming language (rather than, say, an exercise in denotational semantics or compiler design) if and only if hackers like it.1 The Mechanics of PopularityIt's true, certainly, that most people don't choose programming languages simply based on their merits. Most programmers are told what language to use by someone else. And yet I think the effect of such external factors on the popularity of programming languages is not as great as it's sometimes thought to be. I think a bigger problem is that a hacker's idea of a good programming language is not the same as most language designers'.Between the two, the hacker's opinion is the one that matters. Programming languages are not theorems. They're tools, designed for people, and they have to be designed to suit human strengths and weaknesses as much as shoes have to be designed for human feet. If a shoe pinches when you put it on, it's a bad shoe, however elegant it may be as a piece of sculpture.It may be that the majority of programmers can't tell a good language from a bad one. But that's no different with any other tool. It doesn't mean that it's a waste of time to try designing a good language. Expert hackers can tell a good language when they see one, and they'll use it. Expert hackers are a tiny minority, admittedly, but that tiny minority write all the good software, and their influence is such that the rest of the programmers will tend to use whatever language they use. Often, indeed, it is not merely influence but command: often the expert hackers are the very people who, as their bosses or faculty advisors, tell the other programmers what language to use.The opinion of expert hackers is not the only force that determines the relative popularity of programming languages — legacy software (Cobol) and hype (Ada, Java) also play a role — but I think it is the most powerful force over the long term. Given an initial critical mass and enough time, a programming language probably becomes about as popular as it deserves to be. And popularity further separates good languages from bad ones, because feedback from real live users always leads to improvements. Look at how much any popular language has changed during its life. Perl and Fortran are extreme cases, but even Lisp has changed a lot. Lisp 1.5 didn't have macros, for example; these evolved later, after hackers at MIT had spent a couple years using Lisp to write real programs. [1]So whether or not a language has to be good to be popular, I think a language has to be popular to be good. And it has to stay popular to stay good. The state of the art in programming languages doesn't stand still. And yet the Lisps we have today are still pretty much what they had at MIT in the mid-1980s, because that's the last time Lisp had a sufficiently large and demanding user base.Of course, hackers have to know about a language before they can use it. How are they to hear? From other hackers. But there has to be some initial group of hackers using the language for others even to hear about it. I wonder how large this group has to be; how many users make a critical mass? Off the top of my head, I'd say twenty. If a language had twenty separate users, meaning twenty users who decided on their own to use it, I'd consider it to be real.Getting there can't be easy. I would not be surprised if it is harder to get from zero to twenty than from twenty to a thousand. The best way to get those initial twenty users is probably to use a trojan horse: to give people an application they want, which happens to be written in the new language.2 External FactorsLet's start by acknowledging one external factor that does affect the popularity of a programming language. To become popular, a programming language has to be the scripting language of a popular system. Fortran and Cobol were the scripting languages of early IBM mainframes. C was the scripting language of Unix, and so, later, was Perl. Tcl is the scripting language of Tk. Java and Javascript are intended to be the scripting langua
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み