There can be a lot of different integers, int16, int32 ... and unsigned variants. Even huge BigNum integers of any lengths.
HN user
treeform
http://pushbullet.com
Other projects: http://www.filmgrainapp.com http://www.hipmunk.com http://aff2aw.com http://affuniverse.com
Nim imports are great. I would hate to qualify everything. It feels so bureaucratic when going back to other languages. They never cause me issues and largely transparent. Best feature.
Thanks!
I find that python has this simplicity other languages lack. Nim has it too. It's hard to strictly define it? Its a bit syntax, a bit lists or dicts, batteries included? A bit how you run it. Maybe a culture of straightforward code - at least in the python 2.x days. Maybe its just you write an algorithm and its easy to follow?
Thank you for working on the Nim Compiler. This is great. Another great release. The Nim Compiler continues to move forward.
Thank you very much to everyone who has contributed to the development of this superior language. Nim Compiler continues to be one of the most wonderful languages I have worked with. With the speed of C and the simplicity of Python, it has allowed me to write a lot of cool software.
I do not know where I would be if Nim did not exist in my life.
I feel like Nim made me fall in love with programming again.
Nim fixes many of the issues I had with Python. First, I can now make games with Nim because it’s super fast and easily interfaces with all of the high performance OS and graphics APIs. Second, typos no longer crash in production because the compiler checks everything. If it complies it runs. Finally, refactors are easy, because the compiler practically guides you through them. The cross compiling story is great you can compile to JS on the front end. You can use pytorch and numpy from Nim. You can write CUDA kernels in Nim. It can do everything.
See: https://www.reddit.com/r/RedditEng/comments/yvbt4h/why_i_enj...
That's such a good quote. I can't find it anywhere, so I'll attribute it to you.
Thanks! It's all Nim, all the time.
I got one recently. It has a learning curve, but it’s been really fun. It’s infinitely customizable like no other keyboard. The magnetic switches feel really good. I feel like I am in a cyberpunk novel when I use it.
If I were to set up a customized S&P500 (with some tweaks) and over time companies leave and/or are added to the index. Will those changes be reflected in my custom S&P500? In the months or years in the future will it buy or sell these new currently unknown companies?
Not by itself! But together with other library boxy you can: https://github.com/treeform/boxy
You should use pixie to load textures, create text, rasterize vector graphic etc... and send them to boxy to be drawn every frame.
Yes Pixie is CPU only, and just like you can't use Cairo or Skea for real time games you can't use Pixie, but boxy you totally can.
To be fair to Nim, only Python has the huge ML ecosystem of numpy, scipy, pandas, opencv, pytorch, tensorflow, keres... Doing ML/AI style work in anything but python is really hard!
That said Nim does have the nimpy library that allows for pretty seamless interop with python. Which means you can just import PyTorch, or scipy, or opencv and use them in Nim.
I would not call std/json it "terrible in performance" probably still way faster then what you get in many other languages (like python). But yes the JSON lib I wrote is faster due to avoiding branches and allocations.
Reddit was hiring for Nim positions. So demand is growing. New languages have easier time being adopted at startups which grow into big players eventually.
For most of us the move from GC to Orc is pretty transparent. Most libraries just work and don't require any major restructuring.
We have written pixie: https://github.com/treeform/pixie . Pixie is a 2D graphics library similar to Cairo and Skia written entirely in Nim. Which I think is a big accomplishment. It even has python bindings: https://pypi.org/project/pixie-python/
I wrote a post on how Reddit uses Nim: https://www.reddit.com/r/RedditEng/comments/yvbt4h/why_i_enj...
More and more large companies and startups are adopting Nim.
Super excited for Nim 2.0 and huge thanks to all who contributed!
I was hired from a "Who's hiring" post!
At 13, I reinvented perspective divide: https://www.khronos.org/opengl/wiki/Vertex_Post-Processing#P... . I wanted to draw 3D things like in 3D games, but with QBasic. I knew how to draw lines and shapes in 2D, but I couldn't figure out how to do that in 3D. I would ask adults about this and they had no idea. They couldn't even understand the question. Eventually, I figured out that you needed to divide or multiply by the Z-axis with a "zoom" constant to make stuff move in 3D.
Style insensitivity does not really come up once you start using the language.
Is Reddit big enough? https://www.reddit.com/r/RedditEng/comments/yvbt4h/why_i_enj...
The smooth transition can't be overstated. Its such a breath of fresh air, when many platforms, libraries just drop support all the time.
If are a data scientist and come from python take a look at nimpy, a great way to just import python libraries and use them! https://github.com/yglukhov/nimpy Numpy, pandas, pytorch all usable in Nim.
Nim is the ultimate glue language, use libraries from anything: python, c, js, objc.
I use Nim everyday so I am based, but previously I used JS. And it felt like the JS libraries where just not good quality. It seemed NPM was full of old, broken and unmaintained libs. Some of them did trivial things. I was never happy with their quality. For me JS had the quantity, but not the quality?
With Nim, yeah there are way less libraries, but the ones it does have some how feel better. Also when there isn't you just write your own code specific to your missing use case. Which is not that not much code and fits better.
I think one of the biggest issues we currently suffer in the programming field is the use of libraries upon libraries, layers upon layers, without understanding.
About antivirus on Windows, as a person who has shipped a commercial windows app that was regularly hit by anti virus. There is almost nothing you can do except wait. Windows antivirus companies mark your program as a virus when you .exe looks different from anything it saw before. The reports do come down after your .exe is shipped to thousands of computers and users unquarantine it manually. Signing the exe with windows keys or uploading your exe to special white lists does not work! We tried. It's just time and install base. Every update changes the exe and AV would flare up again.
Windows antivirus companies are basically a scam and are worse than the protection they offer. They are more likely to mine Bitcoin ( https://www.theverge.com/2022/1/7/22869528/norton-crypto-min... ) or man-in-the-middle ( https://www.thesafemac.com/avasts-man-in-the-middle/ ). Antivirus companies have become the bad actors they tried but failed to stop. (https://www.cbc.ca/news/science/antivirus-software-1.3668746 )
I recommend Nim does nothing with regards with AV as there is nothing it can do but wait...
My vote is on Nim. Python like syntax with C++ speed. Unknown enough, but still not too new or obscure.
Looking at the summery [2] many of the things got implemented, just a quick list:
* Remove backwards-compatible switches / deprecated features
* Remove every memory option except orc, arc, none, go
* Shrink stdlib
* Comprehensive stdlib cleanup
* Support default values in object construction
* Language features designed for parallelism
* Lock in --threads:on and --mm:arc/--mm:orc
* Official support for overloadable enum names
* Robust concurrency/multithreading
* Fix bugs!
AI has completely changed the way gamedevs should create game assets. Now you can generate amazing assets with a simple workflow.
In this video I show how I'm generating some cool 2D space ship assets. The same workflow I show in the video will work for all kinds of things.
Unlike JavaScript libraries, Nim libraries seem to be a lot more sane and self contained. No left-pad nonsense or downloading 20 dependences.
The super fast libraries mention in the article Pixie, Zippy, SuperSnappy all use GC. They can beat or tie with the best C libs. But in order to be fast they don't use GC in the critical hot paths but pre-allocate work buffers to the right size or allocate stack objects instead. Surprisingly, going outside the bounds of the GC does not feel that foreign or wried in Nim. It's not hard.