
Thai: 
>> Sean: "Implementation" จริงๆ หมายถึงอะไร
>> DFB: ที่ง่ายที่สุด คุณสามารถพูดได้คือ:
"เขียนโปรแกรมที่จะทำงานนั้น"
แต่แน่นอนว่ามีโครงสร้างพื้นฐานจำนวนมาก
ที่อยู่เบื้องหลังนั่น เมื่อคุณกำลังออกแบบวิธี
โปรแกรมที่จะทำงานหนึ่ง
สิ่งแรกที่คุณต้องคิด อันดับแรกเลย
อะไรคือตรรกะที่เคลื่อนไปข้างหน้าของ
สิ่งที่ผมพยายามทำในโปรแกรม? และ
ประการที่สอง ชนิดของโครงสร้างข้อมูล
อาร์เรย์ โครงสร้าง  อะไรก็ตาม
โครงสร้างพื้นฐานที่จำเป็นในการสนับสนุน
ข้อมูลในขณะที่อยู่ในขั้นตอนกระทำการคืออะไร? และ
ผู้คนที่แตกต่างกันสามารถมีความคิดที่แตกต่างกัน
เกี่ยวกับอะไรคือ Implementation ที่ดีที่สุด 
ผมหมายถึง ตัวอย่างเช่น ที่เราเคยมี รายการเชื่อมโยง
(linked lists) จาก Alex Pinkney
>> AJP: และนี่ชี้ไป NULL เพราะเรา 
เรียกดู NASA แล้ว - อ่าน NASA  -
คลิกที่บทความ Neil Armstrong!
>> DFB: ผมหมายถึงบางคน คลั่งเกี่ยวกับ
linked lists พวกเขาใช้มันสำหรับทุกอย่าง!
 และ ใช่ ผมสร้างขั้นตอนดำเนินการโดยใช้ linked lists

English: 
>> Sean: What does "Implementation" actually mean?
>> DFB: Well, at its simplest, you could say:
"It's writing a program to do it".
But, of course,  there's a lot of infrastructure
behind that. When you're devising a strategy 
a program, to do it one of the first
things you have to think about is, first
of all, what's the logical progression of
what I'm trying to do in the program? And
secondly what kind of data structures
arrays, structures, whatever. What
infrastructure is needed to support all
that data while you're processing it? And
different people can have different ideas
about what the best implementation is. 
I mean, for example, we've had recently from
Alex Pinkney, linked lists. 
>> AJP: And this points to NULL because we're 
browsing NASA and then - read a bit about NASA - 
clicked on the Neil Armstrong article!
>> DFB: I mean, some people are so mad about
linked lists they'd use them for anything! And
so, yes, I implemented it with linked lists

English: 
because it was the right data structure for
this particular thing. And then once you've
got the data structure you say: "Ah! but I felt 
that the best algorithm to use for this
because it's so similar to what he did .... "
Dijkstra's algorithm, you know, finding
your way from A to B, as it were.
So the algorithm and the data structure.
In fact it was, I think, Niklaus Wirth
did a book once called 'Algorithms + Data
Structures = Programs'. So it's down
to saying: "What's your choice of both of
these things? Justify why you did it that
way". And your implementation may differ
from other people's implementations
because they don't agree with you that 
that's the way to do it.
There's no absolute right and wrong. One's
always amazed that what seems to be 
absolutely the definitive way to do it - very
often it doesn't ...  is never proved
completely wrong. But there's always some
little tweak that you can put on the end

Thai: 
เพราะมันเป็นโครงสร้างข้อมูลที่เหมาะสมสำหรับ
สิ่งนี้โดยเฉพาะ และจากนั้นเมื่อคุณได้
มีโครงสร้างข้อมูล คุณบอกว่า: "อ่า แต่ผมรู้สึกว่า! 
นั่น ขั้นตอนวิธีการที่ดีที่สุดที่จะใช้สำหรับการนี้
เพราะมันก็คล้ายกับสิ่งที่เขาทำเลย .... "
อัลกอริทึมของ Dijkstra รู้มั้ย 
การหาทางจาก A ไป B ตามที่มันเป็นน่ะ
ดังนั้นขั้นตอนวิธีและโครงสร้างข้อมูล
ในความเป็นจริง ผมคิดว่า ดั่งที่ Niklaus Wirth
ทำหนังสือครั้งหนึ่งชื่อ 'อัลกอริทึม + 
โครงสร้างข้อมูล = โปรแกรม' ดังนั้นมัน
พูดได้ว่า: "อะไรคือที่คุณเลือกของทั้งสอง
สิ่งนี้? แสดงให้เห็นว่าทำไมคุณทำวิธีนั้น "
และขั้นตอนดำเนินงาน (implementation)ของคุณ
อาจแตกต่างจากขั้นตอนงานของคนอื่น ๆ
เพราะพวกเขาไม่เห็นด้วยกับคุณว่า 
นั่นคือวิธีที่จะทำมัน
ไม่มีทางที่ถูกและผิดที่แน่นอน หนึ่งสิ่งที่
ประหลาดใจได้เสมอ คือ มีอะไรที่น่าจะเป็นสิ่งที่
เป็นอีกวิธีที่แตกต่างที่จะทำงานได้ - โดยมาก
มักจะไม่ได้เป็นแบบนั้น ... คือไม่เคยได้รับการพิสูจน์
ว่าผิดโดยสิ้นเชิง แต่จะมีการปรับแต่งเล็ก ๆ น้อย ๆ
 ที่คุณสามารถใส่ลงไปในท้ายที่สุด

