Ian joins Kris to discuss whether certain software shouldn't be written in Go, the myth of Go garbage collection hindering 'real-time' software, upcoming disruptions in Go 1.23, and debates on appropriate package naming conventions.
The upcoming Go 1.23 version aims to enhance package security by restricting access to unexported variables, improving encapsulation of code.
Debates on naming conventions in Go packages highlight the challenge of balancing uniqueness with simplicity for efficient package naming.
Learning new programming languages goes beyond syntax mastery, emphasizing the importance of understanding language paradigms and critical thinking in software development.
Deep dives
Evolution of APIs in the Second Phase
The second phase of the API revolution is marked by enhancing developer experience and delivering top-tier APIs. This evolution aims to set new standards for APIs, promoting reliability and exceptional developer experience. Notable examples like Stripe showcase the impact of robust API development on businesses and industries.
Restriction on Go's 'Go Link Name' Directive
The 'go link name' directive in Go, allowing access to unexported variables in different packages, is being restricted in the upcoming Go 1.23 version. This change aims to prevent unauthorized access to private elements, ensuring better encapsulation of code and enhancing package security.
Debate on Naming Conventions in Go Packages
A discussion on naming conventions in Go packages sparks debates on whether to use common nouns as package names. While some advocate for unique, descriptive names to avoid ambiguity, others argue for simplicity and efficiency in naming packages. The debate underscores the challenge of naming conventions in software development.
Programming Language Naming Conventions and Best Practices
The episode discusses the nuances of naming conventions in programming languages, emphasizing the importance of choosing precise and meaningful names for packages and functions. It explores the significance of avoiding common nouns as package names and discourages the use of random or obscure names that lack clear meaning or relevance. The conversation touches on the impact of package names on code readability, collaboration, and overall code quality.
Balancing Language Learning Complexity
The podcast delves into the complexity of learning new programming languages beyond just syntax, highlighting the importance of understanding language paradigms, idiomatic expressions, and cultural aspects within programming communities. It challenges the notion that learning a language is solely about syntax mastery, stressing the need for developers to grasp the underlying concepts and principles unique to each language. The discussion also raises the idea that learning to think critically about code and programming concepts is essential for writing high-quality software, emphasizing the value of conceptual understanding over syntax proficiency.
This week we’re catching up on the news! Kris is joined by Ian to discuss some of the recent news from around the Go community. Listen in to hear whether the co-hosts believe there’s software that shouldn’t be written in Go, their thoughts on if Go is evolving in the right direction & whether common nouns make good package names.
Changelog++ members save 6 minutes on this episode because they made the ads disappear. Join today!
Sponsors:
Neo4j – Is your code getting dragged down by JOINs and long query times? The problem might be your database…Try simplifying the complex with graphs. Stop asking relational databases to do more than they were made for. Graphs work well for use cases with lots of data connections like supply chain, fraud detection, real-time analytics, and genAI. With Neo4j, you can code in your favorite programming language and against any driver. Plus, it’s easy to integrate into your tech stack.
Speakeasy – Production-ready, Enterprise-resilient, best-in-class SDKs crafted in minutes. Speakeasy takes care of the entire SDK workflow to save you significant time, delivering SDKs to your customers in minutes with just a few clicks! Create your first SDK for free!