WEBVTT

00:00:00.020 --> 00:00:03.260
What trends and technologies should you be paying attention to today?

00:00:03.760 --> 00:00:06.060
Are there hot new database servers you should check out?

00:00:06.360 --> 00:00:07.900
Or will that just be a flash in the pan?

00:00:08.520 --> 00:00:11.920
I love these forward-looking episodes, and this one is super fun.

00:00:12.440 --> 00:00:13.860
I've put together an amazing panel.

00:00:14.220 --> 00:00:17.860
Gina Häußge, Ines Montani, Richard Campbell, and Calvin Hendryx-Parker.

00:00:18.460 --> 00:00:27.760
We dive into the recent Stack Overflow Developer Survey results as a sounding board for our thoughts on rising and falling trends in Python in the broader developer space.

00:00:28.500 --> 00:00:33.100
This is Talk Python To Me, episode 504, recorded April 9th, 2025.

00:00:34.720 --> 00:00:36.420
Are you ready for your host, please?

00:00:37.140 --> 00:00:40.040
You're listening to Michael Kennedy on Talk Python To Me.

00:00:40.660 --> 00:00:43.760
Live from Portland, Oregon, and this segment was made with Python.

00:00:47.000 --> 00:00:49.880
Welcome to Talk Python To Me, a weekly podcast on Python.

00:00:50.360 --> 00:00:52.120
This is your host, Michael Kennedy.

00:00:52.490 --> 00:01:05.379
Follow me on Mastodon, where I'm @mkennedy, and follow the podcast using @talkpython, both accounts over at fosstodon.org, and keep up with the show and listen to over nine years of episodes at talkpython.fm.

00:01:05.960 --> 00:01:09.840
If you want to be part of our live episodes, you can find the live streams over on YouTube.

00:01:10.180 --> 00:01:16.120
Subscribe to our YouTube channel over at talkpython.fm/youtube and get notified about upcoming shows.

00:01:16.680 --> 00:01:18.580
This episode is brought to you by NordLayer.

00:01:18.920 --> 00:01:22.860
NordLayer is a toggle-ready network security platform built for modern businesses.

00:01:23.240 --> 00:01:27.520
It combines VPN, access control, and threat protection in one easy-to-use platform.

00:01:27.980 --> 00:01:33.400
Visit talkpython.fm/nordlayer and remember to use the code talkpython dash 10.

00:01:34.520 --> 00:01:36.560
And it's brought to you by Auth0.

00:01:37.060 --> 00:01:41.320
Auth0 is an easy to implement adaptable authentication and authorization platform.

00:01:42.020 --> 00:01:48.560
Think easy user logins, social sign-on, multi-factor authentication, and robust role-based access control.

00:01:49.020 --> 00:01:53.860
With over 30 SDKs and quick starts, Auth0 scales with your product at every stage.

00:01:54.240 --> 00:02:00.000
Get 25,000 monthly active users for free at talkpython.fm/auth0.

00:02:00.980 --> 00:02:01.540
Hello, everyone.

00:02:02.320 --> 00:02:04.100
Ines, Gina, Richard, and Calvin.

00:02:04.660 --> 00:02:06.620
Welcome back to the show, all of you.

00:02:06.700 --> 00:02:07.380
It's great to have you all here.

00:02:07.700 --> 00:02:07.940
Yay!

00:02:08.720 --> 00:02:08.880
Yay!

00:02:09.220 --> 00:02:09.300
Hi.

00:02:10.020 --> 00:02:11.420
Yeah, really, really good to have you all here.

00:02:11.540 --> 00:02:14.740
It's been fun to have you all on separately for different shows.

00:02:14.950 --> 00:02:20.640
Although, Gina, you've definitely been on a few panel shows before recently on, I think the last movie was our Mastodon one, right?

00:02:20.700 --> 00:02:21.300
We talked about that.

00:02:21.340 --> 00:02:22.000
That was a lot of fun.

00:02:22.480 --> 00:02:28.000
Today, we're going to talk about developer trends in a general sense.

00:02:28.320 --> 00:02:33.060
And I invited you all because I, like all of you, really appreciate having you here.

00:02:33.120 --> 00:02:34.580
And thanks for taking the time to be here.

00:02:34.940 --> 00:02:40.260
But you all also kind of work in little bits of different spaces of technology and interests and so on.

00:02:40.360 --> 00:02:45.360
So I think we'll get a really nice, diverse perspective of experiences and so on.

00:02:45.360 --> 00:02:49.580
I think the AI section is going to be especially interesting, as we'll see.

00:02:50.920 --> 00:03:22.920
Where are we going with that? That's always interesting. So what we're going to do is we're going to use the 2024 Stack Overflow Developer Survey results. It's a little bit old, but it's less than a year old. I think it's close enough to use as a skeleton to kind of make that conversation happen. So it's going to be a ton of fun to just have a wide-ranging exploration of how people are learning technology, using technology, which ones they're using, and so on. Before that, So let's just do a quick round of introductions and we'll go around the Brady Bunch squares in order, I suppose.

00:03:23.220 --> 00:03:26.560
So Ines, you're on top left. Welcome. Great to see you.

00:03:26.960 --> 00:03:27.060
Yeah,

00:03:27.300 --> 00:03:31.780
nice to be back. Yeah, I'm Ines. I'm the co-founder of Explosion.

00:03:32.160 --> 00:03:39.300
We're probably most well known for spaCy, which is an open source library for natural language processing in Python.

00:03:39.340 --> 00:03:52.580
So everything to do with text, AI, I do a lot in the open source space and also helping developers build their own AI models in-house, taking back control, that sort of stuff.

00:03:52.880 --> 00:03:54.440
So, yeah, very curious.

00:03:54.710 --> 00:03:58.440
Like it was quite hard not to look at the results beforehand, but I did it.

00:04:00.020 --> 00:04:00.360
Thank you.

00:04:00.660 --> 00:04:00.740
Yeah.

00:04:01.060 --> 00:04:05.960
And we recently talked about open source and LLMs and AI and stuff.

00:04:06.060 --> 00:04:09.640
and will open source or the big cloud companies dominate that.

00:04:09.660 --> 00:04:10.740
That was a lot of fun to talk about.

00:04:10.820 --> 00:04:13.140
Yeah, the AI revolution won't be monopolized.

00:04:13.420 --> 00:04:14.440
Yes, exactly. That

00:04:14.440 --> 00:04:14.780
was great.

00:04:15.300 --> 00:04:16.400
Gina, hello, welcome.

00:04:16.820 --> 00:04:19.239
Hi, yeah, my name is Gina.

00:04:19.500 --> 00:04:30.460
I'm also known as Fuzel and my claim to fame is probably Octoprint, which is the snappy web interface for your 3D printer, which is actually written in Python, which in turn is probably why I am here.

00:04:32.160 --> 00:04:39.700
Yeah, and I also happen to be a full-time maintainer working on that project and have been doing that now for well over 12 years.

00:04:40.180 --> 00:04:43.440
So, yeah, it's a weird life, but it works somehow.

00:04:44.480 --> 00:04:45.420
It's got an amazing life.

00:04:45.440 --> 00:04:48.320
I mean, I'm sure a lot of people are seeing that as the dream, right?

00:04:48.320 --> 00:04:52.820
You created an open source project and it's successful enough that you can do that full-time.

00:04:53.000 --> 00:04:54.640
That's a dream.

00:04:55.259 --> 00:04:55.740
The

00:04:55.740 --> 00:05:03.360
people who are now listening to this instead of watching that will not see it when I point to my head, though, and show all the gray hair that is up on there.

00:05:03.540 --> 00:05:04.940
That wasn't there when I started this.

00:05:05.600 --> 00:05:07.180
So just pointing that out.

00:05:08.340 --> 00:05:09.900
There are downsides to this, possibly.

00:05:10.200 --> 00:05:11.320
Just correlation.

00:05:11.860 --> 00:05:13.060
Not necessarily the same, right?

00:05:13.260 --> 00:05:14.300
It's bad things out.

00:05:14.500 --> 00:05:15.000
I'm sure.

00:05:16.460 --> 00:05:17.780
Yeah, I know how that goes.

00:05:18.400 --> 00:05:18.720
Hey, Richard.

00:05:19.010 --> 00:05:19.500
Good to see you.

00:05:19.860 --> 00:05:20.720
Good to see you, too, friend.

00:05:21.300 --> 00:05:26.840
Richard Campbell, I make the podcast.NET Rocks, Run As Radio, and now part of Windows Weekly as well.

00:05:26.920 --> 00:05:33.540
I'm supposed to be a half-free, you know,.NET person, but as GitHub loves to remind me, write entirely too much Python.

00:05:34.380 --> 00:05:35.020
And YAML.

00:05:35.320 --> 00:05:36.760
Why do I write so much YAML?

00:05:36.920 --> 00:05:37.360
I don't know.

00:05:37.700 --> 00:05:37.940
Anyway.

00:05:38.100 --> 00:05:39.700
What kind of live choices have you made?

00:05:39.700 --> 00:05:39.980
And then C#.

00:05:40.280 --> 00:05:40.640
I don't.

00:05:40.800 --> 00:05:41.260
You know what?

00:05:41.300 --> 00:05:43.060
I munge a lot of data these days.

00:05:43.200 --> 00:05:43.320
I

00:05:43.320 --> 00:05:43.620
don't know if

00:05:43.620 --> 00:05:43.740
you

00:05:43.740 --> 00:05:46.060
know this, but Python's pretty good at that.

00:05:46.400 --> 00:05:46.680
Yeah.

00:05:46.980 --> 00:05:48.220
You know, my Jupyter Notebooks

00:05:48.220 --> 00:05:49.820
open most of the time

00:05:49.820 --> 00:05:50.500
because there's

00:05:50.500 --> 00:05:52.620
always some chunk of data I need to rip through.

00:05:52.920 --> 00:05:54.540
There's some surprisingly good tools.

00:05:54.660 --> 00:05:57.660
I was just talking with Reuben Lerner about Panda stuff.

00:05:57.960 --> 00:06:01.020
And what you can do in a couple of lines of code is ridiculous.

00:06:01.480 --> 00:06:09.360
You know, MapReduce used to be this huge task where I harnessed multiple machines to try and, you know, actually crush a large amount of data in a reasonable length of time.

00:06:09.840 --> 00:06:12.260
A contemporary PC is really good at it.

00:06:13.840 --> 00:06:14.640
Stuff has changed.

00:06:14.840 --> 00:06:16.380
This is it's only getting easier.

00:06:16.700 --> 00:06:20.640
And, you know, use the tools du jour and you'll find you'll get good results in less time.

00:06:20.960 --> 00:06:21.240
Absolutely.

00:06:21.700 --> 00:06:21.780
Yeah.

00:06:21.880 --> 00:06:21.940
You

00:06:21.940 --> 00:06:22.920
have a bunch of great podcasts.

00:06:23.000 --> 00:06:23.140
People.

00:06:23.680 --> 00:06:23.900
Thank you.

00:06:25.020 --> 00:06:26.000
And whenever I get

00:06:26.000 --> 00:06:28.280
to talk to you, it's usually one of the geek outs, right?

00:06:28.480 --> 00:06:29.880
Like that's where we end up though.

00:06:30.180 --> 00:06:30.560
Yeah, yeah.

00:06:30.780 --> 00:06:31.720
We've done some great geek outs.

00:06:32.280 --> 00:06:36.060
Some life in the solar system and energy talks and so

00:06:36.060 --> 00:06:36.160
on.

00:06:36.210 --> 00:06:36.320
Yeah.

00:06:36.640 --> 00:06:37.760
The nuclear power

00:06:37.760 --> 00:06:41.240
topic these days has been really huge because everybody's talking about it.

00:06:41.250 --> 00:06:43.880
And it turns out I did a bunch of stuff on that backbone before it was cool.

00:06:44.030 --> 00:06:45.640
And so people keep asking me to do more.

00:06:45.880 --> 00:06:47.080
Yeah, that's very, very neat.

00:06:47.300 --> 00:06:47.500
Calvin.

00:06:48.020 --> 00:06:48.400
Hello, hello.

00:06:48.530 --> 00:06:48.940
Good to see you.

00:06:49.220 --> 00:06:50.040
Good to see you too, Michael.

00:06:50.380 --> 00:06:51.480
I'm Calvin Hendryx-Parker.

00:06:51.620 --> 00:06:56.880
I'm CTO and co-founder of Six Feet Up, where we are a Python and AI for good organization.

00:06:57.680 --> 00:07:03.320
My lifelong Pythonista, I chose Python back in the year 2000 and decided I never wanted to look back.

00:07:03.400 --> 00:07:07.260
And so I made a company around building cool Python stuff for other folks.

00:07:07.700 --> 00:07:09.260
So I guess that's kind of my claim to fame.

00:07:09.360 --> 00:07:11.360
This year will be my 21st PyCon.

00:07:11.740 --> 00:07:13.420
So my PyCon attendance can now drink.

00:07:13.880 --> 00:07:15.580
We always have the best parties together.

00:07:16.440 --> 00:07:16.840
And some of the

00:07:16.840 --> 00:07:19.240
highlights are all the get togethers that we do.

00:07:19.660 --> 00:07:20.440
Yeah, getting the people together.

00:07:20.860 --> 00:07:21.360
That's what's important.

00:07:21.400 --> 00:07:21.460
Yeah,

00:07:21.580 --> 00:07:22.640
you should all come to Europe.

00:07:23.120 --> 00:07:25.480
PyCon DE is later this month.

00:07:25.680 --> 00:07:26.180
I'm very excited.

00:07:26.720 --> 00:07:26.980
It's going to

00:07:26.980 --> 00:07:27.180
be.

00:07:27.200 --> 00:07:28.060
Oh, okay.

00:07:28.250 --> 00:07:28.480
I don't know if I never.

00:07:28.950 --> 00:07:29.880
Oh, and your person as well.

00:07:29.980 --> 00:07:30.520
But I think the

00:07:30.520 --> 00:07:31.520
PyCons,

00:07:32.360 --> 00:07:34.080
and PyCon Italy is also very good.

00:07:34.640 --> 00:07:35.360
PyData, Amsterdam.

00:07:35.760 --> 00:07:38.900
I don't want to single out too many individual conferences, but you should

00:07:38.900 --> 00:07:39.100
totally come to Italy.

00:07:39.100 --> 00:07:39.600
No, you've got favorites.

00:07:39.730 --> 00:07:40.540
I hear it in your voice.

00:07:41.580 --> 00:07:42.120
Yeah, that's awesome.

00:07:42.640 --> 00:07:43.000
Sounds

00:07:43.000 --> 00:07:43.440
like events

00:07:43.440 --> 00:07:44.980
you need to bring your stunt liver to, though.

00:07:48.040 --> 00:07:56.080
Yeah, Calvin, I definitely think you definitely have been hosting some of the great parties, the after parties and stuff at PyCon.

00:07:56.920 --> 00:07:57.760
Well, I love the community.

