Ask HN: What's your favorite tech talk? - <AUTHOR> Simply put, what are your favorite talks or trainings? It could by a one-off lecture about a specific concept or a series of talks about a language. Maybe it's a TED talk or a session from a con.  Either way, what's that one talk that changed the way you think and you feel everyone needs to see? <comment><USER3> _grin_ Here we go...

For "laughing at ourselves" and oddities of computer languages, there is "Wat" by Gary Bernhardt: [https://www.destroyallsoftware.com/talks/wat](https://www.destroyallsoftware.com/talks/wat)

For an opinion on the Sun to Oracle transition, there is "Fork Yeah! The Rise and Development of illumos" by Bryan M. Cantrill, Joyent. His Larry Ellison rant makes me smile: [https://youtu.be/-zRN7XLCRhc?t=33m00s](https://youtu.be/-zRN7XLCRhc?t=33m00s)

<comment><USER4> Oh god yes. And from the Manta talk, to paraphrase:

 _I believe that if you talk about Oracle without going into Nazi allegory, than some understanding has been left on the table. In fact, I firmly believe that if you were talking to someone who hadn 't heard of WWII but was an Oracle customer, that you would explain the Nazis to them in Oracle allegory:_

 _Wow. Really?_

 _Yes, it 's true: Larry Ellison owned a whole country_

 _Oh god! The humanity! Just imagine the licences on that thing_

 _I know, it was terrible dude, just ask Poland_

Also, for another excellent talk by Bernhardt, this time about the differences in philosophy between Python and Ruby, which gives a very fair critique of them both: [https://vimeo.com/9471538](https://vimeo.com/9471538).

<comment><USER5> I worked for Oracle Social as a software engineer for some Facebook Pages WYSIWYG application, and this is their business model - as explained to me - when I asked, "Who is going to be buying our product?"

My manager: "Oh, so we have all of these enterprise customers that purchase software from us. Basically, they are presented with a list of all of our various enterprise applications [FYI, there's a TON of them] with check boxes next to each one. Our application licenses are sold using a subscription model. Most companies don't bother reading the list and just pay for everything, which will include ours."

WTF? I wrote some of the Ruby on Rails code for the application my team was working on. Also, this was in 2012; Facebook Pages had just been released, and no one even understood why a "Page" was the name given to a concept in which businesses could establish Facebook accounts in order to promote their brand and products, but a "Page" contained multiple "web pages" of content within the larger "Page" object.

In short, our product sucked at every level and even I, a member of the development team, didn't know how to use it. But because it was on the almighty "Product List", it added millions of dollars to Oracle's net income, despite the fact that I'm guessing hardly any customer knew what it was, let alone knew how to use it.

I resigned shortly after the first release, so I have no idea what happened to the product or how long it remained an official Oracle enterprise software application, appearing on the "Product List".

While it was nice being 26 years old and making a $70,000 salary, receiving a nearly-guaranteed $10,000 annual bonus, having a 401k package with company- matched contributions, getting full healthcare benefits which included a FSA, and being able to order all of the free snacks and beverages that one could think of simply by telling the secretary to add them to the supply list . . . I just couldn't work at a place where innovation didn't matter, the customer didn't matter, and even the product didn't matter. Not to mention that, after having worked there, with 100 other people, for 3 months, maybe 10 people knew my name (and my product team consisted of 8 people - I'm only including 5 of them in the 10). I happened to discover one day that I was the youngest employee there, and I'm pretty sure that people didn't like me based on that fact alone.

Oh well, I applied for a similar job at a digital marketing agency down the street the next week, and soon thereafter, began working again, now earning a salary which was $10,000 greater than what I made at Oracle (and which included all of the same benefits).

<comment> joatmon-snoo As a univerity senior, thank you for this. Oracle was already low on my list of companies to apply to for a full-time job, and this put the nail in that coffin.

<comment><USER6> If you're in the Seattle area, you still might want to consider Oracle Cloud (I don't work there). They've poached a shit-ton of senior AWS engineering talent, and from what I hear they're developing a kickass product.

</comment></comment></comment></comment></comment><comment><USER7> "The Last Lecture", by Randy Pausch. While it's by a well-known CS professor (who was dying of cancer at the time), it's not a technical talk, but about life and work, and how to make the most of it. One of the most inspiring things I've ever seen.

[https://www.youtube.com/watch?v=ji5_MqicxSo](https://www.youtube.com/watch?v=ji5_MqicxSo)

Another fantastic one is Steve Jobs' 2005 commencement address at Stanford:

[https://www.youtube.com/watch?v=UF8uR6Z6KLc](https://www.youtube.com/watch?v=UF8uR6Z6KLc)

<comment><USER8> The talks are awesome. I still downvoted this, because I consider it off topic. Sorry.

<comment><USER9> And I upvoted you for explaining why you downvoted it. No point downvoting you. Comparing the end results of both, we only have a higher chance of a net benefit by upvoting you, regardless of whether I agree with you or not. I hope the rest of the HN community also takes this approach before voting.

</comment></comment></comment><comment><USER10> By far my favorite talk is and has been for a very long time Bret Victor's inventing on principle, for me, nothing comes close, except for some of his other work I suppose.

[https://vimeo.com/36579366](https://vimeo.com/36579366)

<comment><USER11> Agreed.

Was gonna post this if it wasn't up already.

After this, The Birth and Death of Javascript: [https://www.destroyallsoftware.com/talks/the-birth-and- death...](https://www.destroyallsoftware.com/talks/the-birth-and-death-of- javascript)

He could've taken the concept further tho. I think there are real hardware simplifications you could do if the OS is a jitting VM - no memory mapping unit and take out the expensive fully-associative TLBs.

<comment><USER12> I always have trouble when telling people in person to go watch this - <USER2> should I pronounce the "J" in Javascript?

 __* SPOILER ALERT, and seriously go watch it first __*

If I pronounce "J" I do him an unjustice, and if I pronounce "Y" I ruin a great surprise that comes quite a few minutes into the talk.

<comment><USER13> I always go with the "J" pronunciation. It maintains the expectation that the talk makes a joke out of by breaking. I would rather give everyone that first time experience of hearing the "Y" pronunciation than do Gary an injustice.

</comment></comment></comment></comment><comment><USER14> Rich Hickey "Simple Made Easy" [https://www.infoq.com/presentations/Simple- Made-Easy](https://www.infoq.com/presentations/Simple-Made-Easy)

<comment><USER15> His "Hammock Driven Development" talk is good too:

[http://jugad2.blogspot.in/2016/03/tech-video-rich-hickey- ham...](http://jugad2.blogspot.in/2016/03/tech-video-rich-hickey-hammock- driven.html)

A couple of comments there by me.

</comment></comment><comment><USER4> Linus Torvalds on Git. It's funny, and it really does tell you a lot about why Git is the way it is.

Bryan Cantrill's 2011(?) Lightning talk on ta(1). It's fascinating, but it also shows you just long-lived software can be.

Randall Munroe's Talk on the JoCo cruise. Because it's effing hilarious, and teaches everybody the important art of building a ball pit inside your house.

Finally, an honorable mention to three papers that don't qualify, but which I think you should read anyway.

 _Reflections on Trusting Trust_ : This is required reading for... Everybody. It describes a particularly insidious hack, and discusses its ramifications for security.

 _In the Beginning Was The Command Line_ : If you want get into interface design, programming, or ever work with computers, this is required. It's a snapshot of the 90's, a discussion of operating systems, corporations, and society as we know it. But more importantly, it's a crash course in abstractions. Before you can contribute to the infinite stack of turtles we programmers work with, you should probably understand why it's there, and what it is.

Finally, The Lambda Papers. If you've ever wondered how abstractions work, and how they're modeled... This won't really tell you, not totally, but they'll give you something cool to think about, and give you the start of an answer.

<comment><USER16> > "Finally, an honorable mention to three papers that don't qualify, but which > I think you should read anyway."

If we're going for papers, then I'm guessing books are allowed too. If so, for anyone interested in giving themselves a grounding in the fundamentals, it's worth checking out Code by Charles Petzold. I've been going through it, it's excellently written, and has helped me fill in gaps in my understanding of how computers work.

[https://www.amazon.co.uk/Code-Language-Computer-Hardware- Sof...](https://www.amazon.co.uk/Code-Language-Computer-Hardware- Software/dp/0735611319)

<comment><USER4> SICP, Land of Lisp, Exploding the Phone, and The Cuckoo's Egg, while I haven't finished all of them, were all instrumental in making me who I am today.

</comment></comment></comment><comment><USER17> > what's that one talk that changed the way you think and you feel everyone > needs to see?

Growing a Language by Guy Steele.

[https://www.youtube.com/watch?v=_ahvzDzKdB0](https://www.youtube.com/watch?v=_ahvzDzKdB0)

<comment><USER18> This is a great talk, but what he was advocating never came to pass. He wanted to add 3 things to Java:

        - operator overloading
        - small value types on the stack (for vectors, rationals, etc.)
        - generic types

Generic types are the only feature that made it (not without some controversy).

C++ has all three features. I suppose there is some success in games and graphics using overloaded operators on vector types. But otherwise it doesn't seem like a huge win, or something that is critical for the design of a language.

Python has operator overloading. I never really use it, but I guess it did allow NumPy and Pandas to exist. And TensorFlow uses it.

Perhaps it boils down to the fact that Java is more of a business language, and C++ and Python have more mathematical applications, which require richer algebraic expressions of many types. But I suppose if Java had gotten operator overloading, it may have been used more for scientific computing.

Perl 6 and Racket seem to be the languages that really allow creating your own language. But actually I heard Larry Wall say that they want to provide so many little languages within Perl 6 that users don't need to invent their own. Because this often makes it harder for others to read your program.

<comment><USER19> Value types is coming to Java 10, and Guy Steele is one of guys making it happen.

[http://cr.openjdk.java.net/~jrose/values/values-0.html](http://cr.openjdk.java.net/~jrose/values/values-0.html)

</comment></comment></comment><comment><USER20> I see a couple of Bret Victor videos here, but the one I loved the most was "The Future of Programming": [https://vimeo.com/71278954](https://vimeo.com/71278954)

Really set me on a path of re-examining older ideas (and research papers), for applications that are much more contemporary. Absolute stunner of a talk (and the whole 70's gag was really great).

"What would be really sad is if in 40 years we were still writing code in procedures in text files" :(

<comment><USER21> I really liked the message of each generation of programming considers the next "not real programming". It makes me reconsider the pushback against node- esque micro-packages: [http://www.haneycodes.net/npm-left-pad-have-we- forgotten-how...](http://www.haneycodes.net/npm-left-pad-have-we-forgotten- how-to-program/). Maybe this is just the next logical evolution of programming.

</comment></comment><comment><USER22> Some previous posts:

"Ask HN: What are your favorite videos relevant to entrepreneurs or startups?" -> [https://news.ycombinator.com/item?id=7656003](https://news.ycombinator.com/item?id=7656003)

"Ask HN: Favorite talks [video] on software development?" -> [https://news.ycombinator.com/item?id=8105732](https://news.ycombinator.com/item?id=8105732)

</comment><comment><USER23> Pretty much anything by David Beazley or Bryan Cantrill

Discovering Python (David Beazley)

[http://pyvideo.org/pycon-us-2014/discovering- python.html](http://pyvideo.org/pycon-us-2014/discovering-python.html)

David finds himself in a dark vault, stuck for months sifting through deliberately obfuscated pile of old code and manuals. All seems lost, but then he finds Python on a vanilla Windows box.

Fork Yeah! The Rise and Development of Illumos (Bryan Cantrill)

[https://www.youtube.com/watch?v=-zRN7XLCRhc](https://www.youtube.com/watch?v=-zRN7XLCRhc)

History of Illumos, SunOS, Solaris, the horribleness of Oracle

These are not technical, but they are entertaining.

<comment><USER24> I'd also add Raymond Hettinger's talks on Python with my favorite one being this famous one:

Beyond PEP 8 - Best practices for beautiful intelligible code

[https://www.youtube.com/watch?v=wf- BqAjZb8M](https://www.youtube.com/watch?v=wf-BqAjZb8M)

</comment></comment><comment><USER25> Y Not - Adventures in Functional Programming by Jim Weirich [https://www.youtube.com/watch?v=FITJMJjASUs](https://www.youtube.com/watch?v=FITJMJjASUs)

The Coming Civil War over General Purpose Computing by Cory Doctorow [http://boingboing.net/2012/08/23/civilwar.html](http://boingboing.net/2012/08/23/civilwar.html)

Cybersecurity as Realpolitik by Dan Geer [https://www.youtube.com/watch?v=nT- TGvYOBpI](https://www.youtube.com/watch?v=nT-TGvYOBpI) [http://geer.tinho.net/geer.blackhat.6viii14.txt](http://geer.tinho.net/geer.blackhat.6viii14.txt)

<comment><USER26> I'll second "Y Not" by Jim Weirich. It's just such a charming talk. My programming teacher in high school was like that, and I think it's such an excellent way to teach. From the careful way he meanders to the solution to the fact it was a live coding session really grounds the explanation of how the Y combinator works.

<comment><USER4> To Dissect a Mockingbird is even better, though...

</comment></comment></comment><comment><USER27> Alan Kay is my favorite tech curmudgeon.

1) Alan Kay: _Is it really "Complex"? Or did we just make it "Complicated"_ [https://www.youtube.com/watch?v=ubaX1Smg6pY](https://www.youtube.com/watch?v=ubaX1Smg6pY)

Take note that he is not giving the talk using Window & PowerPoint, or even Linux & OpenOffice. 100% of the software on his laptop are original products of his group. Including the productivity suite, the OS, the compilers and the languages being compiled.

2) Bret Victor: _The Future of Programming_ [https://www.youtube.com/watch?v=IGMiCo2Ntsc](https://www.youtube.com/watch?v=IGMiCo2Ntsc)

<comment><USER28> Note that Alan Kay's talk is freely (?) downloadable at [https://vimeo.com/82301919](https://vimeo.com/82301919) (linked in the YouTube video)

</comment></comment><comment><USER29> Bret Victor - Inventing on Principle [https://vimeo.com/36579366](https://vimeo.com/36579366)

We can argue on some of the points he makes but we can all agree that the demos are very impressive.

</comment><comment><USER30> Hans Rosling's original Ted talk, which has so much passion about data visualisation and making information accessible - [http://www.ted.com/talks/hans_rosling_shows_the_best_stats_y...](http://www.ted.com/talks/hans_rosling_shows_the_best_stats_you_ve_ever_seen)

</comment><comment><USER31> Simple made easy is my favorite but I'd also just generally recommend everything by Rich Hickey, Gary Bernhardt, and Jonathan Blow.

<comment><USER32> Agree. I've watched a ton of talks over the years on a variety of topics/technologies, and Simple made Easy just feels like a classic, and is timelessly relevant.

</comment></comment><comment><USER33> Raymond Hettinger's talk about good code reviews -- [https://www.youtube.com/watch?v=wf- BqAjZb8M](https://www.youtube.com/watch?v=wf-BqAjZb8M)

Carmack's talk about functional programming and Haskell -- [https://www.youtube.com/watch?v=1PhArSujR_A](https://www.youtube.com/watch?v=1PhArSujR_A)

Jack Diederich's "Stop Writing Classes" \-- [https://www.youtube.com/watch?v=o9pEzgHorH0](https://www.youtube.com/watch?v=o9pEzgHorH0)

All with a good sense of humor.

<comment><USER34> Yes, RH's Beyond PEP8 is great, even if you don't do Python. Will put the others in my queue.

I'm reminded of Crockford's "Good Parts" of Javascript, I believe where he introduced me to the "Mother of all Demos."

<comment><USER35> Everything I've seen by Crockford is great!

</comment></comment></comment><comment><USER36> My current favorite is Jake Archibald's offline-first progressive web apps talk at Google I/O 2016: [https://www.youtube.com/watch?v=cmGr0RszHc8](https://www.youtube.com/watch?v=cmGr0RszHc8)

It's a terrific window into the future of web application development.

<comment><USER37> Every talk from Jake Archibald is insightful and entertaining. His talks about offline caching were hilarious.

</comment></comment><comment><USER38> Peter Norvig on the "Unreasonable Effectiveness of Data" [https://www.youtube.com/watch?v=yvDCzhbjYWs](https://www.youtube.com/watch?v=yvDCzhbjYWs)

I think it is so easy for us to discuss the impact of big data and quickly get into the weeds, but I think in this talk Norvig does an especially great job in making you truly appreciate the seismic impact that the availability of massive quantities of data can have on your way to think about problems. This is one of the first things I ever saw of him, and I've been in love ever since.

</comment><comment><USER39> Richard Hamming's You and your research.

[https://youtu.be/a1zDuOPkMSw](https://youtu.be/a1zDuOPkMSw)

</comment><comment><USER40> Lexical Scanning in Go by Rob Pike

[https://www.youtube.com/watch?v=HxaD_trXwRE](https://www.youtube.com/watch?v=HxaD_trXwRE)

I love everything about this talk. It walks you through building a lexer from scratch in a simple and elegant way, through a very interesting use of coroutines. I appreciate the bits of humor in the talk as well.

<comment><USER4> Rob Pike is far more pleasant than his acolytes (for lack of a better word). Pike makes me want to clap: cat-v makes me want to vomit. It's the DJB people with none of the charm.

</comment></comment><comment><USER41> Jon Blow's "How to program independent games": [https://www.youtube.com/watch?v=JjDsP5n2kSM](https://www.youtube.com/watch?v=JjDsP5n2kSM)

It's about much more than games. To me, it's about identifying and not doing unnecessary work.

The second half of this video is a Q&A session, which I would skip.

</comment><comment><USER42> Linus Torvalds talk about git

[https://www.youtube.com/watch?v=4XpnKHJAok8](https://www.youtube.com/watch?v=4XpnKHJAok8)

<comment><USER43> Was going to post the same one. Great talk!

</comment></comment><comment><USER44> I already see a bunch of people posting and upvoting Bret Victor's "Inventing on Principle", but I think his "Media for Thinking the Unthinkable" is better.

[https://vimeo.com/67076984](https://vimeo.com/67076984)

</comment><comment><USER45> These aren't necessarily my absolute favorite talks, but they're great mind- altering talks a little off the beaten path so I'd like to highlight them:

"Writing A Thumb Drive From Scratch" by Travis Goodspeed - [https://www.youtube.com/watch?v=D8Im0_KUEf8&nohtml5=False](https://www.youtube.com/watch?v=D8Im0_KUEf8&nohtml5=False)

Excellent talk on the hardware side of security, goes into some really cool theoretical hard disk defense stuff, _incredibly_ insightful and introduces a hardware security tech toy so fun you'll want to go out and order it the moment you're done watching. The speaker is entertaining as all heck to boot.

"Programming and Scaling" by Alan Kay - [https://www.youtube.com/watch?v=YyIQKBzIuBY&nohtml5=False](https://www.youtube.com/watch?v=YyIQKBzIuBY&nohtml5=False)

Interesting talk on the theoretical limits of code size and engineering versus tinkering. Also talks a lot about Alan Kay's philosophy of computer science which analogizes systems to biological systems, which are the systems with the largest proven scaling on the planet.

"The Mother Of All Demos" by Douglas Engelbart - [https://archive.org/details/XD300-23_68HighlightsAResearchCn...](https://archive.org/details/XD300-23_68HighlightsAResearchCntAugHumanIntellect)

This talk is so prescient you won't believe your eyes. Given in 1968, Douglas demonstrates just about every major computing concept in use today on a modern machine, along with some ones that are still experimental or unevenly distributed such as smooth remote desktop and collaborative editing.

</comment><comment><USER46> Right now it's Boundaries, by Gary Bernhardt. He details the importance of separating out pure business logic from the plumbing code that brings it input and directs its output ("functional core, imperative shell").

[https://www.destroyallsoftware.com/talks/boundaries](https://www.destroyallsoftware.com/talks/boundaries)

<comment><USER47> I think Gary was way ahead of the industry when he did this talk in 2012. Today it's common to look at Erlang, Haskell and other good but previously unpopular languages and retrofit their ideas to your language of choice (or build something like Elixir/Kotlin/Swift). But back then Ruby/Python/Java/etc devs would usually not look at anything else because functional programming was only something you might have heard in university and OOP was clearly the only way to build practical software.

For me this talk was especially great as he only explains the problems, possible solutions and their trade-offs and leaves the (clear?) conclusion to the audience instead of shoving "you should really use X because it's awesome" down their throat.

<comment><USER48> > I think Gary was way ahead of the industry when he did this talk in 2012. > Today it's common to look at Erlang, Haskell and other good but previously > unpopular languages and retrofit their ideas to your language of choice (or > build something like Elixir/Kotlin/Swift). But back then > Ruby/Python/Java/etc devs would usually not look at anything else because > functional programming was only something you might have heard in university > and OOP was clearly the only way to build practical software.

Ruby and Python were incorporating things from FP long before 2012; the idea that Ruby and Python were pure-OOP and not following inspiration from languages with other primary paradigms before that is simply historically inaccurate, Ruby and Python were never dominated by OOP-is-the-one-true-way philosophy.

<comment><USER47> I'm not talking about superficial syntax like map/filter for collections. The notion of keeping the majority of your code side-effect-free with immutability, built-in concurrency and message-passing as idiomatic parts of the language/ecosystem is to this day uncommon and partially impossible in Python/Ruby.

[http://blog.jenkster.com/2015/12/what-is-functional- programm...](http://blog.jenkster.com/2015/12/what-is-functional- programming.html)

</comment></comment></comment></comment><comment><USER49> The mother of all demos by Douglas Engelbart [https://www.youtube.com/watch?v=yJDv- zdhzMY](https://www.youtube.com/watch?v=yJDv-zdhzMY)

How I met your girlfriend: [https://www.youtube.com/watch?v=O5xRRF5GfQs&t=66s](https://www.youtube.com/watch?v=O5xRRF5GfQs&t=66s)

<comment><USER50> I had the pleasure of working with Samy back at Fonality (my first job!) He's such a cool, smart, and just all around amazing dude. Anything he does is always fun, interesting, and hacker-ish.

</comment></comment><comment><USER51> Wat: [https://www.destroyallsoftware.com/talks/wat](https://www.destroyallsoftware.com/talks/wat)

</comment><comment><USER52> Big fan of Rich Hickey. I found most of his talks really great, and applicable beyond the Clojure universe. My favorites: "Are we there yet?" and "Simple made Easy".

<comment><USER53> Simple Made Easy is one of those talks that never gets old to me. Never heard anyone talk about the power of reducing complexity in such a clear way.

Here's the link for those who are interested. [https://www.infoq.com/presentations/Simple-Made- Easy](https://www.infoq.com/presentations/Simple-Made-Easy)

<comment><USER31> This is my favorite. I also really like hammock-driven development ([https://www.youtube.com/watch?v=f84n5oFoZBc](https://www.youtube.com/watch?v=f84n5oFoZBc))

</comment></comment></comment><comment><USER54> Propositions as Types: [https://www.youtube.com/watch?v=IOiZatlZtGU](https://www.youtube.com/watch?v=IOiZatlZtGU)

I think this can really really change how we look at everyday programming tasks everywhere from the type of tooling we choose to how we approach problems.

</comment><comment><USER12> "The Birth and Death of Javascript" by Gary Bernhardt (probably the most talented speaker on tech) at [https://www.destroyallsoftware.com/talks/the- birth-and-death...](https://www.destroyallsoftware.com/talks/the-birth-and- death-of-javascript)

I'd mention Bret Victor's work before (maybe Drawing Dynamic Visualizations?), but Bret cheats by writing a lot of amazing code for each of his talks, and most of the awesome comes from the code, not his (great nonetheless) ability as a speaker.

Then you have John Carmack's QuakeCon keynotes, which are just hours and hours of him talking about things that interest him in random order, and it still beats most well prepared talks because of how good he is at what he does. HN will probably like best the one where he talks about his experiments in VR, a bit before he joined Oculus (stuff like when he tried shining a laser into his eyes to project an image, against the recommendations of... well, everyone): [https://www.youtube.com/watch?v=wt- iVFxgFWk](https://www.youtube.com/watch?v=wt-iVFxgFWk)

</comment><comment><USER55> [https://www.youtube.com/watch?v=R9ITLdmfdLI](https://www.youtube.com/watch?v=R9ITLdmfdLI)

This was the first time I watched pg give a talk. It was the talk that brought about the biggest change in the way I think about the world, my ambitions. The talk was the beginning, reading more about pg, I came across his essays and then HN.

</comment><comment><USER56> Doing with Images Makes Symbols, Alan Kay. [https://www.youtube.com/watch?v=p2LZLYcu_JY](https://www.youtube.com/watch?v=p2LZLYcu_JY)

The title says it all. It's really a summary of several software systems with good ideas abound. I believe all the software is 80s or prior.

Edit: I also forgot to mention some psychology and math.

</comment><comment><USER57> A few of Bryan Cantrill's talks have already been mentioned here, but this one about DTrace, from 2007, is a gem:

[https://www.youtube.com/watch?v=TgmA48fILq8](https://www.youtube.com/watch?v=TgmA48fILq8)

I especially like the part in the middle where he tells the story of how a an awful GNOME applet was killing a Sun Ray server, and how he tracked down the culprit with DTrace.

<comment><USER4> I missed this one. I should go watch it. Anything that bashes on GNOME is fine with me.

</comment></comment><comment><USER58> I don't really have a favorite, but recently I really enjoyed "8 Bit & '8 Bitish' Graphics-Outside the Box"[1]. The name didn't catch my eye, but then I learned that it was a lecture by the very same Mark Ferrari who made these[2] unbelievably beautiful color-cycling pixel art animations. Master of his art — definitely worth listening to!

[1]: [http://www.gdcvault.com/play/1023586/8-Bit-8-Bitish- Graphics](http://www.gdcvault.com/play/1023586/8-Bit-8-Bitish-Graphics)

[2]: [http://www.effectgames.com/demos/canvascycle/](http://www.effectgames.com/demos/canvascycle/)

</comment><comment> nommm-nommm Elevator hacking (seriously) [https://youtu.be/oHf1vD5_b5I](https://youtu.be/oHf1vD5_b5I)

</comment><comment><USER59> [https://www.youtube.com/watch?v=sI1C9DyIi_8](https://www.youtube.com/watch?v=sI1C9DyIi_8) "the greatest shortcoming of the human race is our inability to understand the exponential function"

not a high tech talk, or particularly technically complex, but it shows a common blindspot in a way that is both clear, enlightening and frightening.

</comment><comment><USER60> CppCon 2014: Mike Acton "Data-Oriented Design and C++"

[https://www.youtube.com/watch?v=rX0ItVEVjHc](https://www.youtube.com/watch?v=rX0ItVEVjHc)

Detailed discussion of how to get the most out of your memory cache and memory bandwidth, focusing on games development. It's full of examples of how understanding both the problem and the hardware, and working in a straightforward way, can give you huge performance gains over using poorly suited abstractions. It shows how low level thinking is still important even with modern compilers. I recommend people interested in performance optimization watch it.

</comment><comment><USER61> Mine is "The Internet With A Human Face", by Maciej Cegłowski [http://idlewords.com/talks/internet_with_a_human_face.htm](http://idlewords.com/talks/internet_with_a_human_face.htm)

It's what I direct non-technical people to when they ask what the big deal about internet privacy is.

</comment><comment><USER62> I think Alan Kay's "Doing with Images makes Symbols" talk from 1987 might make my list:

[http://www.archive.org/details/AlanKeyD1987](http://www.archive.org/details/AlanKeyD1987)

It's mostly about the history of HCI up to that point.

</comment><comment><USER63> Agile Is Dead: By Dave Thomas [https://www.youtube.com/watch?v=a-BOSpxYJ9M](https://www.youtube.com/watch?v=a-BOSpxYJ9M)

I love his talks for a few reasons:

Often times...

      1. He's anti-hype
      2. He's contriversal
      3. He's right.

</comment><comment><USER64> Rich Hickey - Simplicity Matters [https://www.youtube.com/watch?v=rI8tNMsozo0](https://www.youtube.com/watch?v=rI8tNMsozo0)

</comment><comment><USER65> One of my favourite talks is by James Mickens at Monitorama 2015: [https://vimeo.com/95066828](https://vimeo.com/95066828)

<comment><USER66> I was going to post this one as well - it's my all time favorite. He does a great job of making truly funny, yet incredibly intelligent jokes.

</comment></comment><comment><USER67> First, the "Mother of all Demos" by Doug Engelbart: [https://youtu.be/yJDv- zdhzMY](https://youtu.be/yJDv-zdhzMY) This was in 1968, at a time when most people thought about computers as being machines for solving computation problems, like processing payrolls or calculating rocket trajectories. Engelbart and his students had the radical idea that computers could be used for human "knowledge worker" productivity. In one 90 minute presentation, he introduces everything from the idea of a GUI, to the mouse, to word processing, hypertext, computer graphics, and (simulated) videoconferencing. You have to be able to put yourself in the shoes of the audience that has never seen this stuff before, and it'll blow you away.

Something more recent: Martin Fowler's great introduction to NoSQL: [https://youtu.be/qI_g07C_Q5I](https://youtu.be/qI_g07C_Q5I) Not so technical, this is a great overview of the reasons why (and when) NoSQL is valuable. He crams a lot into a short speech, so it's one of the rare videos I've required students in my database classes to watch.

Now, really getting away from the technical, I have to recommend watching the IDEO shopping cart video: [https://youtu.be/taJOV- YCieI](https://youtu.be/taJOV-YCieI) This is the classic introduction of Design Thinking to the world, in 1999. If you're using the Lean Startup or an Agile method, but have never heard of IDEO's shopping cart, you may be able to get along fine at work, but you should be kind of embarrassed like a physicist who's never read Newton.

</comment><comment><USER68> Aside from the typical, I watched Damian Conway "Standing on the shoulders of giants" from YAPC 2016 last week and found it interesting. Always fun to see a modern feature full language collide with history and algorithms.

[https://www.youtube.com/watch?v=Nq2HkAYbG5o&index=2&list=PLA...](https://www.youtube.com/watch?v=Nq2HkAYbG5o&index=2&list=PLA9_Hq3zhoFykB5TDa4OjI6uoTg9OtABT)

<comment><USER69> for lang { when Perl { say "Not interested" } }

</comment></comment><comment><USER70> How to Design A Good API and Why it Matters: [https://www.youtube.com/watch?v=aAb7hSCtvGw](https://www.youtube.com/watch?v=aAb7hSCtvGw)

Related slides: [http://static.googleusercontent.com/media/research.google.co...](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/32713.pdf)

</comment><comment><USER71> Too many great talks to mention, but if I had to pick one it would be Ted Nelson's few minutes of demonstration of Xanadu. Demonstration is lacking, but what he said about the concept/idea is what stuck with me. Deep and referential(?) content. [https://www.youtube.com/watch?v=En_2T7KH6RA](https://www.youtube.com/watch?v=En_2T7KH6RA)

</comment><comment><USER72> [https://www.infoq.com/presentations/We-Really-Dont-Know- How-...](https://www.infoq.com/presentations/We-Really-Dont-Know-How-To- Compute) is by far my favorite technical talk right now.

Sussman goes over some interesting ideas on the provenance of calculations and asserts that "exact" computation is possibly not worth the cost.

</comment><comment><USER73> My favourite talk is:

"What the heck is the event loop anyway?" by Philip Roberts

[https://www.youtube.com/watch?v=8aGhZQkoFbQ](https://www.youtube.com/watch?v=8aGhZQkoFbQ)

</comment><comment><USER74> Joshua Bloch: How to design a good API and why it matters

[https://www.youtube.com/watch?v=aAb7hSCtvGw](https://www.youtube.com/watch?v=aAb7hSCtvGw)

</comment><comment><USER75> 1 Martin Thompson busting myths about hardware and explaining why it's important to know. Mechanical sympathy makes you better, because you know how the code actually runs on the machine and interacts with different layers of memory

[https://www.youtube.com/watch?v=MC1EKLQ2Wmg](https://www.youtube.com/watch?v=MC1EKLQ2Wmg)

2 Matt Godbolt (the man behind GCC explorer) - Emulating a 6502 system in Javascript

Great talk about BBC micro and much more

[https://www.youtube.com/watch?v=7WuRq- Wmw5o](https://www.youtube.com/watch?v=7WuRq-Wmw5o)

3 Matt Adereth - Clojure/typing

History of keyboards and a custom keyboard written in Clojure

[https://www.youtube.com/watch?v=uk3A41U0iO4](https://www.youtube.com/watch?v=uk3A41U0iO4)

I like the 3 for their content and how each speaker presented the background and their project/hack/ideas.

Highly recommend

<comment><USER28> Your second link reminded me of [https://www.youtube.com/watch?v=nLv_INgaLq8](https://www.youtube.com/watch?v=nLv_INgaLq8) (which definitely builds on some of Matt's work).

[https://www.youtube.com/watch?v=zBkNBP00wJE](https://www.youtube.com/watch?v=zBkNBP00wJE) \- C++17 for the Commodore 64.

Probable language warnings for my other suggestions:

* Rescuing Prince of Persia from the Sands of Time [https://www.youtube.com/watch?v=FnEWBtCnFs8](https://www.youtube.com/watch?v=FnEWBtCnFs8) (was this talk ever given elsewhere?)

* And You Shall Know Me By My Trail of Documentation - [https://www.youtube.com/watch?v=fEgHdHdUDaA](https://www.youtube.com/watch?v=fEgHdHdUDaA)

* The History and Evolution of Computer Viruses - [https://www.youtube.com/watch?v=s2g9lgYrYJM](https://www.youtube.com/watch?v=s2g9lgYrYJM)

</comment></comment><comment><USER76> Cliff Click was the jvm architect at sun then spent a decade at azul systems as their jvm architect. The talk is "A JVM Does That?"

It's well worth watching if you are interested in vms at all.

[https://www.youtube.com/watch?v=uL2D3qzHtqY](https://www.youtube.com/watch?v=uL2D3qzHtqY)

</comment><comment><USER77> What We Actually Know About Software Development, and Why We Believe It's True

[https://vimeo.com/9270320](https://vimeo.com/9270320)

</comment><comment><USER78> After lots of talks I started going to the library and found out it's a lot more effective to grow knowledge. Maybe I'm too ADHD-able when watching videos.

<comment><USER79> Talks are a great way to discover interesting ideas, technologies, concepts etc. And if the talk inspired, one can then later invest in reading a book.

<comment><USER80> But brief summary type articles are an even faster way of discovering interesting ideas, technologies, concepts, etc... You can skim them and jump around and generally expose yourself to more ideas in the same amount of time.

</comment></comment></comment><comment><USER81> We Really Don't Know How To Compute! [0] is probably my top... next to the christmas tree lectures.

[0] [https://www.infoq.com/presentations/We-Really-Dont-Know- How-...](https://www.infoq.com/presentations/We-Really-Dont-Know-How-To- Compute)

</comment><comment><USER82> People don't buy what you do, they buy why you do it by Simon Sinek [https://www.ted.com/talks/simon_sinek_how_great_leaders_insp...](https://www.ted.com/talks/simon_sinek_how_great_leaders_inspire_action?language=en)

</comment><comment><USER83>
      How To Design A Good API and Why it Matters [0]
      The Principles of Clean Architecture [1]
      The State of the Art in Microservices by Adrian Cockcroft [2]
      "The Mess We're In" by Joe Armstrong [3]

[0] [https://www.youtube.com/watch?v=aAb7hSCtvGw](https://www.youtube.com/watch?v=aAb7hSCtvGw)

[1] [https://www.youtube.com/watch?v=o_TH-Y78tt4](https://www.youtube.com/watch?v=o_TH-Y78tt4)

[2] [https://www.youtube.com/watch?v=pwpxq9-uw_0](https://www.youtube.com/watch?v=pwpxq9-uw_0)

[3] [https://www.youtube.com/watch?v=lKXe3HUG2l4](https://www.youtube.com/watch?v=lKXe3HUG2l4)

<comment><USER84> On the subject of API design, this talk is also quite good: [https://www.youtube.com/watch?v=ZQ5_u8Lgvyk](https://www.youtube.com/watch?v=ZQ5_u8Lgvyk)

</comment></comment><comment><USER85> Bret Victor is pretty interesting though a bit philosophical.

The best practical talk is of course this:

[https://www.youtube.com/watch?v=asLUTiJJqdE](https://www.youtube.com/watch?v=asLUTiJJqdE) \- Robert "Uncle Bob" Martin, Clean Architecture and Design

</comment><comment><USER86> "An Introduction to SQLite" by Richard Hipp (who wrote the library) is actually a pretty good intro on to how to build your own DB engine.

[https://www.youtube.com/watch?v=giAMt8Tj-84](https://www.youtube.com/watch?v=giAMt8Tj-84)

</comment><comment><USER87> I love the Ted Nelson "Computers For Cynics" series - [https://www.youtube.com/watch?v=KdnGPQaICjk](https://www.youtube.com/watch?v=KdnGPQaICjk)

He is kinda awesome in Herzog's recent 'Lo and Behold' too.

</comment><comment><USER88> James Mickens at Monitorama: [https://vimeo.com/95066828](https://vimeo.com/95066828)

Aside from the comedic aspect (which makes the talk incredible), Mickens is a genuinely brilliant thinker and has a marvelous way with words.

</comment><comment><USER89> Can I just say anything with Bryan Cantrill?

<comment><USER90> His KVM Forum talk on porting KVM to SmartOS is probably my favourite:

[https://www.youtube.com/watch?v=cwAfJywzk8o](https://www.youtube.com/watch?v=cwAfJywzk8o)

</comment></comment><comment><USER91> Richard Feynman: Fun to Imagine (BBC Series, 1983) - [https://www.youtube.com/watch?v=v3pYRn5j7oI&list=PL04B3F5636...](https://www.youtube.com/watch?v=v3pYRn5j7oI&list=PL04B3F5636096478C)

</comment><comment><USER92> Growing a Language by Guy Steele (video and transcription):

[http://dropclickpaste.com/#7d1673d81ee5a0bb7994e80a4f394997c...](http://dropclickpaste.com/#7d1673d81ee5a0bb7994e80a4f394997c5729cf6)

<comment><USER92> New, working link for above:

[http://dropclickpaste.com/#CYBgRgjA7AzAHANjMOwDGBODYCmYM4ICs...](http://dropclickpaste.com/#CYBgRgjA7AzAHANjMOwDGBODYCmYM4ICsaJAZjsEkUXDgExxEwZRA)

</comment></comment><comment><USER93> [https://www.youtube.com/watch?v=hoDSv5KpEJk](https://www.youtube.com/watch?v=hoDSv5KpEJk)

InfoSec talk. Best lines from talk..

"Basic lessons are not learned such as know thy network"

"You have to learn your network, you have to have skin in the game"

"Defense is hard, breaking stuff is easy"

"If you serve the God's of compliance you will fail"

"Compliance is not security"

"Perfect solution fallacy"

"People are falling over themselves not to change, shooting great ideas down."

"Perfect attacker fallacy, they don't exist, they are a myth!"

"Attackers are not that good because they don't need to be that good."

Speaker is Eric Conrad

</comment><comment><USER94> "Avoiding Burnout, and other essentials of Open Source Self-Care" [https://www.youtube.com/watch?v=RbeHBnWfXUc](https://www.youtube.com/watch?v=RbeHBnWfXUc)

</comment><comment><USER95> Are we there yet? - Rich Hickey

[https://www.infoq.com/presentations/Are-We-There-Yet-Rich- Hi...](https://www.infoq.com/presentations/Are-We-There-Yet-Rich-Hickey)

<comment><USER96> Of all talks by rich Hickey, this is my favourite.

</comment></comment><comment><USER97> Everything by Mr. Bryan Cantrill! This one is special: [https://www.youtube.com/watch?v=l6XQUciI- Sc](https://www.youtube.com/watch?v=l6XQUciI-Sc)

</comment><comment><USER98> Not quite as low-level as some of the other talks, but I love watching LazyGameReviews "Tech Tales" series when ever a new one comes out

It's fairly high level, but he really burrows into computer history and it's simply fascinating to watch, helped by the fact the person is extremely passionate about what he does [https://www.youtube.com/watch?v=gB1vrRFJI1Q&list=PLbBZM9aUMs...](https://www.youtube.com/watch?v=gB1vrRFJI1Q&list=PLbBZM9aUMsjEVZPCDMl- lXOx50rSBNFQC)

<comment><USER28> On that note you may also like Techmoan - [https://www.youtube.com/playlist?list=PLN2yCnHTG_6qxmv_pdBxW...](https://www.youtube.com/playlist?list=PLN2yCnHTG_6qxmv_pdBxWxCPsbA1Cl2RI), The 8 Bit Guy - [https://www.youtube.com/user/adric22](https://www.youtube.com/user/adric22) and Gaming Historian - [https://www.youtube.com/channel/UCnbvPS_rXp4PC21PG2k1UVg](https://www.youtube.com/channel/UCnbvPS_rXp4PC21PG2k1UVg)

<comment><USER98> I love 8-bit guy and Gaming Historian, I'm gonna plunge into Techmoan though!

</comment></comment></comment><comment><USER99> Aaron Patterson talks (aka @tenderlove): [https://www.youtube.com/watch?v=B3gYklsN9uc](https://www.youtube.com/watch?v=B3gYklsN9uc)

</comment><comment><USER100> For reasons completely unrelated to the content, Identity 2.0: [https://www.youtube.com/watch?v=RrpajcAgR1E](https://www.youtube.com/watch?v=RrpajcAgR1E)

Watching that talk brought me over to the "a picture or a few words per slide" style of presentation, rather than the "wall of bullet points" style. It also helped me move from "stop talking, change slides, start talking again", to smooth transitions while talking.

<comment><USER101> I'm waiting for more people to discover the next level - the "no slides at all" style of presentation. Cory Doctorow did a nice keynote at 28C3 completely without slides, and it worked very well ("The coming war on general computation", [https://www.youtube.com/watch?v=yYqkU1y0AYc](https://www.youtube.com/watch?v=yYqkU1y0AYc)). Not suitable for _every_ type of talk, of course, but certainly there are many where the slides are a useless crutch or slides-for-the-sake-of-slides. If you're a good enough speaker you can hold people's attention without pointing at large words behind you.

(See Edward Tufte's "The Cognitive Style of Powerpoint" for good arguments about why slides are a bad idea most of the time)

<comment><USER100> [http://www.noslidesconf.net/](http://www.noslidesconf.net/)

Quite feasible for a good keynote. Harder for a technical talk, since a good diagram can greatly improve an explanation.

</comment></comment></comment><comment><USER102> I find Simon Peyton Jones to be an excellent educator. He talks mostly about Haskell and the GHC compiler, but his talks are very accessible to a wide audience of programmers.

</comment><comment><USER103> Edsger Dijkstra's Turing Award Speech:

[https://www.youtube.com/watch?v=6sIlKP2LzbA](https://www.youtube.com/watch?v=6sIlKP2LzbA)

</comment><comment><USER104> As a web developer, my favorite _recent_ talk is "Modern Layouts: Getting Out of Our Ruts" by Jen Simmons

[https://aneventapart.com/news/post/modern-layouts-getting- ou...](https://aneventapart.com/news/post/modern-layouts-getting-out-of-our- ruts-by-jen-simmons-an-event-apart-video)

...very inspiring if you're bored with the way websites have been looking for the past few years.

</comment><comment><USER105> Secret history of silicon valley: [https://youtu.be/hFSPHfZQpIQ](https://youtu.be/hFSPHfZQpIQ)

</comment><comment><USER106> Indistinguishable From Magic: Manufacturing Modern Computer Chips.

Explains a lot of recent mass-market innovations that keep the semiconductor manufacturing industry rolling, and goes into detail about the many tricks used to ensure scaling down to the 22nm node.

[https://www.youtube.com/watch?v=NGFhc8R_uO4](https://www.youtube.com/watch?v=NGFhc8R_uO4)

</comment><comment><USER107> Bret Victor's "Inventing on Principle" [1] or Rob Pike's "Concurrency Is Not Parallelism" [2].

[1] [https://vimeo.com/36579366](https://vimeo.com/36579366) [2] [https://www.youtube.com/watch?v=cN_DpYBzKso](https://www.youtube.com/watch?v=cN_DpYBzKso)

</comment><comment><USER108> It's an old talk but I really enjoyed it at the time, Paul Graham on Great Hackers: [http://web.archive.org/web/20130729231533id_/http://itc.conv...](http://web.archive.org/web/20130729231533id_/http://itc.conversationsnetwork.org/shows/detail188.html)

</comment><comment><USER109> I'm relatively early in my career, and I feel like I've learned a ridiculous amount of useful stuff from talks given by these people:

Brandon Rhodes

Raymond Hettinger

David Beazley

Sandi Metz

Avdi Grimm

</comment><comment><USER110> Aside from a lot of the classics here, one that stands out is this AMAZING live demo at pycon by David Beazley:

[https://www.youtube.com/watch?v=MCs5OvhV9S4](https://www.youtube.com/watch?v=MCs5OvhV9S4)

The simple and followable progression to more and more complex ideas blows my mind every time.

</comment><comment><USER111> "Chicken Chicken Chicken: Chicken Chicken"

[1] [http://m.youtube.com/watch?v=yL_-1d9OSdk](http://m.youtube.com/watch?v=yL_-1d9OSdk)

[2] [http://isotropic.org/papers/chicken.pdf](http://isotropic.org/papers/chicken.pdf)

</comment><comment><USER112> Slightly self-serving as the organiser but Sarah Mei's talk at Brighton Ruby this year was terrific.

[http://brightonruby.com/2016/how-we-make-software-a-new- theo...](http://brightonruby.com/2016/how-we-make-software-a-new-theory-of- teams-sarah-mei/)

</comment><comment><USER113> Mike Bostock's talk on visualizing algorithms is one of my favorites: [https://vimeo.com/112319901](https://vimeo.com/112319901)

> Visualizing Algorithms – A look at the use of visualization and animation to > understand, explain and debug algorithms.

</comment><comment><USER114> Gary McGraw: Cyber War, Cyber Peace, Stones, and Glass Houses [https://www.youtube.com/watch?v=LCULzMa7iqs](https://www.youtube.com/watch?v=LCULzMa7iqs)

I like how this talk cuts through a lot of the BS in security. One of his points is that the US and other rich Western countries have a lot more to lose from a possible "cyber war" than our potential adversaries do.

Another key point is that we'll never make much progress unless we can somehow start building better systems in the first place, with fewer vulnerabilities for an adversary to exploit.

I think the second point has become a lot more widely accepted in recent years since McGraw started giving this talk. Unfortunately it sounds like a lot of government folks still haven't got the memo on point #1.

</comment><comment><USER115> Moxie Marlinspike at Blackhat 2010 on how we lost the war for privacy in spite of winning the Crypto Wars of the 1990's-early 2000's: [https://www.youtube.com/watch?v=unZZCykRa5w](https://www.youtube.com/watch?v=unZZCykRa5w)

</comment><comment><USER116> Herb Sutter, Modern C++ - [https://channel9.msdn.com/Events/Build/2014/2-661](https://channel9.msdn.com/Events/Build/2014/2-661)

Great overview of value types, performance and how hardware that runs things still matters.

</comment><comment><USER117> "How to Speed up a Python Program 114,000 times." \- [https://www.youtube.com/watch?v=e08kOj2kISU](https://www.youtube.com/watch?v=e08kOj2kISU)

Humour, serious technical insight and a good reminder of why being a generalist is an advantage.

</comment><comment><USER118> Geoffrey Hinton "The Next Generation of Neural Networks". A google tech talk from 2007 about this newfangled "deep neural network" thing:

[https://www.youtube.com/watch?v=AyzOUbkUf3M](https://www.youtube.com/watch?v=AyzOUbkUf3M)

</comment><comment><USER119> Keith Winstein presenting mosh at USENIX 2012 is easily the most entertaining tech talk I've ever seen: [https://www.youtube.com/watch?v=XsIxNYl0oyU](https://www.youtube.com/watch?v=XsIxNYl0oyU)

Scott Meyers' talks are fun to watch too.

</comment><comment><USER120> David Beazley's, "Discovering Python": [https://youtu.be/RZ4Sn-Y7AP8](https://youtu.be/RZ4Sn-Y7AP8)

A fascinating tale about using python during the discovery phase of a trial. Very fun watch. Anything by David Beazley is great!

</comment><comment><USER121> Rupert Sheldrake, "The Extended Mind, Experimental Evidence", Google Talks 2008, [https://www.youtube.com/watch?v=hic18Xyk9is](https://www.youtube.com/watch?v=hic18Xyk9is)

If you are in for something out of the ordinary.

</comment><comment><USER122> John Holland is always worth watching, and not very many people have seen this one: [https://www.youtube.com/watch?v=a_u_d- KLEsE#t=1183.549186](https://www.youtube.com/watch?v=a_u_d- KLEsE#t=1183.549186)

</comment><comment><USER123> I like this one because it's a good reality check: Opening Keynote: Greg Young - Stop Over-Engenering [https://www.youtube.com/watch?v=GRr4xeMn1uU](https://www.youtube.com/watch?v=GRr4xeMn1uU)

</comment><comment><USER124> Google TechTalks Personal Growth Series: William Dement on Healthy Sleep and Optimal Performance [https://www.youtube.com/watch?v=8hAw1z8GdE8](https://www.youtube.com/watch?v=8hAw1z8GdE8)

</comment><comment><USER125> Dynamic Languages Wizards panels. [http://www.ai.mit.edu/projects/dynlangs/wizards- panels.html](http://www.ai.mit.edu/projects/dynlangs/wizards-panels.html)

</comment><comment><USER126> Ashton Kutcher--Startup School

I like it because it is the intersection of so many things. He starts slow, is very intimidated by the audience. The audience, obviously super skeptical of the clown from that 70s show giving any useful information, they could learn from. He finds his footing with a great morivational story (albeit laden with a few cliches) about a forgotten entrepreneur and how he built some lasting value.

For me, this is a great talk. The story is extremely motivational and has some interesting bits of history & entrepreneurial genius-- but the entire experience is extremely educational. About bias, drive & success.

I liked it for what it wasnt.

</comment><comment><USER127> Black Hat USA 2015 - The Memory Sinkhole Unleashing An X86 Design Flaw Allowing Universal Privilege

[https://www.youtube.com/watch?v=QGuIGLz01hE](https://www.youtube.com/watch?v=QGuIGLz01hE)

<comment><USER128> It's been a while since I've seen this talk. Hasn't this talk been accused of being bullshit or am I remembering it wrong?

</comment></comment><comment><USER129> I always enjoyed Ryan Dahl's casual at-home talk on the history of Node.JS: [https://www.youtube.com/watch?v=SAc0vQCC6UQ](https://www.youtube.com/watch?v=SAc0vQCC6UQ)

</comment><comment><USER130> Zed Shaw's presentation, it's Not You, It's Them: Why Programming Languages Are Hard To Teach -- [https://vimeo.com/53062800](https://vimeo.com/53062800)

</comment><comment><USER131> Chuck Rossi - How Facebook releases software: [https://vimeo.com/56362484](https://vimeo.com/56362484) I remember thinking "Dr. Cox as release manager."

</comment><comment><USER35> Douglass Crockford's series of 8 videos, "Crockford on JavaScript" really helped me gain a understanding of the language and a better understanding of programming in general. If you don't like or understand JavaScript, this will definitely change that. He's an excellent speaker and the talks are quite enjoyable. Here is the first video: [https://www.youtube.com/watch?v=AoB2r1QxIAY](https://www.youtube.com/watch?v=AoB2r1QxIAY). If you like it, the other 7 are available in the suggested section.

</comment><comment><USER132> [https://www.youtube.com/watch?v=eNliOm9NtCM](https://www.youtube.com/watch?v=eNliOm9NtCM)

How Google backs up the internet.

At the time it changed how I thought about backups/reliability.

</comment><comment><USER133> The Clean Code Talks - "Global State and Singletons": [https://www.youtube.com/watch?v=-FRm3VPhseI](https://www.youtube.com/watch?v=-FRm3VPhseI)

</comment><comment><USER96> Dr Meister: Using Lisp, LLVM, and C++ for molecular programming: [http://www.youtube.com/watch?v=8X69_42Mj-g](http://www.youtube.com/watch?v=8X69_42Mj-g)

</comment><comment><USER134> One in particular comes to mind that really changed the way I think about the larger problem of security in computer science and what a mess our current state of affairs seems to be in:

"The Science of Insecurity" by Meredith L. Patterson and Sergey Gordeychik (2011)

[https://media.ccc.de/v/28c3-4763-en- the_science_of_insecurit...](https://media.ccc.de/v/28c3-4763-en- the_science_of_insecurity#video&t=2274)

Warning: speaker likes to use profanity (which I enjoy :) but possibly NSFW if you're not on headphones

</comment><comment><USER135> Dynamic Languages Wizards Series - Panel on Runtime: [https://www.youtube.com/watch?v=4LG- RtcSYUQ](https://www.youtube.com/watch?v=4LG-RtcSYUQ)

</comment><comment><USER136> Google I/O 2009 - The Myth of the Genius Programmer

One of the best talks about code reviews and similiar things

[https://youtu.be/0SARbwvhupQ](https://youtu.be/0SARbwvhupQ)

</comment><comment><USER137> Clay Shirky on Love, Internet Style. He has several great talks.

[https://www.youtube.com/watch?v=Xe1TZaElTAs](https://www.youtube.com/watch?v=Xe1TZaElTAs)

</comment><comment><USER138> In addition to Linus's git talk, I really enjoyed Jeff Dean's EE380 retrospective on Building Systems at Google ([http://m.youtube.com/watch?v=modXC5IWTJI](http://m.youtube.com/watch?v=modXC5IWTJI)). Many people have mentioned Jeff's basic premise elsewhere ("Design a system for 10x your current need, but not 100x, rewrite it before then") but this talk gave several useful examples where tipping points occurred (at least with Search).

</comment><comment><USER139> TED talk - Elon musk - [https://www.youtube.com/watch?v=IgKWPdJWuBQ](https://www.youtube.com/watch?v=IgKWPdJWuBQ)

D10 conference - Steve jobs and Bill gates - [https://www.youtube.com/watch?v=Sw8x7ASpRIY](https://www.youtube.com/watch?v=Sw8x7ASpRIY)

TED talk - Bill gates (Innovation to Zero) - [https://www.youtube.com/watch?v=JaF- fq2Zn7I](https://www.youtube.com/watch?v=JaF-fq2Zn7I)

</comment><comment><USER140> I'm a fan of "Knocking my neighbors kids cruddy drone offline" by Robinson and Mithcell from DEFCON 23.

        [0] https://www.youtube.com/watch?v=5CzURm7OpAA

</comment><comment><USER141> I love Kevlin Henney's talks, he's very entertaining and informative at the same time, here's one called "Seven Ineffective Coding Habits of Many Java Programmers", very useful even if you don't use Java - [https://vimeo.com/101084305](https://vimeo.com/101084305)

The rest of his channel is full of his talks [https://vimeo.com/channels/761265](https://vimeo.com/channels/761265)

</comment><comment><USER142> "Being Awesome By Being Boring" [https://www.youtube.com/watch?v=Iheymi5QFEY](https://www.youtube.com/watch?v=Iheymi5QFEY)

</comment><comment><USER143> Therapeutic Refactoring by Katrina Owen [https://www.youtube.com/watch?v=J4dlF0kcThQ](https://www.youtube.com/watch?v=J4dlF0kcThQ)

</comment><comment><USER144> Fast test, slow test by Gary Bernhardt: [https://www.youtube.com/watch?v=RAxiiRPHS9k](https://www.youtube.com/watch?v=RAxiiRPHS9k)

</comment><comment><USER145> Damien Katz - CouchDB and Me: [https://www.infoq.com/presentations/katz- couchdb-and-me](https://www.infoq.com/presentations/katz-couchdb-and-me)

The talk is about how Damien quit his job to hack on open source software. It shows his struggle and doubt while embarking on the project and then finally invented CouchDB. It's a passionate and human account of the process of creating something significant. I recommend every hacker watch this.

</comment><comment><USER146> QueueTard's Manufacturing Modern Computer Chips at HOPE number nine: [https://www.youtube.com/watch?v=NGFhc8R_uO4](https://www.youtube.com/watch?v=NGFhc8R_uO4)

Guy Steele's How to Think about Parallel Programming: Not! at Strange Loop 2011: [https://www.infoq.com/presentations/Thinking-Parallel- Progra...](https://www.infoq.com/presentations/Thinking-Parallel-Programming)

</comment><comment><USER147> Lawrence Lessig's 'free culture' from OSCON 2002:- [https://randomfoo.net/oscon/2002/lessig/](https://randomfoo.net/oscon/2002/lessig/)

Anything at all by Richard Feynman:- [https://www.google.co.uk/search?q=%22richard+feynman%22&tbm=...](https://www.google.co.uk/search?q=%22richard+feynman%22&tbm=vid)

</comment><comment><USER148> I very much enjoyed the talk John Graham-Cumming gave "The Great Railway Caper: Big Data in 1955": [https://www.youtube.com/watch?v=pcBJfkE5UwU](https://www.youtube.com/watch?v=pcBJfkE5UwU)

Any of Jason Scott's talks given at various hacker cons are usually historically informative and always a lot of laughs (but they're decidedly not "technical").

</comment><comment><USER149> by Dave Thomas (PragDave)

"LoneStarRuby 2015 - My Dog Taught Me to Code by Dave Thomas" \- [https://www.youtube.com/watch?v=yCBUsd52a3s](https://www.youtube.com/watch?v=yCBUsd52a3s)

and

"GOTO 2015 • Agile is Dead • Pragmatic Dave Thomas" \- [https://www.youtube.com/watch?v=a-BOSpxYJ9M](https://www.youtube.com/watch?v=a-BOSpxYJ9M)

</comment><comment><USER150> [https://www.youtube.com/watch?v=idLyobOhtO4](https://www.youtube.com/watch?v=idLyobOhtO4)

<comment><USER77> This is Linus Torvalds & git

</comment></comment><comment><USER151> Always refreshing to hear one of Haroon Meer's talks:

[https://www.youtube.com/watch?v=rarpym8JJXQ](https://www.youtube.com/watch?v=rarpym8JJXQ)

Jake Appelbaum's Digital Anti-Repression Workshop is _de rigeur_ listening too:

[https://www.youtube.com/watch?v=HHoJ9pQ0cn8](https://www.youtube.com/watch?v=HHoJ9pQ0cn8)

</comment><comment><USER152> The Front-end Architecture Revolution by David Nolen: [http://www.ustream.tv/recorded/61483785](http://www.ustream.tv/recorded/61483785)

It completely changed the way I approach front-end development (Not that talk in particular though. I saw an earlier, similar talk on Youtube but this one has much higher quality).

</comment><comment><USER153> Not at all high-brow, but I revisit the in-the-trenches case study of "Scaling Pinterest" on Infoq from time to time because I find their fighting through the pain inspirational for my own scaling troubles.

[https://www.infoq.com/presentations/Pinterest](https://www.infoq.com/presentations/Pinterest)

</comment><comment><USER154> "Pwned by the Owner" ([https://www.youtube.com/watch?v=U4oB28ksiIo](https://www.youtube.com/watch?v=U4oB28ksiIo)), a DefCon 18 talk about a stolen Mac that one day popped back up on the owners DynDNS service, he was able to connect to it and had some fun afterward.

Not a technical deepdive, but entertaining.

</comment><comment><USER155> It's not publicly available, but it was an internal AWS talk and very-deep- dive on the design & implementation of S3. A real eye opener for what it meant to build at global scale.

It's worth joining a global-scale tech company (AWS, Google, Azure, Facebook) just to have your mind blown by some of the internal materials.

</comment><comment><USER156> Cal Henderson "Why I Hate Django" DjangoCon 2008 Keynote - [https://www.youtube.com/watch?v=i6Fr65PFqfk](https://www.youtube.com/watch?v=i6Fr65PFqfk). Not that it is the most educational talk, but it's really funny (edit: added youtube link).

</comment><comment><USER157> Hacking with Words and Smiles by James Lyne [https://www.youtube.com/watch?v=KrNo0XpQxBk](https://www.youtube.com/watch?v=KrNo0XpQxBk)

He was a co-speaker at TEDxGlasgow with me and I thought his talk was brilliant. Cyber-crime is a really interesting area.

</comment><comment><USER158> I like all of Carin Meier's talks, but I think the one that made the most lasting impression was "The Joy of Flying Robots with Clojure."

[http://gigasquidsoftware.com/speaking/](http://gigasquidsoftware.com/speaking/)

</comment><comment><USER159> My favorite is this one about Drones and IA. One of the best:

[https://www.ted.com/talks/raffaello_d_andrea_the_astounding_...](https://www.ted.com/talks/raffaello_d_andrea_the_astounding_athletic_power_of_quadcopters)

</comment><comment><USER160> Temporally Quaquaversal Virtual Nanomachine is another gem by Damian Conway: [https://yow.eventer.com/events/1004/talks/1028](https://yow.eventer.com/events/1004/talks/1028)

</comment><comment><USER161> _Stop Building Products_ by David Edwards.

A deeply thoughtful discussion of the impact of metaphors on how we think about software development.

Skip to 0:40 if you don't want to hear the MC.

[http://livestre.am/5qFUn](http://livestre.am/5qFUn)

</comment><comment><USER162> Artur Bergman, creator of the Fastly CDN, at Velocity 2011 - giving a (very) short talk about SSDs: [https://www.youtube.com/watch?v=H7PJ1oeEyGg](https://www.youtube.com/watch?v=H7PJ1oeEyGg)

</comment><comment><USER163> What Makes Us Uniquely Human? by Erwin McManus: [http://tedxtalks.ted.com/video/What-Makes-Us-Uniquely- Human-...](http://tedxtalks.ted.com/video/What-Makes-Us-Uniquely-Human-Er)

</comment><comment><USER164> The Pixel Factory by Steven Wittens [https://www.youtube.com/watch?v=4NkjLWAkYZ8](https://www.youtube.com/watch?v=4NkjLWAkYZ8)

For those how likes computer graphics (or want to learn), this is a gold piece.

</comment><comment><USER165> "Desktop on the Linux" by Wolfgang Draxinger (guest appearance by Lennart Poettering): [https://www.youtube.com/watch?v=ZTdUmlGxVo0](https://www.youtube.com/watch?v=ZTdUmlGxVo0)

</comment><comment><USER166> React-motion, the react animation package that boils all of the animations down to one concept, a spring.

[https://www.youtube.com/watch?v=1tavDv5hXpo](https://www.youtube.com/watch?v=1tavDv5hXpo)

</comment><comment><USER167> Eric Brandwine at AWS talking about how they solved the networking part of the cloud: [https://www.youtube.com/watch?v=3qln2u1Vr2E](https://www.youtube.com/watch?v=3qln2u1Vr2E)

</comment><comment><USER168> DEFCON 20: Owning Bad Guys {And Mafia} With Javascript Botnets [https://www.youtube.com/watch?v=0QT4YJn7oVI](https://www.youtube.com/watch?v=0QT4YJn7oVI)

This guy is just too funny.

</comment><comment><USER169> Deconstructing Functional Programming by Gilad Bracha:

[https://www.infoq.com/presentations/functional-pros- cons](https://www.infoq.com/presentations/functional-pros-cons)

<comment><USER170> this is always a top one for me, he presents so well and kind of nails down the concepts.

but even more so, he sounds like the architect in the matrix having dialogue with some critics.

</comment></comment><comment><USER171> That guy fat from the Bootstrap team - What Is Open Source & Why Do I Feel So Guilty?

[https://www.youtube.com/watch?v=UIDb6VBO9os](https://www.youtube.com/watch?v=UIDb6VBO9os)

</comment><comment><USER83> I have a list of interesting talks on Haskell/OCaml [0].

(Plan to organize and add more categories.)

[0] [https://github.com/0xmohit/talks](https://github.com/0xmohit/talks)

</comment><comment><USER172> There is a sort of palpable energy in (Ryan Dahl) node.js original presentation.

[https://www.youtube.com/watch?v=ztspvPYybIY](https://www.youtube.com/watch?v=ztspvPYybIY)

edit: +Ryan Dahl

</comment><comment><USER173> "When We Build" by Wilson Miner: [https://vimeo.com/34017777](https://vimeo.com/34017777)

It completely changed my perspective on how design shapes our world.

</comment><comment><USER174> Amateurs. [https://www.usenix.org/system/files/1311_05-08_mickens.pdf](https://www.usenix.org/system/files/1311_05-08_mickens.pdf)

</comment><comment><USER175> Resilience in Complex Adaptive systems by Richard Cook at Velocity Conf 2013:

[https://www.youtube.com/watch?v=PGLYEDpNu60](https://www.youtube.com/watch?v=PGLYEDpNu60)

</comment><comment><USER176> Marketing Matters by Jesse Noller [https://www.youtube.com/watch?v=-vZ_E1OO_PY&list=WL](https://www.youtube.com/watch?v=-vZ_E1OO_PY&list=WL)

</comment><comment><USER177> ECCHacks - A gentle introduction to elliptic-curve cryptography [31c3]

[https://www.youtube.com/watch?v=l6jTFxQaUJA](https://www.youtube.com/watch?v=l6jTFxQaUJA)

</comment><comment><USER178> One of my favorites. dhh showing once again his ruthless pragmatism:

[https://www.youtube.com/watch?v=MlhAkNWC1qo](https://www.youtube.com/watch?v=MlhAkNWC1qo)

</comment><comment><USER179> "Greg Wilson - What We Actually Know About Software Development, and Why We Believe It's True"

[https://vimeo.com/9270320](https://vimeo.com/9270320)

</comment><comment><USER180> Closure, by @steveklabnik

[https://www.youtube.com/watch?v=MaWHVceDbFo](https://www.youtube.com/watch?v=MaWHVceDbFo)

So many lessons in short, beautiful piece.

</comment><comment><USER181> My personal favorite is "The ACL is Dead" by Zed Shaw [https://vimeo.com/2723800](https://vimeo.com/2723800)

</comment><comment><USER182> Dan Abromovich sort of introducing Redux in this talk. [https://youtu.be/xsSnOQynTHs](https://youtu.be/xsSnOQynTHs)

</comment><comment><USER183> Linus on Nvidia. [https://www.youtube.com/watch?v=IVpOyKCNZYw](https://www.youtube.com/watch?v=IVpOyKCNZYw)

</comment><comment><USER184> Well. There's enough quality content in this thread to start a dedicated cable television channel, a la _Viceland_ ;)

Not sure if it's my _favorite_. And the subject is more technology than "tech". But the talk that keeps haunting me is Michael Dearing's lecture from the Reid Hoffman "Blitzscaling" class at Stanford:

Heroes of Capitalism From Beyond The Grave

[https://www.youtube.com/watch?v=3vCdfa_aeI8](https://www.youtube.com/watch?v=3vCdfa_aeI8)

Dearing draws upon an obscure letter by Daniel McCallum, superintendant of the New York and Erie Railroad, written to his bosses in the 1850s. In the report, McCallum bemoans the stress and frustration of operating a railroad system spanning thousands of miles. All of the joy and magic he used to revel in whilst running a fifty mile stretch back in his home town has long since dissipated. Furthermore, the unit cost per mile seems to be _exploding_ rather counter-intuitively!

Dearing goes on to elucidate the absolute necessity of the railroads ("the thing to know about the railroads is: they were startups once") themselves. As guarantors of civilization and progress. Beacons bringing light and reason to the dark swamps of ignorance and inhumanity. And not just in the physical transport of goods, people and ideas across the continent. But as the wealth created from that creative destruction remains the best cure for all of our other inimical maladies: poverty, injustice, disease and stagnation.

So, no pressure. But civilization depends upon _you_!

Links to References in the Talk:

Estimates of World GDP: From One Million BC to the Present

[http://delong.typepad.com/print/20061012_LRWGDP.pdf](http://delong.typepad.com/print/20061012_LRWGDP.pdf)

The Process of Creative Destruction by Joseph Schumpeter

[http://www.econlib.org/library/Enc/CreativeDestruction.html](http://www.econlib.org/library/Enc/CreativeDestruction.html)

The Visible Hand: The Managerial Revolution in American Business by Alfred D. Chandler, Jr.

[http://www.hup.harvard.edu/catalog.php?isbn=9780674940529](http://www.hup.harvard.edu/catalog.php?isbn=9780674940529)

Report of D. C. McCallum to the stockholders of the New York and Erie Railroad

[https://books.google.com/books?id=4Gc9AQAAMAAJ&pg=PA33#v=one...](https://books.google.com/books?id=4Gc9AQAAMAAJ&pg=PA33#v=onepage&q&f=false)

Things As They Are In America by William Chambers

[https://archive.org/details/thingsastheyare04chamgoog](https://archive.org/details/thingsastheyare04chamgoog)

</comment><comment><USER185> Paul Buchheit - Startup School Europe 2014

[https://www.youtube.com/watch?v=v5w-0H-hq6E](https://www.youtube.com/watch?v=v5w-0H-hq6E)

Anjana Vakil: Learning Functional Programming with JavaScript - JSUnconf 2016

[https://www.youtube.com/watch?v=e-5obm1G_FY](https://www.youtube.com/watch?v=e-5obm1G_FY)

Bret Victor - Inventing on Principle

[https://vimeo.com/36579366](https://vimeo.com/36579366)

Philip Roberts: What the heck is the event loop anyway? | JSConf EU 2014

[https://www.youtube.com/watch?v=8aGhZQkoFbQ](https://www.youtube.com/watch?v=8aGhZQkoFbQ)

<comment><USER186> I definitely recommend Philip Roberts's talk. I watched it a couple of months into learning Javascript and then everything "clicked."

</comment></comment><comment><USER187> Anything by Sandi Metz.

</comment><comment><USER188> I really liked "The Life and Death of Javascript" by Gary Bernhardt</comment>


How I learnt to love Perl - <AUTHOR> http://www.dmclaughlin.com/2008/12/07/how-i-learnt-to-love-perl/ <comment><USER2> _but these are all superficial next to the damage done by all the absolutely atrocious Perl code out there._

The writer argues that Perl's being damaged by bad code examples, but if that were the case, PHP would be the least popular language in the world, no?

Perl's troubles are not just because of bad code examples, because the language is poorly constructed (in terms of v5, v6 is a lot better), or because its marketing is poor/non-existent.. but because of _all_ of these things and many other issues beside (especially the difficulty of deployment). These issues are enough to make one jump ship after years of non-resolution.

(I was a nearly full-time Perl developer from 1996-2005 - haven't touched it at all in the last few years since I jumped ship to Ruby, so it's not as if I'm hating on the language without having once loved it ;-))

<comment><USER3> It's not that Perl examples are unusually bad. It's that Perl's syntax is bad. Really bad. Especially for newbs.

Declaring a function in PHP which accepts a scalar, an array and a hash:

       function foo($bar, $baz, $quux = array('quux' => "default")) {

Declaring the same function in Perl:

       sub foo {
         my ($bar, @baz, %quux) = @_;

Which is already terrible. Worse, despite being relatively intuitive (I've made the mistake of writing this more than once, whenever I forget too much about Perl) it's completely broken. In the words of the Camel book:

 _If you want to pass more than one array or hash into or out of a function and have them maintain their integrity, then you're going to want to use an explicit pass-by-reference. Before you do that, you need to understand references as detailed in Chapter 4. This section may not make much sense to you otherwise. But hey, you can always look at the pictures._

Here we see that Perl's syntax isn't just very ugly: It's hopelessly entangled with relatively-advanced concepts like references, and dereferencing, and pass-by-value vs pass-by-reference, and wacky only-in-Perl nonsense like "array context" vs "scalar context".

Even PHP can do arguments right. Meanwhile, Perl doesn't even apologize for being a language where you have to learn about pointers before you can walk.

<comment><USER4> Hence the saying _only Perl can parse Perl_. Which is fine for 100-line scripts but for 50,000 line projects written by many people over many years (these exist!) it means you get basically zero tool support. Both Python and Tcl scale much more cleanly from small one-off scripts to larger applications (as well as any weakly dynamically typed language can, anyway).

<comment><USER5> Our projects total about 450,000 lines of Perl code. I've worked on one large Python project (SciPy), and found it similarly comfortable. I didn't feel major pains going either direction (from Perl to Python or back to Perl again).

I also spent some time with a large Tcl project (OpenACS) and found it very painful. But, I've never learned Tcl with as much enthusiasm as I learned Perl or Python, so I might be wrong. Actually maybe it's just CMS that really suck. I hated spelunking in Zope, and I hate working with Joomla (for different, but no less strongly held, reasons).

</comment></comment></comment></comment><comment><USER6> _"I had always known of it but had shied away from it for so long because, again, it didn't follow the same rules as my comfortable PHP shared hosting comfort zone."_

I'm pretty sure that this comment applies to 99.9% of all language complaints I read on the internet. Even smart people have a tendency to bash what they don't understand.

</comment><comment><USER7> Interesting. I did not know that British English uses "learnt" for the word "learned" in American English.

</comment><comment><USER8> I think the lesson of this post is _learn to use your tools well, despite how you feel about them._

</comment><comment><USER9> _quitting a difficult situation isn't really in my make up._

Neither is humility, judging from this blog post.

</comment><comment><USER10> I wish the author of this article had learnt to spell...

</comment><comment><USER11> all of this kvetching is pointless. if you use and like perl, the statistic you really care about is the activity of CPAN, which continues to thrive. if you like perl and are productive with it, why stop? because some moron on hacker news says perl is "noisy"? if you stop using a tool you like because of a blog post....get used to changing tools often, because "...is dying" is popular with bloggers.

<comment><USER3> _if you like perl and are productive with it, why stop?_

To pick a rather extreme example, consider COBOL. COBOL is also not dead (I know people who make a living writing COBOL) but it _is_ a tool which no young programmer wants to learn, unless they have a _very_ specific personality or the money is really, really good.

If you don't mind the fact that the talent pool is reportedly shrinking and the price of finding talent is reportedly rising, then you're right: Perl works as well as ever. (And much better than COBOL, of course. Perl will need another thirty to fifty years to reach COBOL's current stage. It's still quite pervasive, especially in its niche.) But if you pine for the glory days of 1995, when exciting new developments in computing were being constructed primarily in your language, you will want to learn a language other than Perl. Or, if you anticipate the need to expand your operation from two or three talented coders to twenty or thirty, you might need a language other than Perl.

<comment><USER5> "But if you pine for the glory days of 1995, when exciting new developments in computing were being constructed primarily in your language, you will want to learn a language other than Perl."

This is exactly the sort of FUD the article seemed to be targeted at. Perl is, currently, a more powerful language than Python or Ruby in several areas.

I happen to like all three languages, and have written significant code in Python, but the Perl community is still very active and doing interesting things (as the increase in contributions to CPAN indicates). It's just a more mature community. When someone, say, writes an SMTP server in Perl, they don't freak the fuck out and post a hyperbolic blog post about how freakin' awesome it (and they) are...they merely upload it to CPAN, where it joins the dozen other projects that do the same thing in different ways. If you consider all of the catching up that's happening in the Ruby and Python worlds to be "exciting new developments"--like mature testing frameworks, coverage reporting, library packaging and management, deployment tools, Apache modules, etc.--then, yes, you'd want to be working in a language that doesn't already have excellent implementations of all of those things.

Of course, if the Perl community were content with what they currently have, and weren't always pushing forward with newer/better ways to do things, it would be just as bad. But, Moose, as the obvious (but not only) example, should make clear that that's not the case.

"Perl will need another thirty to fifty years to reach COBOL's current stage."

I hope you'll remember this in two years. If it still seems likely to come true after Perl 6, I'll buy you a beer.

<comment><USER3> _When someone, say, writes an SMTP server in Perl, they don't... post a hyperbolic blog post about how freakin' awesome it (and they) are... they merely upload it to CPAN._

I guess I wasn't clear enough, because I agree with that, and it is in fact what I was trying to get at with my FUD-worthy sentence. Perhaps I should have put "Exciting New Developments" in silly caps to emphasize that I was talking about _hype_. If you want to work in a language that still has significant hype, and _enjoys_ having hype, and doesn't try to make you feel dirty for _practicing_ hype, you need to learn a language other than Perl. Until Perl 6 comes out, at any rate.

Your post does little to convince me that I'm wrong about that. :)

Personally, I like a little hype in my life. I tend to agree with Bruce Sterling:

[http://www.viridiandesign.org/2006/03/viridian- note-00459-em...](http://www.viridiandesign.org/2006/03/viridian- note-00459-emerging.html)

 _Hype is a system-call on your attention. If hype is clearly aimed straight at your wallet, you are right to worry. But hype is only bad for you if you drink it unthinkingly, by the barrel and case. If you soberly track its development, hype is very revealing. Even mistaken and obscurantist hype shows that people are stupid and trying to hide something, which are always good things to know._

 _In politics, the opposite of hype is political reality. Political hype is BS, it's a campaign speech, it's meant to deceive the listener. But in technology, the opposite of hype is not the truth. The opposite of hype in technology is argot. It's techno-jargon. Argot is not reality, jargon is not the truth. Argot is a super-specialized geek cult language that has no traction in the real world. Argot is the deliberately hermetic language of a small knowledge clique._

I do not doubt that Perl programmers are very smart, and that they are constantly pushing the state of the art. I also do not doubt that Perl code runs the world while other languages are frivolously reinventing new and sillier forms of the wheel. (How can I? I wrote a bunch of Perl code that is currently helping to run a factory. There is every danger that this Perl code, though not a sterling example of its genre, will outlive me. I have a healthy respect for Perl's usefulness.)

But I'm not convinced the language is reaching a lot of new blood. And that's an important task -- perhaps the _most_ important task. They say that every trick in software was invented by a Lisp programmer before I was born, and they may be right. But, to the extent that this is true, that means that there is relatively little to gain right now by making languages "more powerful". The real win is to make powerful languages more clear and ubiquitous, and to teach them to more people. And reaching people requires clarity, pedagogy... and hype. You need to make a system call on their attention.

<comment><USER5> "Your post does little to convince me that I'm wrong about that."

Quite right. I misinterpreted your prior post. Sounds like we agree, though I'm curmudgeonly enough to think that much of the hype around some projects and developers is laughable. The flavor of the week right now is Ruby, and a few functional languages, but it happens everywhere.

In a lot of cases, projects are being celebrated for being fumbling, and often baroque, attempts to solve problems that are already well-understood by developers in other languages...and all they have to do to solve it equally well in their own language is to pull their head out of their self- congratulating ass long enough to see how it's been done before, learn from it, and maybe even improve upon it a little bit.

Nonetheless, I must concur that hype is very effective...and probably mandatory for the survival of a language. Tcl is probably an excellent example of a pretty cool language, with a previously huge community, dwindling over time due to lack of enthusiastic new proponents.

</comment></comment></comment></comment></comment><comment><USER12> So... what happens when this guy finally learns of a _well designed_ language like python? Does his head just explode?

<comment><USER13> Good to see you read the article. I already have a VPS set up running django for my band website. Python is great, but Perl is great too.

<comment><USER14> What things do you like better about Perl than Python? (honest question)

<comment><USER15> In Python there is no _one obvious_ place to go for 3rd party packages (easy_install is a dwarf compared to cpan).

In Python there is no _one obvious_ documentation system (Sphinx, epydoc, pydoctor, ...).

Syntax for working with regular expressions is not builtin in Python.

One-liners are useless in Python (due to whitespace sensitivity).

Chaining of expressions (in functional style) is more cumbersome in Python than in Perl. Compare (from <http://www.hidemail.de/blog/perl_tutor.shtml>):

Print the canonical sort order in Perl:

       say sort grep /\w/, map { chr } 0 .. 255;

Literal translation to Python:

       print ''.join(sorted(filter(lambda c: re.match(r'\w', c), map(chr, range(256)))))

A more pythonic version:

       print ''.join(sorted(re.findall(r'\w', string.maketrans('', ''))))

Ruby version:

       puts (0..255).collect { |i| i.chr }.select { |c| c =~ /\w/ }.sort.join ''

Output:

       0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz

<comment><USER12> Better python version:

       print ''.join(chr(i) for i in range(256) if re.match(r'\w', chr(i))

Learn to use list comprehension.

<comment><USER15> 1\. where is `sorted()`.

2\. where is closing `)`.

3\. DRY principle is more important than a couple of parentheses here and there (there could be a heavier function than `chr()`).

And I _know_ list comprehension (and generator expressions, and dictionary comprehension, and set comprehension).

One of versions I've considered for Python was:

      print ''.join(sorted(c for c in map(chr, range(256)) if re.match(r'\w', c)))

And even:

      print ''.join(sorted(c for i in range(256) for c in (chr(i),) if re.match(r'\w', c)))

<comment><USER12> Sorted is unnecessary: the range function generates them in the right order.

The last ')' character is missing. Sorry about that. I have been spoiled by show-paren-mode.

The DRY principle is great when applied to large swaths of code but in this case, seriously, it is faster and more concise to just write it again. Either the language optimizer will optimize out the extra work (not in CPython though...) or it will not. Either way, your functions would be slower as they have to explicitly allocate either two lists or a list and a tuple unless they are optimized further, not to mention that the added structures will make optimization challenging.

Principles are great in theory but try considering practical aspects once in a while.

<comment><USER15> The whole point of the example is to demonstrate that chaining of expressions is cumbersome in Python, so imagine some other function instead of `sorted()` and use it.

DRY is not about performance; it is about: I've changed here some code and oops I've got a bug because I forgot (or didn't know or it is impossible to decide whether it is the same code or not and therefore should we change it or not) to change it in other places.

Performance:

      $ python -mtimeit -s"import re" "''.join(sorted(chr(i) for i in range(256) if re.match(r'\w', chr(i))))
      1000 loops, best of 3: 1.29 msec per loop

      $ python -mtimeit -s"import re, string" "''.join(sorted(re.findall(r'\w', string.maketrans('', ''))))"
      10000 loops, best of 3: 60.8 usec per loop

My variant is 20 times faster. However performance doesn't matter in this case.

I'm all for practicality but _principles are condensed experience_ and it is dangerous to ignore them without a good reason.

<comment><USER12> On my computer:

       $  python -m timeit -s 'import re' '"".join(chr(i) for i in range(256) if re.match(r"\w", chr(i)))'
       1000 loops, best of 3: 841 usec per loop
       $ python -m timeit -s 'import re' "''.join(sorted(c for c in map(chr, range(256)) if re.match(r'\w', c)))"
       1000 loops, best of 3: 792 usec per loop
       $ python -m timeit -s 'import re' "''.join(sorted(c for i in range(256) for c in (chr(i),) if re.match(r'\w', c)))"
       1000 loops, best of 3: 921 usec per loop

Your DRY variants (against which my complaint was) are not faster.

As to the principle of DRY: Which is easier to debug? my code or your code? mine is certainly easier to read. Principles are the _average_ of large amounts of experience. Its never a good idea to ignore them completely but just blindly following them without keeping in mind the context they were formulated in is just as stupid.

PS: Your version with the re.findall is faster but requires the user to bring up a definition of string.maketrans and re.findall, both things that an experienced python coder would know but its another little thing that they now have to track. OTOH, the generator expressions (especially mine) are straightforward and blindingly obvious as to their purpose.

<comment><USER16> I find the Perl and especially the Ruby versions are a bit easier to read than any of those Python examples.

If u like left to right chains then Perl can also be written like so...

      use autobox::Core;

      say [ 0..255 ]->map( sub { chr } )->grep( sub { m/\w/ } )->sort->join('');

/I3az/</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment>