LinuxQuestions.org
Review your favorite Linux distribution.
Go Back   LinuxQuestions.org > Forums > Non-*NIX Forums > Programming
User Name
Password
Programming This forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.

Notices


View Poll Results: Which one do you choose and why?
C 19 32.20%
C++ 21 35.59%
C# 5 8.47%
Java 14 23.73%
Voters: 59. You may not vote on this poll

Reply
  Search this Thread
Old 03-24-2012, 02:49 PM   #1
Z0K4
Member
 
Registered: Sep 2011
Location: Split, Croatia
Distribution: Slackware, Fedora
Posts: 86

Rep: Reputation: 4
Which programming language is mostly used today for developing corporate software


Basically, name of the subject says everything... I'm wondering which language is mostly used today for developing "serious" (corporate) software. Which are pros and cons for each? I'm not trying to start some flaming war... nothing similar!

I just want to hear your thoughts about those programming languages. If somebody has a good book regarding any of those languages, please, share the title and the author.

Thank you.

NOTE: if anybody thinks I should add another language, please, do recommend it!

Last edited by Z0K4; 03-25-2012 at 02:12 AM.
 
Old 03-24-2012, 06:42 PM   #2
ta0kira
Senior Member
 
Registered: Sep 2004
Distribution: FreeBSD 9.1, Kubuntu 12.10
Posts: 3,078

Rep: Reputation: Disabled
Quote:
Originally Posted by Z0K4 View Post
I'm not trying to start some flaming war... nothing similar!
Unfortunately, that doesn't matter. It will happen anyway, probably regarding how one language fails at something another was designed for.
Quote:
Originally Posted by Z0K4 View Post
I'm wondering which language is mostly used today for developing "serious" (corporate) software.
You should change the poll question to reflect this, because most people won't read your post before voting (or posting responses.)
Kevin Barry

Last edited by ta0kira; 03-24-2012 at 06:46 PM.
 
Old 03-24-2012, 07:18 PM   #3
jarubyh
Member
 
Registered: Aug 2011
Location: $HOME
Distribution: Slackware, FreeBSD, Debian
Posts: 50

Rep: Reputation: 1
C++

What I like about it:
- OO
- Lots of great libraries (Qt, Boost, GTK+)
- It makes sense to me and|because it's like Perl, the language I started programming in

What I don't like about all the others:

Java:
- Slow
- Sun
- It's a lot of typing.

C:
- It feels too '80s
- No OO
- I'm bad at it :P

C#:
I've never tried programming in C#.