00:07:58.000 --> 00:08:01.360
That's probably why I'm here is because I'm definitely a community first type person.

00:08:01.740 --> 00:08:02.520
Yeah, beautiful.

00:08:02.940 --> 00:08:08.340
All right, well, with that, let's just go ahead and jump right in to the topics here.

00:08:08.860 --> 00:08:17.000
So like I said, what we're going to do is we're going to go through the Stack Overflow survey and just kind of use it as something to riff off of.

00:08:17.120 --> 00:08:20.920
So the first portion of Stack Overflow, of course, I'll put the link in the show notes.

00:08:20.980 --> 00:08:22.060
You can check it out and follow along.

00:08:22.360 --> 00:08:24.540
It had 65,000 people participate.

00:08:25.520 --> 00:08:26.280
That's a lot of people.

00:08:26.520 --> 00:08:32.260
I don't feel like Stack Overflow almost could have gotten more, but that's still statistically pretty significant.

00:08:32.700 --> 00:08:38.719
And Stack Overflow, I think it's pretty broad across all the technologies these days.

00:08:39.099 --> 00:08:43.780
Although I think Python is still the number one language on Stack Overflow.

00:08:44.459 --> 00:08:45.400
If we were to check

00:08:45.400 --> 00:08:45.740
out Stack Overflow.

00:08:45.740 --> 00:08:46.100
Maybe jail.

00:08:46.760 --> 00:08:49.640
Yeah, Stack Overflow Trends.

00:08:49.860 --> 00:08:50.460
We look at...

00:08:50.460 --> 00:08:55.440
I mean, some might argue that's because Python is the number one language for developers in general.

00:08:55.440 --> 00:08:55.600
Yeah, yeah, yeah.

00:08:57.040 --> 00:09:08.220
Well, I'm just saying that I think the results will be pretty significant, include a significant amount of Python feedback, not just overall, for better and worse.

00:09:09.640 --> 00:09:12.540
This portion of Talk Python To Me is brought to you by NordLayer.

00:09:13.160 --> 00:09:17.460
NordLayer is a toggle-ready network security platform for modern businesses.

00:09:17.880 --> 00:09:22.480
It combines VPN, access control, and threat protection in one easy-to-use platform.

00:09:23.320 --> 00:09:28.620
There's no hardware or complex setup, just secure connections and full control in less than 10 minutes.

00:09:29.140 --> 00:09:33.820
It's easy to start with quick deployment, step-by-step onboarding, and 24-7 support.

00:09:34.520 --> 00:09:35.520
It's easy to combine.

00:09:36.060 --> 00:09:38.720
It works with existing setups in all major platforms.

00:09:39.460 --> 00:09:40.940
And it's easy to scale.

00:09:41.680 --> 00:09:46.940
add users, features, and servers in just a few clicks, single sign-on and provisioning included.

00:09:47.660 --> 00:09:51.220
NordLayer provides zero-trust network access-based solutions.

00:09:51.920 --> 00:09:56.880
It adds threat protection to keep malware, ransomware, and phishing from reaching your endpoints.

00:09:57.540 --> 00:10:03.560
It increases your threat intelligence to spot threats before they escalate, and it helps businesses achieve compliance.

00:10:04.280 --> 00:10:09.920
So if you're responsible for the security of your software or data science team, you should definitely give NordLayer a look.

00:10:10.640 --> 00:10:20.220
As Talk Python listeners, you'll get an exclusive offer up to 22% off NordLayer's yearly plans, plus an additional 10% off the top with our coupon.

00:10:20.740 --> 00:10:23.420
Just use the code Talk Python-10.

00:10:23.820 --> 00:10:26.320
That's Talk Python-10, all lowercase.

00:10:26.840 --> 00:10:30.700
Try NordLayer risk-free with their 14-day money-back guarantee.

00:10:31.180 --> 00:10:33.800
Visit talkpython.fm/nordlayer to get started.

00:10:34.220 --> 00:10:36.140
That's talkpython.fm/nordlayer.

00:10:36.420 --> 00:10:38.240
The link is in your podcast player's show notes.

00:10:38.920 --> 00:10:41.080
Thank you to NordLayer for supporting Talk Python To Me.

00:10:42.640 --> 00:10:48.120
Yeah, so right now, if you look at it, we've got Python at the number one, and we've got JS as number two.

00:10:48.540 --> 00:10:53.120
Yeah, but boy, oh boy, there's a really precipitous drop in 2023, and we'll come back to that.

00:10:53.260 --> 00:10:54.260
That's going to be super interesting.

00:10:54.500 --> 00:10:58.440
But that's section three of our conversation right there.

00:10:59.120 --> 00:11:02.820
So the first thing that comes up here is education.

00:11:03.220 --> 00:11:07.600
How much education have you had as a person who works here?

00:11:07.860 --> 00:11:11.700
And then I think maybe it's probably most relevant to focus in on the professional developers.

00:11:11.850 --> 00:11:15.960
They break out all respondents versus students versus professionals and so on.

00:11:16.240 --> 00:11:19.320
So let's maybe let's do a quick around here.

00:11:19.400 --> 00:11:23.840
You know, how much programming did you all learn in school versus how much did you teach yourself?

00:11:24.760 --> 00:11:24.920
None.

00:11:25.980 --> 00:11:26.380
In school.

00:11:26.460 --> 00:11:26.600
Okay.

00:11:27.030 --> 00:11:27.620
Yeah, tell us about it.

00:11:27.620 --> 00:11:31.340
I mean, I didn't go into computer

00:11:31.340 --> 00:11:31.560
science.

00:11:31.820 --> 00:11:32.760
What did you study?

00:11:33.500 --> 00:11:35.820
Communication science, media science and linguistics.

00:11:36.740 --> 00:11:37.620
Because, you know, when

00:11:37.620 --> 00:11:42.620
I was like trying to decide what to do for university, it was weird because I didn't really feel like a programmer.

00:11:42.800 --> 00:11:44.220
I was always programming on the side.

00:11:44.350 --> 00:11:48.300
But like, you know, I thought of programmers and it was like boys from the computer club.

00:11:48.520 --> 00:11:48.900
There was no

00:11:48.900 --> 00:11:49.340
one really,

00:11:49.800 --> 00:11:56.960
you know, also being a young woman, like there was not really any role model or like idea like, hey, I'm actually a programmer too.

00:11:57.200 --> 00:11:57.320
So,

00:11:58.370 --> 00:11:58.480
yeah.

00:11:58.560 --> 00:11:58.920
Absolutely.

00:11:59.300 --> 00:12:04.380
Yeah, we talked about how your linguistics experience brought you into NLP stuff, which got you into programming, right?

00:12:04.660 --> 00:12:05.540
I mean, I did a tiny bit.

00:12:05.660 --> 00:12:06.200
I did a tiny bit of

00:12:06.200 --> 00:12:09.080
pearl in university, but I'm not really counting that.

00:12:09.100 --> 00:12:12.420
And also, everything we were doing there, I kind of already knew from,

00:12:12.520 --> 00:12:13.220
I don't

00:12:13.220 --> 00:12:14.200
know, just acting around myself.

00:12:14.680 --> 00:12:14.980
Sure.

00:12:15.240 --> 00:12:15.500
Who else?

00:12:15.800 --> 00:12:16.680
Who else wants to share?

00:12:17.020 --> 00:12:18.300
I think everyone

00:12:18.300 --> 00:12:19.620
majored in here.

00:12:19.900 --> 00:12:21.680
I was computer graphics technology.

00:12:22.020 --> 00:12:22.120
I

00:12:22.120 --> 00:12:23.360
took

00:12:23.360 --> 00:12:28.700
an engineering course in C, an engineering course in Fortran, but I wouldn't call that a computer science background.

00:12:29.300 --> 00:12:29.540
No.

00:12:30.060 --> 00:12:31.560
Interesting, but not a computer science background.

00:12:31.880 --> 00:12:32.060
Dina?

00:12:32.220 --> 00:12:37.900
I actually have what is now a master's degree equivalent in computer science.

00:12:38.780 --> 00:12:44.740
For me, I also grew up programming and figuring that that was the most amazing thing ever.

00:12:45.280 --> 00:12:47.480
And then I learned that it was an actual job.

00:12:47.600 --> 00:12:49.800
And that was when I knew what I wanted to become.

00:12:50.300 --> 00:12:56.200
But to this day, I say I didn't learn much programming or anything like that.

00:12:56.420 --> 00:13:01.140
At university, I learned tolerance towards frustration and stress management.

00:13:01.880 --> 00:13:02.520
but

00:13:02.520 --> 00:13:06.640
all of the programming stuff is actually mostly self-taught I would say

00:13:06.640 --> 00:13:07.460
because also

00:13:07.460 --> 00:13:34.080
I mean yeah we did some assembler stuff and some really weird old stuff at university also some Java which later became my main job for but before I before I went into the whole maintainer with Python situation but yeah I think it's it's it's more been a case of lifelong self-teaching and and trying to stay up with things that are happening and learning new languages here and there and such.

00:13:34.280 --> 00:13:37.940
Yeah. It's not like engineering or something where it's kind of stable.

00:13:38.120 --> 00:13:39.240
You know, bridges are still bridges.

00:13:40.220 --> 00:13:42.100
Stuff is changing fast. You've got to stay on top of it.

00:13:42.160 --> 00:13:42.680
That's really interesting.

00:13:43.000 --> 00:13:45.080
Yeah. What's your background, actually?

00:13:45.300 --> 00:13:46.260
Oh, Michael. Sorry.

00:13:46.520 --> 00:13:49.720
I am

00:13:49.720 --> 00:13:53.960
pretty close to where you are, Ines, as well.

00:13:54.720 --> 00:13:56.680
I was in school for a long time. I love school.

00:13:57.080 --> 00:14:00.300
Well, I studied math and chemistry, mostly math.

00:14:00.820 --> 00:14:08.280
And I only did just enough programming to do the research projects I was on, which was very, very little until the very end.

00:14:08.580 --> 00:14:09.640
And then I'm like, you know what?

00:14:09.640 --> 00:14:10.720
I kind of like this better.

00:14:11.600 --> 00:14:13.440
What am I going to do to keep doing this?

00:14:13.640 --> 00:14:18.200
Because it seems like the job opportunities are way better and it's much more interesting.

00:14:18.500 --> 00:14:20.780
So, yeah, I'm definitely on the self-taught train.

00:14:21.080 --> 00:14:21.760
Yeah, that's me.

00:14:21.940 --> 00:14:22.920
But it's really my father.

00:14:23.020 --> 00:14:26.600
He was an electrical engineer and designed electronic cash registers.

00:14:26.880 --> 00:14:29.380
So I started programming cash registers when I was eight.

00:14:30.180 --> 00:14:31.820
The original point of sale, amazing.

00:14:32.060 --> 00:14:32.260
Yeah,

00:14:32.320 --> 00:14:33.280
from the very beginning.

00:14:33.550 --> 00:14:44.520
And then when the TRS-80 Model 1 shipped in 1977, I was in the radio shack for the next year because that was the only thing I was interested in, a whole 4K of RAM.

00:14:45.360 --> 00:14:45.780
Amazing.

00:14:46.260 --> 00:14:46.460
Yeah.

00:14:46.690 --> 00:14:55.060
So then my first part-time job after school was repairing TRS-80s for a company called HNS Microsystems.

00:14:55.180 --> 00:14:56.860
I've never done anything else.

00:14:57.380 --> 00:14:58.100
So by

00:14:58.100 --> 00:15:03.220
the time I graduated high school, I did my last two years of high school living on my own, making a living as a programmer.

00:15:03.660 --> 00:15:04.780
So I didn't go to university.

00:15:05.190 --> 00:15:06.160
I was too busy working.

00:15:06.980 --> 00:15:09.420
Well, I think it paid off for you.

00:15:09.460 --> 00:15:10.260
I think it turned out all right.

00:15:10.740 --> 00:15:11.140
Yeah, it

00:15:11.140 --> 00:15:11.900
did okay.

00:15:12.320 --> 00:15:14.620
But, you know, I

00:15:14.620 --> 00:15:16.980
have the advantage of being first, right?

00:15:17.010 --> 00:15:17.440
Yeah, exactly.

00:15:17.630 --> 00:15:18.660
I remember reading

00:15:18.660 --> 00:15:23.620
the specifications of the IBM BC before it was released and going, 640K of RAM?

00:15:24.080 --> 00:15:25.120
Who's going to need that?

00:15:26.180 --> 00:15:27.740
That's way more than you're ever going to need.

00:15:28.440 --> 00:15:28.580
All right.

00:15:28.620 --> 00:15:29.860
So what does Stack Overflow say?

00:15:29.860 --> 00:15:40.020
It says that about 75% of the people have a bachelor's or a master's degree, but only a little under, where is that number again?

00:15:40.160 --> 00:15:40.300
School.

00:15:40.700 --> 00:15:48.160
A little under 50%, just under 50% of the people actually are using school to become software developers.

00:15:48.580 --> 00:15:59.480
Then, you know, how we, so pretty much all of us here are in some way or other having to keep up with this technology and libraries and so on our own.

00:15:59.820 --> 00:16:03.840
And so the next one asks, like, what online resources are you using?

00:16:04.240 --> 00:16:05.860
So maybe we can go around real quick.

00:16:06.740 --> 00:16:07.780
Where are you all spending your time?

00:16:07.900 --> 00:16:08.740
I'll start first.

00:16:09.760 --> 00:16:14.580
Probably YouTube for me with, you know, other blogs and other things thrown in.

00:16:14.740 --> 00:16:18.200
But YouTube is a big portion where I, like, learn new things and keep up.

00:16:18.220 --> 00:16:18.460
stuff

00:16:18.460 --> 00:16:35.280
i'm a reader you know like i it's the fastest mechanism for me i prefer to read my documentation is the pace that i can read it at and then test stuff out you know i like youtube it's just too slow yeah see i'm a slow reader because

00:16:35.280 --> 00:16:55.280
i was also like the problem my problem with youtube is like there are so many people on youtube and they all speak really they speak too slowly and yes you can like make it faster and it's just but yeah i have a very similar feeling And it's, yeah, it makes me happy to see also under Stack Overflow stats, to see documentation be so significant and also to hear it come up again.

00:16:55.520 --> 00:16:59.160
Because, you know, we've always put, like, I've always put so much work into our documentation.

00:17:00.260 --> 00:17:02.360
And I've always been really passionate about documentation.

00:17:02.730 --> 00:17:05.160
And sometimes I wonder, hey, do people actually read this?

00:17:06.120 --> 00:17:07.199
How much does it really matter?

00:17:07.480 --> 00:17:09.560
And so it's nice to see that it seems to

00:17:09.560 --> 00:17:09.680
matter.

00:17:09.699 --> 00:17:11.400
Meaning what you don't see on this list is podcasts.

00:17:12.240 --> 00:17:13.660
Because who would learn from a podcast?

00:17:13.780 --> 00:17:15.260
Who would, oh my gosh.

00:17:15.360 --> 00:17:16.939
no no

