A decent refactoring tool, no more tab as n-spaces as default, a decent formatter.. You know, make readable the code of someone else with just a pair of click...
What do you want in your development tools?
In Xcode you can drag a folder into the project and it will add all files recurvisely and create an internal folder tree to match that of the disk.
I would like to see this in Visual Studio. I’m getting tired of having to manually create groups in Visual Studio and then drag the headers into the Headers section and the .cpp files into the Source section manually and separately.
Come on Visual Studio! Just let me drag a folder into the project and you recreate the folder tree and put all the headers over there and the source files over there.
For this there is a "Show all files" button in the solution explorer that will display the tree with actual folder structure. You can also include/exclude files in the project, or add items directly to some folder in this mode. I think the default mode is hardly useful, but this mode is somehow "well hidden".
A debugger that:
- Works.
- Doesn't lie to me.
- Presents variable content in a legible manner.
- Knows about STL.
Basically the VS debugger.
Some of the things I love about doing C# in VS 2013:
- Resharper: Good refactoring tools are the best. It's very liberating to be able to easily extract functions, rename variables and transform code without breaking everything and doing tedious find and replace by hand.
- Nuget: Beats the pants off trying to integrate third-party libraries by hand.
- VS Graphics Debugger: It's not perfect, but it's pretty handy to get dumps of per-pixel history, as well as being able to see all of the textures in memory.
Better contracts
I hate the way I have to specify interfaces and contracts in most languages. More accurately, I hate the way that interfaces are everything and contracts are second-class citizens. Aspect-oriented programming is almost a step in the right direction, but most implementations are really clunky and verbose. Why can't I just say something simple, like "this function never returns null", and get automatic optimizations and sanity checks from my compiler?
I mostly find myself despairing at programming languages themselves, so this one would definitely be on my list. Except rather than opting out of nulls, why on earth isn't it something to opt-in for?! Like Haskell's Maybe type (I actually feel OO languages should be drawing more inspiration from functional languages than they currently seem to be doing; lambdas are not enough ).
Similarly constness by default would be nice, with a compiler able to recognise and optimise usage of fully immutable objects.
Also, a class should be able to implement an interface in terms of a member variable using a one-liner; NOT being forced to actually implement a trivial pass-through for each method in that interface. Composition is definitely better than inheritance, but languages don't half make it difficult.
Algebraic types.
Pattern matching with support for structure decomposition and implicit casting to subtype.
Multiple dispatch.
Slap 'em into any mainstream language and that would be great, thanks
You should check out Epoch. Sounds like it would really scratch your itch :-)
Have you got a C interop module called Epoch-C resin?