LinuxQuestions.org
Help answer threads with 0 replies.
Home Forums Tutorials Articles Register
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 04-10-2010, 03:32 PM   #1
jqpdev
Member
 
Registered: Feb 2003
Location: New York, USA
Distribution: Trying out several distros.
Posts: 37

Rep: Reputation: 15
Looking to start doing software dev. on Linux... need advice


Hello everyone,

I'm looking to start doing software development in a variety of languages and platforms, including shell scripting, on Linux. The following are the languages/platforms I'm looking gain proficiency in:
- C/C++
- PHP
- Java
- BaSH (shell scripting)
- Javascript (client and server side)
- MySQL
- HTML (client and server side)
- XML
- Ruby (a friend recommending I have a look at this)
- Perl (a friend recommending I have a look at this)

I have experience is several of the items listed above but not all. I'm also a bit rusty in the ones I do have experience in. Pretty much 95% of my programming experience has been in DOS or some flavor of Windows. I'm spoiled by the fact that I've worked almost exclusively in IDEs (Turbo Pascal, Delphi, C++ Builder, Visual Studio.NET, Query Analyzer, Dreamweaver, VB/VBA IDE). So while I will spend some time getting to know GCC and "make" at the command line, I would rather work in and IDE. I could use some advice/recommendations on the following (free packages would be preferred but info. on commercial products are very much appreciated):

- What C/C++ IDE seems to be the most stable, feature rich, well supported? I started looking into Codelite (codelite.org) and code::blocks (www.codeblocks.org).

- Are there any Dreamweaver equivalents for Linux?

- What Java IDE is the most stable, feature rich, well supported?

- Are there any GUI editors/IDEs that provide syntax highlighting for HTML, XML, Javascript, SQL, Perl, Ruby, PHP, and BaSH?

- What tools would you recommend be used in a professional setting? Why?
 
Old 04-10-2010, 03:47 PM   #2
MTK358
LQ 5k Club
 
Registered: Sep 2009
Posts: 6,443
Blog Entries: 3

Rep: Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723
First of all, I recommend you don't use fancy all-in-one GUI IDEs, and instead compile using the command line.

Good GUI syntax highlighting editors include, gedit, Kate, and many more.- C/C++

Here are the programs you need to have to develop:

Quote:
- C/C++
gcc and g++

Quote:
- PHP
php and ther server software of your choice (like Apache)

Quote:
- Java
jre and jdk

Quote:
- BaSH (shell scripting)
bash

Quote:
- Javascript (client and server side)
Any web browser

Quote:
- MySQL
mysql

Quote:
- HTML (client and server side)
Any web browser (HTML is technically NOT a programming language, it just describes the visual layout of a page)

Quote:
- XML
An XML parser library for the programming language of your choice

Quote:
- Ruby (a friend recommending I have a look at this)
ruby

Quote:
- Perl (a friend recommending I have a look at this)
perl
 
Old 04-10-2010, 04:31 PM   #3
Sergei Steshenko
Senior Member
 
Registered: May 2005
Posts: 4,481

Rep: Reputation: 454Reputation: 454Reputation: 454Reputation: 454Reputation: 454
Java folks, AFAIK, are using 'Eclipse'. The major complaint is that it is slow, but with modern CPUs it's probably not an issue.

And I am not a Java guy.

'Eclipse' has several plugins - AFAIR for C++ and Perl among others.

I have never used Eclipse - do not feel a need.

In general - one does not learn programming through IDEs. Rather, if one only knows programming with IDE, he/she is a very limited programmer. There are serious/core things which can't be debugged in an IDE. And/or rather they can't be debugged in a SW debugger, and thus in an IDE.

one of my first serious challenges in the late eighties was to "transform" Borland's Turbo-C to produce embeddable "C" programs working on "bare iron" - I did it. So I was using Turbo-C as an editor + compiler + linker.
 
Old 04-10-2010, 04:33 PM   #4
smeezekitty
Senior Member
 
Registered: Sep 2009
Location: Washington U.S.
Distribution: M$ Windows / Debian / Ubuntu / DSL / many others
Posts: 2,339

Rep: Reputation: 231Reputation: 231Reputation: 231
For java, use gcj.
It can compile to bytecode and native machine code and is better then mentioned above.
 
Old 04-10-2010, 04:54 PM   #5
MTK358
LQ 5k Club
 
Registered: Sep 2009
Posts: 6,443
Blog Entries: 3

Rep: Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723
Quote:
Originally Posted by Sergei Steshenko View Post
In general - one does not learn programming through IDEs. Rather, if one only knows programming with IDE, he/she is a very limited programmer.
At least we agree on one thing.
 
Old 04-10-2010, 04:58 PM   #6
Sergei Steshenko
Senior Member
 
Registered: May 2005
Posts: 4,481

Rep: Reputation: 454Reputation: 454Reputation: 454Reputation: 454Reputation: 454
Quote:
Originally Posted by MTK358 View Post
At least we agree on one thing.
Your disagreements with me keep me pleasantly entertained.
 
Old 04-10-2010, 07:27 PM   #7
jqpdev
Member
 
Registered: Feb 2003
Location: New York, USA
Distribution: Trying out several distros.
Posts: 37

Original Poster
Rep: Reputation: 15
@MTK358:
Thanks for the info. Why do you recommend not to use IDEs? What do I gain by using command line only compile/link tools.

