[FoRK] Fwd: Ask Slashdot: Is C++ the Right Tool For This Project?

Stephen D. Williams sdw at lig.net
Wed Jun 24 11:06:43 PDT 2015

I didn't answer the question; I provided a more nuanced set of choices and reasons for choosing them.  Teach the person to think...

C++ and Qt is cross-platform, high function
by sdw (6809) <sdw@@@lig...net> on 2015-06-24 11:03 (#49979249) Homepage

My preferred general purpose C++ solution would be to use Qt when possible. It already has virtually everything you would use in an 
operating system with baseline networking, GUI, etc. already wrapped for cross-platform use in a clean, powerful way.

If you are writing a utility or a service, there are other choices. If you think you need the widest range of features, you might 
need a native GUI, GPU access, etc., Qt is the only real choice.

Depending on what you are trying to accomplish, Node with C++ modules provides a nice base. It is even used as the basis for desktop 
apps with web-based GUIs (see Atom editor https://atom.io/ [atom.io] .) You get Javascript scripting, full web server capability, 
WebSockets for bidirectional communication, etc. Nginx is another possibility for something like that.

You could use Java or C# for portable-ish apps. In some ways, Qt seems even more portable now, especially for GUI and OS-specific 
features. Java and C# also don't make for great UI without a lot of work, and then it tends to be sluggish. For UIs, you want either 
a modern web UI, or a well-designed Qt UI. Interestingly, Qt includes a modern web capability embedded. Even the native Qt GUI is 
styled using CSS.

For a pure server app, Java, Node (Javascript), Python (according to many), and C++ are good. PHP, because Facebook has improved it, 
may be OK. Perl, Ruby/Rails, Drupal, WordPress, etc. all seem to be fading for app framework use because of developments in 
Javascript libraries. WebComponents / Polymer SPAs are very interesting.


On 6/23/15 11:40 PM, Joseph S. Barrera III wrote:
> See: https://en.wikipedia.org/wiki/Betteridge's_law_of_headlines
> ---------- Forwarded message ----------
> From: <slashnews at pestonia.com>
> Date: Tue, Jun 23, 2015 at 11:30 PM
> Subject: Ask Slashdot: Is C++ the Right Tool For This Project?
> To: slashnews at pestonia.com
> Link:
> http://slashdot.org/story/15/06/24/0320207/ask-slashdot-is-c-the-right-tool-for-this-project
> Posted by: Soulskill, on 2015-06-24 06:13:00
>      [1]ranton writes: I am about to start a personal project which I
>     believe should be done in C/C++. The main reasons I have for this are
>     the needs to manage memory usage and disk access at a very granular
>     level and a desire to be cross-platform. Performance is also important
>     but I am unlikely to spend enough time optimizing to be much faster
>     than core libraries of higher level languages.
>     On the other hand, network access is also a critical part of the
>     project and I am worried about the effort it takes to make cross
>     platform code for both network and disk access. I have been working in
>     the Java / C# world for the past decade and things like TCP/IP and SSL
>     have just been done for me by core libraries. Do libraries like Boost
>     or Asio do a good job of abstracting these aspects away? Or are there
>     other options for doing granular memory and disk management with more
>     high level languages that have better cross-platform library support? I
>     am willing to brush up on my C/C++ skills if necessary but want to
>     spend as much time as possible developing the unique and potentially
>     innovative parts of my project. Thanks for any advice you can provide.
> References
>     1. http://slashdot.org/~ranton
> _______________________________________________
> http://www.pestonia.com/slashnews
> http://www.pestonia.com/archive_msg.jsp?msgId=338594
> _______________________________________________
> FoRK mailing list
> http://xent.com/mailman/listinfo/fork

Stephen D. Williams sdw at lig.net stephendwilliams at gmail.com LinkedIn: http://sdw.st/in
V:650-450-UNIX (8649) V:866.SDW.UNIX V:703.371.9362 F:703.995.0407
AIM:sdw Skype:StephenDWilliams Yahoo:sdwlignet Resume: http://sdw.st/gres
Personal: http://sdw.st facebook.com/sdwlig twitter.com/scienteer

More information about the FoRK mailing list