LinuxQuestions.org
Download your favorite Linux distribution at LQ ISO.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - General
User Name
Password
Linux - General This Linux forum is for general Linux questions and discussion.
If it is Linux Related and doesn't seem to fit in any other forum then this is the place.

Notices


Reply
  Search this Thread
Old 12-20-2007, 11:22 AM   #1
falcon56215
Member
 
Registered: Jan 2002
Location: Tennessee
Distribution: Xubuntu Natty on Lenovo R61i Thinkpad
Posts: 108

Rep: Reputation: 16
Best Programming Language for an Old Programmer


I have a couple of questions I am hoping someone can help me with. I just purchased the book "Foundations of GTK+ Development" because I was wanting to learn more about developing apps for Linux. I just turned 35 this year, and I have work with computers since I was in 3rd grade. Most of my programming was done in Atari Basic with a little bit of Machine Language code. I also just completed two university classes, one on Intro to C++, the other on Visual Basic. I guess I come from a procedural programming background, so I found the object oriented C++ very hard to get my head around. I really like XFCE and the GTK environment, so my question is this: What language should I learn? A lot of people say learn C, but then some say C is on the way out and C++ would be a better choice. What will work better with Linux and coding for applications? I have also heard python is a very good language.

I also have looked at some of the IDEs for GTK+ and anjuta seems to be popular, but I can't find a lot of documentation on it. I wish I could find an all inclusive guide for GTK development that starts with the basics and not only shows you the code but really breaks it down without assuming you know what you are doing.

Another question I have is how do you balance all this with a family life? I am married with three young boys, but I find if I usually embark on something like learning a new language, that gets the majority of my attention and my family seems to suffer. How do you strike a balance?

I also look at the bio of the author of the book, Andrw Krause, and the guy is right out of high school and seems to know more than I will probably learn the rest of my life. That seems discouraging to me. How do you keep up or know what to study when it seems like a new programming language is coming out every month?

Any insights and encouragement would be greatly appeciated.

Last edited by falcon56215; 12-20-2007 at 12:33 PM.
 
Old 12-20-2007, 01:15 PM   #2
jailbait
LQ Guru
 
Registered: Feb 2003
Location: Mineral, Virginia
Distribution: Debian 8
Posts: 7,877

Rep: Reputation: 318Reputation: 318Reputation: 318Reputation: 318
Quote:
Originally Posted by falcon56215 View Post
I have a couple of questions I am hoping someone can help me with. I just purchased the book "Foundations of GTK+ Development" because I was wanting to learn more about developing apps for Linux. I just turned 35 this year, and I have work with computers since I was in 3rd grade. Most of my programming was done in Atari Basic with a little bit of Machine Language code. I also just completed two university classes, one on Intro to C++, the other on Visual Basic. I guess I come from a procedural programming background, so I found the object oriented C++ very hard to get my head around. I really like XFCE and the GTK environment, so my question is this: What language should I learn? A lot of people say learn C, but then some say C is on the way out and C++ would be a better choice. What will work better with Linux and coding for applications? I have also heard python is a very good language.
I think that if you are a one man project team that C is the better choice. What I see as the extra complexity of C++ does not provide any benefits to somebody working alone. I think that a project team consisting of several members is better off using C++. One way or the other somebody on the team is going to have to coordinate the efforts of the team. Designing object oriented code is a far better way to insure modularity and to keep everybody working to the same design goals than committee meetings.

Quote:
Originally Posted by falcon56215 View Post
How do you keep up or know what to study when it seems like a new programming language is coming out every month?
You start out with a project in mind and then study what you need to know in order to do the project.

---------------------
Steve Stites
 
Old 12-20-2007, 01:25 PM   #3
AndrewKrause
LQ Newbie
 
Registered: Jun 2007
Location: State College, PA
Distribution: Ubuntu & Fedora
Posts: 5

Rep: Reputation: 0
Hello. Before I begin, this is Andrew Krause, author of you aforementioned book. I'll try and tackle your questions one at a time.

First, you should choose a language based upon what you want to do. If you want to develop applications for Linux on GNOME with GTK+, then C is the logical choice. There are wrappers of GTK+ for other languages such as C++, Java, C#, Python, PHP and others, but most GTK+ development uses C.

