Other programming languages?

Pages: 12
Dear Guys,

I'm thinking about to learn another programming language which will be useful (this is very important), not just to spend the time with something. I only know C++ and haven't even started the university yet, but i know i don't want to be a webprogrammer, if it makes any sense. More like, i want to develope desktop applications or anything like that. Maybe Java or Perl? It would be good to hear about a professional opinion, which is the best for the future, you know..

Thank You,

Martin
Last edited on
I'm not a professional by any means (Considering I'm almost 16), but I know Java more than C++ and it seems like a good way to go. From what I've seen Perl is really ugly looking code. I don't know if its a hard language to learn but the syntax puts me off.
I can speak only from my own experience, which has never and probably never will involve any kind of web code. C++ and C have been my mainstay for the last decade, with objective-C turning up in the last few years (although interestingly not in any way involving Apple products; the team I joined has been using it since the days of NeXTSTEP). Bear this experience in mind, as it will colour my opinion. Also, I read Physics and Maths; I've never taken any course with the word "Computer" or "Programming" in the title, which again will colour my opinion (but hopefully provide a slightly different perspective to my many chums here who did take such courses).

Technically, everything I've worked on would be either a desktop application or embedded, but none of it was shrink-wrap software that Joe Public would go out and buy; it's all custom software, mostly in and around the defence industry.

I try to nudge every young coder that comes through the company towards some embedded work at some point; not just because embedded work really sharpens up your understanding of C and the additional difficulties of debugging and testing embedded hardware force people to stop cutting corners, but also because they seem to be in heavy demand and never have any trouble finding work (well-paid work, too). If you can do some embedded coding, please take that opportunity.

I anticipate never struggling to find work with a solid base in C and C derived languages; never had any trouble so far, even to the point that I've never actually bothered to find a new job before leaving the old one. I just take a few weeks and then hit the "help wanted" section.

which will be useful; this is tricky. If you learn LisP, for example, it will give you a whole different way to think about coding, and being able to think about solving the problem in a different way is a very useful skill (I'm sure we've all seen code that seems very odd, and then realised that it's essentially fortran/basic written in C; this is what happens when one can only think about how to solve a problem in a single way, with one's thinking directly constrained by the language learnt first). On the other hand, adverts for LiSP coders are few and far between.

I'll shut up now and let someone else have a go.
Last edited on
C++ was very nice and helpful some decades ago... today it is just an artefact - useful to write ones first computer programs or to rearrange old code that is still in use.

Compared with modern IDEs all these c++ IDEs are really not very useful...

If you want to experience how to develop with modern IDEs and languages go and get yourself a .NET IDE - Visual Studio Express 2005, 2008 or 2010, its all free! Download the C# version and go!

here u are:
http://www.chip.de/downloads/c1_downloads_auswahl_24082797.html?t=1296396860&v=3600&s=927366d06f8241525be9d2c129717aa3
Last edited on
cdoubleplus
today it is just an artefact
not again, don't pick up a war at here please
cdoubleplus... Please don't come with that... For example, few people may use assembler nowadays. Does that mean it's an artefact? No, it doesn't. There may be less cases in which people are going to use it than in the 1960's, but there are still situations in which you are going to want to write code in assembler. Same with C, C++ or any other language.

And uh... what does the IDE have to do with any of it? And IDE is a tool that can make your work easier. Nothing more. It has nothing to do with the language, and there are many good C++ IDE's out there. And Visual Studio Express also lets you write C++ programs...

http://langpop.com/
In terms of popularity, C# is far behind. Certainly, many programmers will write .NET exclusive applications, but saying C++ is obsolete nowadays is... well, a lie.

On topic:
Learning programming languages isn't too useful. Once you get two or three of them down, you'll have understood enough to grasp the most important aspects of new languages in like a week or so. It's much more important to learn math, physics, algorithm theories, the whole concepts of programming in general.
Last edited on
Perl is a very easy language to learn and use; It was my first language and I still use it when I don't care about speed. Perl is completely typeless, and does automatic conversions between numbers and strings whenever it needs to. Its syntax is similar to C, but adds many new operators, inbuilt regular expressions (which are so useful...), and list-processing functions. These features make simple programs that process data very short in Perl.
Learning programming languages isn't too useful
Kind of agree, if a programming languages which you learn can not inspired you a
new way of programming, maybe this language is not a good language to you

Java told me what is oop, C++ told me the power of generic programming

math, physics, algorithm theories
this would be very useful no matter what kind of programming language you pick up
and don't forget data structures
Last edited on
I definitely recommend learning a second programming language with C++, namely some sort of scripting language.

I recommend two, so you can take your pick.

Python is a very easy, quite flexible, and readable language. Google supports it along with Java and C++, and it has a huge standard library, and it supports several programming paradigms.

Perl is also a very nice language in that it's ridiculously powerful. It's an excellent language for data processing with built in regexes and whatnot. It may be a bit harder than Python to learn.

