Go is officially cooked

Melkey
20 Jan 202514:08

Summary

TLDRIn this video, a senior software engineer at Twitch reflects on Mitchell Hashimoto's decision to move away from Go, criticizing recent updates like generics and iterators. Hashimoto, known for his work with HashiCorp, argues that Go's simplicity is being undermined by these features, which he believes don’t improve the language. The engineer discusses Go’s strengths, such as its concurrency model and standard library, but also highlights performance concerns, especially in performance-critical applications. He expresses interest in exploring Zig or Rust, acknowledging the strengths of each language, and encourages developers to choose the right tool for their needs.

Takeaways

  • 😀 Mitchell Hashimoto, founder of HashiCorp and creator of Ghosty, announces he is never returning to the Go programming language.
  • 😀 Hashimoto expresses frustration with recent Go updates like generics and iterators, believing they detract from the language's original simplicity and effectiveness.
  • 😀 As a senior machine learning engineer at Twitch, the speaker questions if they too should leave Go for other languages like Zig, Rust, or PHP.
  • 😀 While discussing Go's evolution, Hashimoto highlights the shift away from simplicity, citing generics and iterators as examples of unwanted complexity.
  • 😀 Hashimoto and others on the podcast agree that Go's simplicity, especially in writing and concurrency, is both its strength and its weakness for certain developers.
  • 😀 Some developers, like TJ, find Go too simple for their preferences, opting for languages like Rust or Zig, which offer deeper levels of technical complexity.
  • 😀 Hashimoto criticizes the trend of programming languages adding features from other languages, which he views as unnecessary and detracting from the core design of a language.
  • 😀 The speaker praises Go’s simplicity for building fast, efficient software quickly, but acknowledges that for high-performance tasks, languages like Zig and Rust may be better suited.
  • 😀 Go's garbage collection system can cause performance limitations, which Hashimoto and others note can be restrictive for optimization-heavy applications.
  • 😀 The discussion encourages a more balanced perspective, acknowledging that Go, Zig, and Rust all have their strengths, and that learning any of these languages improves overall engineering skills.

Q & A

  • Who is Mitchell Hashimoto, and what is his significance in the programming space?

    -Mitchell Hashimoto is an entrepreneur and software engineer, best known for founding HashiCorp, a company that builds tools for cloud infrastructure. He is also the creator of Ghosty, a cross-platform terminal emulator. Hashimoto has had significant influence in the programming space, having been involved in various groundbreaking projects like Terraform and Vagrant.

  • What is Hashimoto's stance on the Go programming language?

    -Mitchell Hashimoto expressed that he is no longer interested in using the Go programming language. He revealed that, after writing a lot of Go, he finds it difficult to enjoy it and is now considering other languages like Zig for performance-critical tasks.

  • What are some of the features of Ghosty, the terminal emulator created by Hashimoto?

    -Ghosty is a terminal emulator that focuses on being fast and feature-rich. It utilizes platform-native UIs and GPU acceleration to offer a smooth experience. Hashimoto’s approach to developing Ghosty highlights the need for performance in modern software tools.

  • What is Hashimoto's opinion on generics in Go?

    -Hashimoto dislikes generics in Go, considering their introduction in Go 1.18 a mistake. He believes that generics complicate the language and do not add significant value. He prefers Go’s original simplicity, which forced developers to think differently and avoid over-engineering solutions.

  • What does the discussion about Zig and Rust in the video emphasize?

    -The discussion points out that Zig and Rust are better suited for performance-critical applications compared to Go. Both Zig and Rust allow developers to push the boundaries of performance optimization, which is why they are often preferred in situations that require maximum efficiency.

  • What are the key advantages of Go that are highlighted in the video?

    -Key advantages of Go discussed in the video include its simplicity, ease of use, and strong standard library. Additionally, Go’s concurrency model, which allows easy parallel execution through goroutines, and its stability due to controlled ecosystem changes, are seen as major benefits.

  • Why does the speaker feel Go may be too simple for some developers?

    -The speaker suggests that Go's simplicity can become a drawback for developers who enjoy more technical depth and exploration. For developers like TJ, who prefer languages that offer more opportunities for design complexity and fine-tuning, Go’s straightforward nature can feel limiting.

  • How does Go’s garbage collection impact its use in performance-sensitive applications?

    -Go’s garbage collection is efficient for most use cases, but it can become a limitation in performance-critical scenarios. Developers may find that the performance optimizations needed for applications like Ghosty or Bun are better supported by languages like Zig and Rust, which offer more control over memory management.

  • What are the benefits of Go’s cross-compilation feature?

    -Go’s cross-compilation feature allows developers to easily compile code for different platforms, such as Windows, Linux, and macOS, using a single command. This makes it incredibly convenient for building and deploying applications across diverse environments.

  • Why does the speaker recommend trying out Zig or Rust?

    -The speaker encourages developers to explore Zig and Rust because they offer different strengths compared to Go. Zig is known for its low-level performance optimizations, while Rust offers memory safety and concurrency features. Both languages are useful for performance-focused development, and learning either can make a developer more versatile.

Outlines

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Mindmap

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Keywords

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Highlights

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Transcripts

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now
Rate This

5.0 / 5 (0 votes)

Related Tags
Mitchell HashimotoGo programmingZig languageRust programmingGenerics in GoPerformance optimizationSoftware engineeringGo vs ZigTech communityProgramming languages