With reference to FREELY available programming languages......

kan3siao

Supremacy Member
Joined
Aug 6, 2005
Messages
5,291
Reaction score
0
Is C++ more suited for ONLY low level hardware programming??

As for client-server / web-based / GUI apps, it is better to use Java??

I have been constantly pondering about this question as I explore the C++ QT framework.

Is the C++ QT framework sufficient for commercial apps??

Appreciate any veteran developers share some insight.

Thanks. :):)
 

davidktw

Arch-Supremacy Member
Joined
Apr 15, 2010
Messages
13,547
Reaction score
1,301
Is C++ more suited for ONLY low level hardware programming??

As for client-server / web-based / GUI apps, it is better to use Java??

I have been constantly pondering about this question as I explore the C++ QT framework.

Is the C++ QT framework sufficient for commercial apps??

Appreciate any veteran developers share some insight.

Thanks. :):)

Nowadays C and C++ are the preferred choice to low level hardware programming because numerous low level development libraries are written in C/C++. Java previous incarnation is known as Oak. It has meant for embedded development but didn't gain traction. For good reason in having more control, programming languages with explicit memory management are chosen since embedded environment normally don't have much hardware resources for automatic memory management. Objective-C also makes good embedded system development.

As for client-server/web-based/GUI apps development, Java, .NET family of languages, Perl, PHP, Ruby, Python, Go and many more makes good programming languages. You probably would need to consider what kind of web development framework, integration and libraries that you are using that make sense for certain languages to have advantage over the other. Sometimes you also need to consider if certain languages would make it easier for you to get readily available developers to perform the task. It is not just a matter of which programming language is better, it is which one can hep to accomplish your task with least cost, best effort and fastest delivery. As such, you shouldn't be surprise to see some solutions requires more than 1 languages to complete.

For GUI applications, you probably would have chosen your preferred UI framework and then see if the programming language is something you are proficient in. Java AWT and Swing are pretty mature and well defined UI building framework, don't hesitate to give it a trial. QT is also pretty strong, you also have GTK+ and FLTK at your disposal for C and C++.

But I will give you something more. What kind of applications are you designing ? Have you consider designing a service instead of an application. Having browsers with HTML5 and various technologies have made a browser a very attractive and powerful Rich Client Platform(RCP), it will make more sense if your application is a service that you can have much wider set of readily available technologies and libraries at your disposal instead of an application.

May I also remind you that NetBeans and Eclipse are very powerful desktop RCP at your disposal.
 
Last edited:

kan3siao

Supremacy Member
Joined
Aug 6, 2005
Messages
5,291
Reaction score
0
Nowadays C and C++ are the preferred choice to low level hardware programming because numerous low level development libraries are written in C/C++. Java previous incarnation is known as Oak. It has meant for embedded development but didn't gain traction. For good reason in having more control, programming languages with explicit memory management are chosen since embedded environment normally don't have much hardware resources for automatic memory management. Objective-C also makes good embedded system development.

As for client-server/web-based/GUI apps development, Java, .NET family of languages, Perl, PHP, Ruby, Python, Go and many more makes good programming languages. You probably would need to consider what kind of web development framework, integration and libraries that you are using that make sense for certain languages to have advantage over the other. Sometimes you also need to consider if certain languages would make it easier for you to get readily available developers to perform the task. It is not just a matter of which programming language is better, it is which one can hep to accomplish your task with least cost, best effort and fastest delivery. As such, you shouldn't be surprise to see some solutions requires more than 1 languages to complete.

For GUI applications, you probably would have chosen your preferred UI framework and then see if the programming language is something you are proficient in. Java AWT and Swing are pretty mature and well defined UI building framework, don't hesitate to give it a trial. QT is also pretty strong, you also have GTK+ and FLTK at your disposal for C and C++.

But I will give you something more. What kind of applications are you designing ? Have you consider designing a service instead of an application. Having browsers with HTML5 and various technologies have made a browser a very attractive and powerful Rich Client Platform(RCP), it will make more sense if your application is a service that you can have much wider set of readily available technologies and libraries at your disposal instead of an application.

May I also remind you that NetBeans and Eclipse are very powerful desktop RCP at your disposal.

Very informative. Appreciate the input.

Thanks. :)
 

ykgoh

Master Member
Joined
Jan 1, 2000
Messages
2,782
Reaction score
0
Since you asked...

Is C++ more suited for ONLY low level hardware programming??

