The Changelog: Software Development, Open Source - RTO vs WFH & the case for strong static typing (News)
Episode Date: October 9, 2023Jacob Kaplan-Moss' recommendations for remote vs colocated teams, Duarte Carmo created a neural search engine from Changelog transcripts, Tom Hacohen says strong static typing is a hill he's willing t...o die on, Orhun Parmaksız created a CLI that makes your keyboard sound like a typewriter & Luke Plant spits hard truths about simplicity.
Transcript
Discussion (0)
What up nerds, I'm Jared, and this is Changelog News for the week of Monday, October 9th,
2023.
We are gearing up to fly out to All Things Open early next week.
Will you be there?
Make sure to stop by our booth and say hi.
We are on the 4th floor hallway track, hope to see you there. Okay say hi. We are on the fourth floor hallway track.
Hope to see you there.
Okay, let's get straight into the news.
Jacob Kaplan Moss has been disappointed with the tenor of the conversation from many of
his peers about so-called return to office policies.
So, with full understanding that he's inviting flames, he tried to articulate a more nuanced
way at looking at working from an office versus remote or working from home.
Jacob's core position is that neither remote nor office-only are globally better.
The correct model is contextual.
In the linked post, he tries to articulate the contextual differences and provides default guidance for which kinds of roles are better suited for in-office
work and which make more sense for remote arrangements. Jacob thinks deeply, and in my
experience, fairly, about these kinds of topics. Here's a brief clip from his latest appearance on
the changelog, Principles for Hiring Engineers, just to give you an idea of what he brings to
the table. The other thing I'll say about hiring and why I find it so important from a management context is it's probably the highest leverage
activity that a manager will engage in. And by that I mean, you know, if you hire well,
that person could be on your team for two years, four years, 10 years, and could do,
you know, a huge amount of work for the company. And so the investment in time in making sure you make a good hire pays huge dividends.
On the other hand, if you screw it up
and you hire someone who is incompetent or outright toxic,
you can just absolutely destroy a team.
So when I think about being an effective manager,
like if all you're good at is hiring well,
you're probably better than 80% of managers in the field.
So if you're struggling to make or rationalize decisions
around return to office versus work from home,
I highly recommend his recommendations.
The Practical AI Guys Asked and Duarte Carmo Delivered.
What resulted is an AI-powered search engine
from Changelog's open-source transcripts.
The back-end is built around SuperDuperDB,
and the front-end is in Next.js.
In addition to search, the app provides a chat function,
so you can ask questions to Changelog hosts and guests
and see what they've said, or might say, about specific topics.
Example, I asked Adam Stachowiak,
how cool is your co-host?
And he slash it responded,
I have not mentioned my co-host's coolness
in the given context.
Sounds about right.
Tom Hacohen, pronunciation unknown,
has been writing software for 20 years,
and over time he has grown certain that strong static typing is, quote,
not just a good idea, but also almost always the right choice, end quote.
Did you notice the hedge in that sentence?
Almost always.
That's how people talk when they've been writing software for a very long time.
After laying out some exceptions, Tom goes on to state his case.
Quote,
Would you rather work a bit more and get invariance checked at compile time
or type checking time for non-compiled languages?
Or work a bit less and have them be enforced at runtime?
Or even worse, not enforced even at runtime?
JavaScript, I'm looking at you.
Getting errors at runtime is a terrible idea.
First, it means that you won't always catch them during development.
Second, when you do catch them, it will happen in a customer-facing manner.
Yes, tests help, but writing tests for every possible mistyped function parameter is impossible,
given the endless possibilities.
Even if you could, having types is much easier
than testing for wrong types, end quote.
His overarching points are that A,
types lead to less bugs,
and B, types lead to a better developer experience.
And here's the money quote.
Writing software without types lets you go at full speed,
full speed towards the cliff.
Ow. Full speed towards the cliff. It's now time for Sponsored News.
There's so much going on in the data and machine learning space, it's hard to keep up.
Example, did you know that graph technology lets you connect the dots across your data
and ground your LLM in actual knowledge? Let's get started. apps and APIs to enhancing machine learning and improving data visualizations. There are 90 talks
over 24 hours. So no matter where you are, you can attend live sessions. To register for this
free conference, visit neo4j.com slash nodes. That's N-E-O, the number four, j.com slash nodes.
Or just follow the link in your chapter data and in the newsletter.
Thanks once again to Neo4j for sponsoring Changelog News.
Orhun Parmax's, pronunciation unknown, was inspired by an old viral YouTube video of a college student bringing an old school typewriter into their classroom to take notes. The result,
ductillo, which means typewriter in Turkish. It's a small command
line program that plays typewriter sounds every time you press a key. Orhun says, quote, it also
offers the flexibility to customize key press sounds to your liking. You can use the built-in
sound presets to create an enjoyable typing experience,
whether you're crafting emails or up to some prank on your boss.
End quote.
Ferris Bueller would love this.
Bueller? Bueller? Bueller?
Um, he's sick.
Oh, and those typewriter sounds you heard earlier in this segment, I generated those myself by typing
N-E-V-E-R space G-O-N-N-A space G-I-V. Well, you know the rest. Here's Luke Plant spitting hard
truths about simplicity. Quote, a lot of developers want simplicity in the same way that a lot of
clients claim they want a fast website. You respond, okay, so we can remove some of those 17 JavaScript trackers
and other bloat that's making your website horribly slow.
No, apparently those are all critical business functionality.
In other words, they prioritize everything over speed.
And then they wonder why using their website is like rowing a boat
through a lake of molasses on a cold day using nothing but a small plastic spoon.
End quote.
I could quote every paragraph from this piece, but I'll limit myself to just one more.
Quote,
Of course we all claim to hate complexity.
But it's actually just complexity added by other people that we hate.
Our own bugbears are always exempted.
And for things we understand, we quickly become unable to even see there is a potential problem for other people.
I think a good test of whether you truly love simplicity is whether you are able to remove things you've added, especially code you've written, even when it's still providing value because you realize it's not providing enough value.
That is the news for now, but also take a moment to scan
the companion email newsletter. It
includes an extra 12 links, like
Flappy Bird implemented
in macOS's Finder,
a new tool for exploring Linux
command line space time, and
Posthog sharing their results after
burning money on paid ads for a
dev tool. They must have forgotten
to sponsor Changelog News, or maybe they left it out because it wouldn't qualify as burning money on paid ads for a dev tool. They must have forgotten to sponsor Changelog News,
or maybe they left it out because it wouldn't qualify as burning money.
Oh, no, you didn't.
We have some great podcasts for you coming up this week,
an interview with Marcin Kulik from Eskinema on Wednesday,
and Gerhard returns to Changelog and Friends for Kaizen 12 on Friday.
Have a great week.
Give Changelog News a five-star review if you dig it,
and I'll talk to you again real soon.