Programming Languages Debated

Moderator
Posts: 3,577
Joined: 2003.06
Post: #1
Dan Potter Wrote:Then there is VS.NET. VS.NET is a pretty serious development tool...
...for Windows. Yuck! You knew that was coming Wink

Anyway, having paid for Metrowerk's IDE in the past, and been dealt their heavy-handed upgrade pricing later on, I can say that I'm not sorry to see them leave. I think their engineers are second to none, but their management is at best the last.
Quote this message in a reply
DavidJJ
Unregistered
 
Post: #2
funkboy Wrote:Overall, I'm fairly impressed with the .Net framework.

Ugh, shudders. Except I develop websites for a living and .NET will not write code that validates to XHTML strict, which is one of the only methods to make IE use the correct rendering engine to display CSS pages properly. You wouldn't believe the issues we have between the developers at the backend and the designers at the front. We create perfect cross-platform HTML/XHTML/CSS websites only to see them break when the .NET folks get involved. To me, .aspx = blech. Huh
Quote this message in a reply
Moderator
Posts: 592
Joined: 2002.12
Post: #3
You just have to remember the sad fact with the .Net stuff:

It pays a lot more per hour than Mac development does.
Quote this message in a reply
Moderator
Posts: 384
Joined: 2002.08
Post: #4
DavidJJ Wrote:Ugh, shudders. Except I develop websites for a living and .NET will not write code that validates to XHTML strict, which is one of the only methods to make IE use the correct rendering engine to display CSS pages properly. You wouldn't believe the issues we have between the developers at the backend and the designers at the front. We create perfect cross-platform HTML/XHTML/CSS websites only to see them break when the .NET folks get involved. To me, .aspx = blech. Huh

To me, .Net is mostly C# stuff, and not a whole lot of ASP. I let other people take care of the ASP.

KB Productions, Car Care for iPhone/iPod Touch
@karlbecker_com
All too often, art is simply the loss of practicality.
Quote this message in a reply
Member
Posts: 567
Joined: 2004.07
Post: #5
C# sucks. There's a reason it's only on DOS.

It's not magic, it's Ruby.
Quote this message in a reply
Moderator
Posts: 522
Joined: 2002.04
Post: #6
Nayr Wrote:C# sucks. There's a reason it's only on DOS.

Are you trolling? Serious and ignorant? Joking?

Huh
Quote this message in a reply
Moderator
Posts: 384
Joined: 2002.08
Post: #7
Nayr Wrote:C# sucks. There's a reason it's only on DOS.

???

Visual Studio .Net is the development tool for Windows, and C# is one of the languages. C# is what many (dare I say most) future Windows applications will be written in... and also many Web Services and, as mentioned earlier, web pages by way of asp.net code-behind pages.

I am as fanatic a Mac evangelist as the next guy, but have you tried C#? I enjoy it.

KB Productions, Car Care for iPhone/iPod Touch
@karlbecker_com
All too often, art is simply the loss of practicality.
Quote this message in a reply
Luminary
Posts: 5,143
Joined: 2002.04
Post: #8
WTF, Ryan?

a) C# is available for Windows either via .NET or Mono, and for Linux and Mac OS X via Mono.
b) C# is a very nice language, substantially better than C++ or Java. I'm still undecided on C# vs. ObjC, each would seem to have their own benefits.
Quote this message in a reply
Moderator
Posts: 3,577
Joined: 2003.06
Post: #9
I do not know diddly-squat about C# but I've been seeing rumblings here and there about how much people like it, which has piqued my curiosity. Googling for it turns up massive results. I haven't the foggiest idea where to start, especially for Mac implementations. I only have a passing interest in it at this point, but does anybody have a favorite site to get some more info on it?
Quote this message in a reply
Luminary
Posts: 5,143
Joined: 2002.04
Post: #10
http://go-mono.com/

