zoukankan      html  css  js  c++  java
  • Erlang/Elixir精选-第5期(20200106)

    The forgotten ideas in computer science-Joe Armestrong

    在2020年的第一期里面,一起回顾2018年Joe的 The forgotten ideas in computer science。在40多分钟里面总结了他精挑的个人最佳List.
    强烈建议配合着视频回看❤️❤️❤️❤️❤️


    Part 1 Motivation

    最初只是想想了解计算机科学中那些forgotten ideas,后来变成了想知道Silly ideas,Hot research topics,Bad ideas...然后就想做个人列表排行。

    As with our colleges, so with a hundred "modern improvements”; there is an illusion about them; there is not always a positive advance ... Our inventions are wont to be pretty toys, which distract our attention from serious things.
    Henry David ThoreauWalden (1854)

    How to make a list

    • Collect lots of items easy
    • Assign to lists difficult
    • Shorten the lists to N items (N is small) very difficultThrowing things away is much more difficult than collecting things - but what’s left is better.

    Part 2 Things to learn

    Essential Guide to CS

    • 80 things in 18 categories(some old, some new, some forgotten)
    • Pix and Mix
    • Not all equally importantI’ll talk about the most important oneslater
    • 2 great papers to read
    • 4 old tools to learn
    • 4 really bad things
    • 3 great books to read
    • 7 reasons why software is difficult now
    • 10 reasons why software was easier back in the day
    • 1 fun programming exercise
    • 8 great machines from the past
    • 3 performance improvements
    • 5+ YouTube videos to watch
    • 6 things not to do
    • 5 sins
    • 4 languages to learn
    • 4 great forgotten ideas
    • 6 areas to research
    • 2 dangers
    • 4 ideas that are obvious now but strange at first
    • 2 fantastic programs to try

    2 great papers to read

    4 old tools to learn

    • emacs (vi)
    • bash
    • make
    • shell

    4 really bad things

    • Lack of Privacy
    • Attempts to manipulate us through social media
    • Vendor Lock in
    • Terms and Conditions

    3 great books to read

    7 reasons why software is difficult now

    • Fast machines
    • Huge memory
    • Hundreds of PLs
    • Distributed
    • Huge programs
    • No specifications
    • Reuse

    10 reasons why software was easier back in the day

    • Small machines
    • Small memory
    • Few languages
    • Not distributed
    • No reuse of code
    • No Xcode etc
    • No GIT.
    • Complete control
    • Did not communicate
    • Understandable in it’s entirety

    8 great machines from the past

    3 performance improvements

    • Better algorithms ( x 6) (Interpreter -> Compiler)
    • Better Programming language (x50) (Prolog -> C)
    • Better Hardware (x1000 per 10 years)

    5+ YouTube videos to watch

    6 things not to do

    • Backdoors
    • Violate privacy
    • Put microphones in everybody's houses
    • Hijack our attention system
    • Hijack our social systems
    • Sell crap that we don’t want or need

    5 sins

    • Crap documentation
    • Crap website
    • Crap dependencies
    • Crap build instructions
    • Group think

    4 languages to learn

    • C
    • Prolog
    • Erlang
    • Javascript

    Great forgotten Ideas

    Pipes :The output of my program should be the input to your program A | B | C
    Text-flows across the boundary, Killed by GUI sand Apps.


    Part 3 Important noncomputer science things

    learn to write

    A program with excellent documentation is not going to go anywhere

    3 rules at work

    • If you get a bad boss move immediately do not try to change your boss
    • The relationship comes first (Jane Walerud)
    • Engage with managementjust because they do not understand what you are saying is no reason not to talk to them - and whose fault is it anyway (that they don’t understand you)

    7 distractions

    • Open plan offices
    • The latest stuff
    • Twitter/Facebook (social media)
    • Notifications (turn ‘em off)
    • Links (don’t click on them)
    • Ban Scrum etc.
    • We can only do one thing at a time Our brains are terribly bad at context switching

    6 ways to get your boss to

    • Do things that gain trust
    • Tell success stories
    • Reduce fear of failure
    • Introduce on a small scale - for a part of the problem
    • Network with Erlang folks
    • Make a prototype at home

    1 thing to look for when applying for a new job

    Look at their balance sheeta company with a positive cash flow and increasing profits is good to work for - a company that makes a loss is not good to work for

    3 general laws

    • Software complexity grows with time (because we build on old stuff)
    • Bad code crowds out good (Gresham’s law) bad money drives out good (clipping)
    • Bad code contaminates good code

    Part 4 Important half forgotten BIG ideas

    Things can be small

    • Forth OS 24 KB
    • Forth compiler 12KB
    • IBM PC DOS < 640KB
    • USCD Pascal
    • Turbo Pascal
    • Turbo C

    The old truths

    • Keep it simple
    • Make it small
    • Make it correct
    • Fight complexity

    Learning

    • Kids can learn computing
    • OAPs can learn computing
    • Everybody can learn computing It was easy to learn BASIC back in the 80’s sowhy is it more difficult now?

    Part 5 What we can do

    • Unbreak the webMake it read/write symmetric
    • Bring computation to the edge network
    • Ensure that all personal data is owned by the individual and not by large corporations
    • Make computing easy again
    • Build Apps so they can communicate with each other

    A program that is not secure and cannot be remotely controlled should not be written.


    个人感受

    感觉老爷子是一个聪明(智慧)且非常有激情的人,乐于分享。恨不得在这40分钟内把所有的技术积累、人生经验都能分享给大家。老一辈也有信息过载的焦虑,可能感受到他对现代人对社交平台的过度依赖的担心。中间一大段对tiddlywiki的推荐和Joe把自己的博客主页全部变成tiddlywiki,让我花了2小时在去官网上下载体验了一把,但是给人的感觉是上世纪的东西,我想这也是它不火,特别小众的原因吧。看样子几乎没有人用。官网例子也是几年前。


    image.png
    欢迎来语雀投稿或推荐,精选每周一发布,同步更新在语雀博客园

  • 相关阅读:
    安装 Visual Studio 出现网络问题,无法连接
    开机时如何默认关闭小键盘
    nginx 443端口配置
    nginx启动提示 nginx: [emerg] the INET6 sockets are not supported on this platfor
    ffmpeg 常用命令
    linux下安装python3.7.2
    Win10的Hyper-V虚拟机上安装Ubuntu后显示分辨率问题
    Hyper-V安装CentOS修改分辨率
    Linux 设置简单密码
    nginx 80端口跳转到443
  • 原文地址:https://www.cnblogs.com/zhongwencool/p/collection_5.html
Copyright © 2011-2022 走看看