@Sergei:
Thanks I will look up Eclipse. Can you explain your statement?
"There are serious/core things which can't be debugged in an IDE. And/or rather they can't be debugged in a SW debugger, and thus in an IDE."

I am not looking to write device drivers or filesystem extensions. Nor am I writing for PDAs or Smartphone devices.

@SMeeze:
Going to look up GCJ. THX.
 
Old 04-10-2010, 07:29 PM   #8
MTK358
LQ 5k Club
 
Registered: Sep 2009
Posts: 6,443
Blog Entries: 3

Rep: Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723
Quote:
Originally Posted by jqpdev View Post
Why do you recommend not to use IDEs? What do I gain by using command line only compile/link tools.
Because they dumb down the things you should understand and hide what's really going on.
 
Old 04-10-2010, 07:32 PM   #9
MrCode
Member
 
Registered: Aug 2009
Location: Oregon, USA
Distribution: Arch
Posts: 864
Blog Entries: 31

Rep: Reputation: 148Reputation: 148
Quote:
What do I gain by using command line only compile/link tools.
It means that you're not "chained" to one particular development environment. By leaving the compiler and editor separate, you are then completely free to choose which editor/compiler combination you use. So one can use vi for editing, or gedit, or Kate, or even MS Notepad!

EDIT: MTK got to it before me. Still, he's right, IDEs do tend to dumb things down as well.
 
Old 04-10-2010, 07:37 PM   #10
MTK358
LQ 5k Club
 
Registered: Sep 2009
Posts: 6,443
Blog Entries: 3

Rep: Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723
I actually started programming using an IDE. I really wanted a command-line compiler, but that was when I used Windows, and you know how Windows makes advanced things really hard, not to confuse computer-illiterates who use their computer just for email. I never understood all this "make" stuff, these "libraries", and how to use multiple source files. I in fact quit programming because of this.

But when I first got Linux and found it has gcc in it, I instantly wrote a program in a text editor and ran gcc. It worked! FREEDOM! I could finally use and understand compilers! And it's all just a big learning experience form there...

In fact that was one of the main reasons I just installed Linux on my computer after a few days, erasing Windows!

Last edited by MTK358; 04-10-2010 at 07:40 PM.
 
Old 04-10-2010, 07:41 PM   #11
MrCode
Member
 
Registered: Aug 2009
Location: Oregon, USA
Distribution: Arch
Posts: 864
Blog Entries: 31

Rep: Reputation: 148Reputation: 148
I originally started with an IDE, too...can you guess what it was? I'll give you a hint: it's by Microsoft.

Quote:
I never understood all this "make" stuff, these "libraries", and how to use multiple source files.
Hell, I still don't quite fully understand how a Makefile works, and I really don't know how to properly use multiple source files in this way (I used to fully define functions in a header file — yuck! ).

Yes, I'm still quite the programming n00b. All I ever do now is silly little console programs, and the occasional Arudino AVR experiment (which I'm also still n00bish at).

At one time or another I worked with a 3D graphics engine API called Irrlicht, but that quickly hurt my head...I guess OOP isn't my forte,

Last edited by MrCode; 04-10-2010 at 07:44 PM.
 
Old 04-10-2010, 07:43 PM   #12
MTK358
LQ 5k Club
 
Registered: Sep 2009
Posts: 6,443
Blog Entries: 3

Rep: Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723
Quote:
Originally Posted by MrCode View Post
I really don't know how to properly use multiple source files
Code:
gcc source1.c source2.c source3.c -o myprogram
 
Old 04-10-2010, 07:47 PM   #13
MrCode
Member
 
Registered: Aug 2009
Location: Oregon, USA
Distribution: Arch
Posts: 864
Blog Entries: 31

Rep: Reputation: 148Reputation: 148
Quote:
Code:
gcc source1.c source2.c source3.c -o myprogram
O_o Really? That simple? I guess all a Makefile does then is run gcc/g++ in different source directories and combines the files this way...?
 
Old 04-10-2010, 07:52 PM   #14
MTK358
LQ 5k Club
 
Registered: Sep 2009
Posts: 6,443
Blog Entries: 3

Rep: Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723
Another way to do it (this is the way Make usually does it):

Code:
gcc -c source1.c
gcc -c source2.c
gcc -c source3.c
gcc source1.o source2.o source3.o -o myprogram
That way, you don't have to recompile all the sources, just the ones you changed.

Simply compile only the changed sources and relink. Let's say you compiled the above example and modified source2.c afterwards. make will detect that only source2.c is newer than source2.o, and it will run just these commands:

Code:
gcc -c source2.c
gcc source1.o source2.o source3.o -o myprogram
More info: http://www.eng.hawaii.edu/Tutor/Make/
 
1 members found this post helpful.
Old 04-10-2010, 08:03 PM   #15
MrCode
Member
 
Registered: Aug 2009
Location: Oregon, USA
Distribution: Arch
Posts: 864
Blog Entries: 31

Rep: Reputation: 148Reputation: 148
Thanks for the link MTK! Bookmarked for future reference
 
  


Reply



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
Newbie needs advice on which Linux to start with aijazlsiddiqui Linux - Distributions 4 01-06-2010 03:35 AM
Advice about Linux software lithops Linux - Software 9 08-15-2009 07:15 PM
Linux PC Desktop - Need Software Advice wfernley Linux - Software 13 02-05-2006 05:07 PM
I am totaly new to linux...Advice me from from where to start B.K.Chaitanya Linux - Newbie 0 10-03-2003 08:31 AM

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

All times are GMT -5. The time now is 01:18 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