00:17:16.939 --> 00:17:21.780
no no no no no no no no no no they're auditory material at the bottom there you go

00:17:23.440 --> 00:17:41.580
i used to down i used to not think youtube was important i was also in the same boat of like this is too slow why are people spending this time i feel like that's my disconnected my brain recreational learning it's on youtube but like my real like hardcore learning is probably more blogs blogs and docs yeah

00:17:41.580 --> 00:18:23.080
when i when i want to learn some new language or something then i go with written things actually like books shocking i know but um uh but when it's like making skills like binding or whatnot then it's certainly youtube because then it helps to actually see people do that by hand it doesn't help me watch someone else code it helps me to read the documentation and understand how things fit together and click through some library things and such but yeah I don't know this trend towards everything needs to be a YouTube video that goes like 15 minutes and 10 of those are please sponsor me and such something I

00:18:23.080 --> 00:18:24.660
don't understand but maybe I'm too old.

00:18:26.260 --> 00:18:37.220
I'm surprised AI is so low on the list because that seems like that pair programming I'm going to do it together while some AI explains something to me is pretty effective I've seen my kids use that and I wonder if it was a time

00:18:38.240 --> 00:18:41.220
that was a year ago Yeah, as soon as you're right.

00:18:42.120 --> 00:18:42.540
Those two,

00:18:42.660 --> 00:18:45.420
you know, the ChatGPT revolution starts in 23.

00:18:45.880 --> 00:18:47.860
Like, it's not in a lot of time.

00:18:48.740 --> 00:18:48.820
And

00:18:48.820 --> 00:18:50.620
yeah, I'm now in

00:18:50.620 --> 00:18:52.480
the insider version of VS Code

00:18:52.480 --> 00:18:54.240
with that build with Claude.

00:18:54.260 --> 00:18:57.160
And like, wow, that thing's a really great tutorial tool.

00:18:57.580 --> 00:19:00.440
But that's only been in the past couple of months.

00:19:00.960 --> 00:19:01.100
Wow.

00:19:01.820 --> 00:19:01.940
Yeah.

00:19:02.020 --> 00:19:03.360
Yeah, it's also, I'm

00:19:03.360 --> 00:19:06.620
guessing like AI here, they mean, you know, a chatbot type interface.

00:19:07.120 --> 00:19:13.960
I mean, I know I keep complaining about this and it's maybe pedantic, but I'm like, AI already has this terminology problem.

00:19:14.280 --> 00:19:16.920
And I feel like, why do you need to call it AI?

00:19:17.220 --> 00:19:18.400
AI means so many things.

00:19:18.720 --> 00:19:19.000
And it's

00:19:19.000 --> 00:19:19.540
like, you know,

00:19:19.620 --> 00:19:21.580
half of these things have AI in them.

00:19:22.460 --> 00:19:23.600
And like, what do you mean?

00:19:23.700 --> 00:19:24.240
Be more explicit.

00:19:24.380 --> 00:19:40.120
Because I think it's actually, for so many things, including how we think about open source software regulation and so on, It's actually a huge issue that we do not distinguish between products like chatbot products and software components, for example, and call everything AI.

00:19:40.320 --> 00:19:44.140
And I think ultimately the people that benefit from it most are big tech companies.

00:19:44.420 --> 00:19:45.060
So I feel like

00:19:45.060 --> 00:19:45.940
we should

00:19:45.940 --> 00:19:46.860
stop doing that.

00:19:47.060 --> 00:19:53.340
So I'm a bit mildly, I mean, mildly annoyed at Stack Overflow for just calling it AI.

00:19:54.240 --> 00:19:55.380
Yeah, I can probably fix it.

00:19:55.380 --> 00:19:57.120
Let me just right click inspect.

00:20:00.340 --> 00:20:01.020
But in some ways

00:20:01.020 --> 00:20:02.820
it's become the new agile, right?

00:20:03.020 --> 00:20:03.220
It's like

00:20:03.220 --> 00:20:03.460
it's a

00:20:03.460 --> 00:20:03.780
word

00:20:03.780 --> 00:20:05.180
so overloaded

00:20:05.180 --> 00:20:07.140
and it doesn't mean anything anymore.

00:20:07.320 --> 00:20:07.540
Yeah.

00:20:07.680 --> 00:20:07.740
Yeah.

00:20:07.860 --> 00:20:08.180
We're

00:20:08.180 --> 00:20:08.780
using agile.

00:20:09.640 --> 00:20:11.140
It just means we stop writing down the waterfall.

00:20:11.560 --> 00:20:12.020
There you go.

00:20:12.180 --> 00:20:16.200
Now, I know, Richard, you have an interesting take on a lot of this stuff.

00:20:16.330 --> 00:20:19.720
Like things are AI until they weren't going to prove it.

00:20:20.260 --> 00:20:23.220
Remember that AI is a marketing term for raising money, right?

00:20:23.400 --> 00:20:28.560
Marvin Minsky coins it in the 1950s to get money out of the U.S. military, which, by the way, worked.

00:20:28.940 --> 00:20:33.340
But inevitably, once a technology works, it gets a new name, right?

00:20:33.470 --> 00:20:36.560
It becomes image recognition or large language models.

00:20:36.700 --> 00:20:38.880
So as long as it's called AI, you know it doesn't work.

00:20:40.860 --> 00:20:42.660
Still looking for its place in the world.

00:20:43.580 --> 00:20:44.560
You'll get a new name.

00:20:45.040 --> 00:20:45.180
All right.

00:20:45.250 --> 00:20:52.240
So out on the Stack Overflow survey, technical documentation is the number one.

00:20:52.800 --> 00:20:54.900
84% of people say that they do that.

00:20:55.090 --> 00:20:58.380
Not surprisingly, number two is Stack Overflow, but it's a self-selecting group.

00:20:58.580 --> 00:20:59.200
So there's that.

00:21:00.200 --> 00:21:01.600
Tutorials, blogs, how-to videos.

00:21:01.940 --> 00:21:03.380
I mean, I just want to thank you all.

00:21:03.780 --> 00:21:06.980
Thank you, everyone, for making me feel weird and being the only one who said YouTube here.

00:21:07.360 --> 00:21:07.780
Sorry.

00:21:08.460 --> 00:21:09.580
No, I'm just teasing.

00:21:10.640 --> 00:21:15.700
Seriously, for me, when I'm trying to learn, this mostly goes for like frameworks.

00:21:15.990 --> 00:21:19.580
Like I want to learn UA framework or I don't know.

00:21:20.820 --> 00:21:28.440
Seeing it built up as sort of a, as somebody's like, we're going to, let me talk you through or show you how I'd build this like sort of start to end.

00:21:28.480 --> 00:21:32.420
That really sticks with me better than reading documentation.

00:21:32.800 --> 00:21:37.700
And once I see that, then I'll go to the documentation and AI and like, okay, help me click the pieces together.

00:21:38.120 --> 00:21:39.360
Anyway, that's my

00:21:39.360 --> 00:21:39.540
world.

00:21:39.620 --> 00:21:41.380
It's proof you have lots of screen space, right?

00:21:41.500 --> 00:21:43.740
That you have your coding window open in one spot.

00:21:43.980 --> 00:21:45.980
Then you got the YouTube video up in the top right.

00:21:46.160 --> 00:21:48.220
And then you've got the doc down the bottom right.

00:21:48.400 --> 00:21:49.480
So you can work your way.

00:21:49.500 --> 00:21:50.340
I mean, now that you say

00:21:50.340 --> 00:21:54.160
it, like, you know, it is not actually, it takes some of it back, what I said earlier.

00:21:54.440 --> 00:21:55.580
Also, we did some videos.

00:21:55.900 --> 00:21:59.420
I did some YouTube end-to-end tutorials, and they did quite well.

00:21:59.640 --> 00:22:05.800
And I still have people to this day come up to me, ask me when I'm doing my next video, say that they've really enjoyed them.

00:22:05.900 --> 00:22:08.500
So there's clearly, there is an audience for it.

00:22:08.600 --> 00:22:09.440
Yeah, yeah, yeah.

00:22:09.500 --> 00:22:10.240
Which reminds

00:22:10.240 --> 00:22:11.680
me, I should do another YouTube video.

00:22:11.820 --> 00:22:12.860
I have, like, the script ready.

00:22:12.960 --> 00:22:14.180
I just, I'm really bad at

00:22:14.180 --> 00:22:15.040
actually recording.

00:22:15.240 --> 00:22:19.820
And I have a Pluralsight subscription that comes with, you know, one of the influencer packages.

00:22:19.970 --> 00:22:21.160
So I tend to go there.

00:22:21.390 --> 00:22:23.080
So it's not like a don't consume video.

00:22:23.320 --> 00:22:24.720
It's just not YouTube.

00:22:25.120 --> 00:22:25.660
Yeah, sure.

00:22:26.100 --> 00:22:34.500
So during the pandemic, I had a couple of sessions where I actually just streamed myself while working on Octoprint and explaining my thought process.

00:22:34.820 --> 00:22:45.520
And that is something that I felt was helping those people a lot who didn't have much development experience at all and were just trying to understand.

00:22:45.780 --> 00:22:46.560
So here's a problem.

00:22:46.920 --> 00:22:59.300
How would someone who has done this before approach this problem, reduce it into several parts and then approach every single part and the thought cycles that are involved and so on?

00:22:59.300 --> 00:23:01.480
For something like that, I think a video is great.

00:23:01.880 --> 00:23:15.960
But if it's something like technology, like how do I program a command line thingy in Go, for example, that is not something where I would watch a YouTube video for, but rather look up code snippets and then try it on my own.

00:23:16.180 --> 00:23:25.640
So maybe that's also a thing because you said you want to be, you basically want to move through the process with the developer.

00:23:25.810 --> 00:23:41.600
So maybe that is that kind of approach more where you are trying to wrap your head around how what is possible and how can I solve this specific problem versus going into a deep dive into the API or something like that and just figuring out things that way.

00:23:41.880 --> 00:23:42.920
Yeah, I think so.

00:23:43.000 --> 00:23:44.800
For me, I like to kind of learn.

00:23:44.920 --> 00:23:47.640
I want to sort of a surface layer experience of it.

00:23:47.840 --> 00:23:51.180
Then I'll want to go a little deeper, then a little deeper instead of trying to like, anyway.

00:23:53.160 --> 00:23:55.960
This portion of Talk Python To Me is brought to you by Auth0.

00:23:56.520 --> 00:23:57.640
Do you struggle with authentication?

00:23:58.640 --> 00:24:00.400
Sure, you can start with usernames and passwords.

00:24:00.800 --> 00:24:05.100
But what about single sign-on, social auth, integration with AI agents?

00:24:05.680 --> 00:24:07.880
It can quickly become a major time sink.

00:24:08.420 --> 00:24:11.000
And rarely is authentication your core business.

00:24:11.420 --> 00:24:16.240
It's just table stakes that you got to get right before you can move on to building your actual product.

00:24:16.860 --> 00:24:18.680
That's why you should consider Auth0.

00:24:19.180 --> 00:24:23.520
Auth0 is an easy to implement adaptable authentication and authorization platform.

00:24:24.240 --> 00:24:30.640
Think easy user logins, social sign-on, multi-factor authentication, and robust role-based access control.

00:24:31.340 --> 00:24:37.780
With over 30 different SDKs and quick starts, Auth0 scales with your product at every stage.

00:24:38.580 --> 00:24:43.560
Auth0 lets you implement secure authentication and authorization for your preferred deployment environment.

00:24:43.940 --> 00:24:51.960
You can use all of your favorite tools and frameworks, whether it's Flask, Django, FastAPI, or something else, to manage user logins, roles, and permissions.

00:24:52.820 --> 00:24:57.620
Leave authentication to Auth0 so that you can start focusing on the features your users will love.

00:24:58.440 --> 00:25:02.920
Auth0's latest innovation, Auth4Gen AI, which is now available in developer preview.

00:25:03.300 --> 00:25:14.300
secure your Agenic apps, and integrate with the Gen.AI ecosystem using features like user authentication for AI agents, token vault, async authorization, and FGA for RAG.

00:25:15.020 --> 00:25:46.800
So if you're a Python developer or data scientist looking for an easy and powerful way to secure your applications, get started now with up to 25,000 monthly active users for free at talkpython.fm/auth0. That's talkpython.fm/auth0. The link is in your podcast player's show notes. Thank you to Auth0 for supporting the show. Let's talk experience. Now, I know everyone on this call, we're all pretty young, but we probably have at least five years of experience doing this stuff. No, I know. We've been

00:25:46.800 --> 00:25:46.920
doing

00:25:46.920 --> 00:25:47.340
it for a while. Give or take.

00:25:48.320 --> 00:25:48.940
Really quick.

00:25:49.680 --> 00:25:51.740
Numbers of your programming, top to bottom, Ines,

00:25:52.260 --> 00:26:06.020
roughly? Oh, depends. How do you count? Like, really professionally and doing this job, it's like, it's over 10 years. I did, you know, start writing my first website 24 years ago.

00:26:06.300 --> 00:26:06.460
But

00:26:06.460 --> 00:26:07.720
that's

00:26:07.720 --> 00:26:08.820
like, I don't know.

00:26:08.820 --> 00:26:12.720
I would never say like, oh, I started programming when I was 11 and that's how much

00:26:12.720 --> 00:26:13.680
experience I have.

00:26:13.780 --> 00:26:13.920
Obviously,

00:26:14.200 --> 00:26:15.620
I'm really in this

00:26:15.620 --> 00:26:19.400
job and everything, like really doing what I do like a bit over 10 years.

00:26:19.600 --> 00:26:19.880
Awesome.

00:26:21.120 --> 00:26:22.340
First line of code.

00:26:22.780 --> 00:26:23.320
Professionally.

00:26:23.740 --> 00:26:27.160
Yeah, professionally would be 25-ish

00:26:27.160 --> 00:26:27.680
years

00:26:27.680 --> 00:26:28.080
ago.

00:26:28.780 --> 00:26:28.940
In

00:26:28.940 --> 00:26:29.740
general, 35

00:26:29.740 --> 00:26:30.360
-ish.

00:26:31.120 --> 00:26:31.520
yeah like

00:26:31.520 --> 00:26:34.820
that so yeah awesome richard well

00:26:34.820 --> 00:26:35.820
yeah i

00:26:35.820 --> 00:26:41.540
mean i was when do you get paid right so i was being paid for code in my team so 40 years

00:26:41.540 --> 00:26:42.660
yeah amazing

00:26:42.660 --> 00:26:43.120
yeah

00:26:43.120 --> 00:26:45.060
27 years for me i

00:26:45.060 --> 00:26:49.320
was gonna say 27 for me as well i think thanks i feel

00:26:49.320 --> 00:26:56.540
for these people who are in the one to four year like range this is a really i think it's a tough time for those folks yeah but also

00:26:56.540 --> 00:27:08.220
there's a lot of people still joining the industry like the this what 25 to 30 percent constant ad going into the industry means we're always going to skew young effectively or

