Alright, to start off, I have experience as an amateur Obj-C/Cocoa and Ruby w/Ra
ID: 653075 • Letter: A
Question
Alright, to start off, I have experience as an amateur Obj-C/Cocoa and Ruby w/Rails programmer. These are great, but they aren't really helpful for writing cross-platform applications (hopefully GNUStep will one day be complete enough for the first to be multi platform, but that day is not today).
C++, from what I can gather, is extremely powerful but also a huge, ugly behemoth that can take half a decade or more to master. I've also read that you can very easily not only shoot yourself in the foot, but blow your entire leg off with it since memory management is all manual. Obviously, this is all quite intimidating. Is it correct?
Python seems to provide most of the power of C++ and is much easier to pick up at the cost of speed. How big is this sacrifice? Is it meaningful or can it be ignored?
Which will have me writing fast, stable, highly reliable applications in a reasonable amount of time?
Also, is it better to use Qt for your UI or instead maintain separate, native front ends for each platform?
Explanation / Answer
C/C++ is fast. The reality is, most apps wont need that performance with the state of the current hardwares. The usual way is to develop the application in a high level language, like python, than optimize when needed with lower level languages, like C/C++.
Python will give you a big productivity boost, it's easy to learn and reasonably fast. There is Cython, which you can use to write C extensions to use in your python app with python-like syntax to speed up bottlenecks.
For standart GUI apps, python can give you enough performance. And python has something very cool called Kivy, a GUI framework that runs on Mac, Windows, Linux, Android and iOS, and supports multi touch. The bonus part is, the performance critical parts are optimized with C, using Cython.
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.