oop
object-oriented
concurrency
parallelism
multicore
go
rust
java
python
reference-semantics
value-semantics
race-conditions
mutex
performance
programming-paradigms
history
OOP’s reference semantics were manageable in single-threaded code. But when CPUs went multicore in 2005, hidden shared state went from ‘confusing’ to ‘catastrophic.’ This is why Go, Rust, and modern languages abandoned default references for value semantics.
go
golang
zero-values
valid-by-default
null-safety
memory-model
default-values
api-design
python
java
comparison
nil
none
programming-paradigms
declaration
In Python, undeclared variables don’t exist. In Java, local variables can’t be used before assignment. In Go, declaration creates a valid value. There is no uninitialized state - every value works from the moment it’s declared.
go
golang
interfaces
type-system
structural-typing
design-patterns
api-design
testing
composition
polymorphism
java-comparison
programming-languages
software-architecture
implicit-interfaces
duck-typing
compile-time-safety
You write a struct with a Write method. Three months later, you discover it implements io.Writer. You never declared this. How did it happen? Exploring Go’s implicit interfaces and the power of accidental implementation.
go
golang
values
objects
memory-model
philosophy
python
java
comparison
concurrency
stack-allocation
heap-allocation
programming-paradigms
type-systems
performance
mental-models
In Python, everything is an object. In Java, everything is a class. In Go, everything is a value. These are fundamental design philosophies that shape how you write concurrent code, manage memory, and reason about performance.
go
golang
escape-analysis
performance
optimization
memory-management
stack-allocation
heap-allocation
compiler
benchmarking
profiling
zero-cost-abstractions
pointers
values
The Go compiler decides whether your values live on the stack or heap through escape analysis. Understanding this mechanism explains Go’s performance characteristics and helps you write faster code without sacrificing clarity.
python
gil
concurrency
parallelism
big-data
numpy
pandas
data-science
machine-learning
performance
cpython
threading
multiprocessing
pyspark
polars
optimization
distributed-computing
reference-counting
memory-management
pep-703
Discover why Python dominates big data despite the GIL: Python coordinates, C/Rust/JVM executes. Learn how NumPy, pandas, Polars, and PySpark bypass the GIL for true parallelism.
open-source
licensing
gpl
agpl
lgpl
copyleft
software-licensing
viral-licensing
fsf
gnu
legal
mit-license
apache-license
compliance
intellectual-property
oss
github
project-management
software-development
dual-licensing
commercial-use
derivative-works
developer-tools
software-law
Why copyleft licenses ‘infect’ derivative works, how GPL differs from permissive licenses, and when viral licensing protects community contributions from proprietary capture
python
memory-management
performance
cpython
internals
optimization
heap
stack
data-structures
object-model
memory-layout
pyobject
reference-counting
garbage-collection
c
go
rust
java
comparison
systems-programming
profiling
All Python developers know that everything in Python is an object. But at what cost? A deep dive into Python’s heap-only memory model and the 28-byte overhead of storing a simple integer.
open-source
licensing
apache-license
apache-2.0
software-licensing
patents
legal
mit-license
gpl
copyleft
permissive
intellectual-property
oss
github
project-management
software-development
compliance
commercial-use
patent-protection
developer-tools
software-law
Why Apache 2.0 matters for patent-heavy projects, how it differs from MIT, and when explicit patent grants protect your users and contributors
open-source
licensing
mit-license
software-licensing
legal
gpl
apache
bsd
copyleft
permissive
intellectual-property
oss
github
project-management
software-development
compliance
commercial-use
license-compatibility
developer-tools
software-law
Why MIT became the most popular open-source license, when to choose it over GPL/Apache/BSD, and a decision framework for selecting the right license for your project
shell
unix
patterns
glob
cli
developer-tools
terminal
bash
zsh
reference
syntax
gitignore
file-matching
Part 2: A comprehensive reference covering every glob pattern from basic wildcards to advanced features like brace expansion and extended globs. Learn the rules that apply everywhere.
shell
unix
patterns
glob
regex
cli
developer-tools
terminal
bash
zsh
gitignore
file-matching
pattern-matching
Glob patterns are everywhere - .gitignore, shell wildcards, build configs - yet most developers learn them by accident through copy-paste. Here’s why glob deserves explicit teaching.
No posts match the selected tag. Show all posts