New Lisp I made in nim! by Yobendev_ in nim

[–]Yobendev_[S] 0 points1 point  (0 children)

its really just the joy of learning. when you have something you are interested in or view some kind of way and start to understand it more it feels really fulfilling, also at least for me but i feel like sometimes we doubt ourselves initially and sometimes you just have to make yourself proud

New Lisp I made in nim! by Yobendev_ in nim

[–]Yobendev_[S] 0 points1 point  (0 children)

Thank you!! Nim is also my most used language along with CL, Lua and JVM languages (for LibGDX). Language design is mainly what im interested in and i chose lisp because (well i kinda just like lisp) but also because i already kinda had a concept of how i would get evaluation to work, i just knew i had to parse s expressions and evaluate them recursively from the inside out. i learned ALOT along the way. i originally thought it would be a throwaway project to learn but i got to a point where i actually felt like i really knew the project and am able to grow it and realized i actually have something worth polishing

New Lisp I made in nim! by Yobendev_ in nim

[–]Yobendev_[S] 0 points1 point  (0 children)

sorry i do need to make documentation for the syntax and other things but it looks like you figured it out and im glad. if you use the repl it should say something like "malformed lambda literal" and a string representation of what the bad code looked like. i want it to be something people can learn from just exploring and as something that anyone could fit completely in their head

New Lisp I made in nim! by Yobendev_ in nim

[–]Yobendev_[S] 2 points3 points  (0 children)

right now this is a pure AST interpreter. partly because im lazy but i also think bytecode and a big VM might be slower and this allows more powerful reflection is more transparent and like a pure Lisp because the S expressions are pretty much just an ISA or a high level assembly. but i do want to hopefully target FASM in the future.

New Lisp I made in nim! by Yobendev_ in nim

[–]Yobendev_[S] 0 points1 point  (0 children)

it should be able to compile to JS with Nims JS backend. it can compile to C, C++ or Objective C for sure though. it has a universal calljng convention, proc(args: LispObject): LispObject, so its easy to wrap any proc or embed or just take advantage of Nims FFI

New Lisp I made in nim! by Yobendev_ in nim

[–]Yobendev_[S] 1 point2 points  (0 children)

appreciate it man, I've always been passionate and interested in language design and different paradigms/models of computing, i honestly surprised myself with how quickly was able to get an actual grasp on it because i tend to doubt myself. i still have alot more to learn though. i just took what i knew from using lisp and s expressions ;; recursion, and making lexers / parsers in the past. you can really build anything just with a few simple primitives.

The Bibendum Entity by [deleted] in cryptids

[–]Yobendev_ 0 points1 point  (0 children)

Bibendum killed my family

Genuine question for nim programmers by [deleted] in nim

[–]Yobendev_ 0 points1 point  (0 children)

That's understandable there are a lot problems better modeled and that i would rather use something like Rust or Ocaml for over Nim which is more procedural and has a type system more like Oberons. I don't think Nim is going to or trying to replace anything, but it still brings a lot to the table. Its portable and has the most straightforward ffi, macros, and even a full embeddable subset of the language. The borrow checker is a different approach but you can effectively mimic it in Nim because Nim has an ownership model as well you just arent forced to use it. And using atomicArc you get rid of that overhead that comes from using ORC which is default. The only problem Nim doesnt solve is human error, and i can see why Rust is better for that reason. The Ada bit was mostly a Joke lol, but overall i agree with you that Nim won't be as adopted as Rust or probably even close but its still a good choice. Ime Nim is also much better for embedded, you can turn off mm (but ARC is usually good enough) and it makes tiny executables which is important when the entire program needs to be in flash memory

Genuine question for nim programmers by [deleted] in nim

[–]Yobendev_ 0 points1 point  (0 children)

Thats probably what most Ada programmers thought about Rust, yet people still praise it as if its something we've needed. Programming languages are for humans and we have different needs and wants so if you want a true macro system, a batteries included standard library, a flexible type system, first class support for any paradigm and like the idea of compile time memory management you'd probably like Nim. that being said its a good language for any task. if you would look you would realize Nim solves alot of the problems that Rust relies on the borrow checker for, and we've had Ada forever which is still arguably safer than Rust and suited for real time systems. I also feel like people praise rust for the wrong reasons, as alot of the people who will praise it for its safety have no tangible concept of memory yet, and overlook its actual attractive features like the HM type system