There you can download the Mac package, which includes the compiler, runtime, and some simple examples. It also links to a bunch of other places with more info.
Quote this message in a reply
Moderator
Posts: 3,577
Joined: 2003.06
Post: #11
Perfect! Thank you.
Quote this message in a reply
Moderator
Posts: 384
Joined: 2002.08
Post: #12
AnotherJake Wrote:I do not know diddly-squat about C# but I've been seeing rumblings here and there about how much people like it, which has piqued my curiosity.

I think most people are more impressed with the Visual Studio .Net development environment rather than simply C#. The VS.Net environment has all sorts of very useful shortcuts and debugging, as mentioned earlier.

KB Productions, Car Care for iPhone/iPod Touch
@karlbecker_com
All too often, art is simply the loss of practicality.
Quote this message in a reply
Member
Posts: 198
Joined: 2005.01
Post: #13
OneSadCookie Wrote:b) C# is a very nice language, substantially better than C++ or Java. I'm still undecided on C# vs. ObjC, each would seem to have their own benefits.

We argue this one at work quite a bit. I don't think C# is better than C++, just fills a different niche. C++ is the mega-language that includes pretty much every language feature (if only by clumsy extension) and isn't a total master of any of them. C# is missing many features I consider extremely useful vs C++, like templates for metaprogramming (check out Boost some time... there's some *crazy* stuff in there). Templates in C++ are actually turing-complete and you can write programs that run in the compiler itself, e.g. printing all the prime numbers up to N as warning messages. Smile RAII is also something that seems to be absent in pretty much every language except C++, and I find it to be pretty amazingly useful. C# is starting to go there with "using" but it's still not as nice and general.

I don't want to start a language war though, and I'm sure you know about all this stuff already. Wink Just in case anyone else doesn't know much about these things.

Link to the prime number computer thing:

http://photon.poly.edu/~hbr/cs903-F00/li.../meta.html

Cryptic Allusion Games / Cryptic Allusion, LLC
http://www.cagames.com/
Quote this message in a reply
Moderator
Posts: 3,577
Joined: 2003.06
Post: #14
Dan Potter Wrote:RAII is also something that seems to be absent in pretty much every language except C++, and I find it to be pretty amazingly useful.

It *sounds* freakin' awesome, but please explain RAII further. I googled for it shortly and came up with gibberish on all the sites I visited. I only have so much patience to read CS ramblings, but I got the impression that RAII is some magical force that makes reserved memory automatically become un-reserved when it isn't needed anymore. This is apparently accomplished by the mere use of the RAII paradigm, which gives the CPU the power of E.S.P to know when a resource isn't needed anymore. Maybe I hit all the wrong links but whatever I scanned through only espoused the *idea* of RAII, and I was unable to discover the actual *mechanism* which makes it work.
Quote this message in a reply
Luminary
Posts: 5,143
Joined: 2002.04
Post: #15
RAAI/RAII "Resource Acquisition as/is Initialization" is the idea that when an object is initialized it acquires resources, and when it is destroyed it releases those resources. That much is consistent across pretty much all designs in pretty much all object-oriented languages. What C++ takes further is automatic destruction of stack-allocated objects when they leave scope.

A quick example, in C, you've probably written code like this:

Code:
void foo()
{
    // stuff
    glPushMatrix();
    // some GL calls
    glPopMatrix();
    // things
}

the push and pop have to be a matched pair, but as "some GL calls" gets longer, it gets hard to see that they're balanced, and very bad things happen if they're not. In addition, if you throw an exception out of "some GL calls", the PopMatrix will be missed, leaving GL in an invalid state.

With RAAI, you get something like this:

Code:
class MatrixPusher
{
public:
    MatrixPusher() { glPushMatrix(); }
    ~MatrixPusher() { glPopMatrix(); }
};

void foo()
{
    // stuff
    {
        MatrixPusher matrixPusher;
        // some GL calls
    }
    // things
}

Due to C++'s scoping and construction/destruction rules, PushMatrix and PopMatrix are called at exactly the same times as they used to be. Now though, you can't forget the PopMatrix, and even if you throw an exception out of "some GL calls", the PopMatrix will still happen.

The same applies to any concept which has to happen in balanced pairs -- fopen/fclose, new/delete being common ones Smile
Quote this message in a reply
Post Reply