8 ms·
I love Nim so much. I really hope some big company decides to use it as their workhorse language - it feels like the only thing holding it back is the lack of c
by jphoward 4y ago
I love Nim so much. I really hope some big company decides to use it as their workhorse language - it feels like the only thing holding it back is the lack of corporate 'buy in'. Most similarly good languages (except F# maybe?) seem to get lucky with becoming a poster boy for at least one company.
- esafak 4y agoI am in a position to do this and I picked kotlin instead as the tooling is not good enough yet. Without a good IDE experience you lose some of the productivity that nim potentially offers.
- crop_rotation 4y agoYup, corporate buy in is a big deal. Years ago I tried using Nim for a network daemon, but the sheer lack of even the most basic http libraries prevented me from doing it and I went with go. The library situation is a bit better now. But without a big company contributing in terms of libraries, the language usage will just be very low.
- FireInsight 4y agoNowadays atleast Nim has multiple compenent http libraries, see https://nimble.directory/search?query=http https://nimble.directory/search?query=http
- michaelsbradley 4y agoNot in that list, but nim-chronos also provides a solid http server/client: https://github.com/status-im/nim-chronos https://github.com/status-im/nim-chronos
- intelVISA 4y agoUnfortunately, it's too good of a language for serious corporate adoption...
- squarefoot 4y agoCompanies base their choice of tools on how easy is to find developers to hire, therefore Nim and other similarly young but very powerful/optimized languages (Crystal, Zig, ...) need many independent developers, who can base their choice purely on technical merits and personal taste, to use it and put it into their resumes before the corporate world can notice and add them into their list of accepted tools. It's a quite slow process though.
- carlmr 4y ago>Most similarly good languages (except F# maybe?) seem to get lucky with becoming a poster boy for at least one company. This one I still can't wrap my head around. F# basically was the source of almost all innovation in C# and C# still is missing some features and was not designed in the same way as F# so a lot of the features they "stole" feel tacked on. Microsoft should have just made F# the C# successor.
- solarkraft 4y agoI had a brief look at F#, it didn't fit my mental model and I looked away. Meanwhile I do like using the tacked-on functional features in traditional languages because it allows me to get the benefits when it fits what I'm doing instead of having to fully buy in.
- Herval_freire 4y agoYou're just using the tacked on features as syntactic sugar. You haven't "bought in" at all. I was traditionally trained like you under OOP and procedural methodologies. After encounter FP I fully bought in and developed two mental models. The fp model lives side by side with the the oop/imperative model. With equal knowledge in both one can make a more unbiased judgement. The fp model is actually superior imo. I largely have the opposite strategy now when programming. My mental model is largely fp, and I occasionally cheat and sprinkle in procedural or oop syntax here and there as syntactic sugar. The basic realization here should be that mutating shared state should be avoided and segregated as much as possible.
- ok_dad 4y ago> syntactic sugar To be fair, all languages are syntactic sugar over asm which is s-s over CPU machine code. A mental model is just that: a model for something physical that's in your head. FP or OOP are both mental models for programming in nearly any language. Some languages have first-class FP or OOP features, and some don't, but you can tack-on either of these, and others, to nearly any language you want to. It's really dumb to look down on others choice of mental model if it works for them. I have seen successful projects that were designed around both OOP and FP models.
- girvo 4y agoWhile we’re not a big company, my work uses it as our secret weapon for embedded firmware development.
- rthomas6 4y agoDo you do FPGA designs with it, or just bare metal software?
- girvo 4y agoSoftware on microcontrollers :)
- MrBuddyCasino 4y agoIf only it supported RV32IMAC and/or XTensa one could use it on one of the ESP32 variants.
- elcritch 4y agoNim supports both since it compiles with pretty much any C89 C compiler. Also https://github.com/elcritch/nesper https://github.com/elcritch/nesper :)
- MrBuddyCasino 4y agoOh nice! This looks very tempting…
- elcritch 4y agoFeel free to drop by Discord #embedded if you're tempted enough.. ;) I've had production devices running on it for years.
- girvo 4y agoWe use the ESP32-S3 as our main microcontroller!
- pron 4y agoProgramming language adoption -- like the adoption of many technological products -- is usually really fast. With the possible sole exception of Python, all programming languages, popular and unpopular alike, have reached the general ballpark (i.e. high/mid/low) of their all-time peak market share within 5-10 years. Dark horses are very, very rare.
- crop_rotation 4y agoIn general you are correct. However, language adoption can skyrocket when some new library/framework arrives which has a compelling reason to switch (e.g. Rails for Ruby)
- tokai 4y agoI can't see how there should be a reliable pattern in language usage like that. Javascript is more used that ever - who knows were the all-time market share peak is - but we're well beyond your 5-10 year time frame. Could you name any languages that actually have this pattern? Julia maybe.
- pron 4y agoAll languages, except possibly Python, have followed this patterns. Read my comment carefully: I said that virtually all languages reach their ballpark market share within 10 years. JS did reach its high market share ballpark within a decade.
- tokai 4y agoI understand what you are writing. But it only holds for you because your idea of ballpark is exceedingly wide. It's doesn't hold at all for the usage numbers I look at without your socalled ballpark being several magnitudes.
- pron 4y agoJS's market share did not grow by even one order of magnitude since ~2006 nor even close to an order of magnitude. There aren't that many orders of magnitude for a share to grow if you start counting at ~1%.
- ThomasTJdev 4y agoDitto! Nim is just easy and incredibly fast (to develop and the code!). Our code base is Nim based - even normal bash script have been replaced!
- alexbezhan 4y agoWhat app are you developing with it?
- ThomasTJdev 4y agoA full project management platform for construction projects. Webserver, websocket, microservices, etc.: https://cxplanner.com https://cxplanner.com
- treeform 4y agoIs Reddit big enough? https://www.reddit.com/r/RedditEng/comments/yvbt4h/why_i_enjoy_using_the_nim_programming_language_at/ https://www.reddit.com/r/RedditEng/comments/yvbt4h/why_i_enj...
- riku_iki 4y agohe said he works on some internal tool, but not clear how wide is adaptation outside of that.
- v3ss0n 4y agoThe main problem is people afraid about Style Insensitivity it enables by default .
- elcritch 4y agoIts set to produce a compiler "Warning" by default now.
- frigid 4y ago(for inconsistent usage) As background, style insensitivity was introduced so that codebases can use a consistent camelCase or snake_case regardless of the style used by upstream libraries.
- girvo 4y agoWhich as an aside, makes writing and using C bindings so lovely.
- j-james 4y agoWell, maybe not writing. Occasionally low-level C libraries - especially those that deal with keyboard input - decide to provide identifiers differing only in case... There's a WIP RFC for providing a way to deal with identifiers that need to be verbatium by surrounding them with backticks, though. https://github.com/nim-lang/RFCs/issues/477 https://github.com/nim-lang/RFCs/issues/477