Live data from Hacker News

John Ousterhout: My favorite sayings

web.stanford.edu

61–66 of 66 posts

Re: John Ousterhout: My favorite sayings

#61

His book a philosophy of software design is an excellent read.

Yes. So much so that I wrote a short on it stacking it up there with other timeless books. https://hackernoon.com/meta-skills-of-a-software-engineer-be...

For those who unfamiliar, the book is based on evidence observations of student groups builindg large systems and then reviewing and discussing complexity sources -- then they swap their systems with other groups. They then need to keep iterating... usually hitting problems that we find in the wild. The book is the result of his observations.

The thing I would recommend John do next in his Stanford course is to encourage the students to infuse testing apporaches to the systems they build. This could reveal even more value of the craft in a setting that is somewhat controlled.

Re: John Ousterhout: My favorite sayings

#62

Earlier quoted context omitted.

What Lua is doing today, TCL was doing 20 years ago. Though I believe Lua is a smaller binary, which matters in some embedded scenarios. According to [1], the core Lua interpreter is 40kB with additional base libraries of 22kB, so total of 62kB. There are a variety of "small TCL" implementations [2], and one of them, TinyTCL claims to be excluding C library functions. I can say that for my embedded requirements, Lua…

Interesting. I tried Lua about 6 years ago and found myself unable to see an upside to the language in comparative perspective with python and tcl. This is for full featured *nix systems programming in the HPC world so ymmv.

I have a soft corner for Tcl. Tcl was a pioneer. Lua is smaller, faster and more tightly and coherently designed. Lua had coroutines right from the start. With Lua you have the option of using LuaJIT. I enjoy both, but I would be more wary of using Tcl in critical systems. But when its play time, i happily break out tclsh.

Re: John Ousterhout: My favorite sayings

#63
post #60

I'm surprised it doesnt talk about failures IMHO the most important thing is having a sane architecture which can deal with failures (like Chrome vs old Firefox) or Arcan https://arcan-fe.com/2017/12/24/crash-resilient-wayland-comp... vs Gnome/KDE compositor..

Thank you for the link. Very nice read.

Re: John Ousterhout: My favorite sayings

#64

The three most powerful words for building credibility are "I don't know" I had a supervisor once who always had an answer to your question. He was always 100% sure he was right. He was not always right. Consequently, going to him for help would sometimes result in the problem becoming worse. The best supervisor I ever had was the one who routinely told me "I don't know, let me call {PersonInOtherDepartment}" or "See…

In my experience, saying "I don't know" outside of an academic environment leads to two consequences: 1) People will stop listening to you in preference to loud people who "know"; 2) Loud people who know will use your admission against you. Sadly, the good habits that you learn in academia will come back to haunt you when you move into industry.

This may be true, but doesn't make the loud person credible. Not even in the eyes of the people who are happy to listen to such person.

Re: John Ousterhout: My favorite sayings

#65

The three most powerful words for building credibility are "I don't know" I had a supervisor once who always had an answer to your question. He was always 100% sure he was right. He was not always right. Consequently, going to him for help would sometimes result in the problem becoming worse. The best supervisor I ever had was the one who routinely told me "I don't know, let me call {PersonInOtherDepartment}" or "See…

"Often wrong but never in doubt."

Re: John Ousterhout: My favorite sayings

#66
post #62

Earlier quoted context omitted.

Interesting. I tried Lua about 6 years ago and found myself unable to see an upside to the language in comparative perspective with python and tcl. This is for full featured *nix systems programming in the HPC world so ymmv.

I have a soft corner for Tcl. Tcl was a pioneer. Lua is smaller, faster and more tightly and coherently designed. Lua had coroutines right from the start. With Lua you have the option of using LuaJIT. I enjoy both, but I would be more wary of using Tcl in critical systems. But when its play time, i happily break out tclsh.

I've used TCL in production for 15 years. The only thing to really worry about is a consistent policy on language usage. Keeping to the base features of the language and extensions in tcllib/tclx is a pretty solid recipe.

That said here are things I advise.

* No upvar/uplevel. Use a namespace. * Use apply wisely. * No ad-hoc (say swig inline wrappers) extensions without deep review. * If you are writing a front end in tk - think twice. * If you are doing OOP with TCL choose wisely.

Post reply on HN