00:27:08.220 --> 00:27:35.060
like early in in the um you know programming journey because you know i think actually speaking of trends like what we see i think in especially in ai or in like you know out the machine learning field like the most successful projects are those where people upskill and subject matter experts who are like maybe experts in finance, in some other area, pick up the tools because, you know, it's never been easier to learn programming and solve a problem.

00:27:35.460 --> 00:27:36.120
And I think

00:27:36.120 --> 00:27:36.920
there we

00:27:36.920 --> 00:27:40.800
might have people actually quite established in their career, but only recently learned programming.

00:27:40.970 --> 00:27:42.400
And I think that's an interesting trend.

00:27:42.430 --> 00:27:48.140
And I think with everything and the way it's going in the field, I think we'll see a lot more of that.

00:27:48.480 --> 00:27:55.020
Yeah, but is this survey biased that we've got more younger folks maybe replying than older folks on the list too?

00:27:55.220 --> 00:27:56.300
What I mean, interesting

00:27:56.300 --> 00:28:09.960
is this big jump there from like we are starting at less than a year with 5.5% and then suddenly we spike up to one to four years with 27.3 and then the curve ebbs down again until we are at

00:28:09.960 --> 00:28:11.140
0.1.

00:28:11.380 --> 00:28:14.460
Less than one year is because they don't find Stack Overflow.

00:28:14.600 --> 00:28:14.760
Exactly.

00:28:15.380 --> 00:28:16.740
That is what I'm taking from that.

00:28:17.660 --> 00:28:18.140
If

00:28:18.140 --> 00:28:21.600
you're in the one to four bracket, you are constantly on stack overflow.

00:28:22.080 --> 00:28:22.440
And if

00:28:22.440 --> 00:28:23.860
you are earlier

00:28:23.860 --> 00:28:27.360
than that, then you are not yet, you haven't discovered this.

00:28:27.640 --> 00:28:35.720
Certainly my experience consulting into teams is the majority of the developers on a given team are under 10 years of experience.

00:28:35.880 --> 00:28:37.740
And they have a senior that's over 10 years.

00:28:37.900 --> 00:28:38.880
I would say as well.

00:28:38.900 --> 00:28:40.640
And just to give you another perspective.

00:28:40.940 --> 00:28:48.460
So the people listening, the biggest category is one to four years, 27%, and then five to nine is another 25.

00:28:48.820 --> 00:28:50.200
So over 50% in there.

00:28:50.320 --> 00:28:53.020
But most importantly, it's the one to four years, I believe.

00:28:53.210 --> 00:28:54.520
We need to keep that in mind.

00:28:54.860 --> 00:29:02.600
Now, you could say Stack Overflow is skewing this because people are just hammering on Stack Overflow and trying to figure out what to do when they're brand new.

00:29:03.000 --> 00:29:12.740
But the PSF JetBrains survey, which didn't have anything to do with a code help site like Stack Overflow, I think 40% were less than three years.

00:29:13.060 --> 00:29:16.520
40% of the people doing Python have been doing it less, three years or less.

00:29:16.830 --> 00:29:18.460
And so it's, I think

00:29:18.460 --> 00:29:19.160
this is a more broad

00:29:19.160 --> 00:29:24.440
trend, which is something we got to keep in mind when we're building libraries, building products, doing

00:29:24.440 --> 00:29:25.060
tutorials

00:29:25.060 --> 00:29:31.120
and so on, is that a good chunk of your audience will be like, everyone knows what a virtual environment is.

00:29:31.180 --> 00:29:31.980
Everyone knows what

00:29:31.980 --> 00:29:32.580
Async is.

00:29:32.730 --> 00:29:33.900
Like, no, no, they don't.

00:29:34.580 --> 00:29:39.820
They take back part of that, like feeling for those one to four year people is that they also didn't get to experience Python 2.

00:29:40.380 --> 00:29:42.220
They only know the beauty that it's

00:29:42.350 --> 00:29:42.820
Python 3.

00:29:44.280 --> 00:29:46.900
Their will has not been crushed. They have optimism in their lives.

00:29:48.400 --> 00:29:50.360
Much less the migration, right?

00:29:50.650 --> 00:29:50.780
Yeah.

00:29:53.080 --> 00:29:56.660
Writing Python 2 and 3 compatible code.

00:29:58.400 --> 00:30:01.660
Stop, stop. You're bringing back the nightmares and the headaches.

00:30:03.280 --> 00:30:03.600
What were

00:30:03.600 --> 00:30:03.840
you saying

00:30:03.840 --> 00:30:04.780
about grey hair, Gina?

00:30:06.620 --> 00:30:07.040
Python 2

00:30:07.040 --> 00:30:08.240
to 3. At least

00:30:08.700 --> 00:30:10.180
At least half of that is from that.

00:30:11.040 --> 00:30:19.820
Yeah, on the JavaScript side, now it's relatively hard to find folks that experience Angular 1.1 and the chaos that was moving to 2, right?

00:30:19.920 --> 00:30:21.220
Like that's now passed.

00:30:21.400 --> 00:30:21.940
So yeah, in

00:30:21.940 --> 00:30:22.180
a sense,

00:30:22.500 --> 00:30:23.460
new developers coming

00:30:23.460 --> 00:30:23.800
in,

00:30:24.340 --> 00:30:30.220
they get to benefit from the fact that they're getting into stabler tools with robust solutions.

00:30:30.560 --> 00:30:33.260
There's a lot less experimentation, depending on where you're going.

00:30:33.440 --> 00:30:36.100
I mean, there's nobody with 10 years experience with an LLM.

00:30:36.440 --> 00:30:38.100
So, you know, everybody's a beginner there.

00:30:38.480 --> 00:30:38.580
Yeah.

00:30:38.920 --> 00:30:41.960
They'll still be able to experience some packaging grief somewhere along the line.

00:30:42.100 --> 00:30:42.460
Yeah, yeah, yeah.

00:30:42.780 --> 00:30:42.940
I

00:30:42.940 --> 00:30:43.840
mean, it depends on how you define LLM.

00:30:43.840 --> 00:30:45.040
It doesn't matter how long you've been doing this,

00:30:45.040 --> 00:30:45.960
deployment sucks.

00:30:46.500 --> 00:30:46.620
Yeah.

00:30:48.120 --> 00:30:49.920
People call everything an LLM now.

00:30:50.140 --> 00:30:57.700
So, you know, in theory, I can go around and claim I have 10 years experience in LLMs because, you know, relatively large language models.

00:30:58.320 --> 00:30:58.420
Yeah.

00:30:58.520 --> 00:31:05.039
You probably all have heard the joke, but I imagine many listeners haven't, that Sebastian from FastAPI.

00:31:05.860 --> 00:31:06.120
Oh, yeah.

00:31:06.980 --> 00:31:09.420
put out there. He said, I just saw a job posting.

00:31:09.780 --> 00:31:13.200
He created FastAPI, right? And this is two years into it existing.

00:31:13.400 --> 00:31:17.000
So I just saw a job posting asking for four years of experience with FastAPI.

00:31:17.100 --> 00:31:19.840
He's like, I created it and I only have two years experience with

00:31:19.840 --> 00:31:20.700
it. I don't know who

00:31:20.700 --> 00:31:21.220
this is for.

00:31:23.740 --> 00:31:25.600
Hey, we all have 10 years of experience with AI.

00:31:26.540 --> 00:31:27.200
Amazing. There you go.

00:31:30.460 --> 00:31:44.040
Well, hey, if you're a 10x developer, you get 10 years of experience per year. I mean, come on. All right. Let's talk technologies. And I don't know how you all feel about this, this sort of like, what is the most popular programming language? And

00:31:44.040 --> 00:31:44.660
again, focus

00:31:44.660 --> 00:31:54.020
on professional, but I feel there's a lot of things that are not comparable. And this one probably is the most you'll have like SQL versus C++. You're like, these,

00:31:54.940 --> 00:31:56.000
I don't know if those are the same.

00:31:56.320 --> 00:32:02.900
Yeah. CSS versus C++, like not the same thing. They're not. Anyway, that rant out of the way.

00:32:03.560 --> 00:32:06.700
They qualified their heading with putting in their markup languages.

00:32:07.300 --> 00:32:07.840
Ah, okay.

00:32:08.220 --> 00:32:08.480
Okay.

00:32:08.790 --> 00:32:11.040
But Python and Java and C++ are in there.

00:32:13.460 --> 00:32:15.300
C++ is the hardcore markup language.

00:32:17.320 --> 00:32:17.560
Anyway.

00:32:17.620 --> 00:32:19.040
So what was the original question?

00:32:19.360 --> 00:32:20.340
It's just for making scripts.

00:32:21.080 --> 00:32:22.340
The original question here.

00:32:22.780 --> 00:32:24.620
Let me just give people a quick bit of numbers.

00:32:24.820 --> 00:32:28.800
JavaScript is number one, which they put up as JS, 64%.

00:32:29.020 --> 00:32:30.300
SQL is number two at 54.

00:32:30.650 --> 00:32:32.660
HTML, CSS, which, again, are not the same thing.

00:32:32.820 --> 00:32:33.840
but 52%.

00:32:34.030 --> 00:32:37.360
And then Py, which I assume stands for Python, is 46.

00:32:37.590 --> 00:32:38.620
Then TS for TypeScript.

00:32:38.750 --> 00:32:41.300
But then like longer words like PowerShell are written out.

00:32:41.330 --> 00:32:43.060
I don't know why some are abbreviated and some aren't.

00:32:43.620 --> 00:32:45.240
Nonetheless, that's kind of what it is.

00:32:45.240 --> 00:32:50.340
And the question is, which programming, scripting, and markup language have you done extensive development work over the past year?

00:32:50.780 --> 00:32:54.060
So obviously this panel is fairly

00:32:54.060 --> 00:33:02.560
skewed, but just maybe give me your perspective on where you see energy going to these days, different languages.

00:33:02.860 --> 00:33:07.660
For example, in Python, we've seen a lot of people move to Rust, even though most people are still doing Python and so on.

00:33:07.860 --> 00:33:09.280
Yeah, and most is a relative concept.

00:33:09.580 --> 00:33:14.360
Rust is still, you know, at the edge of the long tail, so to speak.

00:33:14.890 --> 00:33:17.300
Yeah, Rust is super, super low, actually.

00:33:17.480 --> 00:33:18.420
It's like 2% or

00:33:18.420 --> 00:33:18.660
something.

00:33:18.740 --> 00:33:19.300
You

00:33:19.300 --> 00:33:21.280
know, it's a pretty specialized space to live.

00:33:21.540 --> 00:33:23.100
Yeah, it's 11% for Stack Overflow.

00:33:23.210 --> 00:33:26.080
But in the trends, I think it's...

00:33:26.480 --> 00:33:28.320
Speaking of trends,

00:33:28.500 --> 00:33:32.000
like one thing I would find interesting, can you click on learning to code?

00:33:32.100 --> 00:33:34.200
Like it would be interesting because they did separate it out.

00:33:34.300 --> 00:33:35.100
It'd be interesting to see

00:33:35.100 --> 00:33:36.700
people who are learning.

00:33:37.440 --> 00:33:38.180
What are they learning

00:33:38.180 --> 00:33:38.600
maybe?

00:33:39.380 --> 00:33:39.560
I

00:33:39.560 --> 00:33:41.260
mean, they didn't ask specifically, what are you learning?

00:33:41.460 --> 00:33:42.540
But like extensive development.

00:33:42.620 --> 00:33:44.460
And there we have Python at the top.

00:33:44.760 --> 00:33:46.240
Yeah, quite a bit.

00:33:46.480 --> 00:33:47.100
And HTML.

00:33:47.480 --> 00:33:48.220
Okay, I get that.

00:33:48.340 --> 00:33:51.100
HTML, CSS, like everyone's putting together stuff on the web.

00:33:52.580 --> 00:33:57.780
I don't know if everyone read the question correctly and like really thought about extensive development.

00:33:58.200 --> 00:33:58.820
Like maybe people thought

00:33:58.820 --> 00:33:59.660
everyone's

00:33:59.660 --> 00:33:59.800
hacking.

00:34:00.190 --> 00:34:00.500
I don't know.

00:34:00.500 --> 00:34:06.600
I'm sure most people who develop hack around with CSS or with HTML a bit every year.

00:34:06.780 --> 00:34:07.300
Unavoitably.

00:34:08.100 --> 00:34:08.179
Yeah.

00:34:08.460 --> 00:34:09.980
So I'm not surprised.

00:34:10.639 --> 00:34:12.659
If you gather all the web technologies together.

00:34:12.960 --> 00:34:13.159
Yeah.

00:34:14.100 --> 00:34:15.440
It's a web-y world.

00:34:15.919 --> 00:34:17.179
If you're making a web

00:34:17.179 --> 00:34:22.780
app, like you have a lot of different languages and markup languages you're interacting with, which you don't necessarily have in Python.

00:34:23.159 --> 00:34:24.240
You write Python.

00:34:24.700 --> 00:34:29.340
Maybe if you're a library developer, you do some C or Rust, but that's kind of it.

00:34:29.490 --> 00:34:33.639
Whereas, okay, if you're a web developer, you do HTML, CSS, JavaScript,

00:34:33.919 --> 00:34:34.899
TypeScript all

00:34:34.899 --> 00:34:35.240
together.

00:34:35.760 --> 00:34:39.220
You might do some database stuff as well.

00:34:39.389 --> 00:34:40.379
You might do VashScript.

00:34:40.580 --> 00:34:46.379
There's just this huge pile of technologies that come with a certain job, and we just mostly have one.

00:34:46.720 --> 00:34:49.300
Yeah, but most Python people are writing a little SQL, too.

00:34:49.419 --> 00:34:50.399
You've got to get your data from somewhere.

00:34:50.879 --> 00:34:55.360
But you can have someone else do that.

00:34:55.409 --> 00:34:57.240
You can use an existing API.

00:34:57.560 --> 00:34:59.220
I'm sure I would...

00:34:59.540 --> 00:35:01.760
I don't really write SQL, to be honest.

00:35:03.240 --> 00:35:05.860
And I think I would know a lot of...

00:35:06.220 --> 00:35:09.480
Also, I like to call it SQL, but that's a different story.

00:35:09.740 --> 00:35:13.920
But I know a lot of developers, I'm sure, who don't write SQL.

00:35:14.800 --> 00:35:15.100
I don't write SQL either.

00:35:15.100 --> 00:35:16.180
Might not even know it.

00:35:16.720 --> 00:35:17.320
What SQL?

00:35:19.080 --> 00:35:19.980
It's called SQL.

00:35:20.400 --> 00:35:24.420
I honestly, when I'm talking to databases, I use ORMs and ODMs most of the time.

00:35:25.040 --> 00:35:26.720
I know, Richard, you're a big database guy.

00:35:27.620 --> 00:35:28.800
I've been everywhere for

00:35:28.800 --> 00:35:29.720
one time or another.

00:35:29.920 --> 00:35:31.020
So it seems like a friendly

00:35:31.020 --> 00:35:31.600
language to me.