EDIT: Learning thousands of different programming languages... I agree, it's not to useful, which is why I forced myself to forget some of the various C++ variants and other languages I know knew. However, knowing two or three, each with a distinctly different purpose, is (IMHO) a very good idea. ;)

-Albatross
Last edited on
That's what I wanted to say, learning to use two, three or four of them might be a good idea. Cause you will likely work in teams later on, and you can't always force them to use your favorite programming language. But you won't really get too much additional insight when learning programming languages, that's why I say learning the theory makes more sense.
hanst99 wrote:
That's what I wanted to say, learning to use two, three or four of them might be a good idea

I'd say it's very important to know a few languages. Of course, it's important to learn particularly different languages. Someone who knows Java won't get too much from C#, for instance. But learning languages where things work differently is a real mind opening experience. It keeps you from being a Blub programmer ( http://www.paulgraham.com/avg.html ) and makes you a better programmer even when using the languages you already knew.
I'd say it's very important to know a few languages. Of course, it's important to learn particularly different languages. Someone who knows Java won't get too much from C#, for instance. But learning languages where things work differently is a real mind opening experience. It keeps you from being a Blub programmer ( http://www.paulgraham.com/avg.html ) and makes you a better programmer even when using the languages you already knew.


Thank You everybody for the useful answer, and especially you filipe to summarize the points. This article was also very useful for me. I've already got a Perl ebook, so this will be my second language if you don't mind. :)
Last edited on
hey the real thing is of course to learn math.

But if u come to that point where u ask: "which technique / which IDE - and as part of that IDE which language - shall I use?" I would strongly recommend to see if you can do the job with c# unless u have really good reasons for not trying that. such reasons could be
- you develop code for a microprocessor that simply doesn't work with c#,
- school class is developing in c++ or cobol or whatever,
- your chef is somehow oldfashioned and insists on c++ or cobol or just doesnt like c#,
- u just like to develop retro style
or whatever.

http://langpop.com/
what this page actually does is to look how often stuff related to c#, c++, c and so on are looked up - this only indicates the great difficulties developers have with the more "popular" languages.

anyway i do not say it makes no sense to use other things than c#, what i say that c# and its libraries is the most advanced programming technique today and using old stuff like cobol and the like may be fun or may be necessary here and there, but it just makes no sense to use them if u are not forced to by any good reason but if you just want to implement your thoughts with least effort of recources like time and nerves ;)

A particularly good reason not to use C# would be that it ties you to a particular operating system, unless you're happy with the current state of the Mono project. If you don't happen to be coding for Windows, C# is pretty useless to you.

what i say that c# and its libraries is the most advanced programming technique today


That statement just makes me giggle.
Last edited on
C# is a Java derivative that isn't even really cross platform (don't even get me started on Mono's failures), meaning you have no low-level control whatsoever. Java's unique cross-platform capabilities and huge standard library are the only real reasons I picked up the language.

Being a programer whose first language was C#, I think I can safely pass judgements about it. C++ is my main language for a reason. :)

-Albatross
cross-platform capabilities are overvalued - no one cares about it.
no one cares about [cross-platform capabilities].


Well, you're dead wrong then, because I do and I'm clearly somebody. So did the writers of Boost, Qt, SFML, and GCC. They cared about cross-platform capabilities of their products, and a good thing too; those libraries/tools are excellent.

1st calm warning. Sorry, but I'm pretty sure I know why you're here. :P

-Albatross
Last edited on
yeah - they are the best.
Can we play "guess the troll"?

I don't think this is Western/Spoonlicker. Doesn't fit with Spoonlickers pattern.


don't even get me started on Mono's failures


Be fair, you know...just wanted to make the world a better place... <sniff, wipe-away-tear :p >
Last edited on
Challenge accepted.

Seems to take the xorebxebx approach (although some question he was a troll), only with worse grammar and what not, which makes him look like Spoonlicker. Since those two don't blend, I bet he's new.

Now, back on topic.
Other programming languages? Programming languages are ways to express ideas (programs), you could of course go on and learn how to do one thing in a multitude of specific ways (different languages), but it's generally better to learn different approaches altogether (different paradigms).
That's why I put up a little list of my own that I plan on learning:
C++
Python
Lisp
ASM
...
All these take different approaches on solving a single problem, because they all differ a lot from each other. C++ being a general-purpose, medium-level multi-paradigm programming language. Python being a general-purpose, high-level multi-paradigm programming language. Lisp being a medium-level functional programming language. ASM being a low-level programming language.

Now, back off topic.
C# might indeed be used a lot. But is it is "the way to go"? No. No single programming language is the way to go in all scenarios (taking memory consumption, performance, compile speed and the easiness to use it into account). C# in fact doesn't seem to be too great by itself, it is - in my eyes - a failed attempt at making a C variant (because it heavily relies on .NET and thus becomes quite useless for embedded software, Linux/UNIX programming and a lot of other things I am too tired of on summing up).
Last edited on
Pages: 12