English: 
and you find this in things like coding
theory, y'know, we thought this was the
best way to handle .....
No, somebody came up and said: "Actually
no, the basis of what you've done is
right but why not at the tail-end do it
this way, because that makes no end of difference." 
It's a bit,in a way, like saying Newton
was not wrong -  he just only told part of
the story and Einstein supplied the
rest. And that can so often happen in
programming. Very occasionally you do
get a completely new idea comes along. And
you say: "Hey, we could tear that up and do
it this way". That's once in a very long time. that is.
>> Sean: Is there the equivalent sometimes of somebody
turning up to a Formula 1 track in a tractor ?!
Yes it's going to go around the track
but is it completely unsuitable?" 
>> DFB : To all the wonderful undergrad. students in
Computer Science out there, forgive me.
Yes, certainly sometimes you
look at programs that have been handed in 
and they really are
tractors trying to compete with 
MacLaren Formula 1 cars.

Thai: 
และคุณพบในสิ่งนี้ในสิ่งอื่น เช่น 
ทฤษฎีการเข้ารหัสนะ เราคิดว่านี่เป็น
วิธีที่ดีที่สุดในการจัดการ .....ไม่
มีใครสักคนโผล่มาและกล่าวว่า "อันที่จริง
ไม่ พื้นฐานของสิ่งที่คุณทำคือถูกต้อง
แต่ทำไมไม่ได้อยู่ที่ปลายหาง ทำมันแบบนี้สิ
เพราะทำให้ส่วนท้ายไม่แตกต่างกัน. " 
มันเหมือน ในทางที่ชอบพูดว่า Newton ไม่ผิด
เขาบอกเพียงส่วนหนึ่งของเรื่องราว
และ Einstein ได้จัดส่วนที่เหลือมาให้
และทำนองนั้น สามารถจะเกิดขึ้นใน
การเขียนโปรแกรม บางครั้งที่คุณ
ได้เกิดความคิดใหม่ที่สมบูรณ์มาด้วย และ
คุณบอกว่า: "เฮ้ เราสามารถฉีกมันออกและ
ทำมันด้วยวิธีนี้ ". นั่นคือเกิดหนึ่งครั้งในช่วงเวลาที่ยาวนานมาก
>> Sean: มีบางครั้ง ใครสักคนได้เข้าสู่ลู่
รถ Formula 1 ในสภาพรถแทรกเตอร์?!
ใช่ มันเคลื่อนไปได้ในลู่
แต่มันเป็นเรื่องที่ไม่เหมาะสมอย่างยิ่ง? " 
>> DFB: แด่นักศึกษาปริญญาตรีที่ยอดเยี่ยม
นักเรียนในสาขาวิทยาการคอมพิวเตอร์ ขอโทษนะ
ใช่ แน่นอน บางครั้งคุณ
ดูที่โปรแกรมที่ได้ส่งมา 
และพวกมันเป็นรถแทรกเตอร์จริงๆ
พยายามที่จะแข่งขันกับ รถ
MacLaren Formula 1

English: 
Yeah, they get round, but y'know, in a
very non-optimal way. But sometimes, yes,
sometimes yeah one is amazed and
delighted by the ingenuity that people
can show in their choice of algorithms
and data structures. Something really new.
And, I mean, back to the other video I've
done about "Poetry to
Programming".  A lot of us feel - and somebody
actually said this - was it
Tony Hoare, or Dijkstra, or Don Knuth ... ? 
It is like writing a poem! If you get your
implementation, your program, to work and
you think it's beautiful
you get a great sense of satisfaction.
and somebody does ... somebody out there tell
me who it is?. Somebody does call their
completed programs 'poems'.
As we well know. Yeah! I know the feeling.
Turing was a shocker for wanting to do it even
though it had been done before. And
finding it all out for himself. Because he
didn't want the grooves in his mind to be
polluted by knowing how other people
had done it. Now that's fine, but at the
end, when you've done it, you've got to

