PDA

View Full Version : What languages needed for Linux



Experimental
November 18th, 2010, 09:56 PM
What programming languages should we know to professionally work with linux

NathanB
November 18th, 2010, 10:03 PM
Become very skilled in the ones at the very top of this list:

http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

Experimental
November 18th, 2010, 10:09 PM
I dont really think java is more needed than perl python in linux :S

NathanB
November 18th, 2010, 10:33 PM
I dont really think java is more needed than perl python in linux :S

If you can't understand a relation as simple as...

(Java)18.509% > (Python)5.679%

...then you'll probably want to begin your learning adventure here:

http://www.alice.org/index.php?page=what_is_alice/what_is_alice

...or maybe here:

http://scratch.mit.edu/

After you understand the basics, please consult this sticky thread:
http://ubuntuforums.org/showthread.php?t=1006662


[snippet]
Programming Tools

* Writing conventions for most languages
* IDE/Editors in Linux/Ubuntu
* WYSIWYG Editors for Linux
* GUI Toolkits for Linux
* FAQ: Python, Perl, Ruby, PHP, Java etc to Native Code


Individual Languages
C and C++:

* FAQ: Compiling your first C or C++ programs
* FAQ: Troubleshooting common C and C++ compilation errors

C#:

* FAQ: Compiling and Running your First C# Program

Java:

* FAQ: Compiling and Running Java Programs

Various Scripting Languages: [Python/Perl/Ruby/PHP/etc]

* FAQ: Scripting Languages - How to get up and running, not how to learn.


Lots of luck to you.

Experimental
November 18th, 2010, 10:36 PM
all I'm just saying is does the efficient use of linux is based on market shares of programming languages ?

Some Penguin
November 18th, 2010, 10:40 PM
I dont really think java is more needed than perl python in linux :S

And what evidence do you have for your thinking?

santosh83
November 18th, 2010, 10:41 PM
What programming languages should we know to professionally work with linux

Depends on what type of programming you might expect to do under Linux but I guess that you'd need working knowledge of C, Python, Perl and sh, as a minimum.

Experimental
November 18th, 2010, 10:47 PM
All I want to use linux systems efficiently. No taking sides, web developer or music developer or programmer or etc. What's the common languages for all of them

NathanB
November 18th, 2010, 10:51 PM
all I'm just saying is does the efficient use of linux is based on market shares of programming languages ?

In your original post, you said this: "What programming languages should we know to professionally work with linux"

So, yes, in the general case, market forces determine what languages you should learn to have a greater chance of landing your preferred job. After all, it is nearly always going to be your employer who tells you what language you will be coding in. Also, most of the time you never get the chance to write new code [this is as much true in the Open Source Linux world as with the Microsoft arena]; you'll be maintaining (debugging/patching) existing codebases that were written X years ago.

However, in the specific case, you can go your own path and specialise in whatever language is your favourite, but you will be narrowing your employment opportunities by a large degree.

Experimental
November 18th, 2010, 10:57 PM
I dont need any jobs about this. I'm just doing it for hobby or maybe more. But not for somebody

santosh83
November 18th, 2010, 10:59 PM
All I want to use linux systems efficiently. No taking sides, web developer or music developer or programmer or etc. What's the common languages for all of them

There's no one universal language for all these tasks, but C in combination with shell, Perl and Python scripts seem to underlie a very significant majority of user and system programs under Linux, so you won't go wrong to learn these languages. IMO.

trent.josephsen
November 18th, 2010, 11:22 PM
The TIOBE Programming Community index is an indicator of the popularity of programming languages.
Popularity, mind you. Not usefulness, fitness for any particular purpose, usage share, nor market share. Just "popularity", which is defined as the number of hits for "<X> programming" on a handful of search engines. The TIOBE index is useful, but its primary flaw (IMO) is to bias the languages people are talking about over those they actually use.

