>>18926
>I think it's vital to implement parallelism from the ground up, that shit is impossible to get right if you have to tack it on later.
Sounds about right, I've been thinking about it and while I don't think I've outright excluded concurrency I still don't know which concurrency model I should use. Designing for parallelism is shockingly hard in comparison to how seamless most languages make it seem.
>Also include common useful data structures in the standard library, no one is happy when they have to implement their own graph search, B-trees, multivectors, or doubly linked lists.
Something that I think I'll have to bike-shed one way or the other. I'll have to keep that list in mind.
>I personally really like the idea of interpreted lisps more than compiled ones for reasons of much better self reflection and not having to deal with implementation issues so much, but compilers are also pretty great.
This might be less of a choice with my language.
>A fully compiled initial standard library in an immutable namespace and first class macros support can I think get the best of both worlds in most cases.
This is a Lisp thread, first-class macro systems should be a given. Compiled initial standard library seems all but necessary for performance unless you start with a JIT.
>Some people like types, but imo they only seem to exist to promote verbosity, boiler plate injection, and endless bikeshedding about exactly what types everything should be.
Types are a double-edged sword. They tend to lead to better performance and can be useful to communicate the structure of your data. That said, I remember the proliferation of Haskell papers in the 2010s which amounted to user papers on feng shui with types, as well as the continued teaching of OOP design patterns as dogma. It's very easy to get lost in the type theory weeds and make things harder for yourself and others, especially after you start adding things like phantom types.
>>18994
>>good ffi, ideally can generate bindings given a shared object/archive and header
I don't know about auto-generation of bindings, but I have a few
experimental ideas about how to have a good FFI.
>>library, package, and build system (if applicable) is standardized
Noted, that's another thing I might need to bike-shed.
>>single step debugger, perhaps even for static binaries (if build includes dwarf debugging information)
I've been thinking about optional reflection support for issues like this. If you don't set things up for hardware debugging support, there are inherent difficulties in supporting this style of debugging while also remaining performant.
>>ability to add new intrinsics (e.g. https://pvk.ca/Blog/2014/08/16/how-to-define-new-intrinsics-in-sbcl/ for stuff like simd or cuda)
That would have to be a platform-dependent thing.