LinuxQuestions.org
Share your knowledge at the LQ Wiki.
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


Reply
  Search this Thread
Old 11-13-2008, 05:59 AM   #1
lali.p
Member
 
Registered: Jan 2007
Distribution: Slackware 11.0
Posts: 141

Rep: Reputation: 16
Programming tools and languages for a programmer


Hi
I have been programming in the *NIX environment(mainly Linux and Solaris) for almost a year now. The only language that i have programmed in is C++.
Over this year i have learnt one lesson that a programmer should be very proficient with his tools and learning the right tools makes a lot of difference in your productivity.

Initially i worked on windows for learning programming using VS2007.
But then i switched to Linux(Slackware) and with the active help of you guys and help available on usenet newsgroups(for programming) was able to make a transition smoothly. Thank you all

The purpose of this post is that i want to know what all tools and languages you guys use. Editors, code browsing, detecting memory leaks, debugging and all other stuff.

Here is my the list of tools that i have found them to be very useful
1) Vim with inbuilt support for cscope for code browsing
3) gdb + dbx ,hey do share your experience with using tools for multithreaded applications and which you rate as the best. I have just used SunIDE but i am not very good in the field of debugging and still learning some basics
4) Doxygen for documentation
5) SVN for source code repository
I also use Sunstudio for making Makefiles. Other things on list are learning gnu autoconf and automake tools.



I have heard that eclipse is cool. Whats your opinion ? I have found vim to be fantastic especially once you learn all the major features and use cscope for code browsing.

Languages: In the near future i would also like to learn some other languages like Perl.Initially i was bit confused to make a choice between Perl or Python. But having read in the threads here in this forum, i have planned to go with Perl. Ease of learning language is not a criteria for me to select a language(i have heard that Python is quite easy to learn compared to Perl). I want to learn scripting and other web stuff( just for fun and curiosity, my work mainly revolves around multithreaded programming) and thats why i am choosing Perl.

Hey and also shed some light on Javascript ? What about Erlang( for concurrency ) ? Anyone ever tried his hands on Erlang ? Any other cool stuff / tools you guys use.

PS: Learning curve of a language/tool is certainly not a criteria for me to select something( thanks to Vim for teaching me this lesson

So feel free to share your experience about tools and languages to learn.

Thank you for your patience

Regards
Kartik Mahajan

Last edited by lali.p; 11-13-2008 at 06:31 AM.
 
Old 11-13-2008, 06:13 AM   #2
hw-tph
Senior Member
 
Registered: Sep 2003
Location: Sweden
Distribution: Debian
Posts: 3,032

Rep: Reputation: 58
Stick to what you're comfortable with. If you work as a programmer you will soon enough find yourself in an environment where your boss will say "These are your tools, now get the job done", so you will have to adapt and learn as you go along. It might be using C in Emacs or it might be using Java in NetBeans/IntelliJ/Eclipse/whatever... Eclipse is, in my personal opinion, incredibly overrated. NetBeans 6.5 is a lot quicker and feels like a more solid work environment. If you find yourself doing Java you will often need to use application servers like Glassfish or Weblogic. Those are beasts in their own right...

Vim is excellent since it is available for pretty much every imaginable platform and you will be able to find your way around vi well, which comes in handy on all *NIX platforms.

Some comments about your wrote:
  • Javascript. Well, if you're going to do anything web related you will need to learn how to use Javascript. Also have a look at the big Javascript libraries (rule number one in programming: Don't reinvent the wheel) like Yahoo's excellent YUI library.
  • Perl vs Python. Python is a much more modern language, but Perl might a tad more versatile. It is however ugly and unstructured (rather the opposite of Python). Also look into Ruby which has gained a tremendous popularity thanks to Rails.
 
Old 11-13-2008, 01:48 PM   #3
Sergei Steshenko
Senior Member
 
Registered: May 2005
Posts: 4,481

Rep: Reputation: 454Reputation: 454Reputation: 454Reputation: 454Reputation: 454
Quote:
Originally Posted by hw-tph View Post
Stick to what you're comfortable with. If you work as a programmer you will soon enough find yourself in an environment where your boss will say "These are your tools, now get the job done", so you will have to adapt and learn as you go along. It might be using C in Emacs or it might be using Java in NetBeans/IntelliJ/Eclipse/whatever... Eclipse is, in my personal opinion, incredibly overrated. NetBeans 6.5 is a lot quicker and feels like a more solid work environment. If you find yourself doing Java you will often need to use application servers like Glassfish or Weblogic. Those are beasts in their own right...

Vim is excellent since it is available for pretty much every imaginable platform and you will be able to find your way around vi well, which comes in handy on all *NIX platforms.

Some comments about your wrote:
  • Javascript. Well, if you're going to do anything web related you will need to learn how to use Javascript. Also have a look at the big Javascript libraries (rule number one in programming: Don't reinvent the wheel) like Yahoo's excellent YUI library.
  • Perl vs Python. Python is a much more modern language, but Perl might a tad more versatile. It is however ugly and unstructured (rather the opposite of Python). Also look into Ruby which has gained a tremendous popularity thanks to Rails.
