I wish classes were easier to make in Objective-C.
I wish JS had standardized classes. One of biggest issues with the language is having like two ways do things. Two ways to do getters/setters and many ways to do inheritance with mixins and other tricks. ECMAscript 6/7 is taking a while to be finalized. (Should add operator overloading, SIMD, and tons of value types). One of the biggest issues still is the lack of optional strong typing. The language has been slowly incorporating systems for working with binary data and the typed array spec is verbose.
My gripe in C# is not being able to use lambda expressions in attributes.
[Converter((x) => x * x)]
public Foo { get; set; }
There's a submitted suggestion for it, but it's so low priority it'll never get added.
In C++ the compilation system needs to be redesigned. The source/header system just doesn't work well. Having a multipass compiler that doesn't require forward declarations would greatly simplify the language making it modern. That and having an optional reflection system would be useful.
it would be nice to have one language that has everything right. Ease of use, general purpose precision etc. But i'm guessing nothing can be 100%.
Nothing really stops a language from implementing every feature. One just hasn't been implemented. One of the big issues is a lot of features need to be optionally defined as they have performance implications. Reflection for instance is nice, but would need to be optional in C++ for performance. Basically the compiler needs to be able to optimize freely to produce the output required without restrictions. Having things be optional throughout the language greatly complicates the language. C# I believe is really close, but even that is missing SIMD support taking itself out of some specialized applications.
Not really possible to have one language that has everything. Some things are mutually exclusive (or, at least, impractical enough within a single language to effectively make them so). E.G. static typing versus dynamic typing. Garbage Collection vs. Explicit Memory Management. Interpreted vs Compiled.
C# has both static and dynamic typing via the dynamic keyword. Interpreted vs compiled has kind of been superceded by JIT kind of. You can use say C# as a scripting language within itself for instance. Regarding garbage collection and explicit memory management there's nothing that stops a language from offering both. Modern C++ with smart pointers for instance is reference counting garbage collection. It's a core part of the standard library and used heavily by C++ programmers. It's not exactly a global mark and sweep algorithm, but it can show how a language can have both features at the same time.