00:35:31.680 --> 00:35:35.140
And apparently, according to the professional developer side, lots of people are touching it.

00:35:35.420 --> 00:35:37.320
And I presume they each

00:35:37.320 --> 00:35:39.000
responded, checked multiple boxes.

00:35:39.280 --> 00:35:41.680
Because we rarely actually live in one language.

00:35:41.960 --> 00:35:44.400
You usually have to go spend time elsewhere.

00:35:44.680 --> 00:35:44.840
Do you

00:35:44.840 --> 00:35:47.340
read that learning to code is like, that's aspirational.

00:35:47.540 --> 00:35:48.760
They wish they were doing Python.

00:35:50.000 --> 00:35:51.440
Did they ask that question

00:35:51.440 --> 00:35:52.000
this year?

00:35:52.240 --> 00:35:54.600
Because they used to ask that, right?

00:35:54.780 --> 00:35:56.600
In the developer survey.

00:35:56.760 --> 00:35:58.720
Like, what do you wish you were writing?

00:36:00.580 --> 00:36:00.980
Yes,

00:36:00.980 --> 00:36:02.900
that's in the most

00:36:02.900 --> 00:36:03.500
loved and

00:36:03.500 --> 00:36:05.960
most hated and most wanted.

00:36:06.220 --> 00:36:07.140
I don't know if that's in here.

00:36:07.300 --> 00:36:07.400
Actually,

00:36:07.580 --> 00:36:08.700
let's go down to it.

00:36:08.700 --> 00:36:09.800
I think they might have stopped doing that.

00:36:09.800 --> 00:36:11.200
I think they might have stopped as well.

00:36:11.620 --> 00:36:11.720
Yeah.

00:36:12.020 --> 00:36:12.880
Gosh, because I

00:36:12.880 --> 00:36:12.940
love that.

00:36:12.960 --> 00:36:15.600
There's an admired and desired section in 2.2.

00:36:16.000 --> 00:36:16.220
Okay.

00:36:17.240 --> 00:36:17.840
Let's see.

00:36:18.520 --> 00:36:19.400
Admired and desired.

00:36:19.600 --> 00:36:20.300
Yeah, there it is.

00:36:20.770 --> 00:36:20.860
Okay.

00:36:21.620 --> 00:36:22.480
This is pretty interesting.

00:36:22.840 --> 00:36:22.940
Yeah.

00:36:23.400 --> 00:36:25.220
What do the bars mean here, folks?

00:36:26.279 --> 00:36:28.020
Admired versus desired, right?

00:36:28.240 --> 00:36:28.420
Yeah.

00:36:28.740 --> 00:36:31.280
So I admire Python, but I don't actually want to do it.

00:36:31.400 --> 00:36:31.660
So

00:36:31.660 --> 00:36:32.760
admired is read.

00:36:33.020 --> 00:36:36.600
That's like, I think this is like a borderline contest.

00:36:36.710 --> 00:36:41.480
I mean, no offense to Stack Overflow, but that's like a borderline contestant for the data is ugly subreddit.

00:36:42.640 --> 00:36:44.100
Because I find this quite hard to read.

00:36:44.700 --> 00:36:45.700
No offense to anyone.

00:36:46.680 --> 00:36:49.620
It was just people who made this, And I don't want to be a dick about it.

00:36:49.620 --> 00:36:49.740
No,

00:36:49.800 --> 00:36:50.300
I'm not green.

00:36:50.680 --> 00:36:51.200
I agree.

00:36:52.560 --> 00:36:54.660
Can someone decipher this for me?

00:36:54.840 --> 00:36:58.660
Because I actually don't understand what I'm looking at here right now.

00:36:58.660 --> 00:36:59.560
Let me describe it here.

00:36:59.680 --> 00:37:01.920
So there's a, if you go to the section,

00:37:02.260 --> 00:37:03.640
there's

00:37:03.640 --> 00:37:04.100
two bars.

00:37:04.180 --> 00:37:06.400
There's like kind of an error bar looking thing with two numbers.

00:37:07.240 --> 00:37:13.280
And it has a range on the blue one on the left is how desired is it?

00:37:13.580 --> 00:37:16.940
And then there's a red one that shows how admired it is.

00:37:17.140 --> 00:37:23.460
And you can see the delta, the gap between how much it's wanted versus how much people admire it.

00:37:23.880 --> 00:37:23.960
So

00:37:23.960 --> 00:37:25.440
lust is probably the biggest.

00:37:25.700 --> 00:37:27.280
Elixir makes the sense to me, right?

00:37:27.420 --> 00:37:27.500
Because

00:37:27.500 --> 00:37:28.060
Elixir

00:37:28.060 --> 00:37:28.760
is really

00:37:28.760 --> 00:37:29.400
not easy

00:37:29.400 --> 00:37:30.080
to work in.

00:37:30.330 --> 00:37:32.420
But it's beautiful when it works.

00:37:33.040 --> 00:37:36.640
So it makes perfect sense to me that almost nobody's doing it, but everybody thinks it's cool.

00:37:37.120 --> 00:37:37.520
Yeah.

00:37:37.920 --> 00:37:39.660
Seventy, seven percent think it's cool.

00:37:39.860 --> 00:37:42.240
Five percent are doing it or actually want to do it.

00:37:42.960 --> 00:37:43.120
Yeah.

00:37:43.280 --> 00:37:43.880
That seems

00:37:43.880 --> 00:37:44.440
that that

00:37:44.440 --> 00:37:45.800
resonates with me.

00:37:45.900 --> 00:37:46.640
I get that.

00:37:46.940 --> 00:37:47.000
Right.

00:37:47.100 --> 00:37:48.120
that that would make sense.

00:37:48.300 --> 00:37:58.040
So here we have Python number one, both in absolutely number one in desired, not number one in admired, which is pretty interesting.

00:37:58.160 --> 00:38:07.080
It's still quite high up there, but there are things like Rust, which is more admired, and Zig, which is wild, and even Elixir, as you point out there.

00:38:08.180 --> 00:38:11.220
But yeah, I think this represents trends pretty well.

00:38:11.560 --> 00:38:15.680
Yeah, and when you're talking about admired, it's like, who are the cool people that are talking about this?

00:38:15.800 --> 00:38:19.400
How much did this number move for Rust because Russinovich was all over it?

00:38:19.560 --> 00:38:20.260
Yeah, yeah.

00:38:20.490 --> 00:38:29.760
And in Python, we've got a bunch of tools that have come along, especially from the astral folks, but others where we've seen huge benefits because people have written in Rust.

00:38:29.880 --> 00:38:35.980
I don't know how much of that is we've just put better algorithms into it and how much of it is actually Rust, but it is Rust and Rust.

00:38:36.080 --> 00:38:43.500
I think that puts a lot of shine on it, but people are still rather just write Python, but it seems impressive or cool, and I think that kind of gets captured here.

00:38:43.740 --> 00:38:54.460
Yeah, I think definitely sometimes people ask us, and if we were to rewrite spaCy from scratch, we might – maybe we still use Cython, but maybe we would have also used Rust.

00:38:54.760 --> 00:39:05.000
It totally wasn't a thing back then, but I think the alternatives are just C++ or Cython, which isn't very extensively documented.

00:39:05.640 --> 00:39:08.820
So I can see by Rust, it's nice and attractive.

00:39:09.320 --> 00:39:10.780
Yeah, quite interesting.

00:39:11.180 --> 00:39:21.140
All right, I want to cover one more from this section, and then we need to make sure that we save a little bit of time for the AI category, because that's certainly going to be a thing.

00:39:21.740 --> 00:39:23.680
And that is cloud platforms.

00:39:24.660 --> 00:39:36.700
So one of the things I find really interesting is how much the big three hyperscale clouds, AWS, Azure, and Google Cloud, to dominate where people are working, right?

00:39:37.040 --> 00:39:39.440
I don't know how often developers make a decision in this space.

00:39:39.720 --> 00:39:42.440
Yeah, you certainly have talked to a lot of larger companies that

00:39:42.440 --> 00:39:42.700
have

00:39:42.700 --> 00:39:44.020
really big cloud deployments.

00:39:44.800 --> 00:39:45.140
Give us your

00:39:45.140 --> 00:39:45.340
thoughts.

00:39:45.700 --> 00:39:47.920
Any more than most developers choose what database you're using.

00:39:48.580 --> 00:39:52.880
Somebody else selected that product and pays for the licenses for it, and you are going to consume.

00:39:53.580 --> 00:39:53.960
I

00:39:53.960 --> 00:39:58.880
will say of the ones that are on this list, I feel like AWS is the most developer-centric or friendly.

00:39:59.280 --> 00:39:59.620
I would

00:39:59.620 --> 00:40:00.420
consider Azure

00:40:00.420 --> 00:40:06.240
being infrastructure ops-friendly and AWS being like, oh, they're going to throw out a lot more developer-y type things.

00:40:07.400 --> 00:40:08.500
We've had a lot of headaches.

00:40:08.720 --> 00:40:14.480
I mean, I'm not an infrastructure person, but I just know we did have some headaches with AWS and Google Cloud.

00:40:14.810 --> 00:40:19.060
It's like what we ended up migrating to because it felt much more developer-friendly.

00:40:19.060 --> 00:40:20.440
I would go with GCP as

00:40:20.440 --> 00:40:21.940
the most developer-friendly,

00:40:22.430 --> 00:40:25.680
but the corp doesn't necessarily like it when you get further afield with it.

00:40:26.400 --> 00:40:30.740
I think what AWS has been brilliant at is how they manage their startup relationships.

00:40:31.250 --> 00:40:35.080
You know, once you get to a certain size working with AWS, a tech shows up to help you.

00:40:35.420 --> 00:40:38.220
Like they've done a really good job of cultivating support there.

00:40:38.420 --> 00:40:39.900
Plus they are the reference name.

00:40:40.260 --> 00:40:40.320
Yeah.

00:40:40.360 --> 00:40:44.980
And also cultivating like developers that specialize in it, because ultimately that's kind of how it works.

00:40:45.040 --> 00:40:46.420
You have like DevOps people.

00:40:46.940 --> 00:40:53.760
And if you do manage like, you know, significant infrastructure on any of these platforms, you need a developer to do the maintenance on it.

00:40:53.840 --> 00:41:04.580
Like that's also something, you know, we've realized when we had to downscale some of our operations a bit, you know, like the infrastructure is set up so that it needs people to maintain it and so that it can do all of the things.

00:41:04.980 --> 00:41:12.640
And, you know, if the company encourages, you know, more people to specialize in its platform, then, you know, you also have more

00:41:12.640 --> 00:41:14.340
companies hiring people to do it.

00:41:14.480 --> 00:41:16.860
Because you add up these numbers and say they don't add up to 100%.

00:41:16.880 --> 00:41:21.200
It's like, listen, as soon as you get to a certain size of an organization, you have more than one cloud in your life.

00:41:21.580 --> 00:41:22.840
Like, it's just not optional.

00:41:23.780 --> 00:41:24.060
Question.

00:41:24.440 --> 00:41:28.280
Can we take a look at the split between professional developers and learning to code?

00:41:28.450 --> 00:41:28.820
Just out of

00:41:28.820 --> 00:41:29.180
curiosity.

00:41:29.640 --> 00:41:30.520
Yeah, I don't

00:41:30.520 --> 00:41:31.100
even know what I was

00:41:31.100 --> 00:41:33.200
doing over in that learning to code mix.

00:41:33.400 --> 00:41:34.040
That doesn't make any sense.

00:41:34.260 --> 00:41:35.520
So that is what I would expect.

00:41:35.940 --> 00:41:36.960
Now learning to code, please.

00:41:38.380 --> 00:41:38.480
So

00:41:38.480 --> 00:41:38.820
just

00:41:38.820 --> 00:41:41.700
for people listening, AWS, 52%.

00:41:41.940 --> 00:41:43.220
Azure, 30%.

00:41:43.500 --> 00:41:45.240
Google Cloud, 25%.

00:41:45.400 --> 00:41:46.560
On the pro developer side.

00:41:47.020 --> 00:41:47.520
Awesome.

00:41:48.060 --> 00:41:48.840
And then when you're learning

00:41:48.840 --> 00:41:49.500
to code.

00:41:50.380 --> 00:41:53.580
Yeah, Google Cloud is number one at 24% learning code.

00:41:53.720 --> 00:41:56.580
But the split is way more distributed across all these

00:41:56.580 --> 00:41:57.460
areas, which is

00:41:57.460 --> 00:41:57.840
interesting.

00:41:58.120 --> 00:41:59.600
And when you

00:41:59.600 --> 00:42:00.260
talk about dev

00:42:00.260 --> 00:42:02.440
-friendly, it's none of the big guys, right?

00:42:02.740 --> 00:42:05.180
like first selling Firebase and Cloudflare and

00:42:05.180 --> 00:42:05.900
DigitalOcean

00:42:05.900 --> 00:42:08.900
even I would put up there are much more dev-centric.

00:42:09.160 --> 00:42:09.260
I

00:42:09.260 --> 00:42:13.100
also am a bit confused about like what do they define as cloud here?

00:42:13.200 --> 00:42:21.460
Because I would certainly put Amazon Web Services and Azure and stuff into a completely different bucket than a vServer hosted at Hetzner or at OVH.

00:42:21.640 --> 00:42:30.440
So that is a bit weird because, I mean, I might be missing something, but I think neither OVH nor Hetzner or something like that do have an offering similar to

00:42:30.440 --> 00:42:31.600
AWS and such.

00:42:31.960 --> 00:42:33.420
So that's a bit of a mixed bag.

00:42:33.900 --> 00:42:35.320
Hetzner has basically,

00:42:35.720 --> 00:42:39.060
it has cloud servers, it

00:42:39.060 --> 00:42:44.740
has cloud firewalls, and it has a beta version of S3 storage, and that's it.

00:42:44.800 --> 00:42:46.440
Yeah, and you can also, you can

00:42:46.440 --> 00:42:47.860
vertically scale and such.

00:42:47.920 --> 00:42:49.240
They have an API for scaling.

00:42:49.520 --> 00:42:51.680
I have all my stuff hosted there, basically.

00:42:52.450 --> 00:42:59.360
But it's definitely not the same thing as all of this orchestration stuff that you can do with AWS agents and such,

00:43:00.040 --> 00:43:01.040
or even

00:43:01.040 --> 00:43:01.460
Cloudflare.

00:43:01.740 --> 00:43:01.840
So I

00:43:01.840 --> 00:43:03.320
think that's a bit of a mixed thing.

00:43:03.320 --> 00:43:05.320
I think this is clearly evidence that they asked developers this question,

00:43:05.700 --> 00:43:06.460
not the people actually.

00:43:08.440 --> 00:43:16.180
What percentage of the developers are using serverless-y things on Amazon and not just putting up EC2 instances with their stuff in it?

00:43:16.480 --> 00:43:17.380
That would be interesting.

00:43:17.880 --> 00:43:18.120
That would

00:43:18.120 --> 00:43:18.260
be

