Nim in 100 Seconds

แชร์
ฝัง
  • เผยแพร่เมื่อ 2 พ.ย. 2022
  • Nim is a general-purpose programming language known for its python-like syntax and ability to compile to multiple languages like C, C++, and JavaScript. Learn the fundamentals of Nim in this quick tutorial.
    #programming #code #100SecondsOfCode
    💬 Chat with Me on Discord
    / discord
    🔗 Resources
    Nim Docs nim-lang.org/
    C in 100 Seconds • C in 100 Seconds
    Python in 100 Seconds • Python in 100 Seconds
    Lisp in 100 Seconds • Lisp in 100 Seconds
    🔥 Get More Content - Upgrade to PRO
    Upgrade at fireship.io/pro
    Use code YT25 for 25% off PRO access
    🎨 My Editor Settings
    - Atom One Dark
    - vscode-icons
    - Fira Code Font
    🔖 Topics Covered
    - What is the Nim language?
    - Who created Nim?
    - What is Nim used for?
    - Nim basics tutorial
    - Nim vs Rust
    - Nim vs C
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 875

  • @huskyhacks
    @huskyhacks ปีที่แล้ว +1461

    One fun little fact about this language is that it's grown a ton in popularity in the ethical hacking/red teaming community due to its simplicity, cross-compilation capabilities, and ease of access to the Windows API with the winim library. It's one of my favorite programming languages for rapid prototyping red teaming tools.

    • @dariusduesentrieb
      @dariusduesentrieb ปีที่แล้ว +114

      And also in the less ethical hacking space ...
      Some virus scanners even blocked many Nim programs just because they looked like they've been written in Nim.

    • @shapelessed
      @shapelessed ปีที่แล้ว

      @@dariusduesentrieb Don't blame hackers, blame the antivirus mob using it to squeeze money from you.
      Many of these are excuses to force developers into paying for whitelisting their products...

    • @RoyRope
      @RoyRope ปีที่แล้ว +9

      Cool, never even heard of it before.

    • @zulcode1196
      @zulcode1196 ปีที่แล้ว +5

      and vlang too

    • @Peter-yd2ok
      @Peter-yd2ok ปีที่แล้ว +1

      I wanna learn ethical hacking. Can someone plz give recommendations on how to get started?
      Thanks in advance

  • @giraudl
    @giraudl ปีที่แล้ว +961

    I use Nim as the main programming language in my company here in Paris. Team size is 6 devs, junior and mid-level. Our productivity is now insane. I have to confess I had to write some tooling and utilities for them to use Nim easily. That said, we use Nim now for everything, from Really Big Data to Web Development & ORM, low-level RPC stuffs, to fine-grained AI/GPU computing (thanks to Arraymancer)

    • @holthuizenoemoet591
      @holthuizenoemoet591 ปีที่แล้ว +115

      Love it when small companies are not afraid of using something unique. What do you guys do?

    • @Djolewatchtastife
      @Djolewatchtastife ปีที่แล้ว +43

      Was just gonna ask what’s the startup called?

    • @knkp513
      @knkp513 ปีที่แล้ว +22

      Some of that tooling you're referring to might be another market. Wouldn't mind seeing what that's about.

    • @alexandredaubricourt5741
      @alexandredaubricourt5741 ปีที่แล้ว +45

      Embauche moi j'en ai marre de typescript tout notre backend tourne sur node c'est un toaster géant 😭

    • @Djolewatchtastife
      @Djolewatchtastife ปีที่แล้ว +14

      @@alexandredaubricourt5741 ça devient toujours le même quand les projets avancent

  • @vioxa8645
    @vioxa8645 ปีที่แล้ว +669

    Honestly this has been my favourite programming language for a while, and it’s so great it’s getting more light shed on it. Goes to show the major reason languages become popular is simply marketing and endorsement, which lets gems like Nim get buried.

    • @nicocesar
      @nicocesar ปีที่แล้ว +9

      Looks awesome but the complexity can be overwhelming, is it a good Solo-Only programing language or do you have a good experience with tenths of programmers working in the same code base?

    • @theLowestPointInMyLife
      @theLowestPointInMyLife ปีที่แล้ว +38

      I wish Nim had the backing and man power of Rust, then it could be something great.

    • @PrimeToolbox
      @PrimeToolbox ปีที่แล้ว +10

      When I'm investigating which programming languages big companies are using, I always found some unpopular languages on the code base. There's a reason why seniors decided to use them.

    • @jp46614
      @jp46614 ปีที่แล้ว +2

      It's completely useless

    • @giraudl
      @giraudl ปีที่แล้ว +33

      ​@@nicocesar I use Nim as the main programming language in my company here in Paris. Team size is 6 devs, junior and mid-level. Our productivity is now insane. I have to confess I had to write some tooling and utilities for them to use Nim easily. That said, we use Nim now for everything, from Really Big Data to Web Development & ORM, low-level RPC stuffs, to fine-grained AI/GPU computing (thanks to Arraymancer)

  • @philiphanhurst2655
    @philiphanhurst2655 ปีที่แล้ว +247

    Nim is easily my favorite language. Performance of C, syntax of python, compile-time evaluation of zig, (optional) move semantics of rust, metaprogramming of lisp, and a great compiler that balances it all so you don't have to worry about it. It's honestly so much fun to play around with.

    • @astroid-ws4py
      @astroid-ws4py ปีที่แล้ว +17

      And types declarations of Pascal / Oberon / Modula

    • @happyjohn1656
      @happyjohn1656 ปีที่แล้ว +4

      There's also Julia

    • @joeymea
      @joeymea ปีที่แล้ว +8

      @@happyjohn1656 Julia is terrible for most purposes. Sure, may have c-like speeds, but it also has c-like compile times that slow you down every single time you run your program

    • @RD-fb6ei
      @RD-fb6ei ปีที่แล้ว +15

      @@joeymea julia gets nowhere close to C except for their cherry picked array benchmarks

    • @astroid-ws4py
      @astroid-ws4py ปีที่แล้ว +13

      @@joeymea Fixed that for you: Not C-Like compile times but C++-Like compile times.

  • @c_nerd9149
    @c_nerd9149 ปีที่แล้ว +66

    Finally
    Edit :
    `let` and `const` create immutable variables but `const` variables are evaluated at compile time while `let` variables are evaluated at runtime

  • @playea123
    @playea123 ปีที่แล้ว +291

    Would definitely be interested in a beyond video on nim! The syntax being so similar to Python will entice Py developers that want to delve into systems engineering

    • @isofruitfruit9357
      @isofruitfruit9357 ปีที่แล้ว +40

      The nice thing is that the python interop, if needed, is pretty easy. Want to do something computationally expensive but there isn't already a lib out there that wraps c-code for you? Simply write it in nim, compile it and with pretty low amounts of effort you can use it in python through a package called nimpy.

    • @playea123
      @playea123 ปีที่แล้ว +4

      @@isofruitfruit9357 oh wow that’s awesome!!

    • @crackwitz
      @crackwitz ปีที่แล้ว +14

      I'd want the opposite, using popular python packages in Nim. Getting that part of the ecosystem would be extremely valuable

    • @jww0007
      @jww0007 ปีที่แล้ว

      you can read the docs

    • @playea123
      @playea123 ปีที่แล้ว +2

      @@crackwitz that would be fantastic as well

  • @nemeziz_prime
    @nemeziz_prime ปีที่แล้ว +291

    Finally someone shed light on Nim 😍 Rightly deserved a video by fireship

  • @marcelo_360
    @marcelo_360 ปีที่แล้ว +1580

    0-index comment

    • @goodguydynamitegaming387
      @goodguydynamitegaming387 ปีที่แล้ว +142

      This has the be the best "first" comment I've ever seen. bravo

    • @vaisakhkm783
      @vaisakhkm783 ปีที่แล้ว +58

      Okk you got the -first- 0-th price 🏆

    • @JustPyroYT
      @JustPyroYT ปีที่แล้ว +4

      Congrats

    • @rranon8489
      @rranon8489 ปีที่แล้ว +31

      Phew! This made me think that this programming language is not 0-indexed!

    • @cosmicspice9477
      @cosmicspice9477 ปีที่แล้ว +9

      TH-cam commenters are evolving lmao

  • @wanderingthewastes6159
    @wanderingthewastes6159 ปีที่แล้ว +55

    1:36 I don’t use Nim but I’m pretty sure that procedures are explicit impure functions, while functions declared with ‘func’ are explicitly pure.

    • @gfrewqpoiu
      @gfrewqpoiu ปีที่แล้ว +22

      That's right and Nim uses both with precisely this distinction and it's enforced by the compiler.

    • @henriquefinger935
      @henriquefinger935 ปีที่แล้ว +6

      Beautiful

    • @imelbertkim
      @imelbertkim ปีที่แล้ว +2

      I don’t understand this well but I want to. What’s the difference between an impure function vs a pure function in the context of async/sync?

    • @henriquefinger935
      @henriquefinger935 ปีที่แล้ว +18

      @@imelbertkim pure functions are, by definition, functions that have no side effects and whose output depends only on their input. This has many advantages, as you are guaranteed to get the same output given the same input every single time. Therefore, parallelizing the calls of pure functions is trivial, as you don't have to worry about deadlocks, race conditions or similar issues.

    • @imelbertkim
      @imelbertkim ปีที่แล้ว

      @@henriquefinger935 thanks for your explanation!

  • @dirac7233
    @dirac7233 ปีที่แล้ว +79

    Nim comes with many tools out of the box: JSON XML and CSV manipulation, openssl (wrapper), advanced string utils, http, CGI, SMTP, mime types list, base64 encoding, html manipulation (compiles to JS for the browser), several easy to use approches for concurrency and parallelism (async/await, single threads, thread pools, etc..) and much more ! ❤️❤️❤️

  • @sp.n7401
    @sp.n7401 ปีที่แล้ว +75

    happy to see this, i absolutely love nim and it deserves much more attention, everything is so efficient and simple

  • @MichaelMilord
    @MichaelMilord ปีที่แล้ว +22

    I discovered Nim a couple years ago, and fell in love with it. Thank you soooo much for making this! Hopefully it will attract more people and interest towards the language!

  • @_sevelin
    @_sevelin ปีที่แล้ว +168

    This seems like a great mixture of C and Python
    Like superb control and efficiency of C and indentation and no semicolons from Python

    • @maxwellwellman
      @maxwellwellman ปีที่แล้ว +76

      people like python's indentation?

    • @SkyyySi
      @SkyyySi ปีที่แล้ว +61

      @@maxwellwellman Yes?

    • @eeriemyxi
      @eeriemyxi ปีที่แล้ว +59

      @@maxwellwellman Yes.

    • @eeriemyxi
      @eeriemyxi ปีที่แล้ว +6

      I'm not a fan of their styling conventions though.

    • @astroid-ws4py
      @astroid-ws4py ปีที่แล้ว +5

      And macros from Lisp

  • @notanenglishperson9865
    @notanenglishperson9865 ปีที่แล้ว +21

    I can't believe that's the first time I hear about this magnificent language.

  • @roteschwert
    @roteschwert ปีที่แล้ว +41

    Nim is actually older than I thought & actually has a far superior feature set to Golang. I wonder why it didn't take off.

    • @dorianhill2480
      @dorianhill2480 ปีที่แล้ว +8

      It's about to !

    • @ViaConDias
      @ViaConDias ปีที่แล้ว +28

      Go and Rust has billion $ companies pushing them. All NIM has is a community and the fact that it's an amazing language. But NIM is literally SO good that it will become mainstream even against these odds. Personally, I switched and now only use NIM in all situations where I'm not locked to a language because of a platform. Even my beloved Python 3 has been retired 🏖 Projects already written in Python, I slowly rewrite in NIM as I continue development.

    • @danvilela
      @danvilela ปีที่แล้ว +4

      @@ViaConDias What about the lib ecosystem? Is it good? Like dumping python you also dump all of that right?

    • @drygordspellweaver8761
      @drygordspellweaver8761 ปีที่แล้ว +10

      Nim will take off because I am looking into it and the masses always follow my thoughtform!

    • @janAkaliKilo
      @janAkaliKilo ปีที่แล้ว +3

      @@danvilela there're plenty of Nim libraries, many of them native. And many are wrappers of existing C libraries, if you can't find a library that suits your needs Nim has excellent FFI with C, and it's even possible to call Python libraries with `nimpy`.

  • @Aphova
    @Aphova ปีที่แล้ว +17

    Usually I watch these videos for entertainment but you've just introduced me to a very cool language I hadn't heard of. Awesome.

  • @Bruhfinally
    @Bruhfinally ปีที่แล้ว +14

    Honestly didn’t think you’d cover this. Thank you for the exposure.

  • @daifee9174
    @daifee9174 ปีที่แล้ว +65

    This is awesome, I was just thinking about how cool it would be to have a C++ with python syntax and then BOOM this video comes out!

    • @XoloJay
      @XoloJay ปีที่แล้ว +2

      I_did_not_see_underscores

    • @vaisakhkm783
      @vaisakhkm783 ปีที่แล้ว +4

      Fk... this guy reads our mind
      (or probability to blame?)

    • @DreadKyller
      @DreadKyller ปีที่แล้ว +2

      @@vaisakhkm783 Frankly it's happened too many times to be probability at this point. There was one point where he put out 4 videos in a row that I had been looking into the days prior...

    • @JeremyKolassa
      @JeremyKolassa ปีที่แล้ว

      Nah, Jeff is clearly psionic with telepathic and precognitive abilities

    • @themasterofdisastr1226
      @themasterofdisastr1226 ปีที่แล้ว

      @@vaisakhkm783 Nim was definitly on his TO-DO list. At least bc he mentioned it in his Iceberg Vid.

  • @evanhowlett9873
    @evanhowlett9873 ปีที่แล้ว +19

    I'm glad you're getting into more esoteric languages. Nim was probably my first foray into the lesser known languages.

    • @matthiasschuster9505
      @matthiasschuster9505 ปีที่แล้ว

      Wanna try a couple of new ones?
      Gleam, Pony, F#

    • @evanhowlett9873
      @evanhowlett9873 ปีที่แล้ว +4

      @@matthiasschuster9505 I use F# pretty regularly at work. I've looked at Pony but it's essentially dead. Last I checked all the maintainers are working on Verona or something like that. Gleam runs on the BEAM, right? I've done a small phoenix app in elixir and hated it... which sucks because I wanted to like elixir. It may have just been phoenix that I didn't like, though.
      I love the idea of actors and that approach to concurrency and would like to build out the idea more in F#. Agents are cool but nowhere near as robust as what Erlang/Elixir, and I assume, Gleam have.

  • @MrEnder0001
    @MrEnder0001 ปีที่แล้ว +12

    Nim is a amazing language I have been using it for over 4 months now and it is amazing I started using this language after python and its amazing.

  • @EdgeGaming
    @EdgeGaming ปีที่แล้ว +47

    Definitely deserves a course from you Jeff! Such a great little language.

  • @geckwwo
    @geckwwo ปีที่แล้ว +11

    Started programming on Nim after this video, I absolutely love it

  • @unknownd3v
    @unknownd3v ปีที่แล้ว +3

    It's incredible how you know all these low-level languages and give us a really short tutorial teaching us an overview, explaining it so naturally!! That's really amazing, thank you for your videos!

  • @vinayaksingh524
    @vinayaksingh524 ปีที่แล้ว +5

    I started learning nim a few weeks ago , and i dropped in to see what's fireship upto in the last few weeks but I'm so happy to see nim here .
    Please do one on V-Lang too

  • @africa_explained_tv
    @africa_explained_tv ปีที่แล้ว +9

    The syntax alone has me excited af! Can't wait to run through it over the weekend

  • @dylhack
    @dylhack ปีที่แล้ว +70

    You can also, during compile time, determine if a function is async or not.

    • @isofruitfruit9357
      @isofruitfruit9357 ปีที่แล้ว +10

      You can do so much insane stuff during compile-time. In webdev I used it literally to evaluate in an ORM whether the Models you gave me for a many-to-one query were correct (so if the "Many" side had a Foreign-key field to the "One" side of the relationship), allowing me to give users compile-time guarantees.
      If their code compiles, their query for the many-to-one and many-to-many relationships will be correct and work, no runtime errors in that regard.

    • @saeedbaig4249
      @saeedbaig4249 ปีที่แล้ว

      @@isofruitfruit9357 Fascinating; compile-time guarantees on correctness sounds like a really powerful capability - the only other language I heard could do something like that was Haskell.

    • @pmj_studio4065
      @pmj_studio4065 ปีที่แล้ว +1

      In Rust, the sqlx crate does something similar with macros - you write SQL queries as strings, sqlx calls the database at compile time and checks the returned type. Haven't used it much though ^^

    • @isofruitfruit9357
      @isofruitfruit9357 ปีที่แล้ว +1

      @@saeedbaig4249 You can basically force anything to be used at compile time with the {.compileTime.} pragma. I often enough do this to do some arbitrary logic checks here and there, SQL is the most prominent example I can come up with since in an ORM you're rebuilding a schema with inherent logic connections that aren't going to be otherwise represented in the code. Nim has another feature called `Concepts` which are a bit complicated to use imo but are essentially interfaces that allow you to check types at compile-time for certain properties or behaviour, such as whether a method with a specific signature is defined, whether a method returns a specific value for them or similar.

  • @rakeshchowdhury202
    @rakeshchowdhury202 ปีที่แล้ว +12

    Finally, as someone who learnt nim in 2020, I can say "just watch the nim fireship video"

  • @Exilum
    @Exilum ปีที่แล้ว +39

    Nim seems great. I'm not a fan of the python syntax in general, but I like how flexible it seems to be.

    • @ViaConDias
      @ViaConDias ปีที่แล้ว +3

      The power NIM gives you is second to none so you'll learn to live with the syntax

    • @omarjimenezromero3463
      @omarjimenezromero3463 ปีที่แล้ว +5

      it is pretty beginner friendly and optimized to write software pretty fast, i do not know why that has not been a deal before, the verbose languages like java are a hell to me to write something that does something without spend my live on it, i like python and lua syntax because i can write a lot and do a lot of things without have to worry if i have a syntax error, i can focus on logical errors more than if a symbol got out my way at writting. Well at least that is my opinion after programing in java and in C/C++, python and lua.

    • @drygordspellweaver8761
      @drygordspellweaver8761 ปีที่แล้ว +1

      Java is indeed hell

  • @YuriG03042
    @YuriG03042 ปีที่แล้ว +6

    Finally the guy who asks for this in every video can live a peaceful life.

  • @avithedev
    @avithedev ปีที่แล้ว +57

    Wish more people used Nim, such a good language

    • @xnoreq
      @xnoreq ปีที่แล้ว

      Good idea but bad design and bad implementation. Good for throw away prototypes though.

    • @isofruitfruit9357
      @isofruitfruit9357 ปีที่แล้ว +11

      @@xnoreq Hard disagree here. The implementation perfectly useable in general. Sure could be better, but claiming it's unuseable for production is not correct.

    • @xnoreq
      @xnoreq ปีที่แล้ว +1

      @@isofruitfruit9357 Disagree all you like, it's still correct.
      When a simple hello world turns into 300 kB of JS and you turn to the main developer of the language and he says "it doesn't matter" plus all the other issues the language/transpiler has, good luck using it in production.
      I'd fire any of my devs for grave negligence for using it in production.

    • @planetis_m
      @planetis_m ปีที่แล้ว +7

      @@xnoreq Again I find you here, spreading lies, I have a web app with karax Nim's frontend I am developing with 2 out of 10 pages already implemented and its 500kB. Yes when it's done it would be a lot bigger.
      Now I just compiled a hello world and its 137B!! here is the code:
      proc kout*[T](x: T) {.importc: "console.log", varargs.}
      kout cstring"Hello World!"
      Get a life!

    • @planetis_m
      @planetis_m ปีที่แล้ว +6

      Generated code:
      /* Generated by the Nim Compiler v1.9.1 */
      var framePtr = null;
      var excHandler = 0;
      var lastJSError = null;
      console.log("Hello World!");

  • @raphaelprinz9944
    @raphaelprinz9944 ปีที่แล้ว +4

    I started playing with Nim since the Rust-Conference fiasco. Really like it so far, definitely a good compromise between usability, speed and c compability

  • @snailedlt
    @snailedlt ปีที่แล้ว

    Love these videos about little known languages! Please consider covering julelang next, looks pretty neat.

  • @JeremyKolassa
    @JeremyKolassa ปีที่แล้ว +10

    Thank you! This is one of the two more obscure languages I really wanted to know more about (the other being Zig), so I really appreciate it! The customizing the AST with macros is super interesting, especially since right now I'm working on a TypeScript project where I need to return certain functions based on user config, and I'm starting to get stumped on how to account for all possible options, maybe this would help me?

  • @zb9458
    @zb9458 ปีที่แล้ว +3

    Performance of C, syntax of Python, and Lisp-like metaprogramming? I would LOVE to see a beyond video on Nim!

  • @plurisdesign3210
    @plurisdesign3210 ปีที่แล้ว +1

    Hello Jeff:
    your videos have helped the best to allocate my mind into this extense word, confusing and always evolving, that is development of any kind, just wanted to say that. Thanks

  • @vbkfivn
    @vbkfivn ปีที่แล้ว +4

    I fucking love Nim. It's my favorite language. As many have said, its super useful for ethical hacking, and quick cross platform projects.

  • @gonik9071
    @gonik9071 ปีที่แล้ว

    Nice Video, I love your 100 seconds of series. Would it be possible for you to add tutorial/book recommendations?

  • @destroyer2973
    @destroyer2973 11 หลายเดือนก่อน +3

    Nim 2.0 has dropped. Major changes incoming. I would like to hear your opinion on it.

  • @dariusduesentrieb
    @dariusduesentrieb ปีที่แล้ว +11

    Nim is great! I wrote code that is as performant as the C++ version of it, but it's so nice to read and write.

  • @mohanaggarwal4058
    @mohanaggarwal4058 ปีที่แล้ว +16

    Do u know, u can even compile ur nim code to target node js, nim can also use existing c/c++/obj-c/js code in it we just need to write wappers that is just like function prototypes it can also be done automatically using some 3rd party library, i also saw that they were calling python functions from nim and vice versa, and even macros in nim can also help u to write beautiful DSLs that can be used to automate things that results in writing English like code, while some people might hate UFCS but it is actually very powerful concept that is implemented in nim, and there r many things that i like about nim which i cannot find in any other language.

    • @isofruitfruit9357
      @isofruitfruit9357 ปีที่แล้ว +3

      Note it can also use existing python code trivially via nimpy and vice versa can trivially used to build libraries for python via the same nimpy

  • @WineZ22
    @WineZ22 ปีที่แล้ว +78

    The fact that this video is longer than 100 seconds makes my brain throw a runtime exception 😅
    But as always thanks for the great content

    • @vaisakhkm783
      @vaisakhkm783 ปีที่แล้ว +1

      Uncautch error: #####

  • @lowkeygaming4716
    @lowkeygaming4716 ปีที่แล้ว +2

    Thanks for sharing. This language seems to be really nice. I'll give it a try.

  • @writingpanda
    @writingpanda ปีที่แล้ว +5

    I want to learn more about this language. It sounds amazing.

  • @revoltage8448
    @revoltage8448 ปีที่แล้ว +2

    Neat! Definitely going to try it today

  • @leonlysak4927
    @leonlysak4927 ปีที่แล้ว +2

    In 2020 I was looking for something like Python but with better performance, found Nim, never looked back. It's used in literally every software my company has today

  • @offensivearch
    @offensivearch ปีที่แล้ว +1

    I'm new to nim but afaik proc is used for procedures (aka "functions" with side effects) and func is used for true/pure functions.

  • @EasyGTheTechGuy
    @EasyGTheTechGuy ปีที่แล้ว +1

    Wow. Thanks to fireship for bringing this language to my knowledge.
    Never head of it b4 😶. And it looks interesting
    Would love to see a beyond 100 secs on this 🙂

  • @GagePeterson
    @GagePeterson ปีที่แล้ว +4

    Well, I really want to learn Nim now. Thanks!

  • @Im_Ninooo
    @Im_Ninooo ปีที่แล้ว +16

    100 seconds of gRPC please!
    there's no short explanation video anywhere :(

    • @Yeasiin
      @Yeasiin ปีที่แล้ว

      +=1

  • @c5cha7
    @c5cha7 ปีที่แล้ว +15

    Love your videos, could you do a video on how you keep up to date with current trends and topics? Staying relevant in the programming world is hard haha

    • @Overlord176
      @Overlord176 ปีที่แล้ว +3

      He makes 'codereports'

    • @IvanRandomDude
      @IvanRandomDude ปีที่แล้ว

      Making 100 sec video that requires 5 mins of research on wikipedia is not "keeping up to date" with anything

  • @ThomPorter74
    @ThomPorter74 ปีที่แล้ว

    This looks beautiful, and from the comments here I can see that it is! I will be checking it out for sure!

  • @emeraldboy7979
    @emeraldboy7979 ปีที่แล้ว +1

    we surely need more videos on nim, also what are your thoughs if this language could become popular or something?

  • @_daniel.w
    @_daniel.w ปีที่แล้ว

    Thanks for this video, definitely going to check it out

  • @keyboard_g
    @keyboard_g ปีที่แล้ว

    Nice. .Net just got source generators recently as well and it opens up a lot of avenues. For example, most cases for reflection can be turned into generated and compiled code and run at the speed of normal memory access.

  • @maop
    @maop ปีที่แล้ว +1

    i got to know about this language when i discovered nitter, is such a good software was impressed for how light and quick it was, i went to the source and discovered it was written with Nim

  • @Nox3x3
    @Nox3x3 ปีที่แล้ว +13

    Nim is fantastic!

  • @zyrenth
    @zyrenth ปีที่แล้ว +4

    Really cool, I love it ❤!

  • @gokudomatic
    @gokudomatic ปีที่แล้ว +2

    Nim is so beautiful. I wish I could get a small project to work with it.

  • @evanbarnes9984
    @evanbarnes9984 ปีที่แล้ว +2

    Awesome! I really wanted you to make a video about Nim! I'm really intrigued by it, and would love to see it make its way onto hardware like the ESP32

    • @planetis_m
      @planetis_m ปีที่แล้ว +1

      It has! Better ask question in the #embedded channel in discord.

    • @isofruitfruit9357
      @isofruitfruit9357 ปีที่แล้ว +1

      On that note you may want to look into the nim-based Ratel package for microcontrollers that can produce some absurdly small binaries. The author of said package is active on said discord from time to time.

    • @evanbarnes9984
      @evanbarnes9984 ปีที่แล้ว

      @@planetis_m oh cool! Is that a Fireship discord? Or just a generic embedded discord?

    • @planetis_m
      @planetis_m ปีที่แล้ว

      @@evanbarnes9984 nim's discord (sorry can't post links in youtube)

  • @looc1612
    @looc1612 ปีที่แล้ว +5

    you finally introduce this language

  • @ChavdarIvanov4
    @ChavdarIvanov4 ปีที่แล้ว +1

    Synchronicity... Just this morning I subscribed to Fireship and then checked all the video library for a Nim video, not finding any; just came home and saw this one...

  • @serkandevel7828
    @serkandevel7828 ปีที่แล้ว +13

    With Nim 2.0, the default ORC-memory manager should be competitive to what Rust has while not dropping target platforms

    • @dgames218
      @dgames218 ปีที่แล้ว +1

      but if the official page says that it goes for version 1.6.8

    • @serkandevel7828
      @serkandevel7828 ปีที่แล้ว +2

      @@dgames218 yes but the default memory manager is confirmed to change to ORC for the 2.0 version. The same mm can already be used in current (and a few older) Nim versions

  • @TRXxAnANaS
    @TRXxAnANaS ปีที่แล้ว +3

    I'm gonna learn this one I'm a huge fan of python (so elegant and concise) but I would like to learn a compiled programming language. Especially one I can use for microcontroller that is faster than micropython. I followed a class on golang after your video and it looks amazing too but it's not really compatible with the esp32 which is kind of a deal breaker rn... Thanks a lot for this video 😁

  • @mohanaggarwal4058
    @mohanaggarwal4058 ปีที่แล้ว +4

    Jeff, many many thanks for creating this video🙌, u did a perfect job👌👌, 💯/10, but i feel like many things r still missing, and nim is actually more than just a system programming language.

    • @isofruitfruit9357
      @isofruitfruit9357 ปีที่แล้ว +3

      However, tbf there is just a lot of features that he could use here and he was already running over 100 seconds.
      Stuff like easy use of templates, easy compile-time evaluations, the ability to have style-insensitivity (so if a package in your dependencies uses camelCase you're not forced through their package to have camelCase in your codebase), how you can modify all that behaviour with the compiler, concepts and more
      Just a lot to cover and not a lot of time

  • @TileBitan
    @TileBitan ปีที่แล้ว +2

    this is the best looking systems programming language ive ever seen

  • @Code_Machine
    @Code_Machine ปีที่แล้ว

    Never heard of it before, but I'm glad I did now

  • @Master_Ed
    @Master_Ed ปีที่แล้ว

    sounds really useful, can't believe I've never heard of it

  • @alishxn
    @alishxn ปีที่แล้ว +1

    Love your videos ❤️ literally i learn i lot from you

  • @clarkdnro
    @clarkdnro ปีที่แล้ว

    You got a lot of programming knowledge, You're awesome

  • @dokick2746
    @dokick2746 ปีที่แล้ว +6

    I was always interested in other programming languages, but I was never motivated to use them in my everyday life. I always used Python for my simple tasks, but I have to admit that Nim looks like a programming language, that I will probably use in the future.

    • @isofruitfruit9357
      @isofruitfruit9357 ปีที่แล้ว +6

      Similarly for you, the appeal could lie in nimpy. Sometimes you might run into scenarios where the implementation in python has a particularly expensive step where there is no wrapped c-lib for. You could write that part in nim, compile it with nimpy as a python library and then use that code from python without issue for a nice speed bump.

    • @dokick2746
      @dokick2746 ปีที่แล้ว +1

      @@isofruitfruit9357 That sounds really nice. I will definitely look into that. Thanks

    • @kobi2187
      @kobi2187 ปีที่แล้ว +1

      You can create stand alone executables with Nim. Tools that friends need, just send them one compiled file. It is different from python entire environment.

  • @matroqueta6825
    @matroqueta6825 ปีที่แล้ว +18

    I'm primarily a Julia programmer, and Nim reminds me a lot of Julia but oriented towards systems programming rather than numerical computing.
    For a long time I've known that Nim is the language I'll learn the day I need to write lower level code, and of course I'll recommend Julia to any Nim programmers that see this comment if you have a use case for a higher level language.

    • @ViaConDias
      @ViaConDias ปีที่แล้ว +7

      I never spend any real time with Julia so I can't comment, but the thing about NIM is, that it's so simple and beautiful that I never need a higher-level language, and it's so powerful I never need a lower-level language.

    • @offensivearch
      @offensivearch ปีที่แล้ว +2

      Nim has multiple dispatch too

    • @matroqueta6825
      @matroqueta6825 ปีที่แล้ว +4

      @@offensivearch Thanks, I started using Nim about 2 months ago and I loved it but I also missed multiple dispatch and couldn't find info about it in the docs.
      Now thanks to this comment I looked deeper into it and learnt that in Nim it is called dynamic dispatch, and the diference between `proc` and `method`.

    • @blaisepascal3905
      @blaisepascal3905 หลายเดือนก่อน +1

      Personally I use both Julia and Nim depending on the project and I love them so much!

  • @alegian7934
    @alegian7934 ปีที่แล้ว

    love the informative type of videos

  • @nickskywalker2568
    @nickskywalker2568 ปีที่แล้ว

    Looks really cool!

  • @tulsatrash
    @tulsatrash ปีที่แล้ว

    This looks so cool!

  • @fr3ddyfr3sh
    @fr3ddyfr3sh ปีที่แล้ว

    Nice, finally we get a general purpose system programming language.
    Next to the numerous competitors.
    This is the end of rust, c, c++, D, assembler, swift, objectivec!!!1!

  • @nosferatunoir2740
    @nosferatunoir2740 ปีที่แล้ว +7

    I've been hopping from language to language recently in my search for a new fun language to try and I think I might just have to try Nim. My current fave is Julia and this reminds me a lot of it, except much safer and faster.

  • @noah5592
    @noah5592 ปีที่แล้ว +1

    seems fun to write code in it. might have to try lol!

  • @RD-fb6ei
    @RD-fb6ei ปีที่แล้ว +14

    Best part is if you check the benchmarks, it really does perform close to C. Many languages (ex. Julia) claim that but don’t actually come anywhere close to achieving it, but Nim is usually within a factor of 2 of C/C++ and easily beats Java, go, etc. The only real competitor I’d say is crystal, in that it is also very fast for such an easily language. But Nim has many more features.

    • @isofruitfruit9357
      @isofruitfruit9357 ปีที่แล้ว +1

      Obligatory note though to keep in mind that any kind of synthetic benchmark in general is pretty much meaningless. Like, the most prominent HTTP server in the nim space, httpbeast, does perform well in the http-server benchmarks I've seen (as do servers behind Artix, Rocket and boy will the performance of some of the JS-based servers surprise you), but the benchmarks themselves are fairly far off from real life scenarios.
      And It's been often enough discovered that benchmarks keep comparing wildly different implementations across languages, such as the implementation in one language being multi-threaded while the other is single-threaded for a highly parallelizable workload.
      The key thing to keep in mind is that you have low-level memory control and *can* tweak stuff as needed to get to the performance you need. How much time you end up investing for that depends on the individual usecase, but generally I've stopped looking at performance comparisons between languages that give low-level control. Once you have that it only depends on your knowledge on how to optimize your memory layouts, copy behaviour and the like.

    • @12nites
      @12nites ปีที่แล้ว +3

      Plainly false, you can see Julia at the top of the benchmarks games, along with C, C++ and rust.

    • @RD-fb6ei
      @RD-fb6ei ปีที่แล้ว

      @@12nites those benchmarks and Julia’s own micro benchmarks are the only ones to show that.

  • @fizzcochito
    @fizzcochito ปีที่แล้ว +1

    well damn, I might actually give this a try

  • @chrs-wltrs
    @chrs-wltrs ปีที่แล้ว +3

    It looks cool! I imagine that the compilation times are slower but runtime performance would be similar to C? Since it's first transpiled and then compiled to machine code.

    • @planetis_m
      @planetis_m ปีที่แล้ว

      In general compilation is pretty fast. Think faster than C++/Rust and without any multithreading, or other optimization. The nim compiler compiles pretty fast (12s) in a decent machine and uses about 600mb. However huge projects suffer from slow compile times and there's work done towards incremental compilation in order to fix these issues.

    • @isofruitfruit9357
      @isofruitfruit9357 ปีที่แล้ว

      I do not use C so I have no basis for comparison, but basically for debug builds with around 11k loc on an intel 11th gen i7 I take less than 10 seconds (and that is with the compiler copying a bunch of generic code around a lot), so I'd say in general the compiler is fast enough.

    • @chrs-wltrs
      @chrs-wltrs ปีที่แล้ว

      @@planetis_m wait, nim transpiles to c++ and then to machine code, and it does all of that faster than c++ to machine code??

  • @eduardabramovich1216
    @eduardabramovich1216 10 หลายเดือนก่อน +2

    you really need to make more content about it

  • @jj-big-slay-yo
    @jj-big-slay-yo ปีที่แล้ว +3

    I was looking for a twitter frontend that requires no login. So I stumbled upon nitter. Then I checked what it's written in -- that's how I found nim. After reading its docs for half an hour I figured it's just great. Like python but with 2 spaces instead of 4. Very short, minimalistic syntax, python strange behaviours corrected, low memory requirements, some similarities to golang as well. ... and I was spending some time to learn java (and spring boot), java's syntax is godawful compared to even python or nim. Now I want to write something in nim :) I won;t but will keep it in my mind for sure. It will probably go on my fav' langs list (next to python, go and js).

  • @NimThree
    @NimThree ปีที่แล้ว +5

    My full name is Nimrod which usually makes my nickname "Nim" so I highly enjoyed this video

    • @dariusduesentrieb
      @dariusduesentrieb ปีที่แล้ว +3

      Nim was actually called Nimrod until 2014.

  • @thetrolley
    @thetrolley ปีที่แล้ว +3

    When I want to program without tooling, Nim is the FIRST CHOICE!

  • @1_PieceOfCode
    @1_PieceOfCode ปีที่แล้ว

    Love your videos they help a lot, can you can a video about how to store images in databases or best way to store images for a small project. i am in my final year and i wanted to make some project but i don't have idea how to work with images when it comes to storing them

  • @IzUrBoiKK
    @IzUrBoiKK ปีที่แล้ว

    Thanks guys for these cool vids, btw from were do you find these unique topics?

    • @YuriG03042
      @YuriG03042 ปีที่แล้ว

      this one specifically was begged for over the last 12 or so videos posted in this channel

  • @SchonKonnie
    @SchonKonnie ปีที่แล้ว +1

    Looks pretty neat

  • @jrhwood_
    @jrhwood_ ปีที่แล้ว

    This is language looks sick. Oneday a function PL will be on top... Oneday!

  • @R3ality
    @R3ality ปีที่แล้ว +1

    Imagine if there were ever a "in 100 Seconds" video which was actually 100 seconds long

  • @winfredj9820
    @winfredj9820 ปีที่แล้ว +2

    Nim looks so elegant compared to rust.

  • @khana.713
    @khana.713 ปีที่แล้ว

    Would be interesting to see a video from you on Apache NiFi.

  • @aryanmn1569
    @aryanmn1569 ปีที่แล้ว

    WOWWWW, IT FEELS LIKE THE LANG I ALWAYS WANTED TO SEE

  • @Dankcarton
    @Dankcarton 2 หลายเดือนก่อน

    It says something for my attention span for the fact that I looked at the comments twice in a 100 second video

  • @jahndo
    @jahndo ปีที่แล้ว

    Please make more 100s videos about those new Systems languages like zig, odin etc

  • @miguel_bogota
    @miguel_bogota ปีที่แล้ว +2

    Amazing video! You should make a video about the new eslint config, it changes everything to a Next 13 level! :v Keep up the good work!

  • @wlockuz4467
    @wlockuz4467 ปีที่แล้ว

    This looks amazing.

  • @codeoatmeal
    @codeoatmeal ปีที่แล้ว +1

    Babe, wake up, new favorite language just dropped

  • @onejdc
    @onejdc ปีที่แล้ว +2

    New to Nim but it actually looks pretty incredible. Drawbacks? Compile time? Memory Leaks? Mem/Thread safety?

    • @kobi2187
      @kobi2187 ปีที่แล้ว

      Nope. Just tooling, debug story, and lack of libraries. Takes a while to understand errors. The language itself is perfect, of course from a totally objective view ;-)

    • @briannormant3622
      @briannormant3622 ปีที่แล้ว

      @@kobi2187 Because building wrappers around C headers is so easy, don't you technicaly have all off the C libraries

  • @dmitryshkolnik5233
    @dmitryshkolnik5233 ปีที่แล้ว

    wow, this was the biggest array of unknown words I've heard in a long while ))

  • @thatcosmokramer
    @thatcosmokramer ปีที่แล้ว +3

    Dev Daddy has blessed us with another video