With that disclaimer, the top of that list is certainly not a bad place to start if you want to learn to program. I usually suggest becoming comfortable with the command line first, then progressing through Python, Perl, and C (in that order, not moving to Perl before you're quite comfortable with Python, etc.) but it doesn't make much difference what you learn first. Experience is what truly matters, and if you spend your time worrying about which skills you should develop you'll never get around to developing any of them.

lisati
November 18th, 2010, 11:30 PM
For my day-to-day work with Linux (if you can call it "work"), I don't really need to know any programming languages - most of the programming tasks relating to what I do have already been done, and a lot better than I could do most of the time.

For developing applications, some good ideas have already been suggested: a basic knowledge of "C" probably wouldn't hurt.

matt_symes
November 18th, 2010, 11:38 PM
Hi



There's no one universal language for all these tasks, but C in combination with shell, Perl and Python scripts seem to underlie a very significant majority of user and system programs under Linux, so you won't go wrong to learn these languages. IMO.Apart from Perl, this would be my selection.

It depends on what you want to do. You can do alot using bash shell scripting (or any other shell) and for many this is enough.

To do anything more complex, requiring more control or speed, you will need C or C++, but the learning curve is much higher for these two.

Python is a great OO language that is also very powerful and is used extensively in Ubuntu.

What do you want to do?


All I want to use linux systems efficiently. No taking sides, web developer or music developer or programmer or etc. What's the common languages for all of themThere is no common language(s) for all of them. Most developed languages were designed for a role based on the problem at hand

Kind regards

raf-kig
November 19th, 2010, 12:00 AM
Depends on what type of programming you might expect to do under Linux but I guess that you'd need working knowledge of C, Python, Perl and sh, as a minimum.



Apart from Perl, this would be my selection.


I'm surprised that it took 14 posts before someone started bashing Perl (no pun intended). Perl definitely has its place in Linux programming.

matt_symes
November 19th, 2010, 12:08 AM
Hi


I'm surprised that it took 14 posts before someone started bashing Perl (no pun intended). Perl definitely has its place in Linux programming.Bashing Perl? No. Only with limited time those are the ones i would concentrate one. I would learn pearl last. I know a number of people who use pearl, so no i was not bashing pearl. The same could be argued of ruby, javascript, php etc, etc, etc....... horses for courses

Its about priorities. To learn 4 languages is a big ask in a small amount of time. Personally, if i was the OP, i would learn shell programming in the first instance.

I am interested. In which comment did i bash Pearl?

And as i stated it depends on what the OP wants to do. If its going to be a career path then choices have to be made early to get you on that first rung.

Kind regards

shadylookin
November 19th, 2010, 01:04 AM
I dont really think java is more needed than perl python in linux :S

I'm too lazy to look it up, but I imagine just Android's java is way more used than perl.

Which leads me to my question, what specifically do you wish to program?

If you find an open source project you want to work on then they'll have already picked the language for you. Saving you from this internal struggle.

trent.josephsen
November 19th, 2010, 05:23 AM
@matt_symes: A pearl is something that comes out of an oyster. Perl is a programming language.

For implying that Perl isn't worth spending time on, you sure seem not to know much about it.

ziekfiguur
November 19th, 2010, 11:10 AM
I agree with matt_symes. I don't think it would be necessary to completely understand both Python and Perl, it's probably enough to have a very thorough understanding of only one of these two languages and only the basics of the other. And if i had to choose I would definitely go for Python, just because it's easier to learn, and has more readable syntax.

Also, Java isn't used that much on linux systems (and in my opinion it's just a horrible language).

matt_symes
November 19th, 2010, 11:33 AM
Hi


@matt_symes: A pearl is something that comes out of an oyster. Perl is a programming language.

A typo and copy and paste are an evil combo when its late.

dv3500ea
November 19th, 2010, 01:48 PM
You say you just want to program as a hobby. In that case you can use any programming language you want.

I find Ruby to be the language that is the most fun to use and it is very good as a tool for automation. It is my choice for small scripts to make my life easier. I used to use Perl for such tasks but when I tried out Ruby, I never switched back. I never bothered to learn bash, but a knowledge of available commands is a must.

For creating applications that integrate with the desktop environment, Python is the best choice IMO. The language itself is not quite as nice as Ruby, but it is adequate. The main advantage of Python is the number of libraries and bindings to application APIs available. For example, there is no easy way to make a Nautilus extension in Ruby, but there is a Python module for this in the Ubuntu repositories.

For hacking on lower level features such as Linux or creating system libraries or drivers, C is really the only option. For programs where performance is really important, C is at great advantage, although I would recommend Vala/Genie (which compile down to C) to make your life easier.

As for Java - I really don't see what Ubuntu specific niche that it fills.

nvteighen
November 19th, 2010, 08:31 PM
Well, truly, if you want to be a hobbyist like me... eh... you're free to choose whatever you like :P

But what do you mean by using GNU/Linux "professionally"? Developing for GNU/Linux? Using the OS?

ceclauson
November 21st, 2010, 07:47 AM
I tend to think of C/Bash/Perl as being central, but another poster might replace Perl with Python--Python just isn't something I've gotten into, myself.

IMO, Java is a kind of a "middle-of-the-road" language for application development. That's both an upside and a downside, because I would characterize Java as "uniquely nicheless", basically anything you can use Java for, there's some other language/tool that can do the same job better. Someone else might have a counterexample, but that's been my experience. However, I started out with Java, and have found that its "middle-of-the-road" nature allows me to transition to most other languages fairly easily.

Because you're just doing it for a hobby, it probably depends on what you're interested in doing. Game developers tend to like C++ (in my experience), but Pygame can also do graphics and whatnot (I think there's a performance penalty, but in a lot of situations it probably doesn't matter).

To illustrate the dependence of language on the task you're doing, I've been using Perl a lot recently, but that's because I've been doing bioinformatics work, which involves processing text data, and Perl is good for this. But processing text data might not be the most exciting way to start programming (unless maybe you're doing web development), so I think it depends on what you're interested in doing.

matt_symes
November 21st, 2010, 01:41 PM
Hi


I tend to think of C/Bash/Perl as being central, but another poster might replace Perl with Python--Python just isn't something I've gotten into, myself.
So true. Ask 100 software developers what is the best language and you will get 100 different answers.

Kind regards

Experimental
November 22nd, 2010, 08:33 PM
Well, I chose to go with bash/perl/c . In programming languages there will be always new languages and I don't want to change languages like changing underwear. I want a language that I can stick with it forever. Maybe not forever but for a long time

nvteighen
November 22nd, 2010, 10:39 PM
Well, I chose to go with bash/perl/c . In programming languages there will be always new languages and I don't want to change languages like changing underwear. I want a language that I can stick with it forever. Maybe not forever but for a long time

You'll soon find you can't do that. Each language has its place; the good programmer is the one who chooses the right language for each task and the only way to know that is by learning several languages that are representative of the main paradigms available today.

v1ad
November 23rd, 2010, 09:18 AM
from my experience, always learn C, and Bash for Linux. Java is good overall for web scripts, but for an OS overall i wouldn't use it. and i would rather do Python than Pearl.