Python is _not_ a much more modern language.
 
Old 11-13-2008, 01:51 PM   #4
Sergei Steshenko
Senior Member
 
Registered: May 2005
Posts: 4,481

Rep: Reputation: 454Reputation: 454Reputation: 454Reputation: 454Reputation: 454
Being myself a Perl guy I would recommend (in addition to Perl) Lua. Looks clean, neat and simple.

And no, Lua does not resemble Perl syntax-wise.
 
Old 11-13-2008, 06:00 PM   #5
chrism01
LQ Guru
 
Registered: Aug 2004
Location: Sydney
Distribution: Centos 7.7 (?), Centos 8.1
Posts: 17,790

Rep: Reputation: 2538Reputation: 2538Reputation: 2538Reputation: 2538Reputation: 2538Reputation: 2538Reputation: 2538Reputation: 2538Reputation: 2538Reputation: 2538Reputation: 2538
Yeah, Perl resembles C syntax and I've done a few things multi-threaded in it. (FWIW, I used to use C).
In terms of general Unix stuff, its also worth learning the shell and at least the basics of sed, awk.

http://www.tldp.org/LDP/abs/html/
http://www.grymoire.com/Unix/Awk.html
http://www.grymoire.com/Unix/Sed.html#uh-0

For Perl, these are very good links:
http://perldoc.perl.org/
http://www.perlmonks.org/?node=Tutorials

Good luck
 
Old 11-19-2008, 07:48 PM   #6
mmarshall
Member
 
Registered: Apr 2004
Location: Bedford, Texas (DFW area)
Distribution: ArchLinux
Posts: 41

Rep: Reputation: 15
I think you would do well to learn a little python. At least skim the book Dive Into Python. (You can read if for free online.) After an hour you'll know enough to be dangerous.

If you're interested in web development, Javascript is great to know. And you shouldn't just 'know' it, you should know it thoroughly. There are too many people out there that think they know it and think they hate it, when in reality they just misunderstand it. (At a minimum you should be able to explain the terms 'closure' and 'prototype inheritance'.) This problem is augmented by the myriad of online tutorials and even published books that treat Javascript as just an extension to HTML. I recommend Douglas Crockford's talks and Javascript: The Definitive Guide.

And no matter what languages you learn, it's greatly helpful to really learn regular expressions. I recommend the book Mastering Regular Expressions.

MWM
 
Old 11-19-2008, 09:15 PM   #7
pinniped
Senior Member
 
Registered: May 2008
Location: planet earth
Distribution: Debian
Posts: 1,732

Rep: Reputation: 50
source editing: kate (except for Java, when I use eclipse)
debugging: gdb
memory leaks: valgrind (x86 and x86_64 only)
documentation: Doxygen (but only because cweb doesn't seem as popular)
source control: cvs (but svn, git, and bzr to pull in code from other projects)
 
Old 11-19-2008, 09:37 PM   #8
AceofSpades19
Senior Member
 
Registered: Feb 2007
Location: Chilliwack,BC.Canada
Distribution: Slackware64 -current
Posts: 2,079

Rep: Reputation: 58
Emacs is better then vim!
(sorry had to say it)
 
Old 11-26-2008, 10:22 AM   #9
nehaandrew
Member
 
Registered: Nov 2008
Posts: 53

Rep: Reputation: 15
My personal favourite IDE for Java is JDeveloper. Second in line - Eclipse.


Linux

Last edited by nehaandrew; 11-30-2008 at 01:18 AM.
 
Old 11-27-2008, 12:15 AM   #10
maradnus
Member
 
Registered: Oct 2008
Location: Yellagiri Hills
Distribution: Fedora
Posts: 87

Rep: Reputation: 15
My tool box:
-------------
Languages: C, C++
Scripting: Bash, sed, awk
Databases: PostgreSQL ( Interfaces: C -> libpq, ecpg)
FrontEnd: Qt
Source COde Control: CVS (easy to adapt)
Debugging: GDB
Testing Tools: gcov, mpatrol, gproff
Programming stubs: multi-tasking, multi-threading, semaphore, sockets
Web: PHP, CGI through C language or bash
--------------------------------------------
 
Old 11-27-2008, 01:11 AM   #11
Sergei Steshenko
Senior Member
 
Registered: May 2005
Posts: 4,481

Rep: Reputation: 454Reputation: 454Reputation: 454Reputation: 454Reputation: 454
Quote:
Originally Posted by hw-tph View Post
Stick to what you're comfortable with. If you work as a programmer you will soon enough find yourself in an environment where your boss will say "These are your tools, now get the job done", so you will have to adapt and learn as you go along. It might be using C in Emacs or it might be using Java in NetBeans/IntelliJ/Eclipse/whatever... Eclipse is, in my personal opinion, incredibly overrated. NetBeans 6.5 is a lot quicker and feels like a more solid work environment. If you find yourself doing Java you will often need to use application servers like Glassfish or Weblogic. Those are beasts in their own right...

Vim is excellent since it is available for pretty much every imaginable platform and you will be able to find your way around vi well, which comes in handy on all *NIX platforms.

Some comments about your wrote:
  • Javascript. Well, if you're going to do anything web related you will need to learn how to use Javascript. Also have a look at the big Javascript libraries (rule number one in programming: Don't reinvent the wheel) like Yahoo's excellent YUI library.
  • Perl vs Python. Python is a much more modern language, but Perl might a tad more versatile. It is however ugly and unstructured (rather the opposite of Python). Also look into Ruby which has gained a tremendous popularity thanks to Rails.
