Programming Forums
User Name Password Register
 

RSS Feed
FORUM INDEX | TODAY'S POSTS | UNANSWERED THREADS | ADVANCED SEARCH

Reply
 
Thread Tools Display Modes
Old Mar 29th, 2007, 11:34 AM   #1
Druid
Programmer
 
Join Date: Mar 2006
Posts: 40
Rep Power: 0 Druid is on a distinguished road
Should I bother learning new languages?

I have a question...

Which languages should I focus on the most?

I have knowledge of C, C++, C#, Java, Unix scripting, VB, Perl, and PHP. I have interests in Ruby and Python. I would like too know more languages but I feel as though my skill level in my current languages would start slacking if I do so.

I used to write code at home, all of the time... back when I didn't do it all day for work also. I mainly use C,C++, C# and unix scripting... with a bit of PHP,CSS for my website.

Should I stick with these languages and forget about learning new ones? Or should I learn new languages, if so which?

I have noticed that a lot of people are preaching Java and Python... I've also been told that Python is a "starter" language.

My interests involve client/server, network, database and web application programming and my formal education consists of mostly C and C++.
Druid is offline   Reply With Quote
Old Mar 29th, 2007, 12:07 PM   #2
DaWei
Resident Grouch
 
DaWei's Avatar
 
Join Date: Jun 2005
Posts: 6,453
Rep Power: 10 DaWei is on a distinguished road
One presumes you have learned to solve problems. If that doesn't get rusty, syntactical rust won't matter much. A paradigm shift (to a functional language, say) will probably take more effort than a syntax shift within a given paradigm.
__________________
Abstraction doesn't make it impossible to write bad code; it makes it possible to write superior code.
Contributor's Corner: Grumpy on C++ Exceptions DaWei on Pointers
DaWei is offline   Reply With Quote
Old Mar 29th, 2007, 1:59 PM   #3
Timmy
Unverified User
 
Join Date: Jan 2007
Posts: 8
Rep Power: 0 Timmy is on a distinguished road
It will not harm you learning yet another language but unless you have a need to do so then your efforts are better spent elsewhere. There are some excpetions to this, such as learning a functional or declarative language. I have learned a few languages but I find that if I dont read code in them for a while I tend to forget some of the details.

If you have interests in client/sever programming then learn how TCP/IP works and try to design and implement some software. By learning a technolgy such as TCP/IP in depth will broaden the sorts of projects you can do and will be far more interesting.

I think the key thing to remember is languages come and go but the general concepts stay the same. So by learning about databases or networks in depth will be a more valuable skill for the future as you can apply it to most langauges.
Timmy is offline   Reply With Quote
Old Mar 29th, 2007, 5:54 PM   #4
mackenga
Professional Programmer
 
Join Date: Mar 2005
Location: Glasgow, Scotland
Posts: 317
Rep Power: 4 mackenga is on a distinguished road
I'll second what Timmy said about learning a new technique or technology rather than a new language (after all we could all be learning more languages for the rest of our lives). You already seem to be comfortable with a really useful set of languages and the law of diminishing returns applies here.

Got to say, as well - Python isn't a 'beginner' language! I don't program in it myself but have skimmed some of the literature. It's got a nice, clean syntax and is expressive and high-level but while some languages are better for beginners than others, their usefulness in other contexts has more to do with the flexibility of the language and the available libraries (essentially, what's possible, and how easy the things that are possible are to actually achieve in practice). Like I say, I don't know Python that well but I'd certainly say that while it does look to me like a language that would be quite easy to pick up as a first one, it's certainly scoring well in terms of general usefulness too.

Think of it as a nice, portable, modern language that fits the same sort of niche as Tcl or VB - strapping together other things to throw together applications fast.

Oh, and I'll also second what Timmy said about databases: the most significant difference between the software I used to hack together for fun in my free time and the software I write now as a 'professional' developer is the level of involvement of relational databases.
__________________
"I'm not a genius. Why do I have to suffer?"

Last edited by mackenga; Mar 29th, 2007 at 5:57 PM. Reason: Insufficient rambling in initial post
mackenga is offline   Reply With Quote
Old Mar 29th, 2007, 7:06 PM   #5
Arevos
Programming Guru
 
Arevos's Avatar
 
