From: Richard A. S. <rs...@bi...> - 2002-10-29 21:56:29
|
Benno: Good to see you back in business again. I'm looking forward to burning up the free time I don't have messing with linuxsampler. My vote on programming languages would be C++. Really, if you code things in a modular and decoupled way like all the books preach then you C looks and acts like C++ anyway. Unless you are really doing some fancy template run time typing stuff there is little difference between C and C++. In 90% of the code you _won't_ need the speed advantage that C offers. Which is largely a myth anyway its more the programmer than the language. Yes there are some run time issues with C++ but unless you are really carefull about how you code your C it probally won't be the language choice that slows things down. GCC is amazingly good at optimizing things once you tweak the parameters right. One thing I've learned over the years is that you can't predict where you wil _really_ need optimization, things are just too complex. You just have to code in the cleanest most maintainable way and then come back and optimize. If you try to always code-for-performance you usually end up with just the opposite. I grew up learning C and that doing things via pointers was always faster than using arrays. Yeah, 10 years ago this was true but GCC broke me of this. My best attempt at stepper motor control algo I was working on was soundly stomped on by just using arrays and letting GCC optimize. And really if you get _that_ concerned about performance then you should probally use arch specific assembly and/or things like MMX/3dNOW type stuff like all the current audio encodeing/decodeing libraries do. The management and maintaince benefits of C++ seem to be a clear winner for a project like this. Oh and I like the socket interface for the GUI to engine communication. This allows them to be on different machines or even different architectures which considering the Mac heavy world that most studios have is probally a good thing. If you use a shared memory setup they you also greatly add to the work level needed to use other programming languages for the front end GUI. So like, if I wanted to use my new favorite language python a set of bindings would have to be written first but if its just a socket then it's easy. -- Richard A. Smith Bitworks, Inc. rs...@bi... 479.846.5777 x104 Sr. Design Engineer http://www.bitworks.com |