00:43:18.260 --> 00:43:18.840
super interesting.

00:43:20.740 --> 00:43:22.140
Who does web development?

00:43:22.350 --> 00:43:37.980
Because we have platforms there that I also use, like Visele or Netlify, which is where we host our stuff, which if you're learning to build a website, that's the easiest way to just press play and you have a website running, but it might not be necessarily where you would even host the machine learning model.

00:43:38.350 --> 00:43:44.380
Although it's kind of, I think they're all trying to break into that field as well, but like it's, I think it's very use case specific.

00:43:44.800 --> 00:43:44.980
Yeah.

00:43:45.250 --> 00:43:45.360
Yeah.

00:43:45.580 --> 00:43:46.020
There's a lot

00:43:46.020 --> 00:43:47.440
of ways to slice and dice this.

00:43:47.720 --> 00:43:47.900
Yeah.

00:43:48.150 --> 00:43:48.760
I think there's still,

00:43:49.319 --> 00:43:51.820
there's still developers coming up to terms with containers.

00:43:52.440 --> 00:43:55.700
And so they're not even in, you know, running containers in

00:43:55.700 --> 00:43:56.620
any environment.

00:43:56.620 --> 00:43:57.120
Yeah, like me.

00:43:57.780 --> 00:43:57.960
Yeah.

00:43:58.680 --> 00:43:58.800
Certainly

00:43:58.800 --> 00:44:01.980
in the Microsoft world, It's, you know,

00:44:02.240 --> 00:44:03.040
unless you're over.

00:44:03.040 --> 00:44:04.980
I mean, mentally, I'm coming to terms with, so.

00:44:06.140 --> 00:44:06.620
Without a doubt.

00:44:07.400 --> 00:44:18.500
The Microsoft World containers, because Windows containers are terrible, until you're at a place working in.NET where you're comfortable deploying onto a Linux instance, which, by the way, immediately saves you 20%, 25% on

00:44:18.500 --> 00:44:19.260
your cloud consumption,

00:44:19.440 --> 00:44:21.180
then containers work.

00:44:21.620 --> 00:44:24.300
And now you need to learn all of that as well.

00:44:24.420 --> 00:44:29.700
Although your AKS is your packaged container services make that a lot easier.

00:44:29.960 --> 00:44:31.360
So folks don't have to learn it.

00:44:31.370 --> 00:44:32.540
They just deploy into a service.

00:44:32.820 --> 00:44:37.680
Yeah, certainly in that space, a lot of people first have to learn Linux and then they can learn Docker

00:44:37.680 --> 00:44:38.940
or

00:44:38.940 --> 00:44:39.840
even VMs, right?

00:44:39.880 --> 00:44:41.140
It's a

00:44:41.140 --> 00:44:44.800
big lift for a lot of folks that are just like, I have a GUI for my web server.

00:44:45.420 --> 00:44:48.220
Is there a container section on this survey that people talk about that?

00:44:48.560 --> 00:44:49.040
Let's see.

00:44:49.290 --> 00:44:50.160
Although, no.

00:44:50.820 --> 00:44:51.000
I mean,

00:44:51.150 --> 00:44:52.200
just it falls

00:44:52.200 --> 00:44:54.040
into Docker isn't other tools.

00:44:54.560 --> 00:44:55.500
Yeah, it's another tool.

00:44:56.660 --> 00:44:57.020
Yeah, okay.

00:44:57.920 --> 00:45:01.740
So, yeah, I have all of my stuff running over at Petzner

00:45:01.740 --> 00:45:02.080
as well.

00:45:02.240 --> 00:45:03.660
I'm a massive fan of Petzner.

00:45:03.660 --> 00:45:03.980
This makes me sad.

00:45:04.180 --> 00:45:05.480
This is just a year ago.

00:45:05.600 --> 00:45:07.420
This is a year ago, but still.

00:45:08.160 --> 00:45:08.440
Still.

00:45:08.900 --> 00:45:09.000
Yeah.

00:45:09.560 --> 00:45:10.260
I don't even know why.

00:45:10.760 --> 00:45:11.280
I just can't.

00:45:11.760 --> 00:45:14.200
It's so spread out all over the place.

00:45:14.580 --> 00:45:14.900
Yeah.

00:45:16.360 --> 00:45:18.440
I believe there's like, I don't know.

00:45:18.760 --> 00:45:21.380
There's things like pip and NPM, but also Kubernetes.

00:45:21.700 --> 00:45:23.420
You know, like, I'm not really sure they're the same.

00:45:23.540 --> 00:45:23.860
Or a

00:45:23.860 --> 00:45:24.520
Visual Studio

00:45:24.520 --> 00:45:26.100
solution, which is the file format for

00:45:26.100 --> 00:45:27.200
an

00:45:27.200 --> 00:45:27.600
application.

00:45:27.780 --> 00:45:28.500
That's a

00:45:28.500 --> 00:45:29.240
tool?

00:45:32.339 --> 00:45:32.700
This

00:45:32.700 --> 00:45:34.320
is a grab bag of random words.

00:45:34.840 --> 00:45:34.980
Yeah,

00:45:35.110 --> 00:45:35.400
it is.

00:45:35.640 --> 00:45:36.500
We're just going to skip on.

00:45:36.920 --> 00:45:37.080
All right.

00:45:37.160 --> 00:45:40.220
We have just a little bit of time for the finale here.

00:45:40.220 --> 00:45:45.800
And I think I want to put the caveat out here as we talk about the AI section that, one, there's a lot of hype.

00:45:46.040 --> 00:45:47.140
It's all over the place.

00:45:47.470 --> 00:45:49.140
It can mean different things to different people.

00:45:49.660 --> 00:45:52.500
Also, as we talked about at the beginning, this is a year old.

00:45:53.000 --> 00:45:55.980
And a year in AI years is probably like 10 years.

00:45:59.440 --> 00:46:02.060
And I do worry about virtue signaling here too.

00:46:02.640 --> 00:46:03.900
Just like this is almost asking,

00:46:03.970 --> 00:46:04.800
do you recycle,

00:46:05.260 --> 00:46:05.340
right?

00:46:05.760 --> 00:46:05.940
Yeah.

00:46:07.180 --> 00:46:09.940
I break my glass in the backyard and just leave it there.

00:46:11.100 --> 00:46:17.400
I did grab the 2023 numbers as well just to compare these two because I didn't follow the instructions on badly behaved.

00:46:17.740 --> 00:46:18.440
Oh, no.

00:46:18.620 --> 00:46:19.240
That's good.

00:46:21.320 --> 00:46:23.540
So the key number there, that's 60%.

00:46:23.540 --> 00:46:24.960
And in 2023, it was 40%.

00:46:25.860 --> 00:46:26.000
Okay.

00:46:26.010 --> 00:46:27.180
In 2023, it's a good one.

00:46:27.200 --> 00:46:31.200
I mean, admittedly, GitHub Copilot at that point was already three years old.

00:46:31.420 --> 00:46:37.640
Like we tend to think from ChatGPT forward, but Copilot, GitHub Copilot came first, the original Copilot.

00:46:37.840 --> 00:46:38.480
Yeah, for sure.

00:46:38.540 --> 00:46:39.300
And it's been there,

00:46:39.440 --> 00:46:40.180
it feels like.

00:46:41.640 --> 00:46:46.420
I really want to focus on the sentiment and sort of how you all are using this as to kind of close this out.

00:46:47.000 --> 00:46:48.560
However, or not using it, which is fine.

00:46:49.120 --> 00:46:52.020
But I do want to just, there's a really interesting graph here.

00:46:52.120 --> 00:47:07.680
If you look at the Stack Overflow language trends, which show how many questions appear on Stack Overflow for that technology, Python has had this meteoric growth, almost hockey stick, not quite, but almost until

00:47:07.680 --> 00:47:09.100
2023,

00:47:10.440 --> 00:47:10.540
really.

00:47:10.710 --> 00:47:13.240
Like late, late 2022, right

00:47:13.240 --> 00:47:14.100
around November.

00:47:14.100 --> 00:47:16.720
Is this graph really just showing the demise of Stack Overflow?

00:47:16.980 --> 00:47:17.220
Yes.

00:47:17.300 --> 00:47:17.760
If

00:47:17.760 --> 00:47:18.160
you

00:47:18.160 --> 00:47:26.080
look at this graph, there's a massive drop of Python there, but there's also a massive drop of JavaScript and some others

00:47:26.080 --> 00:47:26.640
as well,

00:47:26.660 --> 00:47:27.920
but certainly the most popular ones.

00:47:28.060 --> 00:47:30.420
And that is basically when ChatGPT came out.

00:47:30.420 --> 00:47:34.440
And that is a really interesting developer trend on its own right there.

00:47:34.760 --> 00:47:40.140
But I do think to put this into perspective, also, are new questions on Stack Overflow a good thing?

00:47:40.380 --> 00:47:45.420
Like that's, I think that's another, you know, yes, it looks like, oh, but I mean, yeah,

00:47:45.600 --> 00:47:46.360
maybe the people who

00:47:46.360 --> 00:47:49.940
would have otherwise opened a question that was already answered like two years ago.

00:47:50.540 --> 00:47:54.680
Yeah, they found their answer on Stack Overflow, and that's great.

00:47:55.200 --> 00:47:58.980
Like, you know, we don't need the internet to be flooded with like a lot of redundant information.

00:47:59.100 --> 00:47:59.520
Like I know

00:47:59.520 --> 00:48:01.700
to Stack Overflow.

00:48:03.040 --> 00:48:07.900
You're hinting at the other aspect of it, which is getting progressively harder to add questions to Stack Overflow.

00:48:08.160 --> 00:48:08.340
Yeah.

00:48:09.020 --> 00:48:09.320
Question.

00:48:09.580 --> 00:48:10.240
I think you're right.

00:48:10.400 --> 00:48:11.240
I think you're right, Ines.

00:48:11.240 --> 00:48:13.160
I think it's people are just going elsewhere.

00:48:13.160 --> 00:48:14.380
And that's kind of what I was thinking there.

00:48:14.660 --> 00:48:15.140
The question

00:48:15.140 --> 00:48:22.240
that graph just there, was that questions asked for that thing or search terms for that

00:48:22.240 --> 00:48:22.720
thing?

00:48:22.720 --> 00:48:23.300
I believe.

00:48:23.700 --> 00:48:24.640
Because it's a huge difference.

00:48:26.120 --> 00:48:26.400
Over

00:48:26.400 --> 00:48:27.240
time based on that.

00:48:27.320 --> 00:48:27.580
I think

00:48:27.580 --> 00:48:28.000
it's question

00:48:28.000 --> 00:48:28.400
asked.

00:48:28.520 --> 00:48:28.620
Yeah.

00:48:28.900 --> 00:48:30.260
Or maybe answers as well.

00:48:30.320 --> 00:48:31.860
But it's not search terms.

00:48:32.160 --> 00:48:33.440
It's content,

00:48:33.600 --> 00:48:34.560
I believe, on there.

00:48:34.840 --> 00:48:35.800
I just wanted to make sure.

00:48:35.960 --> 00:48:36.080
Okay.

00:48:36.440 --> 00:48:42.620
And just in case people are worried that maybe it's crashing or something, you can look at the T-O-B.

00:48:44.400 --> 00:48:45.560
I can't index.

00:48:46.220 --> 00:48:46.720
I can't type.

00:48:46.780 --> 00:48:48.140
And I know I spelled that, but you know what?

00:48:48.200 --> 00:48:49.040
We're going to get that fixed.

00:48:49.120 --> 00:48:49.500
There we go.

00:48:53.500 --> 00:48:54.000
I don't know.

00:48:54.120 --> 00:48:59.120
I just, I don't even, I mean, if you look at Python, it's still year over year up

00:48:59.120 --> 00:49:01.260
6%, which

00:49:01.260 --> 00:49:02.660
is not just faster.

00:49:03.060 --> 00:49:03.780
It's like six.

00:49:04.240 --> 00:49:04.920
It's a blowout.

00:49:04.920 --> 00:49:05.760
Three to six times faster.

00:49:05.860 --> 00:49:06.380
It is a below

00:49:06.380 --> 00:49:07.600
out level of growth.

00:49:08.010 --> 00:49:08.800
And so you're seeing.

00:49:08.830 --> 00:49:09.080
It's all

00:49:09.080 --> 00:49:09.760
new dev.

00:49:10.040 --> 00:49:12.280
That's people coming in using

00:49:12.280 --> 00:49:12.440
a

00:49:12.440 --> 00:49:14.200
chat tool to learn programming.

00:49:14.480 --> 00:49:15.440
And it's really

00:49:15.440 --> 00:49:15.660
good

00:49:15.660 --> 00:49:16.160
at Python.

00:49:16.560 --> 00:49:16.620
Like

00:49:16.620 --> 00:49:17.820
if you want to navigate.

00:49:18.460 --> 00:49:18.540
Yeah.

00:49:18.700 --> 00:49:21.840
It's VS Code with the free copilot.

00:49:22.440 --> 00:49:23.100
Teach me Python.

00:49:23.520 --> 00:49:24.260
You're going to have a good experience.

00:49:24.860 --> 00:49:24.980
Yeah.

00:49:25.640 --> 00:49:25.840
All right.

00:49:26.400 --> 00:49:32.520
With that out of the way, what's your sentiment personally for AI?

00:49:32.690 --> 00:49:33.820
And maybe how do you

00:49:33.820 --> 00:49:34.220
see people?

00:49:34.620 --> 00:49:35.700
I love the 20% of that.

00:49:35.840 --> 00:49:38.280
no and I don't plan to. I bet you they all skew older.

00:49:40.820 --> 00:49:41.460
That's probably true.

00:49:42.900 --> 00:49:47.120
Ines, you live in

00:49:47.120 --> 00:49:47.640
the ML space.

00:49:47.860 --> 00:49:51.160
You're kind of AI before AI, like legitimately.

00:49:52.080 --> 00:49:52.420
Yeah,

00:49:52.420 --> 00:49:53.760
I guess. I don't know

00:49:53.760 --> 00:49:53.880
what that is.

00:49:53.880 --> 00:49:54.600
You mean generative

00:49:54.600 --> 00:49:55.740
chat tools?

00:49:55.800 --> 00:49:56.740
Let's say LLM. Yeah,

00:49:56.820 --> 00:49:57.680
let's say LLMs.

00:49:58.940 --> 00:50:02.720
Well, like LLMs that generate text for a human to read.

00:50:02.860 --> 00:50:03.860
Because you can also use LLMs.

00:50:03.680 --> 00:50:04.900
Because the question is, what tools

00:50:04.900 --> 00:50:14.260
do you use as part of your development process, not as part of your API or for your app to run it, but what do you use to write code, basically? Let's go with that.

00:50:14.520 --> 00:50:28.740
Yeah, so I don't actually, I don't use many models a lot to like actually help me write code because I think the stuff I do is like quite specialized and specific or often, you know, it's like very specific things in like the libraries we're building, for example.