Thai: 
ใช่ พวกมันวิ่งได้รอบ แต่รู้มั้ย 
สภาพมันไม่ค่อยเหมาะสม แต่บางครั้ง ใช่
บางครั้ง ใช่ บางคนทำให้ได้ประหลาดใจ
และยินดีโดยความฉลาดเฉลียวที่คน
สามารถแสดงในทางเลือกของอัลกอริทึม
และโครงสร้างข้อมูล บางสิ่งนั้นใหม่จริงๆ
และผมหมายถึง กลับไปที่วิดีโออื่น ๆ ที่ผมได้
ทำเกี่ยวกับ "บทกวีสู่การเขียนโปรแกรม "
เราส่วนมากรู้สึก - และใครสักคน
กล่าวสิ่งนี้จริงๆ ว่า - มันเป็นแบบนั้น
Tony Hoare หรือ Dijkstra หรือ Don Knuth... ? 
มันก็เหมือนการเขียนบทกวี! ถ้าคุณได้ทำ
โปรแกรมของคุณให้ทำงานได้ และ
คุณคิดว่ามันสวยงาม
คุณจะได้รับความรู้สึกที่ดีของความพึงพอใจ
และบางคนเป็นเช่นนั้น ... ใครสักคนข้างนอกบอกผม
เป็นใครกัน ?. ใครบางคนจะเรียก
โปรแกรมที่เสร็จแล้วของเขา ว่า 'บทกวี'
ในฐานะที่เรารู้จักกันดี ใช่ ผมรู้จักความรู้สึกนั้น
Turing เป็นผู้เขย่าขวัญ เมื่อต้องการที่จะทำมันให้ดียิ่ง
แม้ว่ามันจะเคยทำมาก่อน และ
หาทางทำมันทั้งหมดเพื่อตัวเขาเอง เพราะว่าเขา
ไม่ต้องการร่องในใจของเขาที่จะเป็น
เหมือนมลทินโดยได้รู้ว่าคนอื่น ๆ
ได้ทำมันมาแล้ว ตอนนี้ นั่นโอเค แต่ใน
ท้ายสุดเมื่อคุณได้ทำมันเสร็จ คุณได้

Thai: 
พูดว่า: "มีใครเคยทำมันแตกต่างจากนี้
มาก่อนหรือไม่ "และคุณได้ทำได้แล้ว
Turing เป็นผู้เขย่าขวัญที่ได้ทำมัน
ด้วยวิธีเขาเอง และไม่ได้ตรวจสอบว่าใคร
เคยทำมาก่อน ถ้าคุณจำได้ ว่าเขามี
ทุนของเขา [ที่คิงส์คอลเลจ เคมบริดจ์] กับ
การคิดแก้ปัญหา
และเขาไม่ได้ตระหนักถึงจนกระทั่งเขาทำมันเสร็จ เพราะ
เขาไม่ต้องการที่จะดูว่า
มีคนอาจจะทำมันได้!
พวกเขาให้ทุนแก่เขาอยู่แล้วล่ะ แต่เขา
พบว่ามันเคยทำมาเมื่อสี่ปีก่อน
แต่ที่จริงแล้ววิธีการของเขาเอง มีดีบางอย่าง
ปรับแต่งเล็ก ๆ น้อย ๆ ในนั้น และครูของเขาคิดว่า:
"นั่นเป็นเรื่องดีที่ปรับแต่งเป็นพิเศษเล็ก ๆ น้อย ๆ
ที่คุณได้ทำนั่น - มันคุ้มค่า "!
>> Sean: ดังนั้น Implementation: บางครั้งคุณ
ประดิษฐ์ล้ออีกครั้ง; บางครั้งก็ไปตามทางของตัวเอง? "
>> DFB: ใช่ นั่นแหละ ใช่เลย
บรรยายไทยโดย ytuaeb sciencemath

English: 
say: "Has anybody done it differently
before?" And you've then got to take stock.
Turing was a bit of a shocker for doing it
his way and not checking whether anybody
had done it before. If you remember he got his
Fellowship [at King's College Cambridge] with
tackling a problem
and he didn't realize until he'd done it. Because
he didn't want to look at how the people might
have done it!
They give him the Fellowship anyway but he
found it had been done four years earlier.
But actually his way had some nice
little tweaks in it.  and his tutor thought: 
"That's nice that little extra tweak
you've done there - it's worth it!"
>> Sean: So, Implementation: sometimes you re-invent
the wheel; sometimes just go your own way?"
>> DFB: Yes, that's right. Yeah! 
