- Joined
- 7/7/13
- Messages
- 24
- Points
- 113
Hi all,
a quick qestions -- I've heard that some financial model developers have started using C#.
Is it a trend for the next few years after C++?
is it a good idea of start learning/using it now?
Thanks for the inputs!
is it a good idea of start learning/using it now?
C++ is not going anywhere (at least not for the next 10 years).
Relatively open standard (big advantage over C#/Microsoft and Java/Oracle)
Platform independent
Efficient
Flexible (supports many programming paradigms)
Great libraries
Corporations have existing large existing code bases in C++
If you are learning to program start with Python. C++ is a great language and pays my bills. But it's not a good first language.
I am a C# developers in electronic trading and have some knowledge regarding C++ as well. I can tell you the difference between both.
C#:
Speed: Not optimal. Slower than Java. Codes are compiled into intermediate language. CLR will translate them into machine instructions later. (similar to the way JVM takes byte code. but it is even slower)
Super easy syntax. Lambda expression. LINQ. Handle memory leak automatically.
UI: WPF(escape from the traditional windows and allow UI to be customizes and nested)
Multi-threading and parrallel programming: very mature .Net library specialized for this kind of stuff. They even provide you a ThreadPool to schedule threads and enable parrallellism if you are running on a multi-core machine.
C++:
Fast. Codes are complied into machine code. That is something you cannot compete with using Java or C#.
Hardest syntax in high level language probably. You need to handle memory leak on your own.
UI: I have not tried but I assume it would not be easy
Multi-threading: Boost has a very mature library for multi threading. but it is not as easy as the one in C#.
I do not see it replacing C++. Well..someone can just load the C++ quant libraries in C# for some UI applications if required.
Hope it helps
definitely C# in terms of productivity. Lots of existing examples over the internet. Array and linkedlist can be manipulated using LINQ....most importantly in C# errors can be easily traced and fixed. well in C++ sometimes I don't even know what's going wrong if the application use pointers extensively........What are your views on programmer productivity C# vs C++? Time is money.
I can't get over how helpful this comment is...As we already know that C is one of the compulsory language for the programming and to do better about the programming you should be good in C language. If companies are now adopting this trend then you should make your own research regarding this is you may know better about what to do better.
certificate iv in training and assessment
I have designed a 1-factor Monte Carlo engine in both C++ and C#definitely C# in terms of productivity. Lots of existing examples over the internet. Array and linkedlist can be manipulated using LINQ....most importantly in C# errors can be easily traced and fixed. well in C++ sometimes I don't even know what's going wrong if the application use pointers extensively........
The way I see it breaking down, the startup world is dominated by FOSS languages, especially dynamic weakly typed ones like Python, Ruby, Javascript.Is there a business case?
The way I see it breaking down, the startup world is dominated by FOSS languages, especially dynamic weakly typed ones like Python, Ruby, Javascript.
C# has the unique (dis)advantage of being the dominant Windows language. On the plus side, there are lots of people developing for Windows. On the downside, those are usually not the most exciting places to work, and also it's developing under Windows which is a pain in itself.
There is the Mono angle, but Mono is a separate project from .NET so it doesn't directly inherit the massive MSFT infrastructure supporting .NET. Also, it's quite telling that .NET has IronPython, and Java has Jython.
As a whole, Python is a simply far more portable skill. And more generally applicable. Would you write a C# program to match a regex on filenames and copy them from one directory to the next?
And it has massively extensive libraries. Numpy, scipy, gevent, Twisted, Django, SQLAlchemy. If your problem is common, it's been solved. And for quants, that includes optimized numerics (see Theano, Numba).
It's the Swiss Army Chainsaw of languages.