LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Programming (https://www.linuxquestions.org/questions/programming-9/)
-   -   Which programming language is mostly used today for developing corporate software (https://www.linuxquestions.org/questions/programming-9/which-programming-language-is-mostly-used-today-for-developing-corporate-software-936225/)

Z0K4 03-24-2012 02:49 PM

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! ;)

ta0kira 03-24-2012 06:42 PM

Quote:

Originally Posted by Z0K4 (Post 4635301)
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 (Post 4635301)
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

jarubyh 03-24-2012 07:18 PM

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.

Z0K4 03-25-2012 02:17 AM

Quote:

Originally Posted by ta0kira (Post 4635416)
...You should change the poll question to reflect this...

Done! :)

Quote:

Originally Posted by jarubyh (Post 4635436)
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!

H_TeXMeX_H 03-25-2012 03:15 AM

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.

Hangdog42 03-25-2012 08:54 AM

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.

johnsfine 03-25-2012 10:22 AM

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.

Z0K4 03-25-2012 10:49 AM

Quote:

Originally Posted by johnsfine (Post 4635772)
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 (Post 4635772)
...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! :)

johnsfine 03-25-2012 02:01 PM

Quote:

Originally Posted by Z0K4 (Post 4635795)
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.

Z0K4 03-25-2012 03:29 PM

Quote:

Originally Posted by johnsfine (Post 4635920)
...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.

ta0kira 03-25-2012 03:52 PM

Quote:

Originally Posted by Z0K4 (Post 4635964)
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

johnsfine 03-25-2012 04:41 PM

Quote:

Originally Posted by Z0K4 (Post 4635964)
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 (Post 4635964)
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.

Z0K4 03-26-2012 02:35 AM

Quote:

Originally Posted by ta0kira (Post 4635977)
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 (Post 4636004)
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 (Post 4636004)
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.

resetreset 03-28-2012 09:04 AM

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. :)

Z0K4 03-28-2012 11:18 AM

Quote:

Originally Posted by resetreset (Post 4638753)
...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!


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