Join Date: Aug 2005
Location: England
Posts: 1,499
Rep Power: 5 Arevos is on a distinguished road
Quote:
Originally Posted by Druid View Post
I have knowledge of C, C++, C#, Java, Unix scripting, VB, Perl, and PHP. I have interests in Ruby and Python. I would like too know more languages but I feel as though my skill level in my current languages would start slacking if I do so.
In my experience, the opposite is true. Programming languages are essentially a way to express a set of abstract concepts that can be interpreted by a computer. The more languages you learn, the more often you are exposed to these concepts, and the better understanding you gain of them.

Language syntax is fairly superficial. For example:
foreach (int x in numbers) { ... }

for (int x : numbers) { ... }

for x in numbers: ...

foreach $x (@numbers) { ... }

for x in numbers: ... end

foreach ($numbers as $x) { ... }
Even if you happen to forget exactly how a for-loop works in, say, PHP, it's not going to take 30 seconds to look the answer up, and the number of keywords in a language is usually relatively few.

Quote:
Originally Posted by Druid View Post
I have noticed that a lot of people are preaching Java and Python... I've also been told that Python is a "starter" language.
Python has less of a learning curve than Java, in that it tends to introduce concepts to the beginner incrementally. For instance, in Python:
print "Hello World"
And in Java:
class HelloWorld {
    public static void main(string[] args) {
        System.out.println("Hello World");
    }
}
The Python program has a string and the print statement. The Java program has classes, methods definitions, types, qualifiers, arrays, blocks, strings, objects, method calls, end of line statements, namespaces, return values, command line arguments, class permissions... did I leave anything out?

Java is not necessarily more complex than Python, but whilst Java introduces everything at once, Python takes it slower. This is why some people consider Python a good beginner's language.

However, once you get into Python, it's actually rather more powerful than one might assume. It has a good number of advanced features that Java lacks. Indeed, whilst Java may look like a rather complex language, in actuality it's a very simplistic and, some might say, restrictively basic language. Python starts off simple, but quickly outpaces Java with relatively exotic concepts like metaclasses, higher level functions and mutable objects.

Ruby too is much the same. It's somewhat slower than Python, but arguably supports a larger set of features. At times it can be a little messy, like Perl, but whilst I tend to prefer Python overall, Ruby's class model is rather nice.
Arevos is offline   Reply With Quote
Old Mar 29th, 2007, 9:55 PM   #6
Jessehk
The Oblivious One
 
Jessehk's Avatar
 
Join Date: May 2005
Location: Ontario, Canada
Posts: 644
Rep Power: 4 Jessehk is on a distinguished road
Quote:
Originally Posted by Arevos View Post
Ruby too is much the same. It's somewhat slower than Python, but arguably supports a larger set of features. At times it can be a little messy, like Perl, but whilst I tend to prefer Python overall, Ruby's class model is rather nice.
Actually, with the new VM, Ruby's speed is greatly improving. I'd agree with you otherwise though.

And for what it's worth:

numbers.each { |x| ... }

__________________
Dr. Zoidberg: [ecstatic] I'm going to a movie... with FRIENDS!
Jessehk is offline   Reply With Quote
Old Mar 30th, 2007, 3:50 AM   #7
Arevos
Programming Guru
 
Arevos's Avatar
 
Join Date: Aug 2005
Location: England
Posts: 1,499
Rep Power: 5 Arevos is on a distinguished road
I already had Ruby in my for-loop list, Jessehk

I also deliberately left out languages that used higher level functions for iterating over a list, as IMO that's another topic altogether.
Arevos is offline   Reply With Quote
Reply

Bookmarks

« Previous Thread in Forum | Next Thread in Forum »

Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

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
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Functional Programming Languages ZenOswyn Coder's Corner Lounge 7 Dec 3rd, 2006 3:05 PM
More languages? UnKnown X Coder's Corner Lounge 27 Dec 18th, 2005 3:06 PM
how many types of languages are there? linuxpimp20 Other Programming Languages 1 Sep 7th, 2005 4:53 PM




DaniWeb IT Discussion Community
All times are GMT -5. The time now is 2:55 AM.

Powered by vBulletin® Version 3.7.0, Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Copyright ©2007 DaniWeb® LLC