00:00:01,060 --> 00:00:02,009
I was running three
2
00:00:02,009 --> 00:00:03,580
different Java binaries
3
00:00:03,630 --> 00:00:04,510
of Microsoft Build
4
00:00:04,510 --> 00:00:05,380
of OpenJDK, one for
5
00:00:05,380 --> 00:00:06,130
Windows, one for
6
00:00:06,170 --> 00:00:07,010
Apple Silicon, and
7
00:00:07,010 --> 00:00:07,930
one for Mac Intel.
8
00:00:08,020 --> 00:00:09,070
You know, just to show
9
00:00:09,100 --> 00:00:10,479
that we want every
10
00:00:10,479 --> 00:00:11,670
developer, no matter
11
00:00:11,670 --> 00:00:13,030
where they are, to be
12
00:00:13,030 --> 00:00:14,180
able to take advantage
13
00:00:14,180 --> 00:00:14,819
of all the technology
14
00:00:14,870 --> 00:00:15,439
that we produce.
15
00:00:15,540 --> 00:00:16,889
I actually compiled an
16
00:00:16,889 --> 00:00:18,130
embedded Linux kernel
17
00:00:18,309 --> 00:00:20,080
in WSL2, wrote it right
18
00:00:20,080 --> 00:00:21,340
to our embedded system.
19
00:00:21,360 --> 00:00:22,410
Embedded Linux built
20
00:00:22,430 --> 00:00:23,120
inside of Docker,
21
00:00:23,120 --> 00:00:24,759
inside of WSL2, inside
22
00:00:24,760 --> 00:00:25,610
of Windows, which
23
00:00:25,610 --> 00:00:27,430
was kind of freaky.
24
00:00:27,445 --> 00:00:28,975
But also pretty cool.
25
00:00:30,415 --> 00:00:31,435
We humans are like that.
26
00:00:31,445 --> 00:00:32,865
We tend to search for
27
00:00:32,915 --> 00:00:33,965
things when we have
28
00:00:33,965 --> 00:00:35,005
a problem to solve.
29
00:00:35,155 --> 00:00:37,215
We tend to learn when we
30
00:00:37,215 --> 00:00:38,565
have the need to learn.
31
00:00:38,735 --> 00:00:39,414
If we can learn
32
00:00:39,414 --> 00:00:41,825
faster and AI and LLMs
33
00:00:41,874 --> 00:00:43,084
allow us to do that,
34
00:00:43,124 --> 00:00:43,775
then we definitely
35
00:00:43,775 --> 00:00:44,865
should leverage that.
36
00:00:47,014 --> 00:00:47,764
You're listening to
37
00:00:47,764 --> 00:00:48,624
Simplyblock's Cloud
38
00:00:48,624 --> 00:00:49,585
Commute Podcast,
39
00:00:49,714 --> 00:00:50,614
your weekly 20
40
00:00:50,615 --> 00:00:51,684
minute podcast about
41
00:00:51,684 --> 00:00:52,635
cloud technologies,
42
00:00:52,695 --> 00:00:54,175
Kubernetes, security,
43
00:00:54,175 --> 00:00:54,975
sustainability,
44
00:00:54,975 --> 00:00:55,394
and more.
45
00:00:57,595 --> 00:00:58,205
Hello everyone.
46
00:00:58,294 --> 00:00:59,495
Welcome back to this
47
00:00:59,495 --> 00:01:00,105
week's episode of
48
00:01:00,115 --> 00:01:00,805
Simplyblock's Cloud
49
00:01:00,805 --> 00:01:01,545
Commute Podcast.
50
00:01:01,885 --> 00:01:04,235
This day, this week,
51
00:01:04,275 --> 00:01:05,665
you know, I have another
52
00:01:05,665 --> 00:01:06,405
incredible guest.
53
00:01:06,435 --> 00:01:07,115
I say that every
54
00:01:07,115 --> 00:01:07,795
time, it's every,
55
00:01:07,865 --> 00:01:08,805
it's true every time.
56
00:01:09,485 --> 00:01:10,855
This time, somebody
57
00:01:10,905 --> 00:01:11,694
I actually know
58
00:01:11,695 --> 00:01:12,934
for a very, very,
59
00:01:12,935 --> 00:01:14,595
very long time.
60
00:01:14,715 --> 00:01:16,075
He's been with Oracle
61
00:01:16,085 --> 00:01:17,354
for many, many years.
62
00:01:17,794 --> 00:01:19,245
He's for, with Microsoft
63
00:01:19,245 --> 00:01:20,800
for also quite a
64
00:01:20,800 --> 00:01:21,870
few years so far.
65
00:01:23,690 --> 00:01:24,850
Bruno, welcome
66
00:01:24,850 --> 00:01:25,500
to the show.
67
00:01:26,200 --> 00:01:27,250
Hey Chris, thanks
68
00:01:27,250 --> 00:01:27,910
for having me.
69
00:01:28,679 --> 00:01:29,960
Yeah, and you're,
70
00:01:29,970 --> 00:01:30,369
you're right.
71
00:01:30,369 --> 00:01:31,300
I've been at Oracle
72
00:01:31,300 --> 00:01:33,720
for about five
73
00:01:33,739 --> 00:01:34,470
years and a half.
74
00:01:34,470 --> 00:01:37,350
And then, I was
75
00:01:37,350 --> 00:01:37,980
at Oracle for
76
00:01:37,980 --> 00:01:38,779
about that time.
77
00:01:38,779 --> 00:01:39,480
And then now I've
78
00:01:39,480 --> 00:01:40,520
been with Microsoft
79
00:01:40,520 --> 00:01:41,960
since 2018.
80
00:01:42,470 --> 00:01:43,740
So you're almost,
81
00:01:43,820 --> 00:01:46,370
well Six years now.
82
00:01:46,580 --> 00:01:47,000
Yeah.
83
00:01:47,470 --> 00:01:48,300
It's been-
84
00:01:48,490 --> 00:01:49,890
I've been at Microsoft
85
00:01:49,910 --> 00:01:50,750
more time than I
86
00:01:50,750 --> 00:01:51,790
was at Oracle now,
87
00:01:51,820 --> 00:01:52,520
just completing
88
00:01:52,780 --> 00:01:53,680
my extra year.
89
00:01:54,320 --> 00:01:57,540
So, I can say that I
90
00:01:57,570 --> 00:01:59,130
did my dream of working
91
00:01:59,180 --> 00:02:00,360
as a job engineer for
92
00:02:00,370 --> 00:02:01,260
the company that does
93
00:02:01,260 --> 00:02:03,750
Java and now I'm at the
94
00:02:04,425 --> 00:02:06,604
company that does the
95
00:02:06,935 --> 00:02:08,525
alternative to Java, but
96
00:02:08,655 --> 00:02:09,675
I'm on the Java team.
97
00:02:09,675 --> 00:02:11,885
So, we can talk
98
00:02:11,925 --> 00:02:12,674
about interesting
99
00:02:12,674 --> 00:02:13,235
things there.
100
00:02:13,815 --> 00:02:14,174
All right.
101
00:02:14,535 --> 00:02:15,415
As long as Microsoft
102
00:02:15,415 --> 00:02:16,044
is never going to
103
00:02:16,044 --> 00:02:17,465
go back to J sharp.
104
00:02:17,465 --> 00:02:18,475
I think we're all
105
00:02:18,785 --> 00:02:19,015
good with that.
106
00:02:19,015 --> 00:02:21,805
No, no, no, no, no, no.
107
00:02:22,305 --> 00:02:24,325
When we announced the
108
00:02:24,325 --> 00:02:25,275
Microsoft Build of
109
00:02:25,275 --> 00:02:26,864
OpenJDK, we had lots
110
00:02:26,864 --> 00:02:28,095
of jokes about that.
111
00:02:28,114 --> 00:02:28,845
We thought about
112
00:02:28,845 --> 00:02:29,685
doing a prank.
113
00:02:30,299 --> 00:02:31,730
April Fool's joke.
114
00:02:32,150 --> 00:02:32,810
We thought about
115
00:02:32,810 --> 00:02:33,719
announcing Microsoft
116
00:02:33,719 --> 00:02:34,660
Build of OpenJDK
117
00:02:34,680 --> 00:02:37,950
on April 1st.
118
00:02:38,270 --> 00:02:39,569
And we didn't do
119
00:02:39,570 --> 00:02:40,700
anything like that,
120
00:02:41,060 --> 00:02:42,790
but one thing that
121
00:02:42,810 --> 00:02:44,480
did happen when we
122
00:02:44,480 --> 00:02:45,519
announced Microsoft
123
00:02:45,519 --> 00:02:47,625
Build of OpenJDK was
124
00:02:47,685 --> 00:02:49,485
that an anonymous
125
00:02:49,495 --> 00:02:51,425
group of Microsoft
126
00:02:51,465 --> 00:02:52,535
employees, and some
127
00:02:52,535 --> 00:02:54,155
of them ex employees,
128
00:02:54,175 --> 00:02:55,275
we don't know who
129
00:02:55,735 --> 00:02:58,135
are these people, but
130
00:02:58,325 --> 00:03:00,014
honestly, I don't know
131
00:03:00,014 --> 00:03:01,005
who are these people,
132
00:03:01,025 --> 00:03:02,955
but, of course, they saw
133
00:03:02,955 --> 00:03:05,435
the news that Microsoft
134
00:03:05,725 --> 00:03:06,701
announced Microsoft
135
00:03:06,701 --> 00:03:09,145
Build of OpenJDK, or
136
00:03:09,175 --> 00:03:10,185
that were, we were
137
00:03:10,195 --> 00:03:11,275
about to announce
138
00:03:11,275 --> 00:03:13,325
that, they published
139
00:03:13,605 --> 00:03:15,984
a blog post called
140
00:03:16,005 --> 00:03:17,614
the Microsoft Coffee.
141
00:03:18,065 --> 00:03:20,520
And it was a prank that
142
00:03:20,520 --> 00:03:21,630
they did back in the
143
00:03:21,630 --> 00:03:24,740
days, where Microsoft,
144
00:03:24,810 --> 00:03:25,829
where these guys
145
00:03:25,909 --> 00:03:27,739
faked software boxes.
146
00:03:27,750 --> 00:03:28,279
You remember when
147
00:03:28,279 --> 00:03:29,079
you used to go to
148
00:03:29,079 --> 00:03:30,109
a library store, a
149
00:03:30,120 --> 00:03:31,149
bookstore, and you can
150
00:03:31,200 --> 00:03:32,680
actually buy software?
151
00:03:32,950 --> 00:03:33,399
Damn.
152
00:03:33,430 --> 00:03:33,949
It's in this
153
00:03:34,309 --> 00:03:36,819
round, mirror-ish
154
00:03:36,840 --> 00:03:38,530
device called CD.
155
00:03:38,920 --> 00:03:40,830
And we would actually
156
00:03:40,830 --> 00:03:42,370
put inside the computer
157
00:03:42,380 --> 00:03:43,910
and install software.
158
00:03:44,850 --> 00:03:45,859
They did this prank
159
00:03:45,880 --> 00:03:47,020
back in the days where
160
00:03:47,020 --> 00:03:48,890
they printed software
161
00:03:48,900 --> 00:03:50,429
boxes with the logo
162
00:03:50,429 --> 00:03:51,670
Microsoft Coffee.
163
00:03:52,729 --> 00:03:55,480
And it was a prank
164
00:03:55,550 --> 00:03:57,700
on Java at the time.
165
00:03:58,650 --> 00:04:00,835
And they actually put
166
00:04:01,315 --> 00:04:03,204
dozens of boxes across
167
00:04:03,255 --> 00:04:04,805
different stores in the
168
00:04:04,805 --> 00:04:07,414
Seattle area in the US.
169
00:04:07,884 --> 00:04:10,274
And the local press
170
00:04:10,545 --> 00:04:12,105
saw that and they
171
00:04:12,125 --> 00:04:13,574
said, Microsoft is
172
00:04:13,625 --> 00:04:15,334
announcing a software.
173
00:04:16,844 --> 00:04:18,115
And basically the
174
00:04:18,115 --> 00:04:19,704
prank went too far.
175
00:04:20,714 --> 00:04:20,875
Right.
176
00:04:20,915 --> 00:04:21,245
Right.
177
00:04:21,245 --> 00:04:23,865
So, sorry for, for,
178
00:04:23,905 --> 00:04:24,675
for the audience.
179
00:04:25,665 --> 00:04:26,580
Obviously Java
180
00:04:26,580 --> 00:04:27,190
is an island.
181
00:04:27,200 --> 00:04:28,090
It's a coffee.
182
00:04:28,640 --> 00:04:29,380
It's a programming
183
00:04:29,400 --> 00:04:29,810
language.
184
00:04:29,810 --> 00:04:31,730
So it's a running gig.
185
00:04:31,730 --> 00:04:32,540
Just in case
186
00:04:32,560 --> 00:04:33,200
you don't know.
187
00:04:33,260 --> 00:04:33,670
Now, you know.
188
00:04:33,690 --> 00:04:35,780
Yeah, exactly.
189
00:04:36,930 --> 00:04:39,079
So anyhow, if you go, if
190
00:04:39,079 --> 00:04:40,219
you search for Microsoft
191
00:04:40,270 --> 00:04:41,640
Coffee on Google
192
00:04:41,819 --> 00:04:43,210
or Bing, whatever,
193
00:04:43,469 --> 00:04:44,309
whatever you choose,
194
00:04:45,189 --> 00:04:45,850
you're going to learn
195
00:04:45,860 --> 00:04:46,510
about this thing.
196
00:04:46,570 --> 00:04:47,300
It's, there's also
197
00:04:47,300 --> 00:04:48,370
an account on Twitter
198
00:04:48,430 --> 00:04:49,440
called Twitter.com or
199
00:04:49,550 --> 00:04:51,670
X.com/MicrosoftCoffee.
200
00:04:52,160 --> 00:04:53,790
And you're going to
201
00:04:53,830 --> 00:04:54,650
see the blog post
202
00:04:54,650 --> 00:04:55,560
that they published
203
00:04:55,630 --> 00:04:56,469
at the same time that
204
00:04:56,469 --> 00:04:57,750
we announced Microsoft
205
00:04:57,750 --> 00:04:58,750
Build of OpenJDK,
206
00:04:59,420 --> 00:05:00,489
telling the story,
207
00:05:00,489 --> 00:05:01,699
the behind the scenes
208
00:05:01,699 --> 00:05:04,720
story about that prank.
209
00:05:05,060 --> 00:05:06,479
So, there's that.
210
00:05:06,689 --> 00:05:07,769
And it's an interesting
211
00:05:07,859 --> 00:05:08,910
fact that folks
212
00:05:08,910 --> 00:05:09,950
would, would love
213
00:05:10,000 --> 00:05:10,529
to learn about.
214
00:05:10,639 --> 00:05:10,929
Yeah.
215
00:05:10,930 --> 00:05:11,109
Yeah.
216
00:05:11,129 --> 00:05:12,479
I'll try to find that.
217
00:05:12,689 --> 00:05:13,219
If you, if you
218
00:05:13,219 --> 00:05:13,750
have the links,
219
00:05:13,750 --> 00:05:14,359
just send it to me.
220
00:05:14,359 --> 00:05:15,219
I'll drop it in the
221
00:05:15,219 --> 00:05:16,120
show notes because
222
00:05:16,159 --> 00:05:17,349
that sounds amazing.
223
00:05:17,370 --> 00:05:18,440
I did not know
224
00:05:18,440 --> 00:05:19,040
about that.
225
00:05:19,480 --> 00:05:21,129
There is a YouTube
226
00:05:21,140 --> 00:05:23,490
video, showing the
227
00:05:23,530 --> 00:05:26,010
news anchor talking
228
00:05:26,020 --> 00:05:27,600
about the new product,
229
00:05:27,840 --> 00:05:29,820
like it's a prank.
230
00:05:30,100 --> 00:05:30,730
Anyways.
231
00:05:31,060 --> 00:05:31,450
Yeah.
232
00:05:31,730 --> 00:05:32,640
I can't-
233
00:05:32,800 --> 00:05:34,180
To be honest, with a
234
00:05:34,180 --> 00:05:35,260
company like Microsoft,
235
00:05:35,260 --> 00:05:36,039
I can totally see
236
00:05:36,039 --> 00:05:37,910
how this like, goes
237
00:05:37,910 --> 00:05:38,799
way over the top.
238
00:05:39,589 --> 00:05:41,359
Microsoft, they used
239
00:05:41,359 --> 00:05:42,350
to do lots of pranks
240
00:05:42,350 --> 00:05:43,170
back in the days, you
241
00:05:43,170 --> 00:05:44,180
know, like Bill Gates
242
00:05:44,180 --> 00:05:45,270
and Steve Ballmer
243
00:05:45,310 --> 00:05:46,289
video recording, like
244
00:05:46,320 --> 00:05:47,250
dancing, you know.
245
00:05:47,385 --> 00:05:49,925
I mean, everyone knows
246
00:05:49,925 --> 00:05:51,755
that Bill is famous
247
00:05:51,775 --> 00:05:53,055
for his stupid jokes.
248
00:05:53,175 --> 00:05:53,845
So, yeah.
249
00:05:53,855 --> 00:05:54,255
Yeah.
250
00:05:54,445 --> 00:05:56,005
You know, like, but now
251
00:05:56,005 --> 00:05:57,555
we do like AI, AI, AI.
252
00:05:58,974 --> 00:05:59,514
So you're still
253
00:05:59,514 --> 00:06:00,415
doing stupid jokes.
254
00:06:00,415 --> 00:06:00,935
Is that what
255
00:06:00,935 --> 00:06:01,395
you're saying?
256
00:06:01,795 --> 00:06:02,525
Yeah, basically.
257
00:06:02,585 --> 00:06:02,765
Yeah.
258
00:06:02,825 --> 00:06:03,165
Okay.
259
00:06:03,295 --> 00:06:03,625
Okay.
260
00:06:03,635 --> 00:06:03,995
Fair enough.
261
00:06:03,995 --> 00:06:04,285
That's-
262
00:06:04,515 --> 00:06:07,265
I mean, but we do, we do
263
00:06:07,735 --> 00:06:08,844
jokes that are actually,
264
00:06:08,975 --> 00:06:10,035
you know, funny.
265
00:06:10,815 --> 00:06:13,249
All right.
266
00:06:13,250 --> 00:06:14,469
Let's, let's get back to
267
00:06:14,469 --> 00:06:16,910
the AI topic in a few.
268
00:06:17,520 --> 00:06:18,450
Let us know a little
269
00:06:18,450 --> 00:06:19,390
bit more about yourself.
270
00:06:19,390 --> 00:06:21,250
To be honest, I was
271
00:06:21,500 --> 00:06:22,209
kind of surprised.
272
00:06:22,209 --> 00:06:23,199
I thought you've been
273
00:06:23,199 --> 00:06:24,519
with Oracle much longer.
274
00:06:25,249 --> 00:06:26,099
So that was,
275
00:06:26,119 --> 00:06:26,599
that was quite-
276
00:06:26,599 --> 00:06:27,869
Yeah, I joined, I joined
277
00:06:27,869 --> 00:06:29,679
Oracle in 2012 and then
278
00:06:29,679 --> 00:06:32,219
I left in January 2018.
279
00:06:32,569 --> 00:06:33,359
That's when I basically
280
00:06:33,359 --> 00:06:34,329
joined Microsoft.
281
00:06:34,380 --> 00:06:35,710
And then, now
282
00:06:35,710 --> 00:06:36,960
six years later.
283
00:06:37,010 --> 00:06:39,989
So it was, it was an
284
00:06:39,989 --> 00:06:40,869
interesting transition,
285
00:06:40,880 --> 00:06:43,110
you know, like coming to
286
00:06:43,110 --> 00:06:44,770
Microsoft to help them
287
00:06:44,960 --> 00:06:47,300
talk to Java developers
288
00:06:47,300 --> 00:06:48,280
about Azure, about
289
00:06:48,280 --> 00:06:50,129
cloud, about Microsoft
290
00:06:50,129 --> 00:06:51,110
developer tools like
291
00:06:51,110 --> 00:06:51,889
Visual Studio Code.
292
00:06:52,279 --> 00:06:54,010
And now GitHub after
293
00:06:54,010 --> 00:06:54,730
the acquisition.
294
00:06:55,299 --> 00:06:57,630
And then, one of
295
00:06:57,630 --> 00:06:58,400
the interesting things
296
00:06:58,400 --> 00:07:00,609
that happened in the
297
00:07:00,640 --> 00:07:02,330
early days was that I
298
00:07:02,330 --> 00:07:04,650
found out the amount
299
00:07:04,650 --> 00:07:05,580
of Java that runs
300
00:07:05,580 --> 00:07:08,250
inside Microsoft.
301
00:07:08,250 --> 00:07:10,030
And it's not as big,
302
00:07:10,040 --> 00:07:12,070
of course, as many
303
00:07:12,070 --> 00:07:12,899
other companies like
304
00:07:12,899 --> 00:07:14,059
Amazon or even Google,
305
00:07:14,060 --> 00:07:17,230
perhaps, and of course,
306
00:07:17,230 --> 00:07:20,019
Netflix and the likes
307
00:07:20,019 --> 00:07:21,599
of that, the amount of
308
00:07:21,599 --> 00:07:22,609
Java, like even Twitter
309
00:07:22,620 --> 00:07:23,520
has a lot of Java.
310
00:07:24,310 --> 00:07:26,000
But Microsoft runs,
311
00:07:26,660 --> 00:07:28,170
our latest estimates,
312
00:07:28,190 --> 00:07:29,230
it's somewhere between
313
00:07:29,230 --> 00:07:31,540
2.5 to 3 million JVMs,
314
00:07:32,450 --> 00:07:33,675
running in production
315
00:07:33,705 --> 00:07:35,035
inside Microsoft for
316
00:07:35,035 --> 00:07:36,075
internal systems,
317
00:07:36,175 --> 00:07:37,595
not just, not, not,
318
00:07:37,695 --> 00:07:40,285
does not count Azure
319
00:07:40,315 --> 00:07:41,495
customer workloads,
320
00:07:42,255 --> 00:07:43,445
just the internal stuff.
321
00:07:43,925 --> 00:07:45,664
And we like to say- yep?
322
00:07:45,835 --> 00:07:46,695
And that is all
323
00:07:46,705 --> 00:07:47,744
on, on Azure or
324
00:07:47,745 --> 00:07:48,445
how does that work?
325
00:07:48,764 --> 00:07:49,595
Or is it also like
326
00:07:49,965 --> 00:07:50,415
internal stuff?
327
00:07:50,695 --> 00:07:51,695
No, internal, internal,
328
00:07:51,695 --> 00:07:52,485
internal stuff.
329
00:07:52,545 --> 00:07:53,875
Some stuff is running.
330
00:07:54,150 --> 00:07:55,340
Some Microsoft internal
331
00:07:55,350 --> 00:07:56,680
stuff runs on Azure data
332
00:07:56,680 --> 00:07:58,320
centers, some stuff run
333
00:07:58,340 --> 00:08:00,340
on Microsoft proprietary
334
00:08:00,360 --> 00:08:01,290
data centers, like
335
00:08:01,300 --> 00:08:02,610
Azure is proprietary,
336
00:08:02,660 --> 00:08:03,700
but not inside
337
00:08:03,730 --> 00:08:04,770
Azure data centers.
338
00:08:05,949 --> 00:08:07,090
LinkedIn, for example,
339
00:08:07,090 --> 00:08:08,109
is entirely Java.
340
00:08:08,840 --> 00:08:10,929
The backend is 98,
341
00:08:10,929 --> 00:08:12,310
99 percent Java and
342
00:08:12,340 --> 00:08:13,940
hundreds of thousands of
343
00:08:13,940 --> 00:08:17,540
JVMs run for LinkedIn.
344
00:08:17,559 --> 00:08:18,010
Then we have
345
00:08:18,010 --> 00:08:19,599
Minecraft servers.
346
00:08:19,599 --> 00:08:22,749
We have Bing, the
347
00:08:22,749 --> 00:08:23,499
search engine.
348
00:08:23,729 --> 00:08:26,269
We have Azure Control
349
00:08:26,289 --> 00:08:27,400
Plane, which is another-
350
00:08:27,900 --> 00:08:28,460
It's an internal
351
00:08:28,479 --> 00:08:30,159
technology that helps
352
00:08:30,159 --> 00:08:31,960
us orchestrate the
353
00:08:31,960 --> 00:08:33,070
Azure data centers.
354
00:08:33,580 --> 00:08:34,360
Mm-Hmm.
355
00:08:34,360 --> 00:08:34,790
We do a lot
356
00:08:34,809 --> 00:08:35,559
of messaging.
357
00:08:35,770 --> 00:08:36,340
We like to say
358
00:08:36,340 --> 00:08:36,939
two things.
359
00:08:37,030 --> 00:08:38,020
One, if you click
360
00:08:38,020 --> 00:08:39,100
on your Start Menu
361
00:08:39,100 --> 00:08:40,505
on Windows, that's
362
00:08:40,515 --> 00:08:41,485
powered by Java.
363
00:08:41,655 --> 00:08:42,525
How does that, what
364
00:08:42,525 --> 00:08:43,075
does that mean?
365
00:08:43,125 --> 00:08:44,105
It means that when you
366
00:08:44,105 --> 00:08:45,635
click on Start Menu on
367
00:08:45,635 --> 00:08:48,155
Windows, you see some
368
00:08:48,155 --> 00:08:49,694
of Bing recommendations,
369
00:08:49,724 --> 00:08:51,185
Bing search events,
370
00:08:51,194 --> 00:08:52,555
news, whatever, right?
371
00:08:52,895 --> 00:08:53,675
All of that is
372
00:08:53,675 --> 00:08:54,435
coming from Bing.
373
00:08:54,435 --> 00:08:55,635
And Bing has a lot
374
00:08:55,635 --> 00:08:57,505
of indexes technology
375
00:08:57,555 --> 00:08:58,315
based in Java.
376
00:08:59,045 --> 00:09:00,435
And because of that,
377
00:09:00,925 --> 00:09:01,964
we make that joke
378
00:09:01,965 --> 00:09:02,754
that, you know, the
379
00:09:02,755 --> 00:09:03,724
Start Menu of Windows
380
00:09:03,724 --> 00:09:04,544
is powered by Java.
381
00:09:05,094 --> 00:09:07,024
The second thing
382
00:09:07,094 --> 00:09:10,004
is Azure.
383
00:09:10,494 --> 00:09:11,154
So when you go on
384
00:09:11,154 --> 00:09:12,305
Azure portal and you
385
00:09:12,315 --> 00:09:14,214
create a resource,
386
00:09:14,214 --> 00:09:14,800
let's say you want to
387
00:09:14,869 --> 00:09:15,769
create a database, like
388
00:09:15,769 --> 00:09:18,050
a Postgres database.
389
00:09:19,459 --> 00:09:20,370
The Azure portal
390
00:09:20,370 --> 00:09:21,760
actually sends a message
391
00:09:21,870 --> 00:09:23,709
to Control Plane and
392
00:09:23,709 --> 00:09:24,680
then Control Plane
393
00:09:24,680 --> 00:09:25,770
will send a message
394
00:09:25,770 --> 00:09:26,900
to whatever data
395
00:09:26,919 --> 00:09:28,390
center you asked that
396
00:09:28,390 --> 00:09:29,600
resource to be created.
397
00:09:31,226 --> 00:09:32,140
All the messaging
398
00:09:32,165 --> 00:09:33,235
system is done by a
399
00:09:33,235 --> 00:09:34,655
PubSub scheme that is
400
00:09:34,665 --> 00:09:35,694
implemented in Java.
401
00:09:36,175 --> 00:09:36,564
Okay.
402
00:09:36,744 --> 00:09:37,614
It's not JMS
403
00:09:37,614 --> 00:09:38,055
or anything.
404
00:09:38,055 --> 00:09:38,284
It's-
405
00:09:38,564 --> 00:09:40,074
No, no, there's a lot
406
00:09:40,074 --> 00:09:40,844
of, there's a lot of,
407
00:09:41,244 --> 00:09:42,185
there's a lot of Kafka.
408
00:09:42,334 --> 00:09:43,834
There's a lot of Hadoop.
409
00:09:43,885 --> 00:09:45,175
There's a lot of PDO.
410
00:09:45,574 --> 00:09:47,044
There's a lot of Spark.
411
00:09:47,654 --> 00:09:49,464
And there's a lot of
412
00:09:49,475 --> 00:09:50,905
Scala as well because
413
00:09:50,905 --> 00:09:52,175
of the big data stuff.
414
00:09:53,185 --> 00:09:54,474
There's a lot of
415
00:09:54,474 --> 00:09:57,020
Android code, Java
416
00:09:57,020 --> 00:09:59,750
for Android or Kotlin.
417
00:10:00,680 --> 00:10:01,790
Yeah, I mean, it's
418
00:10:02,220 --> 00:10:03,270
massive, you know.
419
00:10:03,270 --> 00:10:04,089
At the time that we-
420
00:10:04,089 --> 00:10:06,149
that Log4J
421
00:10:06,170 --> 00:10:07,290
vulnerability happened,
422
00:10:09,613 --> 00:10:10,814
I got a phone call
423
00:10:11,095 --> 00:10:12,255
on my team's like,
424
00:10:12,314 --> 00:10:13,965
Hey, Bruno.
425
00:10:14,225 --> 00:10:14,705
Do you know where
426
00:10:14,705 --> 00:10:15,475
Log4J is used
427
00:10:15,475 --> 00:10:16,275
across Microsoft?
428
00:10:16,275 --> 00:10:17,395
I was like, I don't
429
00:10:17,395 --> 00:10:18,954
know, probably
430
00:10:18,954 --> 00:10:19,514
everywhere.
431
00:10:19,904 --> 00:10:20,274
Right?
432
00:10:21,254 --> 00:10:22,254
So we went digging
433
00:10:22,255 --> 00:10:24,204
and we found hundreds
434
00:10:24,204 --> 00:10:25,344
and hundreds of
435
00:10:25,444 --> 00:10:26,444
projects inside
436
00:10:26,444 --> 00:10:27,924
Microsoft using Log4J.
437
00:10:28,025 --> 00:10:28,314
Yeah.
438
00:10:28,355 --> 00:10:29,495
And we went, we went
439
00:10:29,495 --> 00:10:30,225
ahead of course,
440
00:10:30,225 --> 00:10:30,885
and cleaned up
441
00:10:30,925 --> 00:10:32,555
everything, helped
442
00:10:32,555 --> 00:10:33,875
customers on Azure
443
00:10:33,905 --> 00:10:35,455
to mitigate as well.
444
00:10:36,425 --> 00:10:36,925
But it was an
445
00:10:36,925 --> 00:10:38,090
interesting thing
446
00:10:38,090 --> 00:10:38,760
where people are
447
00:10:38,760 --> 00:10:40,170
like, Oh, we did not
448
00:10:40,170 --> 00:10:41,320
know we had Log4J.
449
00:10:41,340 --> 00:10:41,910
We didn't even
450
00:10:41,910 --> 00:10:42,900
know we had Java.
451
00:10:42,900 --> 00:10:43,910
And yeah, we do.
452
00:10:43,980 --> 00:10:44,810
And, and it was, it
453
00:10:44,820 --> 00:10:45,670
was one of the biggest
454
00:10:45,680 --> 00:10:46,370
problems, right?
455
00:10:46,390 --> 00:10:47,320
A lot of people didn't
456
00:10:47,320 --> 00:10:48,069
know they have it
457
00:10:48,070 --> 00:10:49,130
as like a transitive
458
00:10:49,289 --> 00:10:50,300
dependency or anything.
459
00:10:50,430 --> 00:10:50,820
Oh, yeah.
460
00:10:51,160 --> 00:10:52,240
For the audience, if you
461
00:10:52,240 --> 00:10:53,369
don't know what Log4J
462
00:10:53,390 --> 00:10:54,230
is, we, by the way, had
463
00:10:54,230 --> 00:10:55,299
an episode with Brian
464
00:10:55,300 --> 00:10:57,120
Vermeer, just like a
465
00:10:57,120 --> 00:10:58,450
few months ago talking
466
00:10:58,450 --> 00:11:02,490
about mostly Log4J.
467
00:11:02,490 --> 00:11:03,080
I'll put it into
468
00:11:03,080 --> 00:11:03,709
the show notes.
469
00:11:05,729 --> 00:11:05,989
Yeah.
470
00:11:06,659 --> 00:11:08,849
So I mean, Microsoft
471
00:11:08,865 --> 00:11:09,745
changed quite a bit
472
00:11:09,745 --> 00:11:10,675
over the last couple of,
473
00:11:11,105 --> 00:11:12,495
well, let's say the last
474
00:11:12,495 --> 00:11:13,585
decade, maybe a decade
475
00:11:13,585 --> 00:11:14,075
and a half or something.
476
00:11:14,085 --> 00:11:15,365
Yeah, the last, the last
477
00:11:15,375 --> 00:11:16,945
15 years have been very
478
00:11:16,945 --> 00:11:18,044
different for Microsoft.
479
00:11:18,085 --> 00:11:19,274
I think so, right?
480
00:11:19,274 --> 00:11:21,695
And Microsoft, well,
481
00:11:21,705 --> 00:11:22,874
you're, you're the best,
482
00:11:23,654 --> 00:11:25,405
best person to say they
483
00:11:25,405 --> 00:11:26,425
changed quite a bit in
484
00:11:26,565 --> 00:11:27,635
terms of Java because-
485
00:11:27,945 --> 00:11:29,075
except for J sharp.
486
00:11:29,185 --> 00:11:30,185
After that, Microsoft
487
00:11:30,185 --> 00:11:30,925
didn't really touch
488
00:11:30,925 --> 00:11:32,275
Java at all, but
489
00:11:32,275 --> 00:11:32,955
they came back.
490
00:11:33,415 --> 00:11:34,445
But same for for
491
00:11:34,465 --> 00:11:35,065
Linux, right?
492
00:11:35,095 --> 00:11:36,435
I think the Azure-
493
00:11:36,945 --> 00:11:39,185
Microsoft creating Azure
494
00:11:39,195 --> 00:11:40,285
and make, trying to make
495
00:11:40,285 --> 00:11:41,774
it big, which I think
496
00:11:41,775 --> 00:11:43,390
they did pretty well,
497
00:11:44,370 --> 00:11:45,540
changed quite a bit.
498
00:11:47,070 --> 00:11:49,140
Would you say that
499
00:11:49,720 --> 00:11:51,550
you actually see that
500
00:11:51,600 --> 00:11:53,020
like still happening?
501
00:11:53,030 --> 00:11:53,680
Is there still
502
00:11:53,680 --> 00:11:54,670
changes happening?
503
00:11:54,680 --> 00:11:55,970
Like how that Microsoft
504
00:11:56,019 --> 00:11:56,920
works with open source
505
00:11:56,929 --> 00:11:58,000
communities or stuff?
506
00:11:58,409 --> 00:11:59,409
Yeah, changes are
507
00:11:59,409 --> 00:12:00,959
happening all the time.
508
00:12:00,959 --> 00:12:02,060
When we, when we
509
00:12:02,070 --> 00:12:02,809
published Microsoft
510
00:12:02,809 --> 00:12:03,573
Build of OpenJDK,
511
00:12:03,573 --> 00:12:06,209
it was yet another
512
00:12:06,230 --> 00:12:07,270
transformation, right?
513
00:12:07,490 --> 00:12:10,010
You know, Microsoft
514
00:12:10,190 --> 00:12:11,435
having its own JDK.
515
00:12:11,435 --> 00:12:12,615
I mean, how, how
516
00:12:12,615 --> 00:12:13,685
crazy is that?
517
00:12:14,265 --> 00:12:15,945
And the second thing
518
00:12:15,945 --> 00:12:16,995
is Java support on
519
00:12:16,995 --> 00:12:18,605
Visual Studio Code.
520
00:12:19,245 --> 00:12:21,985
It's amazing how
521
00:12:21,985 --> 00:12:23,735
far it has come.
522
00:12:23,995 --> 00:12:24,844
And thanks to the
523
00:12:24,844 --> 00:12:25,575
partnership with
524
00:12:25,575 --> 00:12:27,384
Red Hat, I must say.
525
00:12:27,865 --> 00:12:29,235
Red Hat drives the
526
00:12:29,285 --> 00:12:30,555
CoreX language support
527
00:12:30,564 --> 00:12:31,834
extension, and then
528
00:12:31,834 --> 00:12:32,975
Microsoft provides all
529
00:12:32,995 --> 00:12:34,015
the extensions around
530
00:12:34,015 --> 00:12:35,194
it like Maven support,
531
00:12:35,204 --> 00:12:37,275
JUnit support, Project
532
00:12:37,275 --> 00:12:40,704
support, and so on.
533
00:12:41,354 --> 00:12:42,004
And now with the
534
00:12:42,004 --> 00:12:43,164
integration with GitHub
535
00:12:43,164 --> 00:12:44,435
and GitHub Copilot,
536
00:12:44,714 --> 00:12:46,674
GitHub Codespaces, and
537
00:12:46,675 --> 00:12:48,175
all of that cool stuff,
538
00:12:48,175 --> 00:12:49,305
it shows really like,
539
00:12:49,819 --> 00:12:52,129
how the company and
540
00:12:52,359 --> 00:12:53,819
its subsidiaries think
541
00:12:53,819 --> 00:12:55,159
about the developer.
542
00:12:55,249 --> 00:12:56,430
And when we think
543
00:12:56,430 --> 00:12:57,040
about the developer,
544
00:12:57,119 --> 00:12:58,089
it's not just the C
545
00:12:58,089 --> 00:12:59,060
sharp developer or the
546
00:12:59,060 --> 00:12:59,849
JavaScript developer,
547
00:12:59,859 --> 00:13:00,829
we also think about
548
00:13:00,829 --> 00:13:01,699
the Java developer.
549
00:13:02,499 --> 00:13:03,550
And that in the
550
00:13:03,550 --> 00:13:04,930
past would not
551
00:13:04,939 --> 00:13:05,799
have been possible.
552
00:13:05,849 --> 00:13:06,650
I think, I think the
553
00:13:06,679 --> 00:13:07,329
Microsoft from the
554
00:13:07,329 --> 00:13:08,579
past would probably say
555
00:13:08,579 --> 00:13:09,599
something like we don't
556
00:13:09,599 --> 00:13:10,400
care about any other
557
00:13:10,400 --> 00:13:11,379
language developer.
558
00:13:11,379 --> 00:13:12,259
We only care about
559
00:13:12,280 --> 00:13:13,319
Windows developers.
560
00:13:13,319 --> 00:13:15,579
And Visual Basic
561
00:13:15,645 --> 00:13:16,595
developers and-
562
00:13:16,595 --> 00:13:17,555
C Sharp, come on.
563
00:13:17,584 --> 00:13:18,805
And C sharp and .NET
564
00:13:18,805 --> 00:13:19,714
developers, right?
565
00:13:19,834 --> 00:13:20,255
That's what
566
00:13:20,255 --> 00:13:20,915
we care about.
567
00:13:20,974 --> 00:13:21,245
Right.
568
00:13:21,305 --> 00:13:23,441
But no, I mean, the
569
00:13:23,444 --> 00:13:24,775
facts today show
570
00:13:24,845 --> 00:13:27,285
that, we care
571
00:13:27,285 --> 00:13:28,515
about any developer.
572
00:13:29,015 --> 00:13:30,564
And you might think,
573
00:13:30,564 --> 00:13:32,045
wow, that's obvious,
574
00:13:32,045 --> 00:13:32,545
Bruno, because
575
00:13:32,545 --> 00:13:33,474
Microsoft wants to grow
576
00:13:33,474 --> 00:13:34,485
its cloud business.
577
00:13:34,824 --> 00:13:36,625
Well, in part, yes.
578
00:13:36,744 --> 00:13:38,364
But in also because
579
00:13:38,364 --> 00:13:40,375
we want truly to make
580
00:13:40,435 --> 00:13:41,844
every service and every
581
00:13:41,844 --> 00:13:43,045
tool, every project we
582
00:13:43,045 --> 00:13:45,250
produce to be able to be
583
00:13:45,250 --> 00:13:47,660
used by anyone, right?
584
00:13:47,790 --> 00:13:48,970
It's not an
585
00:13:48,980 --> 00:13:51,640
allotest tool set.
586
00:13:51,670 --> 00:13:52,869
It's not an allotest
587
00:13:52,890 --> 00:13:54,209
or, you know, niche
588
00:13:54,519 --> 00:13:56,490
stack of technologies.
589
00:13:56,490 --> 00:13:58,319
We really want anybody
590
00:13:58,350 --> 00:13:59,499
to be able to use that.
591
00:13:59,870 --> 00:14:00,400
So that they can
592
00:14:00,410 --> 00:14:01,480
be as productive as
593
00:14:01,480 --> 00:14:03,050
possible, as efficient
594
00:14:03,050 --> 00:14:04,730
as possible, deliver
595
00:14:04,730 --> 00:14:05,570
with quality, with
596
00:14:05,570 --> 00:14:06,440
speed and everything.
597
00:14:06,630 --> 00:14:08,400
And if that
598
00:14:08,420 --> 00:14:09,120
includes Java
599
00:14:09,120 --> 00:14:10,280
developers, so be it.
600
00:14:10,370 --> 00:14:10,899
We're going to make
601
00:14:10,899 --> 00:14:11,710
sure that everything
602
00:14:11,710 --> 00:14:12,670
that we produce is
603
00:14:12,790 --> 00:14:13,909
equally as good for
604
00:14:13,920 --> 00:14:14,490
Java developers.
605
00:14:14,590 --> 00:14:15,620
I think you're making
606
00:14:15,620 --> 00:14:16,630
an important point here.
607
00:14:16,679 --> 00:14:17,660
I mean, you mentioned
608
00:14:17,660 --> 00:14:19,249
Visual Studio or Visual
609
00:14:19,259 --> 00:14:20,019
Studio Code, sorry,
610
00:14:20,059 --> 00:14:21,699
Visual Studio Code,
611
00:14:21,699 --> 00:14:23,705
which, I think, I don't
612
00:14:23,705 --> 00:14:25,215
know if it's like the
613
00:14:25,225 --> 00:14:26,335
biggest or at least
614
00:14:26,345 --> 00:14:27,455
the second biggest
615
00:14:27,815 --> 00:14:29,725
IDE by now just like
616
00:14:29,915 --> 00:14:32,235
from, from zero to 100.
617
00:14:32,524 --> 00:14:33,654
But also from a
618
00:14:33,654 --> 00:14:35,115
developer's perspective,
619
00:14:35,125 --> 00:14:36,734
WSL or especially
620
00:14:36,735 --> 00:14:38,735
WSL2 made like a
621
00:14:38,745 --> 00:14:40,214
massive leap forward.
622
00:14:40,265 --> 00:14:40,745
Oh, yeah.
623
00:14:41,505 --> 00:14:44,265
I use Windows subsystem
624
00:14:44,275 --> 00:14:45,315
for Linux every day.
625
00:14:45,375 --> 00:14:46,245
It's my default.
626
00:14:46,265 --> 00:14:47,075
When I opened up my
627
00:14:47,075 --> 00:14:47,875
Windows terminal, the
628
00:14:47,875 --> 00:14:48,695
default is Ubuntu.
629
00:14:49,530 --> 00:14:50,189
Not PowerShell.
630
00:14:50,670 --> 00:14:51,020
Yeah.
631
00:14:51,110 --> 00:14:52,000
And that makes sense.
632
00:14:52,030 --> 00:14:54,020
And it's amazing because
633
00:14:54,040 --> 00:14:55,079
it is actually running
634
00:14:55,079 --> 00:14:56,040
a Linux kernel on a,
635
00:14:56,089 --> 00:14:56,869
what is it called?
636
00:14:56,870 --> 00:14:58,110
A micro VM, whatever
637
00:14:58,110 --> 00:14:58,770
you call that.
638
00:14:59,290 --> 00:15:01,690
I actually compiled an
639
00:15:01,690 --> 00:15:02,939
embedded Linux kernel
640
00:15:03,109 --> 00:15:05,539
in WSL2, and build it,
641
00:15:05,539 --> 00:15:08,339
and wrote it right to
642
00:15:08,459 --> 00:15:09,329
our embedded system.
643
00:15:09,640 --> 00:15:11,550
Because it is, well, it
644
00:15:11,590 --> 00:15:12,990
was actually an embedded
645
00:15:12,990 --> 00:15:14,000
Linux build inside of
646
00:15:14,000 --> 00:15:15,430
Docker, inside of WSL2,
647
00:15:15,610 --> 00:15:17,659
inside of Windows, which
648
00:15:17,659 --> 00:15:19,529
was kind of freaky,
649
00:15:19,599 --> 00:15:21,099
but also pretty cool.
650
00:15:23,199 --> 00:15:23,609
It is.
651
00:15:24,300 --> 00:15:25,409
I've done, I've
652
00:15:25,409 --> 00:15:26,589
compiled the OpenJDK
653
00:15:26,589 --> 00:15:27,990
a few times on a
654
00:15:28,290 --> 00:15:29,249
subsystem for Linux.
655
00:15:29,369 --> 00:15:29,659
And-
656
00:15:30,020 --> 00:15:30,220
That makes sense.
657
00:15:31,385 --> 00:15:32,285
It works just fine.
658
00:15:32,314 --> 00:15:33,165
I produce a Linux
659
00:15:33,165 --> 00:15:34,735
binary off the JDK in
660
00:15:34,735 --> 00:15:35,515
my Windows computer.
661
00:15:36,135 --> 00:15:37,545
But I do want to point
662
00:15:37,545 --> 00:15:40,125
out that I am probably
663
00:15:40,144 --> 00:15:42,955
the weirdest Microsoft
664
00:15:42,955 --> 00:15:44,115
employee because my main
665
00:15:44,115 --> 00:15:45,205
computer is a Windows
666
00:15:45,205 --> 00:15:49,025
PC and then I have
667
00:15:49,045 --> 00:15:52,805
a Mac, an Intel Mac.
668
00:15:52,805 --> 00:15:53,045
Right.
669
00:15:53,275 --> 00:15:54,995
And I have a third
670
00:15:54,995 --> 00:15:55,675
computer, which is
671
00:15:55,675 --> 00:15:58,024
another Mac, the M1 Mac.
672
00:15:58,025 --> 00:15:58,835
It's not here in my
673
00:15:58,835 --> 00:15:59,915
office, but I have
674
00:16:00,225 --> 00:16:01,294
three computers in that.
675
00:16:02,024 --> 00:16:04,255
I was, two years ago, I
676
00:16:04,255 --> 00:16:05,505
was doing an experiment
677
00:16:05,575 --> 00:16:08,025
about JVM ergonomics.
678
00:16:08,425 --> 00:16:11,750
And I set up a lab on
679
00:16:11,750 --> 00:16:14,280
my office where I had
680
00:16:14,839 --> 00:16:16,900
a Java backend running
681
00:16:16,920 --> 00:16:18,439
on my Windows computer,
682
00:16:18,729 --> 00:16:20,739
a database running on
683
00:16:20,739 --> 00:16:23,680
Mac and the workload
684
00:16:23,689 --> 00:16:25,430
generator to stress
685
00:16:25,450 --> 00:16:27,200
test on my Intel Mac.
686
00:16:27,690 --> 00:16:28,700
So I was running
687
00:16:28,700 --> 00:16:29,990
three different Java
688
00:16:30,030 --> 00:16:31,370
binaries of Microsoft
689
00:16:31,370 --> 00:16:32,000
Build of OpenJDK.
690
00:16:32,020 --> 00:16:33,120
One for windows, one for
691
00:16:33,120 --> 00:16:34,480
Mac and Apple silicon,
692
00:16:34,480 --> 00:16:35,580
and one from Mac Intel.
693
00:16:36,250 --> 00:16:38,720
So, you know, just to
694
00:16:38,720 --> 00:16:41,300
show that we want every
695
00:16:41,300 --> 00:16:43,050
developer, no matter
696
00:16:43,050 --> 00:16:44,540
where they are, to be
697
00:16:44,650 --> 00:16:46,570
able to take advantage
698
00:16:46,590 --> 00:16:47,270
of all the technologies
699
00:16:47,270 --> 00:16:47,870
that we produce.
700
00:16:48,630 --> 00:16:49,320
All right, cool.
701
00:16:50,200 --> 00:16:52,020
So let's, let's quickly
702
00:16:52,020 --> 00:16:53,350
go back to, or quickly,
703
00:16:53,380 --> 00:16:54,650
let's go back to the
704
00:16:54,650 --> 00:16:55,660
AI part, because
705
00:16:55,850 --> 00:16:56,740
I think there's one
706
00:16:56,750 --> 00:16:58,450
very specific and
707
00:16:58,450 --> 00:16:59,769
very interesting open
708
00:16:59,770 --> 00:17:00,789
source project that
709
00:17:00,789 --> 00:17:02,899
you were fairly deeply
710
00:17:02,899 --> 00:17:04,750
involved in, which was
711
00:17:04,760 --> 00:17:05,849
the Semantic Kernel
712
00:17:05,849 --> 00:17:07,310
for Java, right?
713
00:17:08,400 --> 00:17:09,605
So maybe, maybe
714
00:17:09,754 --> 00:17:10,625
just give a quick
715
00:17:10,625 --> 00:17:11,454
introduction for the
716
00:17:11,454 --> 00:17:12,944
people that haven't
717
00:17:12,944 --> 00:17:13,605
heard about that.
718
00:17:14,714 --> 00:17:16,045
So Semantic Kernel
719
00:17:16,074 --> 00:17:17,784
is a Java library to
720
00:17:17,784 --> 00:17:21,505
help developers build
721
00:17:21,505 --> 00:17:22,765
intelligent apps.
722
00:17:23,725 --> 00:17:24,685
You imagine like,
723
00:17:24,794 --> 00:17:26,024
okay, I have Spring,
724
00:17:26,024 --> 00:17:28,654
I have Quarkus, I have
725
00:17:28,654 --> 00:17:30,725
Express.js, I have
726
00:17:30,735 --> 00:17:32,205
Django for Python.
727
00:17:33,065 --> 00:17:34,335
These are all frameworks
728
00:17:34,345 --> 00:17:36,485
that help developers
729
00:17:36,504 --> 00:17:37,395
build business
730
00:17:37,395 --> 00:17:39,925
applications in general.
731
00:17:42,195 --> 00:17:44,435
Semantic Kernel is a
732
00:17:44,435 --> 00:17:46,054
library, but also sort
733
00:17:46,054 --> 00:17:47,025
of like a framework
734
00:17:47,064 --> 00:17:49,115
that integrates with
735
00:17:49,115 --> 00:17:51,275
your application to help
736
00:17:51,305 --> 00:17:53,355
you build intelligent
737
00:17:53,379 --> 00:17:54,889
features that will
738
00:17:54,909 --> 00:17:56,899
use, of course, LLMs,
739
00:17:57,030 --> 00:17:58,259
large language models,
740
00:17:58,469 --> 00:17:59,909
and AI services
741
00:17:59,909 --> 00:18:00,850
behind the scenes.
742
00:18:01,470 --> 00:18:02,500
So that allows
743
00:18:02,519 --> 00:18:03,700
the developer to
744
00:18:03,849 --> 00:18:05,099
not only do prompt
745
00:18:05,099 --> 00:18:06,109
engineering, but also
746
00:18:06,110 --> 00:18:08,362
do AI orchestration.
747
00:18:08,752 --> 00:18:10,842
So, you provide
748
00:18:10,945 --> 00:18:12,305
plug ins, you provide
749
00:18:12,315 --> 00:18:13,157
functions, you
750
00:18:13,157 --> 00:18:16,355
provide capabilities
751
00:18:16,375 --> 00:18:17,234
in the application.
752
00:18:17,245 --> 00:18:18,615
Then you tell Semantic
753
00:18:18,615 --> 00:18:19,815
Kernel, these are
754
00:18:19,815 --> 00:18:20,965
my capabilities.
755
00:18:21,435 --> 00:18:22,104
And then you can
756
00:18:22,135 --> 00:18:26,114
allow a prompt to
757
00:18:26,114 --> 00:18:26,885
say, I want to do
758
00:18:26,885 --> 00:18:28,165
this, this, and this.
759
00:18:28,355 --> 00:18:29,225
That's the prompt.
760
00:18:29,225 --> 00:18:30,225
Imagine that's what
761
00:18:30,225 --> 00:18:30,895
you tell ChatGPT.
762
00:18:32,575 --> 00:18:34,125
But that prompt will
763
00:18:34,135 --> 00:18:35,495
make the AI behind the
764
00:18:35,495 --> 00:18:36,884
scenes leverage the
765
00:18:37,285 --> 00:18:38,055
capabilities of your
766
00:18:38,075 --> 00:18:39,925
own application to
767
00:18:39,965 --> 00:18:41,405
trigger those things
768
00:18:41,555 --> 00:18:42,764
as part of the flow.
769
00:18:43,784 --> 00:18:45,554
So that allows you
770
00:18:45,784 --> 00:18:48,834
to say, Hey, give me
771
00:18:48,834 --> 00:18:49,764
the last financial
772
00:18:49,764 --> 00:18:51,135
resource and email
773
00:18:51,135 --> 00:18:52,874
that to my boss.
774
00:18:53,924 --> 00:18:54,745
Okay, you have a
775
00:18:54,745 --> 00:18:56,184
function that extracts
776
00:18:56,205 --> 00:18:58,175
the latest, or extracts
777
00:18:58,274 --> 00:18:59,225
financial results from
778
00:18:59,225 --> 00:19:00,035
the database, and you
779
00:19:00,035 --> 00:19:01,115
have another function
780
00:19:01,125 --> 00:19:02,555
that sends email.
781
00:19:02,915 --> 00:19:03,525
But you also have
782
00:19:03,525 --> 00:19:04,365
a function that
783
00:19:04,395 --> 00:19:05,455
finds the email
784
00:19:05,455 --> 00:19:08,795
address of employees.
785
00:19:09,560 --> 00:19:10,790
But your prompt is just
786
00:19:10,790 --> 00:19:12,159
something like, get
787
00:19:12,179 --> 00:19:13,100
the latest results and
788
00:19:13,100 --> 00:19:14,070
send to my manager.
789
00:19:14,159 --> 00:19:15,830
Okay, the system
790
00:19:15,830 --> 00:19:17,150
knows who the user is.
791
00:19:17,340 --> 00:19:18,129
The system has a
792
00:19:18,129 --> 00:19:19,290
function that extracts
793
00:19:19,300 --> 00:19:21,009
the employee directory.
794
00:19:21,370 --> 00:19:22,270
So the system will
795
00:19:22,300 --> 00:19:24,049
know who is your boss.
796
00:19:24,640 --> 00:19:25,650
And the system will
797
00:19:25,650 --> 00:19:26,429
be able to find the
798
00:19:26,430 --> 00:19:27,489
email of your boss.
799
00:19:27,610 --> 00:19:28,320
And the system also
800
00:19:28,320 --> 00:19:28,810
has the capability
801
00:19:28,810 --> 00:19:29,300
to send an email.
802
00:19:30,220 --> 00:19:31,899
So, Symantec Kernel
803
00:19:31,900 --> 00:19:33,860
will chain all of that
804
00:19:34,520 --> 00:19:37,590
and execute the request
805
00:19:37,970 --> 00:19:39,140
as per the prompt.
806
00:19:39,520 --> 00:19:41,750
So Semantic Kernel
807
00:19:41,760 --> 00:19:43,040
means, or that, that
808
00:19:43,040 --> 00:19:44,670
means it basically
809
00:19:44,720 --> 00:19:45,890
helps you with the like
810
00:19:45,910 --> 00:19:48,270
agents, like the AI
811
00:19:48,270 --> 00:19:49,680
agents that everyone
812
00:19:49,680 --> 00:19:50,340
is talking about.
813
00:19:50,370 --> 00:19:50,730
Okay.
814
00:19:50,880 --> 00:19:51,330
Yes, exactly.
815
00:19:51,330 --> 00:19:52,050
That makes sense.
816
00:19:52,450 --> 00:19:54,109
And there are other
817
00:19:54,109 --> 00:19:54,870
alternatives, of
818
00:19:54,870 --> 00:19:56,820
course, LangChain4j
819
00:19:56,839 --> 00:19:57,960
is the main one.
820
00:19:58,220 --> 00:19:59,520
The Spring folks
821
00:19:59,520 --> 00:20:00,420
have something called
822
00:20:00,420 --> 00:20:01,640
Spring AI, also
823
00:20:01,640 --> 00:20:02,680
another library that
824
00:20:02,680 --> 00:20:04,240
does similar things.
825
00:20:05,240 --> 00:20:06,139
I believe Spring AI
826
00:20:06,579 --> 00:20:08,010
has also integration
827
00:20:08,010 --> 00:20:09,219
with LangChain4j.
828
00:20:09,239 --> 00:20:11,009
And we are also
829
00:20:11,039 --> 00:20:12,320
considering Spring
830
00:20:12,320 --> 00:20:13,069
integrations for
831
00:20:13,069 --> 00:20:14,259
Semantic Kernel, Quarkus
832
00:20:14,279 --> 00:20:15,419
integrations, and
833
00:20:15,420 --> 00:20:17,450
Micronaut, and all the
834
00:20:17,470 --> 00:20:18,730
other Java frameworks,
835
00:20:18,800 --> 00:20:20,085
application frameworks.
836
00:20:20,085 --> 00:20:21,810
But, in essence, that's
837
00:20:21,820 --> 00:20:22,900
what Semantic Kernel is.
838
00:20:22,950 --> 00:20:24,340
It allows developers to
839
00:20:24,340 --> 00:20:27,075
more easily integrate AI
840
00:20:27,085 --> 00:20:28,195
capabilities into their
841
00:20:28,215 --> 00:20:28,615
business applications.
842
00:20:29,585 --> 00:20:31,835
And I guess it intro
843
00:20:31,835 --> 00:20:33,245
or in the backend, it
844
00:20:33,245 --> 00:20:34,835
uses all the typical
845
00:20:34,865 --> 00:20:36,524
LLM services like
846
00:20:36,855 --> 00:20:38,335
Microsoft AI or-
847
00:20:39,074 --> 00:20:41,184
No, you choose, right.
848
00:20:41,184 --> 00:20:42,404
The library is
849
00:20:42,404 --> 00:20:43,215
just a library.
850
00:20:43,244 --> 00:20:43,915
So you have to
851
00:20:43,915 --> 00:20:44,894
tell, okay, this
852
00:20:44,894 --> 00:20:45,985
is my AI service
853
00:20:45,995 --> 00:20:46,915
that I want to use.
854
00:20:47,594 --> 00:20:48,940
So, right now we have
855
00:20:48,940 --> 00:20:49,750
support for Azure
856
00:20:49,750 --> 00:20:50,930
OpenAI, of course.
857
00:20:51,560 --> 00:20:52,510
We have also support
858
00:20:52,510 --> 00:20:53,710
for OpenAI, which is
859
00:20:53,710 --> 00:20:54,520
a different company.
860
00:20:54,610 --> 00:20:55,276
Yep.
861
00:20:55,310 --> 00:20:57,010
We have support
862
00:20:57,010 --> 00:20:59,006
for Hugging Faces.
863
00:20:59,230 --> 00:21:01,250
And I believe, I'm not
864
00:21:01,250 --> 00:21:02,150
sure if we have that
865
00:21:02,150 --> 00:21:04,440
support yet, but we do
866
00:21:04,460 --> 00:21:06,760
have a ticket on GitHub
867
00:21:07,070 --> 00:21:08,755
about Gemini, about
868
00:21:08,755 --> 00:21:11,230
Google's AI service.
869
00:21:11,730 --> 00:21:14,009
I mean, we are open to
870
00:21:14,129 --> 00:21:15,959
include any AI service
871
00:21:15,979 --> 00:21:18,133
into the framework.
872
00:21:18,269 --> 00:21:20,249
And if Google folks
873
00:21:20,249 --> 00:21:22,590
are asking for that,
874
00:21:22,590 --> 00:21:23,610
we can evaluate and
875
00:21:23,610 --> 00:21:24,610
maybe collaborate with
876
00:21:24,610 --> 00:21:25,779
them to make sure.
877
00:21:26,039 --> 00:21:26,829
The interesting thing
878
00:21:26,829 --> 00:21:29,009
about Semantic Kernel
879
00:21:29,009 --> 00:21:30,949
versus LangChain4j is
880
00:21:31,020 --> 00:21:33,080
some customers like the
881
00:21:33,080 --> 00:21:35,899
idea of having a company
882
00:21:35,909 --> 00:21:38,310
behind a library, right?
883
00:21:38,470 --> 00:21:39,970
LangChain4j is great.
884
00:21:40,080 --> 00:21:40,540
There's lots
885
00:21:40,540 --> 00:21:41,639
of engineers.
886
00:21:41,660 --> 00:21:43,180
I know Liz is one of
887
00:21:43,180 --> 00:21:44,010
the engineers behind.
888
00:21:44,060 --> 00:21:44,860
She's amazing.
889
00:21:44,870 --> 00:21:45,220
And she's doing
890
00:21:45,220 --> 00:21:45,930
an amazing job
891
00:21:46,040 --> 00:21:47,360
on LangChain4j.
892
00:21:47,980 --> 00:21:49,400
But it's a community
893
00:21:49,400 --> 00:21:50,670
project and that
894
00:21:51,030 --> 00:21:52,470
by itself can be
895
00:21:52,519 --> 00:21:54,829
a blessing, but it
896
00:21:54,829 --> 00:21:55,749
can also be a curse.
897
00:21:55,749 --> 00:21:57,490
And sometimes some
898
00:21:57,490 --> 00:21:58,570
companies may think,
899
00:21:58,580 --> 00:21:59,370
you know, I don't
900
00:21:59,370 --> 00:22:00,820
want to bat on a
901
00:22:00,870 --> 00:22:02,580
community library.
902
00:22:02,880 --> 00:22:04,250
So, I really prefer
903
00:22:04,250 --> 00:22:04,990
to use a ladder
904
00:22:04,990 --> 00:22:05,800
that is maintained
905
00:22:05,850 --> 00:22:06,780
by a major company.
906
00:22:07,180 --> 00:22:08,090
And that's one of the-
907
00:22:08,490 --> 00:22:10,000
That's one of the
908
00:22:10,020 --> 00:22:10,760
value propositions
909
00:22:10,760 --> 00:22:11,520
for Semantic Kernel.
910
00:22:11,540 --> 00:22:12,370
Yeah, that makes sense.
911
00:22:12,370 --> 00:22:13,250
Especially when you look
912
00:22:13,250 --> 00:22:14,409
into bigger companies,
913
00:22:14,730 --> 00:22:16,650
lawyers tend to get like
914
00:22:17,240 --> 00:22:19,540
a little bit very, when
915
00:22:19,560 --> 00:22:21,160
you, when you just want
916
00:22:21,160 --> 00:22:22,329
to use some open source
917
00:22:22,329 --> 00:22:23,839
project, and they know
918
00:22:23,840 --> 00:22:26,490
they can't keep anyone
919
00:22:28,580 --> 00:22:29,599
in, in check if stuff,
920
00:22:29,689 --> 00:22:32,879
stuff happens, right.
921
00:22:33,439 --> 00:22:36,699
So you said all the
922
00:22:36,699 --> 00:22:37,510
services, could I
923
00:22:37,510 --> 00:22:38,710
also use a lemma?
924
00:22:39,495 --> 00:22:40,245
Building my own
925
00:22:40,264 --> 00:22:40,955
local thing.
926
00:22:42,004 --> 00:22:42,805
If not, there
927
00:22:42,805 --> 00:22:43,835
would be a ticket
928
00:22:43,835 --> 00:22:45,025
for that, I guess.
929
00:22:46,195 --> 00:22:47,808
Hey, it's, you know,
930
00:22:47,808 --> 00:22:49,205
it's a GitHub project.
931
00:22:49,274 --> 00:22:50,365
Go send a pull request.
932
00:22:51,234 --> 00:22:52,834
I can just imagine that
933
00:22:52,834 --> 00:22:53,554
a lot of people would
934
00:22:53,554 --> 00:22:55,504
love to play with that.
935
00:22:55,504 --> 00:22:56,994
But also love to use
936
00:22:56,994 --> 00:22:57,804
some local service
937
00:22:57,804 --> 00:22:58,524
to try it out.
938
00:22:59,015 --> 00:23:00,024
I think, I think
939
00:23:00,164 --> 00:23:01,654
we have that.
940
00:23:01,894 --> 00:23:03,384
We do have that in mind.
941
00:23:03,774 --> 00:23:05,015
I think, I wonder if I
942
00:23:05,015 --> 00:23:07,915
have, if we have that
943
00:23:07,955 --> 00:23:09,035
as a work in progress
944
00:23:09,055 --> 00:23:09,744
or if it's still
945
00:23:09,745 --> 00:23:10,415
just in the back, I
946
00:23:10,825 --> 00:23:11,764
have to double check.
947
00:23:12,915 --> 00:23:13,934
It's just that Symantec
948
00:23:13,934 --> 00:23:14,345
Kernel is not the
949
00:23:14,354 --> 00:23:15,465
only project that
950
00:23:15,465 --> 00:23:18,035
I look at and help
951
00:23:18,085 --> 00:23:19,055
coordinate at Microsoft.
952
00:23:19,055 --> 00:23:19,615
We have a Build of
953
00:23:19,734 --> 00:23:20,744
OpenJDK, we have a
954
00:23:20,744 --> 00:23:21,865
migration tooling,
955
00:23:21,875 --> 00:23:23,275
we have some of our
956
00:23:23,305 --> 00:23:24,555
marketing initiatives
957
00:23:24,765 --> 00:23:26,565
and campaigns, and
958
00:23:26,565 --> 00:23:27,855
Azure features for Java
959
00:23:27,855 --> 00:23:29,554
developers, VS Code,
960
00:23:29,564 --> 00:23:30,324
Java features, there's
961
00:23:30,354 --> 00:23:31,384
a bunch of other stuff
962
00:23:31,384 --> 00:23:33,014
that I participate
963
00:23:33,030 --> 00:23:33,889
and contribute to.
964
00:23:34,239 --> 00:23:35,320
So, that's why I'm,
965
00:23:35,760 --> 00:23:36,980
you will hear me a lot.
966
00:23:36,980 --> 00:23:38,230
Yeah, I'm not sure.
967
00:23:38,750 --> 00:23:39,300
We'll double check.
968
00:23:39,980 --> 00:23:40,790
To be honest, I think
969
00:23:40,790 --> 00:23:41,830
that it's a great
970
00:23:41,850 --> 00:23:43,169
trait to be able to
971
00:23:43,169 --> 00:23:44,219
say that because you
972
00:23:44,270 --> 00:23:45,419
can't know everything.
973
00:23:45,459 --> 00:23:46,560
It's always important
974
00:23:46,560 --> 00:23:47,129
that you know where
975
00:23:47,129 --> 00:23:47,839
to look it up, right?
976
00:23:48,199 --> 00:23:49,429
So we crossed the
977
00:23:49,449 --> 00:23:50,719
20 minutes mark like
978
00:23:50,750 --> 00:23:51,449
two minutes ago.
979
00:23:52,879 --> 00:23:54,039
So last question, like
980
00:23:54,039 --> 00:23:55,639
when you look into the
981
00:23:55,639 --> 00:23:56,310
future, what do you
982
00:23:56,340 --> 00:23:56,981
think is like the next
983
00:23:57,651 --> 00:23:59,051
big thing for Microsoft,
984
00:23:59,075 --> 00:24:00,395
for database, for AI,
985
00:24:00,405 --> 00:24:02,325
for Java, for whatever
986
00:24:02,325 --> 00:24:03,524
you can think of?
987
00:24:04,175 --> 00:24:05,035
I truly believe
988
00:24:05,035 --> 00:24:05,755
in two things.
989
00:24:05,765 --> 00:24:10,305
One, remote development
990
00:24:10,305 --> 00:24:11,255
environments
991
00:24:11,545 --> 00:24:12,685
are become the-
992
00:24:12,725 --> 00:24:14,095
will become the norm.
993
00:24:15,485 --> 00:24:16,735
Whether that remote
994
00:24:16,765 --> 00:24:17,624
environment is in
995
00:24:17,624 --> 00:24:18,594
the cloud or not,
996
00:24:18,635 --> 00:24:19,625
that's irrelevant.
997
00:24:19,815 --> 00:24:20,935
What is relevant is
998
00:24:20,935 --> 00:24:22,405
that for the developer,
999
00:24:22,764 --> 00:24:23,965
they have access to
1000
00:24:23,965 --> 00:24:25,034
a remote environment
1001
00:24:25,034 --> 00:24:26,215
that is more powerful
1002
00:24:26,235 --> 00:24:27,284
than the machine that
1003
00:24:27,294 --> 00:24:28,445
they currently have,
1004
00:24:28,844 --> 00:24:30,125
and will allow them
1005
00:24:30,385 --> 00:24:32,014
to do all sorts of
1006
00:24:32,014 --> 00:24:33,304
integration tasks,
1007
00:24:33,614 --> 00:24:35,284
because the complexity
1008
00:24:35,294 --> 00:24:36,364
of systems these
1009
00:24:36,364 --> 00:24:38,264
days has been growing
1010
00:24:38,264 --> 00:24:39,634
exponentially, you know.
1011
00:24:39,924 --> 00:24:42,554
And that requires
1012
00:24:42,554 --> 00:24:43,720
environments that
1013
00:24:43,740 --> 00:24:45,220
are more complex to
1014
00:24:45,220 --> 00:24:46,650
be able to develop
1015
00:24:46,690 --> 00:24:47,980
and most importantly,
1016
00:24:48,000 --> 00:24:49,879
test those systems.
1017
00:24:50,250 --> 00:24:52,700
So the need for proper
1018
00:24:52,720 --> 00:24:55,520
environments that mimic
1019
00:24:55,520 --> 00:24:56,685
production environments
1020
00:24:56,695 --> 00:24:57,685
will only grow.
1021
00:24:58,105 --> 00:25:01,554
And I know there is
1022
00:25:01,554 --> 00:25:03,264
Minikube and, you
1023
00:25:03,264 --> 00:25:05,485
know, Q3S and all these
1024
00:25:05,485 --> 00:25:06,975
sort of, you know,
1025
00:25:07,425 --> 00:25:09,274
capabilities to have
1026
00:25:09,274 --> 00:25:10,084
a similar environment
1027
00:25:10,084 --> 00:25:10,894
in your laptop.
1028
00:25:10,925 --> 00:25:11,994
But the reality is on
1029
00:25:11,994 --> 00:25:12,804
your laptop, you'll
1030
00:25:12,804 --> 00:25:14,035
also have Chrome,
1031
00:25:14,084 --> 00:25:15,534
Slack, Discord,
1032
00:25:16,705 --> 00:25:18,044
Spotify, and all these
1033
00:25:18,074 --> 00:25:18,945
other things that are
1034
00:25:18,995 --> 00:25:20,455
eating CPU and memory.
1035
00:25:20,850 --> 00:25:22,400
So, you need a dedicated
1036
00:25:22,400 --> 00:25:23,090
developer environment
1037
00:25:23,130 --> 00:25:24,410
if you need a database,
1038
00:25:24,450 --> 00:25:26,803
an AI LLM service.
1039
00:25:27,035 --> 00:25:30,045
You need Kubernetes,
1040
00:25:30,065 --> 00:25:31,115
you need a backend,
1041
00:25:31,115 --> 00:25:34,845
you need Key Vault, all
1042
00:25:34,845 --> 00:25:35,955
these other services
1043
00:25:35,965 --> 00:25:36,835
that your application
1044
00:25:36,835 --> 00:25:37,784
relies on, you're
1045
00:25:37,784 --> 00:25:38,364
going to need that.
1046
00:25:38,545 --> 00:25:40,355
So emulating all of that
1047
00:25:40,364 --> 00:25:41,494
in your local computer
1048
00:25:41,494 --> 00:25:43,165
will be impossible
1049
00:25:43,394 --> 00:25:44,095
moving forward.
1050
00:25:44,425 --> 00:25:45,754
So I think remote
1051
00:25:45,764 --> 00:25:46,614
development environments
1052
00:25:46,615 --> 00:25:47,524
will become a big thing.
1053
00:25:48,105 --> 00:25:48,955
And the second thing
1054
00:25:48,955 --> 00:25:52,815
is developers will
1055
00:25:52,825 --> 00:25:55,324
have to adapt to using
1056
00:25:55,884 --> 00:25:58,564
AI as a tool, not
1057
00:25:58,645 --> 00:25:59,905
as a capability for
1058
00:25:59,915 --> 00:26:00,965
their applications.
1059
00:26:00,965 --> 00:26:02,004
I mean, developers will
1060
00:26:02,014 --> 00:26:03,665
have to build AI or
1061
00:26:03,665 --> 00:26:05,004
intelligent capabilities
1062
00:26:05,004 --> 00:26:06,925
into their systems.
1063
00:26:06,955 --> 00:26:08,574
That's certain
1064
00:26:08,574 --> 00:26:09,284
to happen.
1065
00:26:10,465 --> 00:26:11,115
But not for
1066
00:26:11,115 --> 00:26:11,745
every system.
1067
00:26:12,345 --> 00:26:13,895
Not every system needs
1068
00:26:13,895 --> 00:26:15,245
an intelligent feature.
1069
00:26:15,245 --> 00:26:17,145
Tell that the world,
1070
00:26:17,184 --> 00:26:18,455
please say it again.
1071
00:26:18,565 --> 00:26:19,175
Not every,
1072
00:26:19,175 --> 00:26:21,854
Not every system needs
1073
00:26:21,855 --> 00:26:23,014
an intelligent feature,
1074
00:26:23,415 --> 00:26:24,985
but every developer
1075
00:26:25,154 --> 00:26:29,194
will need to leverage AI
1076
00:26:29,275 --> 00:26:30,321
in some shape or form.
1077
00:26:30,401 --> 00:26:30,671
Okay.
1078
00:26:30,755 --> 00:26:33,975
In the past, I remember,
1079
00:26:34,005 --> 00:26:35,465
I remember my old days.
1080
00:26:35,495 --> 00:26:36,595
We went as software
1081
00:26:36,755 --> 00:26:37,714
engineers, we
1082
00:26:37,725 --> 00:26:38,675
learned how to
1083
00:26:38,675 --> 00:26:40,215
program using books.
1084
00:26:40,765 --> 00:26:41,654
Then the internet
1085
00:26:41,655 --> 00:26:43,485
came and we continued
1086
00:26:43,515 --> 00:26:44,614
to learn through
1087
00:26:44,614 --> 00:26:46,180
books, just that, you
1088
00:26:46,180 --> 00:26:47,210
know, online books.
1089
00:26:47,490 --> 00:26:49,190
And then very quickly,
1090
00:26:49,250 --> 00:26:50,690
we transitioned to
1091
00:26:50,720 --> 00:26:52,200
articles and tutorials
1092
00:26:52,240 --> 00:26:54,039
and user groups and
1093
00:26:54,050 --> 00:26:55,180
online communities.
1094
00:26:55,780 --> 00:26:57,190
And then we switched
1095
00:26:57,200 --> 00:26:58,470
to videos, a lot of
1096
00:26:58,480 --> 00:26:59,940
video on the internet,
1097
00:27:00,370 --> 00:27:02,460
where we are capable
1098
00:27:02,489 --> 00:27:05,000
of, you know, extracting
1099
00:27:05,000 --> 00:27:05,950
information faster
1100
00:27:05,950 --> 00:27:06,900
by someone just
1101
00:27:06,910 --> 00:27:07,930
telling, you know, just
1102
00:27:07,950 --> 00:27:08,630
getting to the point.
1103
00:27:09,504 --> 00:27:12,125
Now, we are digitizing,
1104
00:27:12,165 --> 00:27:13,135
digitalizing, and
1105
00:27:13,705 --> 00:27:14,435
aggregating all that
1106
00:27:14,435 --> 00:27:16,105
information in a way
1107
00:27:16,105 --> 00:27:16,625
that you can just
1108
00:27:16,665 --> 00:27:17,515
ask the internet.
1109
00:27:17,935 --> 00:27:20,504
You know, Isaac Asimov,
1110
00:27:21,034 --> 00:27:22,774
famous philosopher, said
1111
00:27:23,834 --> 00:27:25,524
he predicted that the
1112
00:27:25,525 --> 00:27:26,705
internet would exist.
1113
00:27:26,714 --> 00:27:27,495
Not the internet, he
1114
00:27:27,495 --> 00:27:28,765
predicted that a system
1115
00:27:28,925 --> 00:27:31,025
would allow anyone-
1116
00:27:31,025 --> 00:27:31,855
will allow anyone to
1117
00:27:31,855 --> 00:27:32,855
just ask a question
1118
00:27:32,855 --> 00:27:33,935
and this computer
1119
00:27:33,965 --> 00:27:34,605
thing would just
1120
00:27:34,615 --> 00:27:35,545
tell you the answer.
1121
00:27:37,005 --> 00:27:39,205
That today, we thought
1122
00:27:39,224 --> 00:27:40,115
it was the internet,
1123
00:27:41,605 --> 00:27:42,715
but the internet got,
1124
00:27:42,715 --> 00:27:45,825
let's say abused.
1125
00:27:48,415 --> 00:27:49,435
The answer to that
1126
00:27:49,475 --> 00:27:51,085
is not the internet.
1127
00:27:51,295 --> 00:27:52,015
The answer to that
1128
00:27:52,045 --> 00:27:55,335
is Gen AI, but it's
1129
00:27:55,355 --> 00:27:56,705
thanks to the data
1130
00:27:56,745 --> 00:27:57,845
that the internet
1131
00:27:58,054 --> 00:28:00,805
produce, produces, that
1132
00:28:00,825 --> 00:28:01,904
GenNi is capable of
1133
00:28:01,905 --> 00:28:02,784
answering the question.
1134
00:28:02,785 --> 00:28:04,855
So, LLMs, I believe LLM
1135
00:28:04,855 --> 00:28:06,015
is the ultimate answer
1136
00:28:06,015 --> 00:28:09,595
to Isaac Asimov's quote.
1137
00:28:10,085 --> 00:28:12,055
So we developers have to
1138
00:28:12,055 --> 00:28:13,675
be able to, I believe,
1139
00:28:14,630 --> 00:28:16,280
use this as a tool so
1140
00:28:16,280 --> 00:28:17,780
we can develop faster,
1141
00:28:17,810 --> 00:28:21,260
better, and, you
1142
00:28:22,610 --> 00:28:24,410
know, find, maybe
1143
00:28:24,410 --> 00:28:25,430
find that joy again
1144
00:28:25,430 --> 00:28:26,150
in programming.
1145
00:28:26,360 --> 00:28:27,970
You know, I learned
1146
00:28:27,970 --> 00:28:29,396
how to program C++.
1147
00:28:29,550 --> 00:28:30,380
Now, did I
1148
00:28:30,380 --> 00:28:31,250
actually learn how
1149
00:28:31,250 --> 00:28:32,403
to program C++?
1150
00:28:32,493 --> 00:28:33,073
No.
1151
00:28:33,360 --> 00:28:34,340
Any C++ developer
1152
00:28:34,430 --> 00:28:35,190
will say no, where
1153
00:28:35,190 --> 00:28:35,870
he didn't learn.
1154
00:28:35,870 --> 00:28:37,070
You learn how to ask
1155
00:28:37,070 --> 00:28:37,940
good questions on
1156
00:28:37,940 --> 00:28:39,680
ChatGPT and copy paste.
1157
00:28:40,400 --> 00:28:41,755
And I was like, yeah.
1158
00:28:42,355 --> 00:28:43,215
Isn't that what
1159
00:28:43,525 --> 00:28:44,495
programming is at
1160
00:28:44,495 --> 00:28:45,295
the end of the day?
1161
00:28:45,375 --> 00:28:46,725
You know, majority of
1162
00:28:46,725 --> 00:28:47,435
developers do that.
1163
00:28:47,455 --> 00:28:48,255
They go on Google and
1164
00:28:48,255 --> 00:28:49,865
they find an article.
1165
00:28:49,905 --> 00:28:50,485
Then they go and
1166
00:28:50,495 --> 00:28:51,125
read the article.
1167
00:28:51,125 --> 00:28:51,605
They understand
1168
00:28:51,605 --> 00:28:52,054
the article.
1169
00:28:52,054 --> 00:28:52,735
They copy paste.
1170
00:28:52,775 --> 00:28:53,455
It works.
1171
00:28:53,565 --> 00:28:53,905
Done.
1172
00:28:54,145 --> 00:28:54,804
Next problem.
1173
00:28:55,525 --> 00:28:56,565
We humans are like that.
1174
00:28:56,574 --> 00:28:58,404
We tend to search for
1175
00:28:58,464 --> 00:28:59,505
things when we have
1176
00:28:59,505 --> 00:29:00,555
a problem to solve.
1177
00:29:00,685 --> 00:29:04,715
We tend to learn when we
1178
00:29:04,715 --> 00:29:06,075
have the need to learn.
1179
00:29:06,524 --> 00:29:08,064
So, if we can learn
1180
00:29:08,064 --> 00:29:11,894
faster, and AI and LLMs
1181
00:29:11,925 --> 00:29:13,135
allow us to do that,
1182
00:29:13,175 --> 00:29:14,064
then we definitely
1183
00:29:14,165 --> 00:29:15,205
should leverage that.
1184
00:29:15,215 --> 00:29:15,905
So those are my
1185
00:29:15,905 --> 00:29:16,475
two predictions.
1186
00:29:16,504 --> 00:29:17,134
Remote development
1187
00:29:17,134 --> 00:29:18,245
environments and Gen AI
1188
00:29:18,264 --> 00:29:20,764
or LLMs will be a daily
1189
00:29:21,605 --> 00:29:22,934
tool for developers.
1190
00:29:22,975 --> 00:29:23,885
Okay, cool.
1191
00:29:25,315 --> 00:29:26,439
I have my own thoughts
1192
00:29:26,439 --> 00:29:27,610
on that, but for
1193
00:29:27,720 --> 00:29:28,370
the sake of time-
1194
00:29:30,409 --> 00:29:32,830
my- #MyOpinion.
1195
00:29:32,850 --> 00:29:33,360
Exactly.
1196
00:29:35,039 --> 00:29:35,589
Exactly.
1197
00:29:35,979 --> 00:29:36,300
All right.
1198
00:29:36,300 --> 00:29:37,620
I like that.
1199
00:29:37,639 --> 00:29:38,399
I think that is
1200
00:29:38,399 --> 00:29:39,459
a perfect way
1201
00:29:39,459 --> 00:29:40,389
to end the show.
1202
00:29:40,429 --> 00:29:41,639
My opinion.
1203
00:29:41,780 --> 00:29:42,390
Stop that.
1204
00:29:42,690 --> 00:29:44,056
#MyOpinion.
1205
00:29:44,106 --> 00:29:44,780
All right.
1206
00:29:45,950 --> 00:29:46,690
Bruno, thank you
1207
00:29:46,690 --> 00:29:47,400
for being here.
1208
00:29:47,990 --> 00:29:48,560
It was awesome
1209
00:29:48,610 --> 00:29:49,230
to get the chance
1210
00:29:49,230 --> 00:29:49,790
to talk to you.
1211
00:29:49,790 --> 00:29:50,600
It's been a while.
1212
00:29:50,740 --> 00:29:52,570
And for the audience,
1213
00:29:52,570 --> 00:29:53,260
thank you for
1214
00:29:53,290 --> 00:29:54,109
being here as well.
1215
00:29:54,109 --> 00:29:55,439
And you know where
1216
00:29:55,439 --> 00:29:56,320
to find us next week.
1217
00:29:56,410 --> 00:29:57,390
So see you again.
1218
00:30:00,300 --> 00:30:01,080
The Cloud Commute
1219
00:30:01,080 --> 00:30:02,200
Podcast is sponsored by
1220
00:30:02,430 --> 00:30:03,570
Simplyblock, your own
1221
00:30:03,570 --> 00:30:04,520
elastic block storage
1222
00:30:04,530 --> 00:30:05,460
engine for the cloud.
1223
00:30:05,700 --> 00:30:06,810
Get higher IOPS and
1224
00:30:06,820 --> 00:30:08,110
low predictable latency
1225
00:30:08,210 --> 00:30:09,019
while bringing down your
1226
00:30:09,019 --> 00:30:10,110
total cost of ownership.
1227
00:30:10,270 --> 00:30:16,670
www.simplyblock.io