• Programming languages

    From Nightfox@DIGDIST/BATTLEST/FREEWAY to art on Tue May 24 23:07:00 2011
    Re: Re: BBSs on DeveloperNet
    By: art to Jon Justvig on Tue May 24 2011 07:44:42

    The other "big thing" for me is that C# takes care of memory management... b advantage in my opinion. Call me a futurist, but manual garbage collection belongs... well... in the garbage!

    I'm not sure if I'm a masochist about some things, but sometimes I like the manual memory management.. It feels similar to driving a car with a manual vs. an automatic transmission - The automatic is nice, but sometimes I like having full control. There are times when I appreciate that C++ puts the memory management up to me - I get to decide when and where memory is allocated and de-allocated. I also like knowing that memory is always released when objects are de-allocated, rather than just happening whenever, or only when available memory starts to get low. I guess another reason is that I'm a bit of a gearhead sometimes and like to know how things work, and I better understand how things work when I'm able to do some of the low-level stuff myself. :)

    Personally, I think C# is easier to learn than C++. It is higher level, so i you are doing a lot of abstracting, C# is definitely my poison of choice. If you are relying on a lot of low-level code, C++ may be better. C is only goo if you are compiling for your 286... well that's just my opinion anyways... I'll warn you all that I'm an extreme OOPer... :)

    :) I think C# is really nice, but I still think the good thing about learning C++ is that if you can learn C++, it should be fairly easy to learn other languages, since C++ has so many features. C# has a lot of features too though.. different features, too. One thing that does bug me a little about C# is that it lacks multiple inheritance. That can be useful in some situations.

    Agreed. I would like to see more activity on DeveloperNet, but I'd definitel prefer to read 5 quality posts a week, rather than wade through 5000 message of junk to find 5 to read... let's hope the quality and spirit of DeveloperN

    I wonder if I could post more on DeveloperNet to get more activity going..

    Nightfox

    ---
    þ Synchronet þ Digital Distortion: digitaldistortionbbs.com
  • From art@DIGDIST/BATTLEST/FREEWAY to Nightfox on Wed May 25 09:56:00 2011
    Re: Programming languages
    By: Nightfox to art on Tue May 24 2011 23:07:32

    Hi Nightfox,

    The other "big thing" for me is that C# takes care of memory
    management... b
    I'm not sure if I'm a masochist about some things, but sometimes I like the manual memory management.. It feels similar to driving a car with a manual vs.
    an automatic transmission - The automatic is nice, but sometimes I like
    full control. There are times when I appreciate that C++ puts the memory

    That's a really good point. By that same token, you should be coding in ASM, no? ;)

    All jokes aside, I do agree with you, and that was my argument about 10 years ago when I was developing in Java. However, there has been a paradigm shift in the past decades from "I need to control exactly what the computer does" to something closer to "The computer can be trusted to do X, Y, Z". In that token, my stance is that (at least for .NET C#), I can trust it to collect garbage in a better way than I could--both in terms of reliability and human error.

    :) I think C# is really nice, but I still think the good thing about
    C++ is that if you can learn C++, it should be fairly easy to learn other languages, since C++ has so many features. C# has a lot of features too though.. different features, too. One thing that does bug me a little
    C# is that it lacks multiple inheritance. That can be useful in some situations.

    Multiple inheritance: I hear that. I read a very lengthy and technical justification for why this route was rejected by MSDN a few months ago... I'll try to dig it up later. I have only needed this once in my life with C#, and that time I followed some article to get the same functionality as multiple inheritance: http://www.codingday.com/multiple-inheritance-in-c-using-dynamic-features/

    Essentially the gist of it is that coding by contract is ultra important for the .NET folks, and various languages do not align how they deal with multiple inheritance (Python does it differently than C++), which breaks the CLR model. Without going into nitty gritties, when you inherit from multiple sources it becomes a real mess as to who is authoritative/gets first dibs, etc, and without the languages themselves aligning this strategy, I fear CLR languages may never support multiple inheritance.

    I wonder if I could post more on DeveloperNet to get more activity going..

    If you haven't noticed, that's my strategy too ;)

    Kind regards,
    ________________ _______
    \_____ __ \ ___\
    \ __ \ <_ \ @ fatcats[dot]poorcoding[dot]com
    \_______\___\___\___\ ------------------------------------
    f a t c a t s b b s

    ---
    þ Synchronet þ fatcats bbs - http://fatcats.poorcoding.com
  • From Nightfox@DIGDIST/BATTLEST/FREEWAY to art on Wed May 25 14:42:00 2011
    I'm not sure if I'm a masochist about some things, but sometimes I like the manual memory management.. It feels similar to driving a car with a manual vs.
    an automatic transmission - The automatic is nice, but sometimes I like full control. There are times when I appreciate that C++ puts the
    memory

    That's a really good point. By that same token, you should be coding in
    ASM, no? ;)

    hehe.. ;)

    All jokes aside, I do agree with you, and that was my argument about 10 years ago when I was developing in Java. However, there has been a paradigm shift in the past decades from "I need to control exactly what the computer does" to something closer to "The computer can be trusted to do X, Y, Z".
    In that token, my stance is that (at least for .NET C#), I can trust it to collect garbage in a better way than I could--both in terms of reliability and human error.

    That's true.. I tend to prefer something that's tried & tested rather than re-doing things myself. Actually, in looking back at some C# code I've done before, I think in some ways it's really nice not to have to worry about explicitly freeing memory - Sometimes you might want to have a function return a pointer to some dynamically-allocated memory, and normally the caller would need to free it.

    Multiple inheritance: I hear that. I read a very lengthy and technical justification for why this route was rejected by MSDN a few months ago... I'll try to dig it up later. I have only needed this once in my life with C#, and that time I followed some article to get the same functionality as multiple inheritance: http://www.codingday.com/multiple-inheritance-in-c-using-dynamic-features/ Essentially the gist of it is that coding by contract is ultra important
    for the .NET folks, and various languages do not align how they deal with multiple inheritance (Python does it differently than C++), which breaks
    the CLR model. Without going into nitty gritties, when you inherit from multiple sources it becomes a real mess as to who is authoritative/gets first dibs, etc, and without the languages themselves aligning this strategy, I fear CLR languages may never support multiple inheritance.

    I can understand multiple inheritance being too messy. Speaking of which, something similar I heard is that C++ is one of the most difficult computer languages to parse, and that's why Visual C++'s IntelliSense often has trouble (I've noticed it can be slow sometimes). IntelliSense with C#, on the other hand, is relatively quick.

    I wonder if I could post more on DeveloperNet to get more activity going..

    If you haven't noticed, that's my strategy too ;)

    I noticed.. ;) I should definitely post more..

    Nightfox

    ---
    þ Synchronet þ Digital Distortion: digitaldistortionbbs.com