Clojure: A live Demonstration of Simplicity That is Production Ready - Nir Rubinstein

Поделиться
HTML-код
  • Опубликовано: 7 фев 2025

Комментарии • 41

  • @Wix-Engineering
    @Wix-Engineering  4 года назад

    For more engineering updates and insights:
    * Visit our blog: www.wix.engineering/blog
    * Follow us on: Twitter: twitter.com/WixEng
    * Visit us on GitHub: github.com/wix
    * Subscribe to our monthly newsletter: www.wix.engineering/subscribe
    * Follow our Medium publication: medium.com/wix-engineering
    * Listen to our podcast: www.wix.engineering/podcast
    * LinkedIn: www.linkedin.com/showcase/wix-engineering/

  • @NirRubinstein
    @NirRubinstein 6 лет назад +65

    Hi all
    A few answers to the comments below:
    1. I'm using neovim
    2. The repl is leningen inside a drop down terminal of your choice (yakuake/guake/iterm2)
    3. Some plugins that I use: fireplace, rainbow-parens, paredit, ale
    4. The errors in vim are from the ale plugin in tandem with joker - a clojure linter
    Glad you enjoyed this!
    P.S - I'm not a Wix employee - Wix mainly write in Scala on the backend. I work at AppsFlyer and gave this talk at Wix at their request

    • @khalidkha5077
      @khalidkha5077 4 года назад +1

      Amazing talk, I wish to see more talks like this. You have such an amazing interactive skill and its fun watching you. Thanks

    • @MattLaine
      @MattLaine 4 года назад

      Hi Nir: Thanks for the talk and for the response to the Qs here. Is there any way to get @Wix Engineering Tech Talks to pin this comment so that it stays at the top of the page?

  • @Agent-ic1pe
    @Agent-ic1pe 5 лет назад +2

    This presenter is awesome, whenever I'm thinking of a question he immediately answers it, as if he knew what I was thinking! 12/11, would definitely recommend!

  • @CraigPerry
    @CraigPerry 5 лет назад +3

    great talk, really enjoyed this

  • @JoshReighley
    @JoshReighley 7 лет назад +3

    Very good! Thanks for putting this up..

  • @laalbujhakkar
    @laalbujhakkar 2 года назад +2

    been tryna learn this language since 2012… not easy to do as side project

  • @AlexEmelyanov86
    @AlexEmelyanov86 6 лет назад +1

    Great! Very clean explanation of things

  • @voidmind
    @voidmind 5 лет назад +5

    I tried learning Scheme on my own when I had just learned programming and I was put off by it's odd syntax, but now that I am interested in functional programming again some 20 years later thanks to my exposure to ReactJS, I find Clojure's syntax very appealing (this video is the first time I see it). It looks way more approachable than Haskell (for a non lambda calculus nerd) and seems to have a more developed ecosystem of third party libraries than Elm. I'm going to have to take a deeper look.

  • @samuelcouto9986
    @samuelcouto9986 4 года назад +2

    Great talk. I would like to know what neovim's plugins did he use?

  • @filippocostalli2358
    @filippocostalli2358 5 лет назад +1

    awesome!

  • @indigo0086
    @indigo0086 6 лет назад +1

    What gives you those blinking errors?

  • @some-online-dude
    @some-online-dude 6 лет назад

    Did that change that http-kit is now a wrapper around netty? I remember it being a full http implementation.

    • @NirRubinstein
      @NirRubinstein 6 лет назад +2

      Absolutely correct - I was thinking about aleph-http when giving the talk. http-kit has its own impl.

  • @Simon-xi8tb
    @Simon-xi8tb 6 лет назад +2

    What vim/neovim plugins is he using ?

  • @yondam1
    @yondam1 6 лет назад +3

    can someone tell what editor he is using?

    • @S4rl4t4n
      @S4rl4t4n 6 лет назад +1

      He's using Vim.

    • @andrewnelson3714
      @andrewnelson3714 6 лет назад

      vim in the yakuake drop down terminal

    • @jaredsmith5826
      @jaredsmith5826 6 лет назад

      Its neovim. Specifically with a Qt graphical frontend. There are graphical frontends (e.g. gtk), or you can just run it in a shell. I typically use it that way, this vid is making me consider switching to a graphical frontend.

  • @DmitryFomin
    @DmitryFomin 7 лет назад +3

    Great! I only not understand clearly why need :as in binding after GET

    • @AlexandreCisneiros
      @AlexandreCisneiros 7 лет назад +5

      The `:as` is used to separate the requests parameters from the request itself. When you list the parameters, you get both named parameters (the ones specified on the route string) as well as query string parameters (ones that don't appear on the route string, used with a question mark). Example:
      (GET "/user/:name" [name company]
      (str "Hello " name ", from " company "!"))
      You can then call the URI `server.example/user/dmitry?company=acme` and that works. If you, besides the request parameters (named and query string), want the request itself, you use the `:as` keyword to say the parameters list is finished, and the next variable will hold the request.
      (GET "/user/:name" [name company :as req]
      (str "Hello " name ", from " company "!"))
      I now have a reference to the request itself (which I didn't use, but I could). :)

  • @zemariagp
    @zemariagp 4 года назад

    "we'll do it live"

  • @AmanuelNega
    @AmanuelNega 6 лет назад +3

    I need his .vim*

  • @abrahamraji3699
    @abrahamraji3699 4 года назад

    Has a Gnome sticker on but runs KDE?

    • @NOCTUMSEMPRA
      @NOCTUMSEMPRA 4 года назад +1

      I find it a real crime, I mean... using Vim for speed and a bloaty window manager behind. Anyways...

    • @abrahamraji3699
      @abrahamraji3699 4 года назад

      It's not a window manager. But it's convenient so can't really blame him for that.

    • @murraynatkie7490
      @murraynatkie7490 4 года назад

      gnome has a cooler logo, that's all

    • @dariuselijah9277
      @dariuselijah9277 4 года назад

      Who gives a sh*t what and how he uses his machine?

  • @rodelias9378
    @rodelias9378 5 лет назад +3

    That's great! I didn't know Borat uses Clojure...

  • @Bobby-bz8bk
    @Bobby-bz8bk 5 лет назад +3

    strange fellow but very good teaching style

  • @mmddyyyy-his
    @mmddyyyy-his 6 лет назад +2

    he's doing coding without mouse or advanced editor, he's probably a god

  • @webgpu
    @webgpu 4 года назад

    NOTHING TO DO WITH THE VIDEO'S TITLE. SKIP THIS VIDEO AND FIND ANOTHER ONE THAT ACTUALLY EXPLAINS CLOJURE.

  •  4 года назад

    Clojure is bordering on esoteric language, right? All those parentheses.. 😂😂

  • @michaelkohlhaas4427
    @michaelkohlhaas4427 4 года назад

    *Maybe production ready but certainly not simple! I can do the same in seconds. Why? Because it's always the same crap and I have a template for it!*

  • @Naton
    @Naton 4 года назад

    what is this junk programming language. so hard to read

  • @voidmind
    @voidmind 5 лет назад

    You dis frameworks and then you discuss libraries. frameworks and libraries are the same thing.

    • @JhonnyMoreiraMyself
      @JhonnyMoreiraMyself 5 лет назад +1

      I do get why you'd assume this, but it's not correct. Framework === Multiple libraries serving you as a toolkit. Take Ruby on Rails as framework example and React as JavaScript UI Library.

    • @troglodylethol
      @troglodylethol 5 лет назад +4

      There is a huge difference between libraries and frameworks. With libraries you call it's code, with frameworks, it calls your code. Example: you can use a "bridge pattern" with a library, calling your own function that implements the needed functionality being provided by the library. This gives you the ability to swap out the library later without having go and revisit every implementation of that library throughout your application (running into this now with an ORM). However with a framework, there is no such protection, it IS your application, it IS your code. You can't just swap out a framework - you simply rewrite your app. This the same argument I'd use against React's claim to be merely a "view library". Try and head and swap it out for another "library", you'd end up rewriting your entire app.