The Next Programming Language - Douglas Crockford - code::dive 2022

Sdílet
Vložit
  • čas přidán 11. 12. 2022
  • The Next Programming Language
    About the speaker - Douglas Crockford
    Douglas Crockford is the author of "How JavaScript Works" and "JavaScript: The Good Parts".
    He was born in Frostbite Falls, Minnesota, but left when he was only six months old because it was just too damn cold.
    He turned his back on a promising career in television when he discovered computers. He has worked in television, learning systems, small business systems, office automation, games, interactive music, multimedia, location-based entertainment, social systems, and programming languages.
    He is the inventor of Tilton, the ugliest programming language that was not specifically designed to be an ugly programming language. He is best known for having discovered that there are good parts in JavaScript. That was the first important discovery of the 21st Century. He also discovered the JSON Data Interchange Format, the world’s most loved data format.
  • Věda a technologie

Komentáře • 110

  • @wirelessben
    @wirelessben Před 9 měsíci +17

    The announcer had one job: say this famous person's name right.

  • @marxhubert
    @marxhubert Před 8 měsíci +11

    We are talking about Erlang without mentioning it, at least not until the very end. Why don't we just improve and work on Erlang/Elixir for those already have good bases and are pretty efficient and, especially, they are mature and have quite huge community?

    • @aghileslounis
      @aghileslounis Před 7 měsíci +1

      exctly what i was thiking. I'm like wait a sec it's Erlang/Elixir

    • @tantalus_complex
      @tantalus_complex Před 5 měsíci +1

      It looks to me that he's thinking more _imperative_ and less _declarative?_
      But it is a bit odd that he has left out the reason why he isn't suggest we increase adoption for the Erlang VM.
      From the earlier part of the talk, I suspect he thinks we need something more familiar to most devs, in order to encourage readier adoption.
      So that means something which inherits more from the Algol/C family than does Erlang and probably means something similar to the language which already dominates the Web (for better or worse, and he's suggesting eliminating the "worse").
      If it gets us to broad adoption, I'd be ecstatic. But I'm also quite happy with BEAM languages.

  • @danmihaifilip
    @danmihaifilip Před rokem +14

    much of Misty's features are already available in the Erlang language and VM

  • @akulanarayana5284
    @akulanarayana5284 Před 11 měsíci +6

    Legendary Douglas Crockford 🙏👍make us all happy and smile. Thankyou so much for your contribution.

  • @darnellbrawner3659
    @darnellbrawner3659 Před rokem +5

    The actor model is what got me interested in the Pony Lang

  • @frankiefuryland
    @frankiefuryland Před rokem +7

    Coming from this as a Network Engineer, I find the Actor Model quite elegant from a high level. Although, I have some concerns on the "Bus line" flow of messaging from node-to-node. He did say something about building it out like a topology that could mirror a network.
    The in design choice is spine and leaf architectures aka Clos, which may fit well in some paradigm, can be useful in security and distrbution of information (IP, Ethernet) I digress.

    • @andrewrobie620
      @andrewrobie620 Před 11 měsíci +4

      Check out Erlang and Elixir and how they typically structure applications. I believe Erlang was the first PL to heavily use the actor model that got some level of traction. Interestingly, one of the core libraries, OTP, provides a lot of the same benefits as Kubernetes, like distributing processes among servers, handling crashes by redistributing, hot reloading, etc. Elixir is built on top of Erlang's VM and my understanding is essentially tries to modernize Erlang and provide more familiar syntax.

    • @tantalus_complex
      @tantalus_complex Před 5 měsíci

      Yes, Elixir is the lovechild of Functional Programming and Ruby but built from the ground-up for the Erlang VM with concurrency in mind.
      It's beautiful. 🥰

  • @danieltkach2330
    @danieltkach2330 Před rokem +3

    Loved the intro!

  • @montebont
    @montebont Před 3 měsíci +2

    Wonderful lecture - thanks! I've been around since assembly language around the 1970's. . But isn't a try / catch structure at he end of the day not just a GOTO? You just adjust he stack pointer ?

  • @vanarunedottir
    @vanarunedottir Před 11 měsíci +1

    Ages ago, before IBM made DOS into a 'standard' OS, Unisys sold computers running CTOS. It was a message passing system. It was before the idea of Actors, but enabled better communications and a new way of thinking about connected systems. It didn't become popular enough to survive until today, but that wasn't because of technical issues, and what did succeed caused slower progress on commercial distributed systems.

  • @davidkoch9123
    @davidkoch9123 Před 6 měsíci +2

    Nice talk on Erlang.

  • @markramirez3920
    @markramirez3920 Před rokem +4

    I built a GNU Flex alike tool ( tool to make compilers for new P.L. ), in the late 90-s as my CS graduate thesis at the OOP trend. This was before Functional Programming peak. A lot of developers believed no more P.L. will appear. They where wrong ...

  • @JonMarkSearle1
    @JonMarkSearle1 Před 11 měsíci +3

    Any Actor model will need to sit above any messaging technology, for instance in the AWS ecosystem, we have SNS, SQS, API Gateway, AppSync and EventBridge as native abstract industrial strength scalable services but also you have the managed services such as Rabbit and Active MQ, along with many many other messaging software that you might like to self manage. And that's only on AWS. Other cloud providers have their own systems. Then there's the question of JSON vs protocol buffers. Either way any higher level protocol or paradigm me needs to be sit above - be abstracted away from - any technology.

  • @PaulSebastianM
    @PaulSebastianM Před rokem +6

    Dave Farley also said that he thinks that the actor model will play a huge role in upcoming software architectures, post microservices.

    • @tantalus_complex
      @tantalus_complex Před 5 měsíci +2

      He's not the only one. It's been coming for a while.
      The shockwave of what Erlang proved tangibly with the BEAM virtual machine and OTP, has been rippling through the extended software engineering community for some time.
      Erlang has proven what these things can do for almost 40 years in niche use-cases, like telephony.
      It just took the more recent challenges of the Cloud to get the rest of the software development world to the point where major voices are advocating for this shift. Market forces and real pragmatic needs are required to push out of our comfort zones (see also Kuhn's "paradigm shift").

  • @aleattorium
    @aleattorium Před rokem +31

    At first, actor model looks really like what Erlang did and Elixir is expanding on

    • @DavidSouthard
      @DavidSouthard Před rokem +24

      this talk should be titled "tell me you love erlang without mentioning erlang"

    • @aleattorium
      @aleattorium Před rokem

      @@DavidSouthard I see as an absolutely win

    • @lorenzo--rossi
      @lorenzo--rossi Před rokem +9

      @@DavidSouthard he actually speaks about erlang. It’s one of the questions

    • @NoahNobody
      @NoahNobody Před rokem +14

      He said in the questions at the end that Erlang nearly got it right. And that they accidentally discovered it. He's working on something called Misty which is experimenting in what a perfect actor model language would look like.

    • @ernesto8738
      @ernesto8738 Před rokem +1

      that's exactly what it is

  • @avidrucker
    @avidrucker Před rokem +4

    I believe I heard a Conor Hoekstra in the Q&A 😁

  • @ct-gf8kn
    @ct-gf8kn Před 3 dny

    Never say If the language gets made just make it . Time waits for no one believe in your light spirit that brought you the idea . That just normally means it should be a scraped or finished product for the future . Its up to the one who has visionary dream its just a future rift follow the stream . One love ! ✌

  • @goodluckoriuwa1669
    @goodluckoriuwa1669 Před měsícem

    Could you talk about that neo language and also perhaps do some crash course on neo so we could probably see the difference

  • @JohnDoe-ed7vw
    @JohnDoe-ed7vw Před 11 měsíci +2

    I stumbled upon this subject while I have zero coding knowledge, gives me a new perspective because I thought languages are perfect creatures despite hearing about JAVA security problems, I want to learn a language to find a job and I don't have a degree in IT, what language do you recommend? something 20 years future proof for someone who don't like jumping ships, I am not even sure coding is for me, sometimes I wonder what is the language most useful for personal use? that I can use on my PC to help me with personal needs, I mean all those web languages are made to service other people not like windows programs, I mean I don't want a language that I will only use for work. I don't anything about coding, I don't know what I am saying, I mean like learning to code android programs, I can solve my phone problems/needs, etc. Maybe all this is type of thinking is not good for employment wise?

    • @joesmith4546
      @joesmith4546 Před 11 měsíci +5

      No language is 20 years future-proof. The good news is that once you learn one language, the next one is far easier to learn. This effect continues to compound as you learn more languages, and technologies. The reason why this is the case is because you don’t really learn a programming language so much as you learn how to solve puzzles involving the way that data flows and is transformed in order to capture some imagined, idealized behavior with your code.
      I personally started with Java before picking up C, Python, Javascript, and more, in that order. At this point I can usually pick up a new imperative language in an hour. It takes me far longer to master a new language, but learning one is easy.
      My personal path through computer science as a pure and applied discipline may not be the same for you, however.
      Many people start with Python, Java, or Javascript. None of these languages are objectively better than any other. Don’t worry about speed, or what is possible with any individual language. These limits are generally divorced from reality because you probably won’t need to care about speed until you are working on enterprise-size software (at which point you will be a competent enough engineer to pick up any new language or technology with relative ease, so if won’t matter if your first language is “fast”), and all languages have limitations on what is syntactically valid and possible. A fast language is one you can write quickly. An expressive language is a language you can translate your thoughts into easily. Nobody can decide or choose what languages are fast or expressive for you.
      If you want to learn how to program, don’t be afraid to start multiple times with multiple different languages, don’t worry about whether or not a language is popular or what features it has, and don’t count on a technology having a lifespan of more than five years. It might take some time for it to “click,” but once programming begins to feel intuitive and you can translate your thoughts into programs with some amount of ease, picking up new tools will be easy. That is why in a field where everything changes every five years there are still old masters.

    • @JohnDoe-ed7vw
      @JohnDoe-ed7vw Před 11 měsíci

      @@joesmith4546 Thank you for the explanation, would you say entering this field is easier than other fields like accounting for example? everyone is recommending programming as a solution for unemployment, are they just promoting a new business (boot camp business and courses), to be honest after posting this question and thinking about the whole idea, I said to myself, you love PCs but never bothered learned a single language, if you don't love this field don't enter it just for a job and try to find something you really love.

    • @bulbasaur9291
      @bulbasaur9291 Před 11 měsíci +2

      @@JohnDoe-ed7vw You should pursue programming if you have a taste for it, not merely because there is a meme about learning to code. Learn the concepts underlying the tools so you don't become attached to languages/frameworks. That way YOU are future-proof, not your tools.
      In the end programming is about building things to solve problems in ways that are (hopefully) better than the old ones. It is about being knowledgeable, logical, and a bit creative.

    • @JohnDoe-ed7vw
      @JohnDoe-ed7vw Před 10 měsíci +1

      @@bulbasaur9291 I like what you said about "Learn the concepts underlying the tools", one of the complaints about a local boot camp was that they teach you how to do more than why, I am a person who wants to know why, which made me feel a boot camp won't be enough, in addition to seeing people with university degree who can't find work, sadly despite loving computers I have never tried to learn coding, I guess there is no passion in me for coding, there is a lot of talented coders out there, doing it for money with no passion I'd probably end up where I am now in my current field. (accounting, I hate it).

    • @banatibor83
      @banatibor83 Před 10 měsíci

      Learn java, no magic stuff in java, wide enterprise adoption and those change slowly, very good language.

  • @samfromuk796
    @samfromuk796 Před 23 dny

    "... thanks, by the way it's David C-R-ockford"

  • @CTimmerman
    @CTimmerman Před 10 měsíci +3

    If building languages is so easy, and he already made one to demo new concepts, why isn't Misty real yet? We already have packet/message systems and distributed agents/actors/objects/tasks communicating with messages. Stackless Python for example runs Eve Online pretty well. Distributed debugging could be done over SSL to local-only listen sockets, and task session keys could be tokens only shown on task creation.

    • @user-lq8gg2uv9z
      @user-lq8gg2uv9z Před 7 měsíci

      It’s needs to be on VM level.

    • @tantalus_complex
      @tantalus_complex Před 5 měsíci

      Programming languages are "easy" to invent. But as he said, they require an army to make them successful.
      And it isn't always a simple "build it and they will come" scenario. The history of innovation is littered with the corpses of first-of-kind products which failed for little or no reason to do with the product.
      Anyway, in terms of progress, I think we're nearing a turning point - potentially, a true Kuhnian _paradigm shift._ And that is exponentially harder to predict or to cause at any time other than _just_ the right time.

    • @magne6049
      @magne6049 Před 4 měsíci +2

      The Misty name is actually a pun on vapor, as in vaporware. According to Crockford himself, in the JS Jabber podcast about Misty.

  • @eliseulucenabarros3920
    @eliseulucenabarros3920 Před rokem +1

    Brooks say that will not have a new paradigm on less than 50 years ....

  • @seancharles1595
    @seancharles1595 Před 10 měsíci +1

    Yeah. Erlang, OTP. Green Arrays too.

  • @noelwalterso2
    @noelwalterso2 Před měsícem

    Sounds a lot like Erlang?

  • @erkintek
    @erkintek Před 5 měsíci

    when talking a new lang I'd expect memory management, null values, variable initialization, etc. He discovered microservices

  • @strathound
    @strathound Před rokem +6

    We need a language like Javascript (but not) that is optimized for serverless development and serverless environments. Please.

  • @VolodymyrFrolov
    @VolodymyrFrolov Před rokem +3

    When I see all these Liaisons and Minions, what I see is not how beautiful the actor paradigm is. What I see is how to get around various problems in the model I don't even care about. Thanks, but no, thanks. I can leave without Liaisons and Minions.

    • @avidrucker
      @avidrucker Před rokem

      What are some of these problems that arise?

  • @reluminopraha5948
    @reluminopraha5948 Před 11 měsíci

    I think that the only way to introduce a new language is to MAKE it.

  • @TheBuzzSaw
    @TheBuzzSaw Před 11 měsíci

    Please just keep dec64 as a separate type from binary floats.

    • @BienestarMutuo
      @BienestarMutuo Před 11 měsíci

      Posits could be a better alternative. But as he say, we need a very new platform, starting with the processors.

  • @Fitzrovialitter
    @Fitzrovialitter Před 5 měsíci

    So, the next programming language is "Misty"? I I doubt it.

  • @emstudios14
    @emstudios14 Před 8 měsíci

    DC THE LEGEND HIMSELF

  • @PaulSebastianM
    @PaulSebastianM Před rokem +5

    Did he say Cockfurd twice???

  • @TimUckun
    @TimUckun Před 10 měsíci

    Sounds a lot like Erlang.

  • @bjlbernal
    @bjlbernal Před 26 dny

    I'm having a hard time seeing this as a language instead of a design pattern.

  • @szymonbaranowski8184
    @szymonbaranowski8184 Před 11 měsíci

    How will actor built of actors work?
    Entities can cooperate in groups accepting partial loss of independence and acting as actors themselves with own independent logic of actions here messaging
    so you will not predict behaviour of whole system because everything flows various ways without central registration
    how will you understand whole complexity of this when so many elements will be interconnected messaging randomly
    i guess this decentralisation is it's bigger plus
    but all makro guys will hate it 😂
    i know what will work best for debugging it
    sending swarms of malicious botactors
    and letting natural selection preserve only well adapted safe optimised actors
    it's literally what happens in nature
    eventually stabilising system in resilient form

  • @Joshua-dc4un
    @Joshua-dc4un Před 11 měsíci +1

    Programmers casually talking about suicide 😂

  • @AndrewTSq
    @AndrewTSq Před 11 měsíci

    Can we stop calling functions in languages so unlogical things? Thats on my wishlist in next language😊

    • @CTimmerman
      @CTimmerman Před 10 měsíci

      Common terms are how language works, but in some circles like mathematicians, they like to do things like start counting from 1, confusing others.

  • @CarlosRojas-zk1ic
    @CarlosRojas-zk1ic Před 11 měsíci +1

    Akka ?

  • @xyzzyb
    @xyzzyb Před rokem +7

    Aww man, so close to getting Erlang/Elixir towards the end but it's clear he's not actually worked with those languages.

    • @kelownatechkid
      @kelownatechkid Před rokem +2

      He specifically mentions erlang in response to a question though...

    • @GeekProdigyGuy
      @GeekProdigyGuy Před 11 měsíci

      Sounds like he has at least tried Erlang and has some idea of how it works. But Elixir maybe more surface level.

  • @szymonbaranowski8184
    @szymonbaranowski8184 Před 11 měsíci

    Poor countries use old smartfones with big connection lags. Assumptions computers are fast now are very elitist way of thinking also a wasteful type of thinking
    something what gave us windows spyware instead of easy to use linux to anybody on any machine they by chance have

    • @xybersurfer
      @xybersurfer Před 11 měsíci

      i don't understand how you think that the wastefulness of Windows lead to not easy to use Linux. i also wish Linux was easier to use

  • @boot-strapper
    @boot-strapper Před rokem

    Seems like a bandaid for microservices

  • @o_corisco
    @o_corisco Před rokem

    why u need mutability in distrubuted systems? He makes this wild claim but never supports it with facts...
    What i find weird about this claim is that you can have state and imutability at the same time, for example, state monads or react reducers.
    The funny part is that on his entire presentation there are no traces that mutability is really needed.

    • @S7rul
      @S7rul Před rokem

      You basically never "need" mutability but if you don't want to pass around state in some way it is useful.

    • @o_corisco
      @o_corisco Před rokem +1

      @@S7rul, in functional programming languages you can pass state implicitely with monad transformers.
      But i've seen his newer talks and he does not claim this anymore.

    • @GeekProdigyGuy
      @GeekProdigyGuy Před 11 měsíci

      Indeed you can use monad tricks to make mutation look pure in FP. Unfortunately the only semi-usable language where this is actually common is Haskell, and Haskell is a terrible choice for mutation-heavy + high-performance systems.

    • @o_corisco
      @o_corisco Před 11 měsíci

      @GeekProdigyGuy sure m8. I can see how you never used haskell in a highly concurrent and distributed environment, nor understand what you call "trick". But think what you will, everyone is entitled to their own opinion, even if that opinion is founded on wrong and biased assumptions.
      take care.

    • @Danizords
      @Danizords Před 9 měsíci

      @o_corisco if my bank account has $0 and I send a "deposit" message to it, then later on I send a "get_balance" message to that ***same*** account, I expect it to respond with a changed balance. If it was immutable, I'd get a new account with the increased balance, but what happens with everyone else that holds the address of the old account? :)

  • @yur3tz
    @yur3tz Před rokem +3

    Well, there was a lot to disagree with in this talk, but this indeed is not a proper place to find all the falsy propositions and lay all the arguments out, so we will "leave it as an exercise for a careful listener" 😜

    • @alessandrob.g.4524
      @alessandrob.g.4524 Před rokem +8

      I’d like to know your thoughts. Please, share.

    • @ximono
      @ximono Před rokem +4

      Well, that's not very helpful is it? Feel free to speak your mind.

    • @ericpmoss
      @ericpmoss Před 11 měsíci +2

      @@ximonoI’ll add my gripe - the speaker pretends that Lisp never existed, and gives credit for a huge number of features to languages that copied it from Lisp, badly. It’s infuriating, and he comes up with convenient excuses for why some languages got popular. He emphasizes language purity when convenient for a particular point he wants to make, and glosses over when convenient. Back to Lispisms - functional; symbols; dynamic and manifest typing, with static typing available as advice; dynamic and lexical scope; REPL; mixed compiled and interpreted code; compiler available at runtime; massive parallelism (Top-Level Lisp, IIRC), multi-paradigm modeling, multiple inheritance, programmable object model through macros; homoiconicity.

    • @ccgamedes33
      @ccgamedes33 Před 11 měsíci +1

      ​@ericpmoss He mentioned Scheme. He has extolled Lisp's merits elsewhere. In JSTGP he says"...[JS] is Lisp in C's clothing. This makes JS a remarkably powerful language".

  • @sofiaknyazeva
    @sofiaknyazeva Před rokem +1

    Honestly, this is also why JavaScript is popular out there. Because it's a crap language and companies like crap to push to its users.

    • @tuananhdo1870
      @tuananhdo1870 Před 11 měsíci

      Its act like scheme, and scheme í a gôd language

  • @mpcref
    @mpcref Před 24 dny

    Announces a new programming language. Proceeds to describe message passing and databus / data mesh architecture. Useless talk.

  • @ryancole7371
    @ryancole7371 Před rokem +4

    Sooo this is basically Ethereum LOL.

    • @ximono
      @ximono Před rokem +3

      No, it's basically Elixir/Erlang with a JavaScript flavour. Lol.

    • @avidrucker
      @avidrucker Před rokem

      What's the diff between actors all the way down and block chain?

    • @ximono
      @ximono Před rokem +1

      @@avidrucker Can't tell if you're being satirical or sincere, but: A lot?

    • @Danizords
      @Danizords Před 9 měsíci

      ​@@avidrucker actors are about information hiding and blockchain is a public ledger? xD

  • @daitedve1984
    @daitedve1984 Před 11 měsíci +3

    A guy who waste time on "How JavaScript Works", doesn't deserve to listen. Pay attention to Nemerle - THIS is "next language" w/o any egg-head abstractions!

    • @tantalus_complex
      @tantalus_complex Před 5 měsíci

      _Nemerle?_
      I don't think it's going to happen, guys.

  • @palfers1
    @palfers1 Před rokem +3

    Anyone remember the Transputer? Occam? InMos? That went well...

    • @avidrucker
      @avidrucker Před rokem

      What went wrong?

    • @ericpmoss
      @ericpmoss Před 11 měsíci

      @@avidruckerI remember them, bought the Occam book, and attended some very neat demos by the Inmos team. It was IMO very specialized, and specialized tools at that time (and probably now) needed a lot of capital to push their way into wide enough acceptance to stay alive. It was different enough that most programmers didn’t want to push their way through to get comfortable with it.

  • @AndrewCosmos7
    @AndrewCosmos7 Před rokem +3

    He is describing CosmWasm used mainly in the Cosmos Ecosystem. A distributed web assembly language that can work for cross-chain applications.
    Great one 😁👌

    • @lanrewaju
      @lanrewaju Před rokem

      thats the dumbest name i ever heard.

    • @avidrucker
      @avidrucker Před rokem

      Is this validatable with actors all the way down, or one of the other 2 paths forward that he describes?

  • @oso2k
    @oso2k Před 10 měsíci

    Have you considered HATEOAS? en.wikipedia.org/wiki/HATEOAS