No, Python is not a much more modern language.

In fact, Perl as a language is more powerful than Python; also Larry Wall regrets stealing Python OO model - I can point you to the source of this statement.

Perl OO model actually allows to imitate almost any OO model in existence, and there are different OO "dialects" in Perl.

The last one "adopted" by Larry is "Moose.pm" - it is inspired by Ruby.

Similar to the one to be implemented in Perl 6.
 
Old 11-27-2008, 01:12 AM   #12
Sergei Steshenko
Senior Member
 
Registered: May 2005
Posts: 4,481

Rep: Reputation: 454Reputation: 454Reputation: 454Reputation: 454Reputation: 454
Quote:
Originally Posted by maradnus View Post
My tool box:
-------------
Languages: C, C++
Scripting: Bash, sed, awk
Databases: PostgreSQL ( Interfaces: C -> libpq, ecpg)
FrontEnd: Qt
Source COde Control: CVS (easy to adapt)
Debugging: GDB
Testing Tools: gcov, mpatrol, gproff
Programming stubs: multi-tasking, multi-threading, semaphore, sockets
Web: PHP, CGI through C language or bash
--------------------------------------------
SVN is definitely more comfortable; I'd still like to decide on HG vs 'git'.
 
Old 11-27-2008, 01:16 AM   #13
Sergei Steshenko
Senior Member
 
Registered: May 2005
Posts: 4,481

Rep: Reputation: 454Reputation: 454Reputation: 454Reputation: 454Reputation: 454
Quote:
Originally Posted by lali.p View Post
Hi
I have been programming in the *NIX environment(mainly Linux and Solaris) for almost a year now. The only language that i have programmed in is C++.
Over this year i have learnt one lesson that a programmer should be very proficient with his tools and learning the right tools makes a lot of difference in your productivity.

Initially i worked on windows for learning programming using VS2007.
But then i switched to Linux(Slackware) and with the active help of you guys and help available on usenet newsgroups(for programming) was able to make a transition smoothly. Thank you all

The purpose of this post is that i want to know what all tools and languages you guys use. Editors, code browsing, detecting memory leaks, debugging and all other stuff.

Here is my the list of tools that i have found them to be very useful
1) Vim with inbuilt support for cscope for code browsing
3) gdb + dbx ,hey do share your experience with using tools for multithreaded applications and which you rate as the best. I have just used SunIDE but i am not very good in the field of debugging and still learning some basics
4) Doxygen for documentation
5) SVN for source code repository
I also use Sunstudio for making Makefiles. Other things on list are learning gnu autoconf and automake tools.



I have heard that eclipse is cool. Whats your opinion ? I have found vim to be fantastic especially once you learn all the major features and use cscope for code browsing.

Languages: In the near future i would also like to learn some other languages like Perl.Initially i was bit confused to make a choice between Perl or Python. But having read in the threads here in this forum, i have planned to go with Perl. Ease of learning language is not a criteria for me to select a language(i have heard that Python is quite easy to learn compared to Perl). I want to learn scripting and other web stuff( just for fun and curiosity, my work mainly revolves around multithreaded programming) and thats why i am choosing Perl.

Hey and also shed some light on Javascript ? What about Erlang( for concurrency ) ? Anyone ever tried his hands on Erlang ? Any other cool stuff / tools you guys use.

PS: Learning curve of a language/tool is certainly not a criteria for me to select something( thanks to Vim for teaching me this lesson

So feel free to share your experience about tools and languages to learn.

Thank you for your patience

Regards
Kartik Mahajan
Read also about Jocaml.
 
Old 11-27-2008, 01:37 AM   #14
ghostdog74
Senior Member
 
Registered: Aug 2006
Posts: 2,697
Blog Entries: 5

Rep: Reputation: 244Reputation: 244Reputation: 244
Quote:
Originally Posted by Sergei Steshenko View Post
In fact, Perl as a language is more powerful than Python
Define "powerful".
 
Old 11-27-2008, 01:40 AM   #15
Sergei Steshenko
Senior Member
 
Registered: May 2005
Posts: 4,481

Rep: Reputation: 454Reputation: 454Reputation: 454Reputation: 454Reputation: 454
Quote:
Originally Posted by ghostdog74 View Post
Define "powerful".
Ability to do more with less effort from programmer.
 
  


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
Best Programming Language for an Old Programmer falcon56215 Linux - General 5 12-22-2007 01:40 PM
LXer: Software tools detect bugs by inferring programmerís intentions LXer Syndicated Linux News 0 07-07-2006 09:54 PM
Programmer/System's Analyst tools Citizen Bleys Programming 0 01-16-2002 05:19 PM

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

All times are GMT -5. The time now is 06:37 PM.

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