Language Choices

Pages: 123
Sooooo hello again I'm deciding what languages to "Invest" my time and attention to. Given I can learn two languages, one of them is already C++, but im look at GC languages. C# or Java, now my school offers Java classes next year but I'd be fine learning C# too. What is your opinion on which one is better to know? (Or maybe some other useful language like lisp)
Last edited on
C++, Java, Python, and maybe Lisp when you're bored.

Personally I'm against C# - it's like C++ and Java got married, had a kid, divorced and put the kid up for adoption, and Microsoft adopted it and got it an overcomplicated .NET crib to raise it in. It's a cool language, but it's annoying for end users.

As a rule of thumb, learn the popular languages first, and learn the other ones when you're bored. If you only learn the popular languages and not the other ones, you're missing out, and it could even help to know the design patterns of other languages so you know more ways to solve the same problems.

More people have different opinions, as seen below:
Last edited on
It's a cool language, but it's annoying for end users.
How is it annoying?

Edit:
@Pickle Gunner
Learn both.
Last edited on
I'd suggest D as a very comfortable alternative to C++, but only as a hobby.

That's because it has yet to break the vicious cycle, of not being used because it's not popular.
IMO C# is much better than Java. My experience of learning Java has been "Why does Java do it like this? The way C# does it is so much better". I'm guessing it's because where Java is a failed attempt at "C++ done right" (where "right" is "with several important things removed because they're a bit difficult"), C# is Java done right. .Net is not "overcomplicated" at all, and before someone brings up the issue of cross-platformness, it's true that the CLR doesn't run on as many platforms as JVM, but with Mono, it runs on all the important ones. And before someone else asserts that Mono isn't as good, yes, it is. Good enough to have been used in commercial game engines (Unity3D and The Sims 3 come to mind) and other commercial software. Microsoft's .Net implementation is probably better on Windows, but for those platforms that .Net doesn't support, Mono/Xamarin is perfectly fine.
By annoying, I mean I hate having to install the exact version of .NET framework needed for run various applications written in C# I have downloaded over the years. I'm not kidding, I can't get newer versions of .NET to run older C# code :p
Last edited on
Oh, I've had that problem. Not sure why it is, but yeah, it's kind of annoying. I'm pretty sure that's happened with Java though. I've definitely had to install the JVM or JRE more than once.
Now for something completely different, learn smalltalk or prolog
I'm not looking for out there languages, I am good at BASIC but I was looking at uses for C# or Java for like a C++ other language mish-mosh program.
Like:
Input C++
(idk I heard java is better for more complex problems)
Java or C# takes input as an exe and returns the output for
C++ to display.

But, for a first language basic was great (I miss not having to put semi-colons so bad!)
Last edited on
Prolog is useful for things like AI and logic programming (hence the name). Smalltalk IIRC was the first OO language, or an early one at least. By the way, most languages can be linked with C/C++.

You should try Scheme or Haskell.

Pickle Gunner wrote:
Like:
Input C++
[...]
Java or C# takes input as an exe and returns the output for
C++ to display.
This makes little to no sense at all...
Pickle Gunner wrote:
But, for a first language basic was great
BASIC is a terrible first language to learn; it teaches horrible practices that scar your brain for life.
Pickle Gunner wrote:
I miss not having to put semi-colons so bad!
Python, my friend. No semicolons required ;)
BASIC is a terrible first language to learn; it teaches horrible practices that scar your brain for life.


The very first programming I ever did was in a high school video game development class. It used a dialect of BASIC called Dark BASIC (basically a wrapper for DirectX) to do all the programming. As much as I loved it and still vaguely miss it (no support for it anymore) I did pick up some sketchy practices. Luckily, it was only one semester in high school and the teacher did no teaching, so I didn't pick up TOO many bad things from it.
Dark BASIC


Finding Dark BASIC was my very first step towards programming. I'm kinda surprised to see anyone mention it
Have you considered looking at what sort of opportunities stem from each language and which is most applicable/interesting to you?
Not really, I was going for a all purpose language to be based in,
@LB I completely agree about the 'Brain Scar' However it was a nice language for concepts at least. (BASIC to C++ was most likely the worst time I ever had programming).

@Cheraphy I used dark basic, I though it was pretty much completely unknown.
DB seemed to have a reasonable following back in the days it that it was actually supported. Now it's hard to even find the SDK to download.
It's concepts that you need to learn, not languages. Just learn everything that does not look familiar. Try not to think too much about syntax and standard functions - you can always look those up. When you know several languages, you'll see that they are more similar than they look. You should then be a able to quickly pick up these similar languages if needed.

Also, +1 for Haskell.
Although it's a bit like drugs...
Last edited on
closed account (zb0S216C)
LB wrote:
"Personally I'm against C# - it's like C++ and Java got married, had a kid, divorced and put the kid up for adoption, and Microsoft adopted it and got it an overcomplicated .NET crib to raise it in. It's a cool language, but it's annoying for end users."

There's absolutely nothing wrong or annoying with C#. In fact, it's by far one of the most sophisticated programming languages to date -- not to mention the exceptional speed of the garbage collector! I personally find that its .NET dependency is amazing due to its ability to execute code on multiple platforms effortlessly. And the outstandingly optimised code which it generates is in itself a pioneering achievement.

Well done, Microsoft, for giving us the gem that is C#.

Wazzak
Last edited on
I think Framework just convinced me to finally go try out C#. I've been thinking about it for awhile.
The line
s => new string(s.Reverse().TakeWhile((c, i) => c == s[i]).ToArray());
convinced me to learn C#.. Except I haven't found the time yet.

(the line is from this SO thread: http://stackoverflow.com/questions/3792168/alternative-solutions-to-this-programming-problem-all-languages-welcome/3792186 )
Last edited on
Pages: 123