Placeholder Image

字幕表 動画を再生する

  • >> Sean: What's the newest language you use? >> BWK: I would say the newest language I use is

  • Go, and that is sort of 10 years old at this point. Languages last longer than you think.

  • Fortran, which dates from the late 50s, is still very much alive and still very

  • much used by a lot of people, as is COBOL.

  • Algol lives on in its derivatives; Basic lives on its derivatives. So all these

  • languages never die, but then there are brand new languages that come along. I

  • think that of languages that anybody might have heard of that I use today,

  • yeah, Go would probably be the newest. I have experimented with other languages

  • briefly, mostly to try and understand them just enough that I can say

  • something in class. Rust is newer than C [Go] but not enormously so, so I've done that.

  • Scala -- I don't even remember the dates but it's, call it contemporaneous

  • with Go. I've done one program in that, one in Lua. I -- newer languages like

  • Kotlin, no, I've never tried. Sorry, I'm a late follower, not an early adopter.

  • >> Sean: Any functional stuff? I've seen your views on functional before but it'd be interesting to capture.

  • >> BWK: Yeah. Functional languages are really really important, I think,

  • because what they are - have proven to be - is a proving ground for ideas in

  • programming. So a lot of the things that we take for granted in modern languages --

  • mainstream languages, mainstream compiled languages like, let's say, C++ or Java or

  • Go, whatever. Many of the good ideas, the new ideas in those, came from functional

  • languages. For example, recursion originally is a Lisp idea and it shows

  • up everywhere. Functions as first-class citizens, pattern matching kinds of things --

  • all of these show up in functional languages and then move into the

  • mainstream in some way. I have never gotten over the hurdle of really

  • internalizing a functional language well. I have tried Haskell. It was a desperate,

  • desperately bad time. It took me two weeks to write a program that took me

  • probably an hour to write in Lua, another language I had never tried in my life. I

  • am not cut out; there's something wrong between my brain and Haskell. I can't

  • do it. But that's not to say that Haskell is a bad idea; it has many neat ideas and

  • it undoubtedly is providing something that will help people in the future in

  • programming. But I think mainstream use is probably always going to be dominated

  • by the more conventional compiled, imperative sorts of languages. >> Sean: The chap

  • who asked the question about newest language goes on to say what would you

  • like to see created, which I think is a tricky thing but, you know, what would you

  • take the best of from, and is there a way to answer that? >> BWK: I think the way I

  • would answer it is to say that in many cases the way we make progress in all

  • of these language-related things is when we get to the stage where what we're

  • trying to say is so mechanical you can almost say it mechanically. And once you

  • get to that stage and we say, well let's mechanize it so we'll add something

  • whether it's a language or a library or something like that, so that a whole

  • class of things that used to require us to do it over and over again have now

  • become something where you have a specification, or a very simple language,

  • and the language is taking care of a lot of it. That has the advantage you

  • understand it better. It's much more likely to be right if a computer is

  • doing it for you. And it's probably easier to teach it to other people as

  • well. And sometimes those languages are declarative, sometimes they're procedural,

  • but fundamentally I think that's the way we make progress: we understand more of

  • it what it is we want to do and how to express how to do that, and then we put

  • that into a program; we mechanize it. >> Sean: John Read asks: "If you could start from

  • scratch today and build a new processor architecture and operating system with what

  • we know today, where would you begin and what would it look like?" >> BWK: I would begin by

  • getting somebody who actually knows what that's all about. Sorry. I mean, it's true;

  • it's not my thing, I'm no expert. >> Sean: it's fair answer and he goes on to ask a

  • second question: "Will block-based drag-and-drop programming like Scratch

  • eventually replace traditional text-based programming?" >> BWK: That I at least

  • have opinions on. I think the answer is 'no'. I played briefly with Scratch or

  • at least a derivative. There was a program or a system that Google

  • provided called App Inventor. The idea was that it was basically

  • Scratch but with primitives that made it possible to build Android apps very

  • easily. And my experience with it was that for anything that fit within the

  • model for which they had provided the blocks [it] was perfectly fine but very, very,

  • very clunky. I tried to build something that would navigate around a building,

  • for example, and doing a distance computation with blocks was just -- you had

  • this much block to say give me the square root of x squared plus y squared.

  • It was hopeless. So I think using languages like Scratch as they were

  • constituted when I did this -- this was a while ago, so maybe it's moved on -- but I

  • think the problem with them is it's trying to ... sort of like trying to get to

  • the moon by climbing a tree. You know, the first 10 or 20 feet is really good. Now

  • you're stuck!. Can't get anywhere. I think the same thing is true. Now that's

  • for me as a sort of professional programmer trying to do things. As a way

  • to introduce programming to kids -- absolutely great. There's amazing stuff that people

  • do with Scratch and languages like that. Could you do something that would use

  • the block space part as something that is a nice way to get started with aspects

  • of it, and then extend it in other ways? That's what I was trying to do when I

  • was playing with App Inventor and it just, it foundered on the technology there.

  • But I think something like that might be useful. So they have their place but it's

  • not gonna replace other languages. >> Sean: What do you think about -- this is such a wide

  • wide brief -- what do you think about the future of computer science? Will the

  • manipulating bits era become obsolete in a few years or basics will never change?

  • >> BWK: I think basics will always be there; in some sense we will always have to worry

  • about how much memory we have, how much processor time we have. We'll have to

  • worry about whether the programs are correct or not, whether they're safe and

  • secure or not, so all of that is going to be with us I think in perpetuity, and I

  • think and, as a nominally computer science educator, that's something that

  • we want to make sure those so that students in computer science courses,

  • let's say at university, should actually understand the basics at that point. They

  • should understand how the machines work, what the limitations and realities are

  • of making them do things. They should also understand

  • some of the theoretical limitations: some things are hard to compute intrinsically

  • and that's important and sometimes useful. So all of that kind of thing is

  • going to be there. So let's call that core computer science. And then there's

  • all the things that computer science gets applied to, and that's the place

  • where all the growth is in some sense. I used to say to students in one of my

  • classes for non-technical people, "I don't care what your major or field is; you'll

  • find a use for computing, unless maybe you're a religion major". And then I

  • realized this is nonsense -- religion majors do really, really interesting

  • analysis of texts written in ancient languages and they did the same kind of

  • authorship questions that showed up in more recent issues like the Federalist

  • Papers. All of these kinds of things. So I don't care what your field is; it has

  • computing in it, the more you know about that the better off you'll be able to do

  • things in your field. >> Sean: that's a fantastic answer. I'm gonna ask you on the silly

  • ones now. What is the proper way to pronounce caramel? Is it 'car-mel' or

  • 'car-a-mel? >> BWK: I think it's a three syllable word, 'caramel', to me, but I think so.

  • I don't know now that you asked me. >> Sean: Not necessarily silly ones but very difficult

  • to answer in a concise way: "What are your favorite books or what are your top few

  • books?" This came up a couple of times. >> BWK: Yeah. When I think about what I read and

  • let's call it reading for pleasure as opposed to reading for work. I think what

  • I find myself reading mostly is either junky detective stories. One of the

  • wonderful things about spending time in England is charity shops. There are

  • charity shops everywhere in every town, no matter how big or small, and you can

  • go in there and buy for a pound a really really interesting junky detective story

  • that you hadn't read already. And then in the next town, having read it, you drop it

  • off at the charity shop and pick up a new one. So I read a lot of those kinds

  • of things, probably half to two-thirds by British authors and the rest by American

  • authors. So I read those. The other thing that I read, and probably this is

  • more at home, tends to be history of one sort or another.

  • The Princeton library has a great collection of history books and so I

  • find myself reading that. Reading things on the Second World War just before I

  • left. I'm carrying a copy of 'A Distant Mirror' which Barbara Tuchman wrote years

  • ago about the calamitous era of the 14th century and so on, which has a lot of

  • English and French and Crusades. So lots of these things -- that's, that's what

  • I read for fun as opposed to for work. I think I don't do very much reading of

  • technical books, other than occasionally I will buy a book on something like: "How

  • do you use React?", or "How do you program for Androids?", or I got one on OCaml

  • recently because in spite of saying I don't know anything about functional

  • languages, I figure I ought to learn something and unfortunately I'm not sure

  • I've opened it yet. So technical books, I know I don't read as much as I probably should.

>> Sean: What's the newest language you use? >> BWK: I would say the newest language I use is

字幕と単語

ワンタップで英和辞典検索 単語をクリックすると、意味が表示されます

A2 初級

Brian Kernighan Q&A 2/3 - Computerphile (Brian Kernighan Q&A 2/3 - Computerphile)

  • 3 0
    林宜悉 に公開 2021 年 01 月 14 日
動画の中の単語