Depends on the os platform you're targeting. Afaik, on Linux/Unix, C/C++ is still the de facto language for serious programming. This is purely a matter of perception within the Linux community of course.

Of course, there are some other stuffs written in Python, Bash and Perl scripting. Because they're still open source, the community still finds it acceptable.

A programmer will probably be dismissed by the Linux community if he says he has something written something for Linux in Java or .NET (runs under Mono). Maybe they're just anti-Oracle, anti-Novell and anti-Microsoft.

All these are simply cultural and a matter of perception, not because there is some technical rationale. Not that Java and .NET runs poorly on Linux.

For Windows, it's pretty much anything goes, so long as it runs, and no one cares if it's written in C++, VB, C# or Java.

As for client-server / web-based / GUI apps, it is better to use Java??

C++ can do all these. Client-server using socket programming, CGI for web and QT for GUI.

But do you need those heavyweight enterprise technologies like JavaEE EJB? Or some sort of distributed programming framework? What about third party libraries or components that you may need?

So it boils down to your existing infrastructure like desktop and server environment (Microsoft? Java? Linux/Unix-based?)? These would probably push you in certain direction, or constrain your choices.

Performance (native codes vs. interpreted codes), and resistance against reverse engineering are other factors you may be concerned about. Native C++ codes wins on these against .NET and Java, which are in bytecodes. But for most applications, the performance difference is probably too tiny to be noticeable.

It also depends on programmer's proficiency and familiarity. Some are C++ masters but hopeless in Java or .NET. Others are Java/.NET experts but totally lost when faced with C++. It's not just the programming syntax, but a programmer's knowledge of the available libraries, components and toolkits that he can efficiently pull and plug into the application. So programmers tend to stick with the language they know best because it is the fastest and easiest way to produce something and get it running.

I have been constantly pondering about this question as I explore the C++ QT framework.

Is the C++ QT framework sufficient for commercial apps??

Yes, definitely. iirc, Nokia even acquired Trolltech for QT. This speaks a lot about the QT Framework.

If it is deemed good enough for Nokia, I guess for most other developers or software applications, it should be good enough too.
 
Last edited:

kan3siao

Supremacy Member
Joined
Aug 6, 2005
Messages
5,291
Reaction score
0
Since you asked...



Depends on the os platform you're targeting. Afaik, on Linux/Unix, C/C++ is still the de facto language for serious programming. This is purely a matter of perception within the Linux community of course.

Of course, there are some other stuffs written in Python, Bash and Perl scripting. Because they're still open source, the community still finds it acceptable.

A programmer will probably be dismissed by the Linux community if he says he has something written something for Linux in Java or .NET (runs under Mono). Maybe they're just anti-Oracle, anti-Novell and anti-Microsoft.

All these are simply cultural and a matter of perception, not because there is some technical rationale. Not that Java and .NET runs poorly on Linux.

For Windows, it's pretty much anything goes, so long as it runs, and no one cares if it's written in C++, VB, C# or Java.



C++ can do all these. Client-server using socket programming, CGI for web and QT for GUI.

But do you need those heavyweight enterprise technologies like JavaEE EJB? Or some sort of distributed programming framework? What about third party libraries or components that you may need?

So it boils down to your existing infrastructure like desktop and server environment (Microsoft? Java? Linux/Unix-based?)? These would probably push you in certain direction, or constrain your choices.

Performance (native codes vs. interpreted codes), and resistance against reverse engineering are other factors you may be concerned about. Native C++ codes wins on these against .NET and Java, which are in bytecodes. But for most applications, the performance difference is probably too tiny to be noticeable.

It also depends on programmer's proficiency and familiarity. Some are C++ masters but hopeless in Java or .NET. Others are Java/.NET experts but totally lost when faced with C++. It's not just the programming syntax, but a programmer's knowledge of the available libraries, components and toolkits that he can efficiently pull and plug into the application. So programmers tend to stick with the language they know best because it is the fastest and easiest way to produce something and get it running.



Yes, definitely. iirc, Nokia even acquired Trolltech for QT. This speaks a lot about the QT Framework.

If it is deemed good enough for Nokia, I guess for most other developers or software applications, it should be good enough too.

Thanks for the knowledge sharing. :)
 
Important Forum Advisory Note
This forum is moderated by volunteer moderators who will react only to members' feedback on posts. Moderators are not employees or representatives of HWZ Forums. Forum members and moderators are responsible for their own posts. Please refer to our Community Guidelines and Standards and Terms and Conditions for more information.
Top