The Changelog: Software Development, Open Source - OpenAI's new text classifier, teach yourself CS, programming philosophies are about state, you might not need Lodash & overrated scalability (News)
Episode Date: February 6, 2023OpenAI's working on an AI classifier trained to distinguish between AI-written and human-written text, Oz Nova and Myles Byrne created a guide to teach yourself computer science, Charles Genschwap rec...ently realized that all the various programming philosophies can be boiled down into a simple statement about how to work with state, you probably don't need Lodash or Underscore anymore & Waseem Daher thinks scalability is overrated.
Transcript
Discussion (0)
What up, nerds? I'm Jared, and this is Changelog News for the week of Monday, February 6th,
2023. Thanks to everyone who weighed in on our decision about upgrading this Monday News Brief
to its own podcast. We are going to go for it. Somebody stop me.
I was kind of overwhelmed by how much feedback we received.
I love hearing from y'all.
It gives me those warm, fuzzy community vibes.
Keep the messages coming, please.
Speaking of community, Thomas, AJ, Mary, and a few others in our Slack
had some fun brainstorming a new name for the spinoff.
Meme Cached, The Fix, The News Log,
and Hyper Log Log were all fun suggestions. We do have a name picked out for it, but we're not
ready to share it quite yet. Oh, and if you aren't hanging out in our Slack, let's fix that bug.
Join 6,300 of your fellow devs who've already signed up. It's free, the signal-to-noise ratio
is excellent, and it's just a the signal-to-noise ratio is
excellent, and it's just a really nice place to hang your hat and feel at home on the web.
Get in on it at changelog.com slash community. Okay, let's get into the news. OpenAI announced
on Tuesday that it's working on an AI classifier trained to distinguish between AI written and human written text, but it's not
very good at it. You're mad at me. I'm not mad. I'm just disappointed. Oh, come on. Everyone knows
that's worse. In their evaluations, the classifier correctly identified 26% of AI written text while
incorrectly labeling human written text as AIwritten 9% of the time.
This looks to me like the beginning of yet another cat-and-mouse game,
but this time OpenAI is playing the roles of both Tom and Jerry.
Text isn't the only battlefront in this generative AI arms race.
We see the same game being played in video, where GANs,
generative adversarial networks, are being used to create deepfakes, and other GANs are being used
to detect deepfakes. What I haven't seen yet, and let me know if you have, is any efforts to detect
AI-generated code. Sounds like a hard problem to solve. Maybe someday AI will get so good at generating code
that you can detect a human having written it merely by the presence of bugs.
Oz Nova and Miles Byrne from Bradfield School of Computer Science
have published a guide to teach yourself computer science.
This is perfect for boot camp grads and self-taught engineers who
can get the job done, but would benefit from deeper knowledge of core computing concepts.
Oh, back to school, back to school, to prove to dad that I'm not a fool. I got my lunch packed up, I love this for two reasons.
One, we had Oz on the show a few years back,
and I'm convinced that he's a legitimately good teacher of this stuff.
Two, as it says on their website,
there are so many resources out there these days,
but some are better than others,
and you usually don't want another listicle of them.
What you do want is answers to these questions.
Which subjects should I learn and why?
And what is the best book or video lecture series for each subject?
TeachYourselfCS.com is their attempt to definitively answer these questions.
The TLDR of the guide is the following.
Quote, study all nine subjects listed below in roughly the presented order using either the
suggested textbook or video lecture series, but ideally both. Aim for 100 to 200 hours of study
for each topic, then revisit favorites throughout your career. Charles Genschwap recently realized
that all the various programming philosophies can be boiled down into a simple statement about how to work with state.
For example, object-oriented programming says modifying a lot of state at once is hard to get
correct. Encapsulate subsets of state into separate objects and allow limited manipulation of the
encapsulated substate via methods. Meanwhile, functional programming says modifying state is hard to get correct,
so keep it at the boundaries and keep logic pure so that it's easier to verify that the logic is
correct. Charles goes on to apply this state-oriented thinking to declarative programming,
imperative, monoliths, microservices, and service-oriented architecture. It's an interesting
thought experiment, if nothing more,
and it does show how difficult it is to reason about
and manage the state of things in our programs.
This just in, you probably don't need Lodash or Underscore anymore.
They are solid JavaScript utility libraries
and are widely used by front-end devs,
but modern browsers have built in many of the utilities that they provide.
Depending on what you're up to, you just might not need them.
To help you make that determination, the You Don't Need community
has put together a list of JS methods which you can use natively plus an ESLint plugin
that will help you identify places in your code base where they're no longer needed.
Now if you're working server-side with Node or Deno, pulling in a utility library is a relatively
low-cost endeavor. But remember, any code you ship
down the wire to web clients incurs network and CPU costs that should be avoided if at all possible.
So if you're using Lodash or Underscore, especially in your front end, check out this list
to make sure you really need to be. Wasim Dahar is the CEO of Pilot.com and he still personally emails
every new customer and offers to get on a call with each of them. Many startup founders balk at
this, especially because he does it entirely manually. Wasim says this about their reactions.
Quote, this reaction is an example of a prevalent founder behavior, a tendency to think that everything needs to be made scalable,
and therefore you either need to A, simply not do unscalable things,
or B, build processes that let you do them more scalably, end quote.
He's talking about scaling a business, but all the same principles apply to software.
Because seriously, name a business that isn't built on software these days.
Some things should be built to scale. Other things shouldn't. Deciding which is which is
often the hard part. We had a great discussion about this with Rachel Potvin, who has scaled
engineering teams to huge sizes at both Google and GitHub. I asked her precisely this question
about knowing when to build for scale and when not to, that episode drops on
Friday, February 17th. That is the news for now. If you're excited about our upcoming changes to
the show or are concerned you'll miss the transition, don't worry about it. We'll make
sure everyone is informed as we roll things out. Oh, and hop on the master feed or changelog++
if you're nasty, and you'll automatically get every episode of every podcast we produce.
We'll be back in your ear holes on Friday with Nathan Sobo,
one of the primary developers of GitHub's now defunct Adam Editor.
Adam may be dead, but Zed is not dead.
Who's Zed?
Zed's dead, baby.
Zed's dead.
Have a great week, and we'll talk to you again real soon.