Looking to start doing software dev. on Linux... need advice
ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
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?
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.
@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.
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.
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!
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,
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:
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.