Those are my personal opinions. Bear in mind that all of these are Turing Complete languages therefore anything you can do in one you can do in any of them. So it really comes down to your (or your Boss's) preferences.
 
Old 03-25-2012, 02:17 AM   #4
Z0K4
Member
 
Registered: Sep 2011
Location: Split, Croatia
Distribution: Slackware, Fedora
Posts: 86

Original Poster
Rep: Reputation: 4
Quote:
Originally Posted by ta0kira View Post
...You should change the poll question to reflect this...
Done!

Quote:
Originally Posted by jarubyh View Post
C++

What I like about it:
- OO
- Lots of great libraries (Qt, Boost, GTK+)
- It makes sense to me and|because it's like Perl, the language I started programming in

Those are my personal opinions. Bear in mind that all of these are Turing Complete languages therefore anything you can do in one you can do in any of them. So it really comes down to your (or your Boss's) preferences.
Thank you both for your opinions.

Cheers!
 
Old 03-25-2012, 03:15 AM   #5
H_TeXMeX_H
LQ Guru
 
Registered: Oct 2005
Location: $RANDOM
Distribution: slackware64
Posts: 12,928
Blog Entries: 2

Rep: Reputation: 1301Reputation: 1301Reputation: 1301Reputation: 1301Reputation: 1301Reputation: 1301Reputation: 1301Reputation: 1301Reputation: 1301Reputation: 1301
I would say C or C++, but it depends on the corporation and their needs. I voted for C, it is much less bloated and has the best backwards compatibility.
 
Old 03-25-2012, 08:54 AM   #6
Hangdog42
LQ Veteran
 
Registered: Feb 2003
Location: Maryland
Distribution: Slackware
Posts: 7,803
Blog Entries: 1

Rep: Reputation: 422Reputation: 422Reputation: 422Reputation: 422Reputation: 422
I think it depends a great deal on the corporation you're talking about. Most companies I've worked for/with have a HUGE investment in Java. Over the past few years a lot of the Microsoft shops have done a lot in C#. I've also seen a lot of serious bioinformatics infrastructure written in Perl.
 
Old 03-25-2012, 10:22 AM   #7
johnsfine
LQ Guru
 
Registered: Dec 2007
Distribution: Centos
Posts: 5,286

Rep: Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197
Am I misremembering, or did you change the question after I voted?

In the company where I work, we use mostly C++ but also other languages including C and C#. In the department where I work, we use exclusively C++ for the products we develop but several developers use Matlab's programming language for internal programs written for research purposes.

I voted for C++ based on the original question. I think C++ is the only language appropriate for developing large projects. The bigger the project, the more reasons there are that all other languages fail.

But I think C# is the language currently used most for developing commercial software. I think MS has a lot of clout and has used that clout to promote C#. With C# more than other languages, they are able to push the standard around to disadvantage non MS platforms. I personally think C# is a rotten language in general, but even if it were a good language I would prefer a language whose standard is less under MS's control.
 
1 members found this post helpful.
Old 03-25-2012, 10:49 AM   #8
Z0K4
Member
 
Registered: Sep 2011
Location: Split, Croatia
Distribution: Slackware, Fedora
Posts: 86

Original Poster
Rep: Reputation: 4
Quote:
Originally Posted by johnsfine View Post
Am I misremembering, or did you change the question after I voted?
You are not misremembering, you're wright... i did change the question. Main reason for editing the thread name is that I didn't want to start any discussion between the members which are fans of different languages (first name was "C vs C++ vs C# vs Java"). My apologies if you think I'm trying to mislead you. I just wanted some advice which language to start learning first... I do have some knowledge in C/C++ but nothing I could brag with! Of course I will, eventually, start learning other languages.

Quote:
Originally Posted by johnsfine View Post
...I think MS has a lot of clout and has used that clout to promote C#. With C# more than other languages, they are able to push the standard around to disadvantage non MS platforms...
True... But somewhere I've read that there is a open source cross platform software for running .NET apps. I believe it is called mono or something like that

I do like C++, and the fact it is object oriented... Only thing I'm concerd is that you can cause a lot of memory leaking if you don't know what you are doing.

Thank you for your opinion and, again, sorry if changing the thread name offended you somehow!
 
Old 03-25-2012, 02:01 PM   #9
johnsfine
LQ Guru
 
Registered: Dec 2007
Distribution: Centos
Posts: 5,286

Rep: Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197
Quote:
Originally Posted by Z0K4 View Post
I do like C++, and the fact it is object oriented... Only thing I'm concerd is that you can cause a lot of memory leaking if you don't know what you are doing.
In C or C++, the whole problem of object ownership is left up to the programmer. In most other languages that is handled by the environment. I agree that is often a big burden on the programmer and big source of errors for programmers attempting tasks that are a bit beyond them.

C and C++ have extremely flexible pointer support (beyond most other programming languages). That is a flexibility I would hate to try to program without. But it is a flexibility that makes life much harder for any automatic garbage collection system.

Even without the flexibility of C pointers, any "one size fits all" system for deciding when to delete objects will be terribly wrong for at least some situations. C and C++ make the programmer take that responsibility, which means letting the programmer select a solution that fits the specific requirements of each situation.

Quote:
Thank you for your opinion and, again, sorry if changing the thread name offended you somehow!
Not offended, just clarifying the meaning of my vote. I voted for the language (C++) that should be used for most serious projects, not the language (C#) that I estimate is most used for current serious commercial projects.

BTW, you mentioned C++ specifically (not C) for memory leak issues. The memory management issues are identical between C and C++. The various solutions are syntactically easier in C++ than C. So given similar projects, C should be more prone to memory leaks than C++.
There may be an attitude difference. C++ has so much more implicit functionality (things the compiler takes care of for you by default) that it may be easier to forget it doesn't manage object ownership.

Quote:
I just wanted some advice which language to start learning first.
I think a decent subset of C++ makes a great beginner language, much better than C.

Use std::vector, std::string, std::cin and std::cout as black box functionality without even trying to learn the C++ language features that make them possible. (Much later go back and learn those language features).

Delay learning about C strings (char arrays used like strings) and all their associated functions until you are much more comfortable with pointers and C arrays in other contexts. Maybe delay learning scanf indefinitely.

I would use struct rather than class for all objects in beginner C++ and delay learning about public vs. private vs. protected. But I expect a lot of other experts would be upset at such a proposal.

Last edited by johnsfine; 03-25-2012 at 02:14 PM.
 
1 members found this post helpful.
Old 03-25-2012, 03:29 PM   #10
Z0K4
Member
 
Registered: Sep 2011
Location: Split, Croatia
Distribution: Slackware, Fedora
Posts: 86

Original Poster
Rep: Reputation: 4
Quote:
Originally Posted by johnsfine View Post
...Use std::vector, std::string, std::cin and std::cout as black box functionality without even trying to learn the C++ language features that make them possible. (Much later go back and learn those language features).

Delay learning about C strings (char arrays used like strings) and all their associated functions until you are much more comfortable with pointers and C arrays in other contexts. Maybe delay learning scanf indefinitely.

I would use struct rather than class for all objects in beginner C++ and delay learning about public vs. private vs. protected. But I expect a lot of other experts would be upset at such a proposal.
I'm fairly familiar with classes and the structures. I believe I will accept your suggestion(s)... Start (resume) with the C++ and master the pointers and arrays. Then open the "black box" and learn features that do make possible vectors, strings, input and output.

Thank you for your time and your suggestions johnsfine! You've been very helpful. Also big thanks to all other members that replied and voted in the poll!

Best regards.
 
1 members found this post helpful.
Old 03-25-2012, 03:52 PM   #11
ta0kira
Senior Member
 
Registered: Sep 2004
Distribution: FreeBSD 9.1, Kubuntu 12.10
Posts: 3,078

Rep: Reputation: Disabled
Quote:
Originally Posted by Z0K4 View Post
I'm fairly familiar with classes and the structures. I believe I will accept your suggestion(s)... Start (resume) with the C++ and master the pointers and arrays. Then open the "black box" and learn features that do make possible vectors, strings, input and output.
I found it helpful to find particular problems that seemed difficult to solve, then learn all of the things that would go into solving it. For example, if you set out to create a program that parses structured data then you'll have to learn a lot of the important concepts of the language you're using along the way. You'll also run into problems you hadn't imagined before, which might not come up otherwise. You don't actually have to complete that solution; it's just kind of a place-holder and you'll have other ideas stemming from the smaller accomplishments.
Kevin Barry
 
Old 03-25-2012, 04:41 PM   #12
johnsfine
LQ Guru
 
Registered: Dec 2007
Distribution: Centos
Posts: 5,286

Rep: Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197
Quote:
Originally Posted by Z0K4 View Post
I'm fairly familiar with classes and the structures.
In C++ those are two names for the same thing. C++ has two keywords struct and class but the difference is only whether the default is public or private.

A struct can have public, private and protected members, can inherit from base classes, can have virtual functions and constructors and a destructor and anything else a class can have.

A class could have all public members, all POD, like a C structure.

Quote:
Originally Posted by Z0K4 View Post
Start (resume) with the C++ and master the pointers and arrays.
In most situations where a C programmer would use an array, a C++ programmer would use std::vector. So I would consider C arrays to be slightly beyond beginner level in an appropriate introduction to C++. Learn how to use std::vector. Later learn about C arrays as a more efficient but less convenient alternative to std::vector for the few cases such is justified.

My earlier comment suggested delaying learning about C strings until after learning about C arrays. But that doesn't suggest learning about C arrays too early. A C beginner needs to learn about C strings early because beginning programming without strings is lame. So a C beginner usually misunderstands C strings (more than any other feature of C). A C++ beginner can learn std::string and leave C strings until much later.

Last edited by johnsfine; 03-25-2012 at 04:51 PM.
 
2 members found this post helpful.
Old 03-26-2012, 02:35 AM   #13
Z0K4
Member
 
Registered: Sep 2011
Location: Split, Croatia
Distribution: Slackware, Fedora
Posts: 86

Original Poster
Rep: Reputation: 4
Quote:
Originally Posted by ta0kira View Post
I found it helpful to find particular problems that seemed difficult to solve, then learn all of the things that would go into solving it. For example, if you set out to create a program that parses structured data then you'll have to learn a lot of the important concepts of the language you're using along the way. You'll also run into problems you hadn't imagined before, which might not come up otherwise. You don't actually have to complete that solution; it's just kind of a place-holder and you'll have other ideas stemming from the smaller accomplishments.
Kevin Barry
+1 Thank you Kevin!
Quote:
Originally Posted by johnsfine View Post
In C++ those are two names for the same thing. C++ has two keywords struct and class but the difference is only whether the default is public or private.
Ohhhh... I see!
Quote:
Originally Posted by johnsfine View Post
In most situations where a C programmer would use an array, a C++ programmer would use std::vector. So I would consider C arrays to be slightly beyond beginner level in an appropriate introduction to C++. Learn how to use std::vector. Later learn about C arrays as a more efficient but less convenient alternative to std::vector for the few cases such is justified. My earlier comment suggested delaying learning about C strings until after learning about C arrays. But that doesn't suggest learning about C arrays too early. A C beginner needs to learn about C strings early because beginning programming without strings is lame. So a C beginner usually misunderstands C strings (more than any other feature of C). A C++ beginner can learn std::string and leave C strings until much later.
Wow... I believe I learned more from you about C/C++ features than I learned from my professors! Thanks.
 
Old 03-28-2012, 09:04 AM   #14
resetreset
Senior Member
 
Registered: Mar 2008
Location: Cyberspace
Distribution: Dynebolic, Ubuntu 10.10
Posts: 1,340

Rep: Reputation: 62
OK, I didn't read everything up there, but I'm a bit surprised that no one mentioned any WEB stuff, since we're all supposed to be moving to the cloud and what not!....

Isn't Javascript important? I personally skipped C++ in favour of it.
 
Old 03-28-2012, 11:18 AM   #15
Z0K4
Member
 
Registered: Sep 2011
Location: Split, Croatia
Distribution: Slackware, Fedora
Posts: 86

Original Poster
Rep: Reputation: 4
Quote:
Originally Posted by resetreset View Post
...Isn't Javascript important?...
Well... JS is client side scripting language. I think that server side languages are more important (php, asp), but that is just my opinion. Cloud computing might be good for someone, but that is definitely not good enough for hardcore gamers, scientists, or any other users that want or need maximum PC performance. If you want max performance you need good hardware, and even better software (drivers), and that is where C/C++ overruns every other language out there.

Thank you for your reply!
BTW... I also like JavaScript (but not as much as C or C++, even though I'm still beginner)!

Cheers!
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
[SOLVED] Java Woes: A Java Runtime Environment (JRE) or Java Development Kit (JDK) must be available ... chytraeus Slackware 10 11-27-2010 10:04 AM
IN JAVA, how to do a multi chat client in java with the option of private message ? nicolasd Programming 5 09-16-2009 08:53 PM
LXer: Java news met with cautious optimism in free Java community LXer Syndicated Linux News 0 11-14-2006 10:21 PM
Firefox refuses to load Java jnlp files - plugin and java ok Melsync Linux - Software 1 06-25-2006 04:09 PM

LinuxQuestions.org > Forums > Non-*NIX Forums > Programming

All times are GMT -5. The time now is 04:37 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration