Page 1 of 3

Languages worth learning...?

Posted: Mon Sep 10, 2007 1:00 pm
by elderK
Hey folks,

I'm not sure why, but I'm on this odd... Objective kick at the moment.
And, I don't mean C++ or Java objectivey

I mean like, Objective-Cvy.
or, Smalltalky.

And, I was wondering, How many people program in a kind of... niche language?
Like D or Eiffel.

And, if possible, if anyone can recommend a nice and actually useful language for me to
learn?

C is getting a little boring.
~Z

Posted: Mon Sep 10, 2007 1:11 pm
by Zacariaz
i cant recoment any langs besides c++, but C and ASM is a MUST if you ask me. (i my self have great trouble with C)

Posted: Mon Sep 10, 2007 1:23 pm
by elderK
C is no big deal, it is simple, clear.
Minimal. Most of the time, it doesn't require jack to execute freestanding.

I want to learn something that is actually worth learning, something that I can use. Im just having a hard time finding anything seriously... awesomacious that I can see being useful.

I mean, Objective-C is cool, no doubt but... I dislike having to inherit everything from a core root class. :P What if I dont want to use the stock core root class? :P

Im pretty sure if you really wanted to, you could almost go down a 98% object-orientated route with C++, after all, it is a multi-paradigm language. Just because it can act just like C doesn't necessarily mean programs should be written in a Cish way. I guess?

Sorry, its 7am, I have class in about... 20 minutes.
Smokin' cigarettes, drinking coffee and feeding my kitten.
;) You know, the usual University drill.

Who knows, maybe im just burning out from code.
~Z

Posted: Mon Sep 10, 2007 1:26 pm
by Zacariaz
i dont dnow much about C# but it seems to me that is waht you are looking for, anyway gl.

Posted: Mon Sep 10, 2007 1:32 pm
by Alboin
As suggested to me previously, I would suggest Scala. It's quite interesting and unusual. Moreover, you can use Java libraries, so it's not as if you're being forced to use some libraries from '88. (*cough*Lisp*cough*)

My only complaint with all of these languages is their environment. I don't want to have to have 10mb of libraries to run my program. It should be freestanding. If someone came up with a scala-like language that produced executables the size of C, without any environment, I would switch to it, and never look back. So far, I've found nothing.

Posted: Mon Sep 10, 2007 4:31 pm
by JackScott
I've done little more than play around in Forth, but from what I have done, I quite like it.

I haven't used it for any projects, so I can't give it a thorough review. Just thought I'd throw it in there.

Posted: Tue Sep 11, 2007 2:59 am
by hailstorm
I suggest MODULA-2, a pascal-like language. Also developed by Mr. N. Wirth. A nice structured language, wherein keywords should be written in capitals. That can keep you busy for a while. :)

Posted: Tue Sep 11, 2007 5:07 am
by Solar
My line of thought is this: Within a family of languages, there are usually only variations on a common theme. From a career POV, it is of course helpful to know not only C++, but Java and Objective-C as well, but as a perspective, you have nailed the subject with the first language already.

That being said, if I had the time, I'd learn LISP. Not to actually write software in it, probably, but to widen my horizons; it is radically different from any of the classic mainstream languages.

Posted: Tue Sep 11, 2007 6:16 am
by Zekrazey1
Haskell is popular these days :P.

Posted: Tue Sep 11, 2007 6:19 am
by AndrewAPrice
Solar wrote:That being said, if I had the time, I'd learn LISP. Not to actually write software in it, probably, but to widen my horizons; it is radically different from any of the classic mainstream languages.
I've taken up Common Lisp. VERY different.

If your interesting in something (another programming language or just anything like SystemC or PL) and can't find any good tutorials then try Wikibooks. You're sure to find tutorials starting from setting up your basic environment to beginner/intermediate tutorials.

Posted: Tue Sep 11, 2007 6:55 am
by AndrewAPrice
About Common Lisp:

It's really cool how you functions are basically just commands stringed together. It's like this in every language but Lisp makes it so much more elegant. Like running your entire program just by calling (MyFunction) in the interpreter and imagining the computer translating this into hundreds of thousands of commands all stringed together within those parenthesis.

Anyway, if I have

(defun someFunction () .......)
(defune anotherFunction () ......)

how do I call anotherFunction from someFunction and vise-versa? I haven't found the Lisp equivalents of prototypes yet.

Posted: Wed Sep 12, 2007 2:03 am
by Smilediver
I'd recommend C#. It's really very nice language, and I think it will replace C(++) and Java someday (I hope so :-) ). Also I think it's good to have a look at lisp family, because learning it will make you think a bit different (or not ;-) ). You can also try to check out Python. I had some experience with it, but somehow I feel that hype surrounding it is a bit over the top...

Posted: Wed Sep 12, 2007 2:16 am
by AJ
Trinka wrote:I'd recommend C#... I think it will replace C(++) and Java someday ...
I think that's quite a bold statement - I can certainly see that C# has its place (I use it quite a bit, but not for OS dev) but really hope it never replaces C or C++. All three have merits for different tasks.

Cheers,
Adam

Posted: Wed Sep 12, 2007 2:26 am
by Solar
Virtually every "new" language starts out with the claim that it will "replace" the other ones over time. The demise of C++ was already heralded when Java came up, yet C++ is still around, and for a reason.

What this usually leads to is that the new language rides the hype, gets used in areas where it simply isn't the best choice available, and gets some dents in its shiny hull as a result.

In my theory the number of people programming in a given language is more or less constant. The fact that new languages tend to get such a big market share is because ever more people do program at all.

This usually means you'll find the worst (inexperienced, overexited) programmers in the communities of the latest programming languages...

Posted: Wed Sep 12, 2007 8:52 am
by Smilediver
I really don't want to get into language war, but I'll just state some opinions of mine.
AJ wrote: I think that's quite a bold statement - I can certainly see that C# has its place (I use it quite a bit, but not for OS dev) but really hope it never replaces C or C++. All three have merits for different tasks.
Well, as I said it's IMHO. And it wasn't an assertion that it will replace C(++) completely. C(++) will stay around for tasks where you actualy need more low level stuff. I would add raw speed to this, but as CPUs advances, it's becoming a small concern.

I come mainly from C(++) background, but recently I've been using C# a lot. From my experience C# is way more better for most of the tasks you need to do. It has all the best features from C(++), Java and other languages, there's also a lot of usefull additional features, it dropped all the bad things that C(++) had, etc. I think it's a hudge step forward and a perfect language for mainstream development. I really can't see any reasons you'd want to stick with C(++) after trying C# (apart if you need to chose it, because of some other constraints, rather than the choise based on language features).
Virtually every "new" language starts out with the claim that it will "replace" the other ones over time. The demise of C++ was already heralded when Java came up, yet C++ is still around, and for a reason.
True, true... you never know. But I think C# is way in a different boat than Java. I see it as a C(++) successor, it's backed by a powerfull .Net technology, and it's Microsoft that is behind everything. And as we know, it knows how to push the stuff to the public. :-)