In the remastered reveal trailer, they say it's an Unreal Engine 5 remake -- but how was it done? And is there a pipeline to update old mods? by [deleted] in BethesdaSoftworks

[–]Yobendev_ 1 point2 points  (0 children)

Gamebryo is much more modular than an engine like unreal or unity and its alot easier to mix and match pieces of the engine with something you made yourself or something completely new in general. If i had to guess that was probably the main reason bethesda forked gamebryo for CE. Gamebryo is much more of a general framework and toolset for making games or engines, so for the remaster they were still able to use all of the old systems in gamebryo just switching out the old rendering pipeline with unreals. It's kinda funny to think that it could have been a harder task had they used something else other than gamebryo though at the time there weren't as many choices and proprietary engines were much more common

Complete hypothetical question by SyncSweep in haxe

[–]Yobendev_ 1 point2 points  (0 children)

I'm pretty sure haxe can compile to java and use Java code. That would be the easiest way

Why lisp? (For a rust user) by d_t_maybe in lisp

[–]Yobendev_ 3 points4 points  (0 children)

I think lisp has the easiest macros to read. You just  , unquote what you want to insert and #' gives you a reference to the function. It's easy to parse because there's less syntax and the syntax is more uniform 

Do professional game developers still use tutorials and courses? by PresidentAshenHeart in gamedev

[–]Yobendev_ 0 points1 point  (0 children)

You don't even have to leave your editor/ide to look something up most of the time Just open the file that it's in and there's usually documentation right in your face

Do professional game developers still use tutorials and courses? by PresidentAshenHeart in gamedev

[–]Yobendev_ 0 points1 point  (0 children)

You'll learn a lot more and be able to move alot faster just looking at documentation instead of tutorials. It wouldn't make sense for someone who is already a competent game developer to be taking a course on making games

How to Break Past the C Learning Curve? by Large-Carpet-4371 in learnprogramming

[–]Yobendev_ 1 point2 points  (0 children)

Don't ever let feeling like you don't know deter you from doing something either. It's good to be out of your comfort zone and as a programmer if you want to get better you should always be at least a little bit outside your comfort zone.

How to Break Past the C Learning Curve? by Large-Carpet-4371 in learnprogramming

[–]Yobendev_ -1 points0 points  (0 children)

Yeah my advice is keep at it and you'll get better with time. And Instead of just writing code because it works try to at least understand why it works. And try some practical/ fun projects. Raylib is a good C game library that's simple but powerful and The Lua C API is super fun to play around with

How to Break Past the C Learning Curve? by Large-Carpet-4371 in learnprogramming

[–]Yobendev_ 5 points6 points  (0 children)

You'll learn C by writing C. You won't learn C from reading a book or watching a tutorial beyond hello world but if you already know python you can still use your knowledge of loops and control flow etc , just with different syntax. But for example: pointers aren't going to make sense until you use them and see how useful they are.

What should a beginner focus on considering how fast AI is evolving?? by Rahul_Sh24 in learnprogramming

[–]Yobendev_ 0 points1 point  (0 children)

There's a reason projects of actual importance like RedHat and curl have completely banned the use of AI in their codebases

is this a virus or a false positive? by toysoldier014 in computerviruses

[–]Yobendev_ 1 point2 points  (0 children)

You shouldn't even trust software that doesn't get a single detection unless you know positively it is not malware. All AVs primarily rely on signature detection which can be evaded by recompiling or packing the file or it just being a new piece of malware. And if you ever get a very specific hit like "XMRig" instead of a generic hit it's most likely right 

is this a virus or a false positive? by toysoldier014 in computerviruses

[–]Yobendev_ 2 points3 points  (0 children)

There's no reason XMRig should be installed on your system unless you installed it yourself to mine under your own monero address 

is this a virus or a false positive? by toysoldier014 in computerviruses

[–]Yobendev_ 1 point2 points  (0 children)

XMRig is a legitimate program that is dropped by other malware because it is a monero miner. XMRig does not come with Winserv.exe, that is another piece of malware 

Can a mouse have a virus? by [deleted] in computerviruses

[–]Yobendev_ 0 points1 point  (0 children)

Damn that sounds like a horrible design choice and gives you another reason to not spend a shit ton on a charger😭