Summary of Being Popular

  • paulgraham.com
  • Article
  • Summarized Content

    The Mechanics of Popularity and Hacker's Perspective

    The article argues that a programming language's popularity is driven by its appeal to "expert hackers" who ultimately shape the software landscape. A language's merit in the eyes of these hackers is key to its success. This means the design of a language must be tailored to human strengths and weaknesses, just like a shoe designed for the human foot.

    Importance of Libraries in Programming Languages

    The author asserts that libraries are critical in determining a language's success. A language with powerful and well-designed libraries is essential for programmers to efficiently solve common problems and write more focused application-specific code.

    • The article highlights the importance of libraries like those in Perl for string manipulation, which are especially helpful for "throwaway programs" - programs written quickly for specific tasks, many of which eventually evolve into more substantial programs.
    • The author argues that future advances in programming languages will likely revolve around the development of exceptional libraries, rather than focusing on traditional language design elements like type systems.
    • He emphasizes that libraries should be as meticulously designed as the core language itself, ensuring a clear structure and ease of use. This means having orthogonal operators within the libraries to make it easier for programmers to guess what library call would be needed for a specific task.

    Lisp: A Language Needing A Modern Reinvention

    The article argues that while Lisp has many strengths, Common Lisp has fallen short in providing essential libraries and hackability, which are critical for attracting and retaining "hackers." This is part of the reason it has lost popularity.

    • The author emphasizes that Lisp needs a revival, a new iteration that truly embraces the hacker's mindset, incorporating powerful libraries and a more terse and hackable design.
    • The article suggests that a new Lisp could be a natural evolution in the progression of programming languages, drawing inspiration from languages like Python, which itself is seen as a watered-down Lisp with infix syntax.

    The Dream Language: A Synthesis of Hacker's Needs

    The article envisions a "dream language" that embodies the ideal language for hackers. This dream language would be beautiful, clean, terse, and highly interactive, with a focus on efficiently solving common problems with minimal code.

    • Such a language would feature powerful, well-designed libraries that are as carefully crafted as the core language, promoting a cohesive and efficient system.
    • The author argues that the core design of such a language should prioritize simplicity, hackability, and a minimal amount of code, allowing programmers to focus on their application logic.
    • The language should also include powerful tools for optimization and performance analysis.

    The Importance of Redesign and Continuous Improvement in Programming Languages

    The article advocates for the importance of redesign in software development, drawing a parallel to the process of rewriting in prose. The author argues that software, especially programming languages, often falls short of being redesigned enough, which limits their potential and adaptability.

    • This process of continuous improvement is vital for any language to remain relevant and appealing to hackers. Redesign allows for the removal of unnecessary features, refinement of existing structures, and integration of new ideas.
    • While committees are often seen as a hindrance to redesign, the author argues that the worst danger of committees is their tendency to stifle the iterative process of improvement. The fear of change and the difficulty in making changes can prevent a language from evolving.

    Lisp: A Potential for Revival through Libraries and Server-Based Applications

    The author emphasizes the potential for a new Lisp that caters to the needs of hackers, particularly in the realm of server-based applications. This type of application is becoming increasingly prevalent and offers an opportunity for Lisp to shine.

    • The author believes that a new Lisp, equipped with robust libraries specifically for server-based applications, would be highly appealing to hackers, especially those working on server-based software.
    • The article suggests that core language support for features like multiple users and data ownership could further enhance Lisp's suitability for server-based development.
    • The combination of Lisp's inherent strengths with the growing demand for server-based application development creates a compelling case for a modern Lisp revival.

    Ask anything...

    Sign Up Free to ask questions about anything you want to learn.