My book assumes that you already know how to program in C, because it would start becoming huge if I had to cover all prerequisites (see the Introduction for a list of things that you should know before reading the book). There is an excellent online tutorial for the C programming language here: http://www.cs.cf.ac.uk/Dave/C/. Reading up to the "Dynamic Memory Allocation and Dynamic Structures" section of this tutorial should be enough to get you started with C programming on Linux. (There are other topics such as pipes and threads that you should learn, but these are not necessary to understand the vast number of examples in the book.) Also, Anjuta is a fine IDE to use for GTK+.

I can't really give any advice about balancing things with family, but I did have to balance college classes and writing a book. Really, it's all about creating a consistent schedule that works for both loves (in your case, programming and family, lol).

I'm not quite just out of high school, I'm almost done with college, but don't be discouraged. What you have to understand is that I have focused on this type of development for a number of years. New programming languages come out all of the time, but you shouldn't be distracted by this. It seems more prudent to get an understanding of widely used languages such as C and C++ before you jump on the latest band wagons. By doing this, you will be able to see which are actually viable.

I hope this answered all of your questions ...
 
Old 12-20-2007, 01:26 PM   #4
rickh
Senior Member
 
Registered: May 2004
Location: Albuquerque, NM USA
Distribution: Debian-Lenny/Sid 32/64 Desktop: Generic AMD64-EVGA 680i Laptop: Generic Intel SIS-AC97
Posts: 4,250

Rep: Reputation: 62
I'm also an "old" programmer (60+), so kids aren't an issue, although "wife" certainly is. My programming experience is in COBOL, Basic, ADABAS Natural, and SQL. I also found Object oriented code too much of an effort for what is now primarily a hobby rather than a lifeline.

I have fallen in love with PERL. Seems to accomplish what I need using some aspects of the Object oriented coding style while leaving the program flow in a form I can understand by reading it.
 
Old 12-20-2007, 02:20 PM   #5
falcon56215
Member
 
Registered: Jan 2002
Location: Tennessee
Distribution: Xubuntu Natty on Lenovo R61i Thinkpad
Posts: 108

Original Poster
Rep: Reputation: 16
Thanks everyone for the great advice. I think I will start with Andrew's C primer, that seems the way to go for me. The only reason I took Visual Basic is that it was required for my major. I am definatly not looking to make a career out of programming, but rather do it as a hobby- the C++ class I took made up my mind on that one. But I do remember at one time the excitement of coding a program and actually getting the computer to do what I wanted (BASIC+ML). It just seems languages are much more complicated now, however I think a procedural language such as C I should be able to pick up. Thanks again for the input and I hope everyone has a great holiday.
 
Old 12-22-2007, 01:40 PM   #6
Su-Shee
Member
 
Registered: Sep 2007
Location: Berlin
Distribution: Slackware
Posts: 509

Rep: Reputation: 41
Well, I'm 39 AND from the humanities department and managed programming languages.

Andrew's book is indeed a nice and helpful one and as GTK is certainly not overdocumented, you've got the right stuff to start with.

If you don't like C, choose more or less anything you like - I do my GTK stuff usally with Perl and the book still helps as most GTK-APIs simply follow one way or another the original C version in let's say naming conventions, for example.

And in a way, it really doesn't matter which programming language you actually take first, because it's more about learning how to program.

I started with Perl (at this time, it was the only language coming with a book NOT written for computer scientists) and still like it most, I know my share of C (badly, but I manage), I know some Lisp, which I really like either, some JavaScript and Python and it got more and more easy with every language. I'll never become a witch in pointer artistics and memory juggling, but I can program every tool I want by myself and that's a nice-to-have skill.

And GTK specifically is also about learning the concept of GUI programming which is a learning task in itself.

And balancing tech time with whatever passion comes second - well, even with just an hour a day, I get some code done.

Its really not much more complicated than learning a foreign language and taking the time to manage that.

(And WTH's got age to do with anything new to learn?!)
 
  


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 On
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
C programming - getchar() and clearing the stdin (new programmer) crm Programming 4 08-10-2006 01:54 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - General

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