Language Choices

Pages: 123
time to learn this C# – Cubbi Sep 25 '10 at 3:23

Ha, ha! I'm in a similar situation with J.
All I've done so far was install it, and now it just sits there. Oh well. Someday...

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!


Most sophisticated? Oh really? IMHO it is a kitchen sink language. Too many features, lots of syntax sugar features, taken from various other languages (including Pascal), yet nothing original. C# is a nice "Java by Microsoft" with some small improvements.

What makes a good language is having a minimal set of really powerful features, like C++ templates, Scala implicits or LISP macros. This is what makes those languages sophisticated, not that you can declare accessor methods with a shortened syntax.

As for the runtime and GC, Java has much more sophisticated and faster GCs, and not just single one. And configurability of .NET's GC is almost non-existent.
Last edited on
closed account (zb0S216C)
@rapidcoder: I was being sarcastic; I hate every aspect of it.

Wazzak
@rapidcoder: I was being sarcastic; I hate every aspect of it.


I think Framework just convinced me to finally go try out C#. I've been thinking about it for awhile.

OOOooowwwwwwww!! HA HA HA HA!
I'd like to put in my 2 cents,

PYTHON!

My favorite feature of the language are lists, sets, and tuples, which are built into the language, and its an interpreted language but it can be compiled to an EXE.
Last edited on
Wazzak wrote:
@rapidcoder: I was being sarcastic; I hate every aspect of it.
It was certainy not clear to me, I was beginning to actually doubt my doubts about C#. It's certainly a nifty language but it's still MS and it's still a language that requires you to install software to run it. I actually read a tutorial on it before I made the connction between it and the .NET framework - haha, framework.
L B wrote:
[C#] requires you to install software to run it

... so does every language... Unless you mean run it when it's already compiled, in which case let met change that to "so does every language that doesn't compile to native code" (ignoring the fact that Python and Perl typically come pre-installed on Linux).
Yes, while I enjoy the luxury of many languages, I tend to avoid using the ones that require you to install software to run programs written in them.
Oh well, at least you can still run programs written in Haskell. That's the most important thing.

Here's an example of why Haskell is the best:
1
2
3
Prelude> let 2 + 2 = 5
Prelude> 2 + 2
5
Last edited on
LOL, For extremely large values of 2 I assume?
Unless you mean run it when it's already compiled, in which case let met change that to "so does every language that doesn't compile to native code"


Every language that *does* compile to native, requires installing software too. First and foremost, you need an appropriate OS able to run the given binary format. Second, you often need appropriate prerequisite service packs / dependency libraries installed. In case of C++ these could be gcc or VS runtime libraries. Even if you link them statically, your binary still may require some specific version of system APIs (e.g. for graphics, sound), etc. Many native programs have problems running even on a single platform. So these are actually the same or even worse problems than having to install appropriate version of .NET or JVM.
closed account (ETAkoG1T)
What is C# used for? I wanted to learn c++ because I figured that was the most used for games :) I have fell in love with c++'s strictness, even though it feels a bit annoying at times...
@L B
Heh.

What it's doing is redefining the + operator. Haskell uses prefix notation internally, but it can convert from infix notation in the source code. It also has pattern matching, which allows you to do things like this:
1
2
3
fib 0 = 0
fib 1 = 1
fib n = fib (n - 1) + fib (n - 2)

So what that code is really doing is adding a pattern for the plus operator:
+ 2 2 = 5

You can also do this:
let x / 0 = 1
which can be applied to all values of x.
I feel obliged to point a much cooler way to find Fibonacci numbers (of which, I'm sure Chris is fully aware):
fib = 1 : 1 : zipWith (+) fib (tail fib)
If you name that function fib' then you can define the function fib n = take n fib' to get the first n Fibonacci numbers, or fib n = last (take n fib') to get the nth one.
closed account (zb0S216C)
@Filiprei: C# isn't used for anything specific. However, it seems to be the language of choice when developing Windows GUI applications; anything beyond that, it fails miserably (that's my opinion). I would say it's better to stick with C/C++.

Wazzak
anything beyond that, it fails miserably (that's my opinion).
What are you basing this "opinion" on? C# is a general purpose language like C++, you can program GUI or not and with mono your not limited to Windows. C# can do many things that would be extremely difficult in c++ for example creating and/or consuming web services. I think your bias toward extreme efficiency is blinding you to the usefulness of other languages.
closed account (zb0S216C)
@naraku9333: I'd take efficiency over usability any day; other's' may differ.

Wazzak
Hmm, ax or chainsaw? Which is more efficient?
You can fine tune every single chop with the ax! Tempting huh?
closed account (o1vk4iN6)
Lol what could you possible need to do that requires fine tuning with an axe ? Just saying but chainsaw gets you a cleaner straight cut, which has more practicality then whatever you can do with an axe. Just so you know, if you've never cut a tree down with an axe before, you chop at it in angles, it truly is a messy process and requires almost no fine tuning. Saw city workers take down a tree and put it through a wood chipper within minutes. Good luck with that axe.

Also ice sculptures anyone ? Let's see you do that with an axe.

@Framework

I agree and I normally take efficiency over anything else as well, but at some point you have to draw a line. Should I never finish this project for the sake of efficiency (assuming you program in assembly) ? I'd rather not program in assembly but the closer I am to it the more I feel at home.
Last edited on
Pages: 123