Exploring Programming Languages
· 2 min read
<iframe width="100%" height="166" scrolling="no" frameborder="no" allow="autoplay; encrypted-media" src="
https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/soundcloud%253Atracks%253A2341054553&color=%23ff5500&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true">
In the beginning, I sought to be wise,
So I fled to the past, where the money was made,
“Let’s try something hip!” I exclaimed with a twirl,
Then came Python, the savior, the clean, and the bright!
I jumped into Ruby, for joy and for love,
So I went corporate. Enter Java, the grand.
“To the web!” I declared, and embraced JavaScript,
So I looked for speed, and Golang caught my eye,
Then Rust was the answer, the savior of tech!
Then out of the ashes, a phoenix arose,
Let the servers all crash! Let the supervisors play!
with a language that opened my digital eyes.
I started with LISP, for the pure of the mind,
But spent three whole weeks trying pairs to unwind.
(((((((Are (we) (sure) (this) (is) (right?))))))))
Parentheses blinded my aching eyesight.
and woke up in COBOL, deeply afraid.
IDENTIFICATION DIVISION
roared in my head,
with columns and margins, I wished I were dead.
It’s great for a bank in the year seventy-nine,
But a thousand lines later, I still couldn’t sign.
and drowned in a bucket of regex and Perl.
A script that looked exactly like line-noise and spit,
It ran, but God help me, I can’t read a bit.
Is that a variable, or did my cat walk
across the keyboard while trying to talk?
Until a stray space ruined my day and my night.
“Indentation Error,” the compiler did shriek,
because of one tab in the middle of the week.
Don’t get me even started on packaging hell,
where pip and venv cast a curse and a spell.
with blocks and with gems sent from heaven above.
But
Monkey Patching
turned the code to a zoo,
When a library changed what
2 + 2
do.
It was beautiful, sure, but it ran like a snail,
Chugging along on a rusted old rail.
The boilerplate king of the enterprise land!
AbstractMethodFactoryProviderBean
—was the shortest class name that I ever had seen.
I typed until my fingers were bleeding and numb,
just to print out “Hello” to a world that was glum.
where logic is warped and reality’s flipped.
[] == ![]
evaluated to
true
,
and
NaN
is a number? I’m sorry, that’s rude!
undefined
is not a function, it cried in my face,
as npm bloated and swallowed my disk space.
“It’s simple!” they promised, “Just give it a try!”
But
if err != nil
was on every damn line,
an endless repetition of error design.
No generics (at first), just copy and paste,
a minimalist’s dream, and a developer’s waste.
If the Borrow Checker didn’t snap my poor neck.
“You can’t use lifetimes! This memory’s owned!”
I sat at my desk, thoroughly powned.
I fought with the compiler for hours on end,
until I forgot why I coded, my friend.
embraced by Erlang, in functional prose.
Elixir! Oh, sweet elixir of life,
you banished my sorrow, you ended my strife.
With pattern matching so clean and so neat,
and pipe operators (
|>
) that make life a treat.
The BEAM handles millions of actors with grace,
while I sit with a massive, smug smile on my face.
I’m finally happy. Go away, anyway.
We can't find the internet
Attempting to reconnect
Something went wrong!
Attempting to reconnect