00:50:29.020 --> 00:50:37.300
But I do think to explain code to you or for workflows like infrastructure and stuff, that's where it's like really helpful.

00:50:37.540 --> 00:50:44.400
Also, I know my co-founder, for example, he's also he's done a bunch of quite complex infrastructure stuff, like setting things up with Terraform.

00:50:44.600 --> 00:50:49.100
And they're really having a model summarize and explain it to you.

00:50:49.880 --> 00:50:50.720
That is very helpful.

00:50:52.000 --> 00:50:52.680
Yeah, yeah.

00:50:53.180 --> 00:50:56.260
I've done things like explain this Docker Compose file to me.

00:50:56.440 --> 00:50:57.280
What does this line mean?

00:50:57.370 --> 00:50:58.360
I don't understand this.

00:50:59.080 --> 00:51:12.640
does it mean if it fails it'll restart or if i should have done restart i just what does this do you know and it really is quite good at that uh interesting yeah so not so much you're not vibing let's let's put you as the non-vibing yeah yeah

00:51:12.640 --> 00:51:48.040
but i found out that actually because we've always i think i might have mentioned this before in another context but like we've always put a lot of in the libraries we write a lot of work into all this backwards compatibility stuff making sure we don't break users code and this actually had a very positive side effect which is that um these models are really good at writing for example spaCy code and it's never something we planned we were just like oh we just want to do all the boring stuff right and make our users happy but um yeah this really paid off like i've heard the mod these models co-pilot chat 3pt are really good at writing code for our libraries

00:51:48.040 --> 00:51:50.760
and you were attributing that's a good documentation right

00:51:51.040 --> 00:51:52.760
And we always put a lot of work into our documentation.

00:51:52.880 --> 00:51:52.980
I

00:51:52.980 --> 00:51:54.100
think that may

00:51:54.100 --> 00:51:56.920
have added to that as well.

00:51:57.240 --> 00:51:58.320
Yeah, yeah, absolutely.

00:51:59.000 --> 00:51:59.420
Dina, what do you think?

00:51:59.500 --> 00:52:02.020
I know you're not a super...

00:52:02.260 --> 00:52:02.560
No.

00:52:02.840 --> 00:52:04.100
You're not an AI accelerist,

00:52:04.280 --> 00:52:04.600
let's say.

00:52:05.220 --> 00:52:08.240
Let's say I consider myself an AI skeptical.

00:52:10.220 --> 00:52:10.320
So

00:52:10.320 --> 00:52:11.300
the thing with

00:52:11.300 --> 00:52:21.040
me is when Copilot came out as a GitHub star, I had a very early access to it and then I started using it And I allowed it to autocomplete a lot of my lines.

00:52:21.400 --> 00:52:26.980
I found it an amazing help in translating my stuff because I write everything in octoprint in English first.

00:52:27.120 --> 00:52:29.920
And then the whole UI needs to be translated to German on every release.

00:52:30.920 --> 00:52:32.880
And doing that by hand is a lot of work.

00:52:33.180 --> 00:52:36.480
And having the I make suggestions is really nice in that case.

00:52:37.940 --> 00:52:42.420
And then I started to get shoved into my face from every place all around me.

00:52:42.560 --> 00:52:46.300
And I read up on the energy consumption of that stuff and the water consumption of that stuff.

00:52:46.360 --> 00:52:50.680
and that they were thinking about firing up additional power thingies again just for

00:52:50.680 --> 00:52:51.140
that stuff.

00:52:51.210 --> 00:52:54.140
And that was when I decided, okay, I'm not going to use this anymore.

00:52:54.480 --> 00:52:55.660
I'm refusing to use this.

00:52:56.020 --> 00:53:09.240
And I have disabled Copilot and try to not touch anything AI if I can, simply because I don't like how it is getting pushed into everyone's throat these days, down everyone's throat these days.

00:53:09.480 --> 00:53:13.300
I actually do have a free account on ChatGPT.

00:53:13.820 --> 00:53:19.920
I sometimes have the problem that I forget words in English or in German that I can still remember how to describe.

00:53:20.180 --> 00:53:24.240
And then when I do not have anyone I can describe that to, I can describe it to a ChatGPT.

00:53:24.340 --> 00:53:29.020
And then it tells me, oh, you did mean, I don't know, interface or something like that.

00:53:29.020 --> 00:53:30.420
And then I'm like, yay, exactly.

00:53:30.820 --> 00:53:31.460
And I'm happy.

00:53:31.640 --> 00:53:37.660
But other than that, I don't touch that with a 10-foot pole anymore because simply it's just too much.

00:53:37.820 --> 00:53:39.440
I don't like hypes at all.

00:53:39.660 --> 00:53:42.420
But what do you mean it's generative models?

00:53:43.060 --> 00:53:44.120
Yeah, sorry, sorry.

00:53:45.980 --> 00:53:47.920
No, no, you are completely right

00:53:48.060 --> 00:53:52.480
because I get this little shock every time that I am also into game development.

00:53:52.620 --> 00:54:02.040
And now every time that I read or watch a video about how to build some kind of AI for a game, my initial reaction is always AI.

00:54:02.340 --> 00:54:04.260
And then I realize, no, stop, that's the good type.

00:54:04.500 --> 00:54:08.760
That's the thing that makes the characters, the NPCs walk around and such and

00:54:08.760 --> 00:54:10.500
pathfinding and whatever,

00:54:10.860 --> 00:54:10.960
right?

00:54:11.500 --> 00:54:13.040
But yeah, I'm totally with you.

00:54:13.260 --> 00:54:14.940
I just suffer from the same problem at first.

00:54:15.240 --> 00:54:15.440
Yeah.

00:54:16.760 --> 00:54:18.080
You're a very principled person.

00:54:18.100 --> 00:54:19.220
I definitely admire that about you.

00:54:19.720 --> 00:54:20.160
It's tough.

00:54:20.420 --> 00:54:23.460
I think I do hate having AI jammed into everywhere.

00:54:23.900 --> 00:54:27.760
Like my email client can rewrite stuff with the AI.

00:54:28.480 --> 00:54:30.480
It almost never comes out the way I want.

00:54:30.500 --> 00:54:30.820
And when I

00:54:30.820 --> 00:54:32.360
do, all the formatting is lost.

00:54:32.480 --> 00:54:32.780
I'm like,

00:54:32.780 --> 00:54:32.940
hey.

00:54:33.180 --> 00:54:33.620
It's the worst.

00:54:33.840 --> 00:54:34.380
Yes, I know.

00:54:34.480 --> 00:54:37.360
Do you get comments like that where I'm like, I know exactly.

00:54:37.560 --> 00:54:44.620
Like, why do you want to encourage people to write these shitty, comments on posts that add absolutely nothing and essentially

00:54:44.620 --> 00:54:45.120
spam.

00:54:45.900 --> 00:54:50.740
And that you then need another chat thingy to parse again in order

00:54:50.740 --> 00:54:52.060
to summarize them

00:54:52.060 --> 00:54:52.420
for that.

00:54:52.580 --> 00:54:54.680
That's like completely like, why?

00:54:55.140 --> 00:54:55.520
I know it.

00:54:55.720 --> 00:54:55.840
All right.

00:54:56.340 --> 00:54:57.580
Well, you don't have a time to love.

00:54:57.580 --> 00:54:58.680
I got to keep moving along here.

00:54:59.080 --> 00:54:59.340
All right.

00:54:59.740 --> 00:55:01.440
Richard, where are you on this?

00:55:01.980 --> 00:55:02.600
Well, look,

00:55:03.160 --> 00:55:09.660
you know, I'm talking to a lot of PMs and things who are saying my team is 25, 30% more productive using these tools.

00:55:10.080 --> 00:55:14.640
And they can see just more check-ins of more code with fewer

00:55:14.640 --> 00:55:15.600
remediations.

00:55:16.280 --> 00:55:24.160
What we saw in the first six months of the team using it is more reverts because they were over-committing with the code they didn't fully understand.

00:55:24.780 --> 00:55:26.160
But over time, they got better at it.

00:55:26.240 --> 00:55:30.600
And when they actually got to the PR and merge, the code stuck.

00:55:30.980 --> 00:55:39.780
So there was a lot of fewer problems net to the point now where it's like, I kind of can't hire anybody if they're not using these tools because it's like they're not using an editor.

00:55:39.860 --> 00:55:44.360
the productivity level is substantial if they're in the workflow and i

00:55:44.360 --> 00:55:45.020
and i noticed going

00:55:45.020 --> 00:56:01.260
further down the list of data here like yeah that ai the ai and the development workflow if they're using it for writing code right that's what it's doing it's code completion and it's you know describe the problem and it gives you a first gen and you can iterate a couple of times on it but this is also a year ago like the ability

00:56:01.260 --> 00:56:02.300
to write

00:56:02.300 --> 00:56:07.720
uh pr explanations and things was only just emerging when this survey was being done.

00:56:08.110 --> 00:56:12.380
Today, I notice everybody's PR explanations are wildly better

00:56:13.000 --> 00:56:14.720
because they didn't write them, the tool

00:56:14.720 --> 00:56:15.060
did.

00:56:15.360 --> 00:56:16.100
Yeah, I've seen that.

00:56:17.100 --> 00:56:18.180
And also maybe as a

00:56:18.180 --> 00:56:29.080
bit of a positive outlook, like I do think we're already seeing that it's possible to use local models and use much smaller models, you know, that you can actually run on your laptop

00:56:29.740 --> 00:56:30.620
and with

00:56:30.620 --> 00:56:32.300
the device constraints that you have.

00:56:32.390 --> 00:56:34.760
And it's like, it is a subset of things.

00:56:34.880 --> 00:56:44.800
I think I was just reading something today about also Visual Studio Code supporting more local models and adding more features for that.

00:56:44.900 --> 00:56:45.380
So I think,

00:56:45.460 --> 00:56:47.220
because it's such a specific thing.

00:56:47.240 --> 00:56:48.840
I feel like we're starting to write size now.

00:56:49.140 --> 00:56:49.440
That it's

00:56:49.440 --> 00:56:50.060
for, you

00:56:50.060 --> 00:56:53.820
know, the initial iterations of these products, we're throwing as much meat at them as possible as

00:56:53.820 --> 00:56:54.400
they weren't sure they were

00:56:54.400 --> 00:56:54.800
going to work.

00:56:55.100 --> 00:56:59.680
And now it's like, hey, too much is also a problem because it goes off on weird wandering.

00:57:00.080 --> 00:57:01.840
And we've been able to narrow size the models.

00:57:02.120 --> 00:57:07.280
Companies can have their own internal fine-tuned models as well, like something really small.

00:57:07.800 --> 00:57:13.480
Okay, that model just writes PR descriptions for our team that works in this field with Python.

00:57:13.720 --> 00:57:14.420
And then it's small.

00:57:14.780 --> 00:57:15.640
Everyone runs it locally.

00:57:15.860 --> 00:57:16.580
It's data private.

00:57:16.940 --> 00:57:22.280
You don't need to send your shit to GitHub, to Microsoft, to OpenAI.

00:57:22.880 --> 00:57:25.980
It's like it all stays internal and you have control over it.

00:57:25.980 --> 00:57:31.140
And I do think that would be a good compromise and solve a lot of the problems.

00:57:31.380 --> 00:57:37.180
But of course, it's something that there are a lot of companies out there, especially very large companies that do not like this kind of vision.

00:57:37.660 --> 00:57:55.300
And that's also why I'm so passionate about not calling everything AI, because ultimately, you know, it really just benefits big tech who, you know, likes having us call chat, us for chatbots and open source software into the same bucket and regulate it exactly the same way.

00:57:55.680 --> 00:57:55.840
Yeah.

00:57:56.020 --> 00:58:08.380
And this is the problem with the hype cycle is as you go, you know, following Gartner's pattern into the trough of disillusionment, you do end up with dumb regulations to respond to social concerns rather than thoughtful.

00:58:09.260 --> 00:58:09.600
Here

00:58:09.600 --> 00:58:11.840
are the different problems and how we can scope them more.

00:58:11.900 --> 00:58:15.720
And lobbied by companies like, you know, OpenAI, for

00:58:15.720 --> 00:58:16.140
example.

00:58:16.460 --> 00:58:16.580
Yeah.

00:58:17.240 --> 00:58:19.600
The incumbents want to lock in their advantage.

00:58:20.260 --> 00:58:24.440
Where's our regulatory capture, please? We need to work that in to the various places. Yeah.

00:58:25.020 --> 00:58:25.580
All right, Calvin.

00:58:26.180 --> 00:58:34.200
Well, for folks who know me, they probably know that I'm an eternal optimist, and I'm definitely very excited about the AI developer tools.

00:58:34.640 --> 00:58:39.900
I'm actually giving a talk on it like next week at IndiePie about this because there's so many good options out there.

00:58:40.560 --> 00:58:46.020
Now, that said, I feel like these tools definitely benefit the senior coders more than they do the junior coders.

00:58:46.140 --> 00:58:54.300
Like I feel like this whole, every time I hear the word vibe coding, I shudder kind of like Gina does around anything that says AI.

00:58:55.280 --> 00:59:02.240
So I think there's a great potential for a lot of tech that to be produced very, very quickly with those kinds of tools.

00:59:02.400 --> 00:59:07.820
And I feel like under poor guidance or poor mentorship, there's a lot of damage that could be done.

00:59:08.200 --> 00:59:09.920
But the upside is so good.

00:59:10.660 --> 00:59:22.900
Kind of like Richard, like we're probably only going to hire somebody who is basically augmenting their personal skills with a set of tools behind them that make them perform at a higher level just in general.

00:59:23.240 --> 00:59:24.680
There's so much upside to it.

00:59:24.680 --> 00:59:25.940
And I do love the local tools.

00:59:26.020 --> 00:59:30.320
Like I run Mistral Small and Llama 3.3, all that stuff locally.

00:59:30.900 --> 00:59:34.840
And so nothing's going off my laptop to interoperate with a lot of my tooling.

00:59:35.400 --> 00:59:37.100
There's so many good open source options, too.

00:59:37.440 --> 00:59:50.620
I know a lot of people are excited about like Claude Code and Copilot, but the Ader chats, the Goose clients, those things are really incredible and they're open source.

00:59:50.770 --> 00:59:51.460
They all run local.

00:59:54.380 --> 00:59:57.400
I want to jump on the terminology bandwagon.

00:59:57.800 --> 01:00:02.100
They're agentic, another terrible abused word that everyone's using.

01:00:02.480 --> 01:00:10.840
But the tools like Goose and Ader will run commands locally on your machine as a proxy to figure out things.

01:00:11.010 --> 01:00:16.360
And I love that capability that is now doing the introspection, exploration, understanding.

01:00:17.240 --> 01:00:19.860
It's really a great usage of the reasoning models.

01:00:20.010 --> 01:00:24.640
And being able to use multiple models simultaneously against a code base is really, really powerful.

01:00:24.790 --> 01:00:26.380
And I don't think a lot of developers see that.

