Hi!
I have a not so astronomy related question but I'm curious: soon I will have a new software for a client and I'm thinking about to take the cross platform development way, but I don't know where to start. What IDE ate you using for development? How do you manage to develop/build for multiple platforms. Are you using a payed development tool or something free?
Thank you
Multiplatform development
Re: Multiplatform development
Hi,
Nice question!
The answer is "it depends" (don't you hate that? )
Which platforms are you targeting and what sort of application are you building?
Is it desktop, mobile, both, is performance of a concern, what sort of UI is required, what sort of licensing is agreeable, what sort of language do you work in/prefer, etc.
StarTools is entirely built by hand from the ground up in C, from the multi-platform dev kit to the file loaders, font renderers, UI lib and image processing algorithms.
The reasons for that are;
Nice question!
The answer is "it depends" (don't you hate that? )
Which platforms are you targeting and what sort of application are you building?
Is it desktop, mobile, both, is performance of a concern, what sort of UI is required, what sort of licensing is agreeable, what sort of language do you work in/prefer, etc.
StarTools is entirely built by hand from the ground up in C, from the multi-platform dev kit to the file loaders, font renderers, UI lib and image processing algorithms.
The reasons for that are;
- I'm slightly mad.
- I like to understand all aspects of software development in-depth (because it's the only way to understand and improve the state of the art, and come up with new ideas).
- I come from a software development background where every CPU cycle and byte counts (that's why the UI can make due with just a few kilobytes of RAM if it needs to, that's why the ZIP file containing all 3 intel versions weighs in under 3MB, and that's why StarTools runs on Android/ARM wihout problems.
Ivo Jager
StarTools creator and astronomy enthusiast
StarTools creator and astronomy enthusiast
-
- Posts: 23
- Joined: Tue Oct 14, 2014 9:46 am
Re: Multiplatform development
I'm crazy, but not crazy enough. I'm thinking about using CodeLite with wxWidgets. It won't be graphics heavy, I need more the ability to deploy as well for Windows as for Linux too, maybe MacOS down the line. Let's see, thank you for the ideas, I have a few more weeks two think about the concept until I must begin coding so ... I'm thinking and thinking
- Amaranthus
- Posts: 68
- Joined: Wed Apr 30, 2014 4:42 pm
- Location: Judbury, Tasmania
- Contact:
Re: Multiplatform development
Respect, Ivo I remember when I was doing 2nd year Comp Sci in Assembler. All the assignments were based on the principal of making ever cycle count.
Long-time visual observer, now learning the AP dark arts...
Re: Multiplatform development
If you simply need a nice low-level cross-platform lib, you can't go wrong with SDL 2.0.MrMxyzptlk wrote:I'm crazy, but not crazy enough. I'm thinking about using CodeLite with wxWidgets. It won't be graphics heavy, I need more the ability to deploy as well for Windows as for Linux too, maybe MacOS down the line. Let's see, thank you for the ideas, I have a few more weeks two think about the concept until I must begin coding so ... I'm thinking and thinking
Qt is nice if you need/like lots of controls, windows and icons (like PixInsight, which uses it).
Ivo Jager
StarTools creator and astronomy enthusiast
StarTools creator and astronomy enthusiast
Re: Multiplatform development
I used to love counting cycles in assembly on CISC architectures, but then ARM/RISC+sophisticated compilers came along and the whole thing became automated. Optimisation became somewhat of a lost art.Amaranthus wrote:Respect, Ivo I remember when I was doing 2nd year Comp Sci in Assembler. All the assignments were based on the principal of making ever cycle count.
However, for the-job-that-pays-the-bills, I'm now finding that counting cycles (or at least measuring execution times) has relevance again; with cloud computing and auto-scaling services you can start assigning a dollar value to each cycle you (mis)use. If you can make something more efficient, it means you need fewer instances of your applicaiton to shoulder the same load, which in turn lowers your cost compared to having more instances running.
Ivo Jager
StarTools creator and astronomy enthusiast
StarTools creator and astronomy enthusiast