01:00:26.380 --> 01:00:31.920
I think a lot of people just jump into like a ChatGPT or a quad and try and just brute force their way to a solution.

01:00:32.120 --> 01:00:33.240
and I don't think that's the right approach.

01:00:33.590 --> 01:00:42.980
I would love to see more folks take a measured approach to this and really make it small incremental improvements, and you get a lot of win there.

01:00:43.220 --> 01:00:44.740
Is that the topic of your talk?

01:00:44.810 --> 01:00:46.600
Are you going to talk about that?

01:00:47.180 --> 01:00:47.780
I'm going

01:00:47.780 --> 01:00:52.720
to take five of the current developer tools like that and compare them.

01:00:53.020 --> 01:00:54.020
I'm going to basically take a...

01:00:54.020 --> 01:00:54.820
Oh, that's cool.

01:00:55.010 --> 01:00:55.680
You need to send

01:00:55.680 --> 01:00:56.840
me the slides.

01:00:57.100 --> 01:01:08.820
I really want to check it out because I recently just had a conversation with like a journalist who wanted to know about these things and brought down some of the thoughts and it was it actually really mirrored um what you all have been saying so

01:01:08.820 --> 01:01:09.620
yeah um

01:01:09.620 --> 01:01:11.600
yeah i want to look deeper into this yeah

01:01:11.600 --> 01:01:13.980
because some of them have superpowers that are different than the others

01:01:14.130 --> 01:01:14.760
and i don't think

01:01:14.760 --> 01:01:57.380
folks understand that either like uh for example the goose no goose goose is very get aware no i'm sorry take that back ader chat because even in my brain they don't say straight. Ader chat is very Git aware and it uses it as its undo function and it's very deeply the prompting that they put into it understands Git really, really well, which means it can quickly discern what's going on in a code base because it basically does a mapping of your repository structure and then uses that to know when to pull stuff in. Again, I'm super positive and pro on this stuff and the fact that Ader can use local models mixed in with anything else you want to pull in there, it's really flexible. You're not tied to some AWS or Google or OpenAI or Anthropoc.

01:01:57.560 --> 01:01:58.500
I'm also interested in this.

01:01:58.530 --> 01:02:00.140
Are you going to be recording that talk or streaming?

01:02:00.220 --> 01:02:00.500
Oh, yeah, yeah.

01:02:00.640 --> 01:02:02.400
It'll be recorded and it'll be streamed.

01:02:02.710 --> 01:02:03.260
We'll have it online.

01:02:03.450 --> 01:02:03.880
So I

01:02:03.880 --> 01:02:06.020
can go back to YouTube and watch it there like

01:02:06.020 --> 01:02:06.880
I do not have to.

01:02:07.060 --> 01:02:09.480
Or you all can join and ask great questions.

01:02:09.760 --> 01:02:09.880
Awesome,

01:02:10.060 --> 01:02:10.220
okay.

01:02:10.650 --> 01:02:10.740
Yeah,

01:02:10.850 --> 01:02:10.940
yeah.

01:02:11.220 --> 01:02:12.220
No, it does sound super interesting.

01:02:12.240 --> 01:02:18.000
IndiePy.org, a little plug for, I'm a co-organizer, co-founder of IndiePy, the local Python group here too.

01:02:18.240 --> 01:02:19.080
In Indianapolis?

01:02:19.700 --> 01:02:19.940
Yeah.

01:02:20.060 --> 01:02:21.020
In Indiana, yep.

01:02:22.320 --> 01:02:27.040
I would say, well, for me, I've definitely gone on a journey through all of this stuff.

01:02:27.130 --> 01:02:33.520
When I first saw it, I still to this day feel like LM's probably border on copyright theft.

01:02:34.000 --> 01:02:36.780
So I'm a little displeased with them.

01:02:36.880 --> 01:02:38.020
Well, maybe a lot displeased.

01:02:38.090 --> 01:02:41.020
But at the same time, that horse is out of the barn.

01:02:41.180 --> 01:02:41.760
It's not coming home.

01:02:41.940 --> 01:02:42.440
It's gone.

01:02:42.960 --> 01:02:45.540
And so then you got to say, well, now what are we going to do?

01:02:46.440 --> 01:02:51.100
Am I going to just pretend this doesn't exist because I'm a little bit put off by that?

01:02:51.680 --> 01:02:57.220
when everyone else is using it to create libraries, tools, applications, content, et cetera.

01:02:57.620 --> 01:02:59.040
That's not that reasonable either, right?

01:02:59.040 --> 01:03:01.760
You kind of, to Richard's comment about the productivity, right?

01:03:01.990 --> 01:03:02.140
You

01:03:02.140 --> 01:03:02.940
got to be practical.

01:03:03.090 --> 01:03:10.220
And I would also found them to be fairly, like, mind-blowingly cool, but somewhat inaccurate.

01:03:10.620 --> 01:03:13.480
But that's kind of like a 2023, 2024 version.

01:03:13.840 --> 01:03:14.200
Now,

01:03:14.420 --> 01:03:17.380
if you get to the higher level models, they are so good.

01:03:17.680 --> 01:03:31.280
They are so powerful and so effective that it's, if you stopped messing with them a year ago, because you don't want to, because they're not really that accurate, I would encourage people to look at it again and maybe look at Calvin's talk.

01:03:31.590 --> 01:03:38.300
And then Gina, for your concerns, I also share those, although I definitely have a ChatGPT subscription these days.

01:03:38.900 --> 01:03:42.960
Check out stuff like LM Studio and other ways of running it local, right?

01:03:43.080 --> 01:03:45.880
Like you can avoid a lot of the melting the power grid.

01:03:46.360 --> 01:03:48.680
I mean, then I'm paying for the energy cost.

01:03:48.840 --> 01:03:49.620
That's also a problem.

01:03:50.560 --> 01:03:52.320
Yeah, but it's not that.

01:03:52.520 --> 01:03:53.120
It's not.

01:03:53.280 --> 01:03:56.980
You can run lower models that take not that much time.

01:03:57.200 --> 01:03:57.540
You're right.

01:03:57.680 --> 01:03:57.780
I

01:03:57.780 --> 01:04:00.000
mean, the energy cost is trading.

01:04:01.100 --> 01:04:02.000
It's so efficient.

01:04:02.360 --> 01:04:04.580
I mean, efficient, relatively, to everything else out there.

01:04:04.640 --> 01:04:05.140
It's so efficient.

01:04:05.440 --> 01:04:05.540
Yeah.

01:04:05.920 --> 01:04:07.740
And we haven't gotten to optimized yet,

01:04:07.920 --> 01:04:08.020
right?

01:04:08.380 --> 01:04:09.340
No, yeah, you're right.

01:04:09.420 --> 01:04:09.920
The MPU is still in

01:04:09.920 --> 01:04:10.460
its infancy.

01:04:10.880 --> 01:04:16.800
Yeah, this is, in five years, this is going to be, But local models, especially, I think, are going to be really much more capable.

01:04:17.480 --> 01:04:18.940
We saw DeepSea already.

01:04:18.960 --> 01:04:20.160
And this is driving innovation

01:04:20.160 --> 01:04:21.780
around abundance.

01:04:22.300 --> 01:04:26.860
I think we're going to have new solutions to these energy problems, new solutions to the cooling problems.

01:04:27.020 --> 01:04:29.240
Like, we can't continue, obviously, down this route.

01:04:29.320 --> 01:04:30.960
I do share Gina's concern.

01:04:31.420 --> 01:04:35.980
But, again, I think I come at it with a very optimistic, maybe overly optimistic view.

01:04:36.800 --> 01:04:37.800
Maybe I wish I was a little more

01:04:37.800 --> 01:04:39.860
realistic

01:04:39.860 --> 01:04:40.300
about

01:04:40.300 --> 01:04:40.460
it.

01:04:41.060 --> 01:04:42.080
I think Gina is right.

01:04:42.280 --> 01:04:44.160
that there is a problem that has to be addressed.

01:04:44.810 --> 01:04:46.620
Yeah, but also we are coming out of this hype.

01:04:48.560 --> 01:04:54.420
I don't know what the Gartner cycle is calling it again, but I call it the post-hype hangover sort of

01:04:54.420 --> 01:04:55.000
way in that

01:04:55.000 --> 01:04:56.080
phase.

01:04:56.380 --> 01:04:56.460
And

01:04:56.460 --> 01:04:56.860
I think

01:04:56.860 --> 01:04:58.900
then there's going to be a more reasonable mindset.

01:04:59.600 --> 01:05:10.160
I've always been advocating for smaller models, more task-specific models, using these large generative models to create systems rather than as systems.

01:05:10.440 --> 01:05:13.380
Like using them as systems, that's kind of 2023.

01:05:14.340 --> 01:05:17.440
Like what we're doing now is using them

01:05:17.440 --> 01:05:18.400
to help

01:05:18.400 --> 01:05:24.100
us write code, but also using them to create data for smaller models, which is totally possible.

01:05:24.280 --> 01:05:25.500
And that's not old NLP.

01:05:25.800 --> 01:05:27.200
That's just, yeah, next level.

01:05:27.720 --> 01:05:27.860
Maybe

01:05:27.860 --> 01:05:32.660
to not only say something negative about that, also maybe something positive on my side about that stuff.

01:05:32.760 --> 01:05:34.160
So I find it very interesting.

01:05:34.500 --> 01:05:39.900
And I think there are some great tools or going to be some great tools that are utilizing this technology.

01:05:40.380 --> 01:05:48.580
But only if the person using it is actually able to determine whether that stuff it is outputting is actually good.

01:05:48.960 --> 01:05:49.060
Yeah.

01:05:49.320 --> 01:05:55.940
Only if it is, it doesn't necessarily have to run locally, at least not for me, because I am developing open source anyhow.

01:05:56.060 --> 01:05:58.600
So everything I do is going to be out in the open anyhow.

01:05:59.160 --> 01:06:03.280
But yeah, some privacy aspects are also something that are to be considered.

01:06:03.420 --> 01:06:04.400
So local would be nice.

01:06:05.080 --> 01:06:06.300
Lower energy costs.

01:06:06.780 --> 01:06:12.360
And please allow me to disable this stuff when I don't want to use it.

01:06:12.800 --> 01:06:27.320
Because I don't want to have every single tool start waving at me all the time going, hey, by the way, you can also now use my chatbot interface when I'm like, no, I'm just happy if you list my files here, dear file listener.

01:06:27.620 --> 01:06:28.360
And if I list

01:06:28.360 --> 01:06:28.480
that,

01:06:29.040 --> 01:06:41.680
something like that, you know, the other day I was looking for a new terminal and found stuff that was also trying to tell me that it has AI in it, whatever they meant with that.

01:06:41.860 --> 01:06:44.540
But I don't need a chatbot interface when I'm trying to write bash.

01:06:44.740 --> 01:06:45.820
So thank you very much.

01:06:46.960 --> 01:06:47.640
So give

01:06:47.640 --> 01:07:09.100
me an off switch, allow me to run this stuff locally and yeah, don't shove it down my throat and also don't try to plaster it all over the place as the solution for every single problem, especially for people who don't fully understand the problem space yet because then we also get like in the open source situation, we also get a lot of issues now generated with

01:07:09.100 --> 01:07:11.460
AI, security tickets generated

01:07:11.460 --> 01:07:20.320
by AI, like suggestions from people to help other people generated by AI that are completely wrong and are causing more problems than anything.

01:07:20.680 --> 01:07:24.920
So if all of this stuff stops, then yes, then I will take another look.

01:07:25.240 --> 01:07:27.880
But until then, I'm just fed up up

01:07:27.880 --> 01:07:29.680
to here with that and I can't stand

01:07:29.680 --> 01:07:30.100
it anymore.

01:07:30.940 --> 01:07:31.060
Yeah.

01:07:31.260 --> 01:07:36.840
No, I agree. I mean, I work and I work very closely in the space and I absolutely agree with your points.

01:07:36.970 --> 01:07:37.060
Yeah.

01:07:37.400 --> 01:07:42.980
Yeah. All right, everyone. I think we're just getting started. We could go for a very long time, but we also are out of time.

01:07:44.020 --> 01:07:47.800
Ines, Gina, Richard, Calvin, thank you all for being here. It's been a lot of fun.

01:07:48.140 --> 01:07:48.760
Thank you.

01:07:49.220 --> 01:07:49.300
Thanks,

01:07:49.380 --> 01:07:49.540
Michael.

01:07:50.000 --> 01:07:50.120
Bye.

01:07:51.540 --> 01:07:54.020
This has been another episode of Talk Python To Me.

01:07:54.940 --> 01:07:58.900
Thank you to our sponsors. Be sure to check out what they're offering. It really helps support the show.

01:07:59.400 --> 01:08:01.580
This episode is brought to you by NordLayer.

01:08:01.900 --> 01:08:05.860
NordLayer is a toggle-ready network security platform built for modern businesses.

01:08:06.240 --> 01:08:10.520
It combines VPN, access control, and threat protection in one easy-use platform.

01:08:10.980 --> 01:08:16.400
Visit talkpython.fm/nordlayer and remember to use the code talkpython-10.

01:08:16.880 --> 01:08:18.920
And it's brought to you by Auth0.

01:08:19.620 --> 01:08:23.880
Auth0 is an easy-to-implement, adaptable authentication and authorization platform.

01:08:24.580 --> 01:08:31.020
Think easy user logins, social sign-on, multi-factor authentication, and robust role-based access control.

01:08:31.580 --> 01:08:36.339
With over 30 SDKs and quick starts, Auth0 scales with your product at every stage.

01:08:37.020 --> 01:08:42.560
Get 25,000 monthly active users for free at talkpython.fm/auth0.

01:08:43.279 --> 01:08:44.160
Want to level up your Python?

01:08:44.589 --> 01:08:48.259
We have one of the largest catalogs of Python video courses over at Talk Python.

01:08:48.740 --> 01:08:53.420
Our content ranges from true beginners to deeply advanced topics like memory and async.

01:08:53.799 --> 01:08:56.040
And best of all, there's not a subscription in sight.

01:08:56.450 --> 01:08:58.960
Check it out for yourself at training.talkpython.fm.

01:08:59.680 --> 01:09:03.839
Be sure to subscribe to the show, open your favorite podcast app, and search for Python.

01:09:04.270 --> 01:09:05.160
We should be right at the top.

01:09:05.680 --> 01:09:14.540
You can also find the iTunes feed at /itunes, the Google Play feed at /play, and the direct RSS feed at /rss on talkpython.fm.

01:09:15.200 --> 01:09:17.440
We're live streaming most of our recordings these days.

01:09:17.839 --> 01:09:25.279
If you want to be part of the show and have your comments featured on the air, Be sure to subscribe to our YouTube channel at talkpython.fm/youtube.

01:09:26.279 --> 01:09:27.400
This is your host, Michael Kennedy.

01:09:27.839 --> 01:09:28.680
Thanks so much for listening.

01:09:28.850 --> 01:09:29.819
I really appreciate it.

01:09:30.180 --> 01:09:31.779
Now get out there and write some Python code.