Does managed code make people stupid?

This is a discussion on Does managed code make people stupid? within the A Brief History of Cprogramming.com forums, part of the Community Boards category; Well, Being a first year Software Engineering student I've noticed that all they seem to teach, at least for the ...

  1. #1
    Woof, woof! zacs7's Avatar
    Join Date
    Mar 2007
    Location
    Australia
    Posts
    3,459

    Does managed code make people stupid?

    Well,

    Being a first year Software Engineering student I've noticed that all they seem to teach, at least for the basics of programming is managed code. I mean things like, Python, C#, Java especially and Visual Basic. There's no arguing that managed code "removes" you from a few tasks... on a side note I find myself doing "unnecessary" safe things in Java -- redundant checks that java does etc.

    Would you say that it's a bad thing that so many grads are coming out of Uni without having touched languages such as C, etc? Bare in mind that these people may very well come work in C or C++ with you without having "fallen" into the many traps. I'm just wondering what the oldies who started with things like C in Uni have to say...

    Unless you think languages like C are slowly going to die? I can't see that happening... the VMs at least have to be written in something

  2. #2
    Registered User whiteflags's Avatar
    Join Date
    Apr 2006
    Location
    United States
    Posts
    7,761
    From another student's perspective, it doesn't seem so bleak. Here's a short list of the courses you need to take, if you want to be a programmer, at my local college:
    • C++ Programming 1
    • C++ Programming 2
    • C# Programming 1 or
    • Visual Basic Programming or
    • Java 1

    Of course the degree requires you take one of several programming course sequences and I do see other sequences that include visual basic. It is impossible to go through the program without programming in some C# or C++ though. So inevitably they're at least learning about said traps at some point.

  3. #3
    Kernel hacker
    Join Date
    Jul 2007
    Location
    Farncombe, Surrey, England
    Posts
    15,677
    Obviously, handling memory and managing it is specific to lower level programming languages - Python and such you just use stuff, and how the memory is managed is none of your concern.

    But eventually, given enough programming experience, the programmer will most likely learn about managing other resources that require some actual action to free them, and once the concept of allocating/freeing resources is understood, then the concept can be moved to the memory management as well.

    But also bear in mind that A LOT of applications are better written in high level languages, avoiding those problems, and achieving the same thing in a lot less code.

    Programming should not make anyone stupid. There are other activities that may induce stupidity [falling on your head, certain drugs, alcohol, solvents (intentional abuse, or side-effects from using solvent-based products), bad diet and many other things]. Only "ignorance" in the sense of "never having learned about it" is what you can attribute to learning programming in a managed environment.

    --
    Mats
    Compilers can produce warnings - make the compiler programmers happy: Use them!
    Please don't PM me for help - and no, I don't do help over instant messengers.

  4. #4
    (?<!re)tired Mario F.'s Avatar
    Join Date
    May 2006
    Location
    Portugal
    Posts
    7,578
    The answer to your topic question is definitely a big No, in my opinion.
    As for unis... the real objective is not to teach programming languages, but to teach programming in general. That can be essentially done in any number of languages as long as the different programming paradigms the student will face out there are supported.

    Granted, not touching C throughout the whole time is a little... weird. It's prevalence and its importance is obvious - even if one couldn't think of anything else, for the influence it had on many other current programming languages. It's possible that the fact you aren't learning it, or will not learn it in the upcoming terms is a troubling sign. Makes one wonder the about quality of the course. But in reality it is not strictly necessary, in my opinion, as long as you are being taught what you should be taught. And that is how to program and how think like the machine. About any programming language can help with that.

    There is however one interesting aspect in that course of yours. And that is... it's not usual. Usually students rightfully complain their teachers are old crones attached to old practices. C and C++ is usually still being taught with old non-standard compilers and with all the bad practices, some denounced long since. Teachers simply make no effort to adjust, adapt and learn the "new ways". However, in your course you are learning more recent programming languages. That's interesting and if in fact you are being taught how to programming instead of how to program in any of those languages, then I think you've hit goal. Otherwise it's probably a behind.
    The programmer’s wife tells him: “Run to the store and pick up a loaf of bread. If they have eggs, get a dozen.”
    The programmer comes home with 12 loaves of bread.


    Originally Posted by brewbuck:
    Reimplementing a large system in another language to get a 25% performance boost is nonsense. It would be cheaper to just get a computer which is 25% faster.

  5. #5
    Registered User
    Join Date
    Apr 2008
    Posts
    890
    I think it is a problem with someone who will enter the work force and work primarily with C or C++, but I also see the majority of the work force using alternatives now.

    But no, it doesn't make them "dumber". I've long since eschewed the notion that you have to twiddle bits and manage memory to be a "real programmer".

  6. #6
    Ethernal Noob
    Join Date
    Nov 2001
    Posts
    1,901
    Does using a library make you look stupid because you aren't writing it yourself like sockets, threading, etc.?

  7. #7
    Woof, woof! zacs7's Avatar
    Join Date
    Mar 2007
    Location
    Australia
    Posts
    3,459
    Hmm, good to know -- thanks for the input. It's just there seems to be a rather large gap that isn't filled in the core units between assembly and say Java for example.

    > There is however one interesting aspect in that course of yours. And that is... it's not usual. Usually students rightfully complain their teachers are old crones attached to old practices.
    Yes, heard about that -- speaking to 3rd or 4th year students who complain that they had to do such things in first year.

    > As for unis... the real objective is not to teach programming languages, but to teach programming in general.
    Also drilled into us at every lecture. Little side notes "Java is only used to demonstrate the algo" etc.

    > Only "ignorance" in the sense of "never having learned about it" is what you can attribute to learning programming in a managed environment.
    I agree, sort-of what I was trying to say by saying "stupid".

    Really, thanks for the replies

  8. #8
    Ethernal Noob
    Join Date
    Nov 2001
    Posts
    1,901
    still, programming isn't an easy task. Chances are if you've made it through an entire coursework, using only Java or C# chances are you are in a minority of people who can actually understand programming on an advanced-beginner to intermediate level. To use the word "stupid" is pretty ignorant in itself.

    I love C++, but I also love Java and C#. they are interesting and I do say that at times I make slip ups with basic pointers and stuff, and haven't really used them on a large scale yet.

  9. #9
    Woof, woof! zacs7's Avatar
    Join Date
    Mar 2007
    Location
    Australia
    Posts
    3,459
    Perhaps ignorant would have been a better word than stupid. I too love Java, it is infact the main language for my coursework (used to demo algos etc), taught in first year "Computer programming" for OOP concepts, data structures, how to program etc.

    But my little corner of the world they almost mean the same thing

  10. #10
    Ethernal Noob
    Join Date
    Nov 2001
    Posts
    1,901
    I disagree.

  11. #11
    Malum in se abachler's Avatar
    Join Date
    Apr 2007
    Posts
    3,189
    I find it odd that they woudl have a course in programmign and not include C/C++, btu Many of us here learned to program in other languages like BASIC or assembly, so C/C++ is not a requirement to learn programming. That said, if you know C/C++ you can always fidn a job, because more employers are willing to let you pick up, e.g. python, on the job if you know C/C++ than the other way around. My employer required me to learn to use LabView post emplyment, the fact that I could program in C/C++ which is seen as 'hard' led him to believe I had the ncessary skills to learn a simpler language.
    Until you can build a working general purpose reprogrammable computer out of basic components from radio shack, you are not fit to call yourself a programmer in my presence. This is cwhizard, signing off.

  12. #12
    Registered User
    Join Date
    Apr 2008
    Posts
    890
    Quote Originally Posted by abachler View Post
    That said, if you know C/C++ you can always fidn a job, because more employers are willing to let you pick up, e.g. python, on the job if you know C/C++ than the other way around.
    I'm not sure that's true, at least in today's market where I live. Employers won't ask you in for an interview if you don't list the languages they seek on your resume. I mean, I've got C++, Java, Python, Perl, etc., but couldn't get a sniff at a C# position. I also have several years of Oracle 8 and several of SQL Server, but couldn't get an interview for a position that required someone with Oracle 9 experience.

  13. #13
    Kernel hacker
    Join Date
    Jul 2007
    Location
    Farncombe, Surrey, England
    Posts
    15,677
    I think the "what's required" and "what's optional" varies from position to position, and also who is involved in sorting out CV's for interview, how many potential candidates come forward, etc, etc.

    In some companies, the person first receiving the CV's is some admin staff in HR - at this level, it's just true or false if you fulfill the criteria or not - and if there are candidates that DO fulfill the requirements they are sent forward to the engineering manager or whoever is responsible for hiring new software staff. Once you have got past the "admin stage", you are probably at a level where the person looking at your CV is (within reason, at least) qualified to determine if you are capable of learning a new language or not (or picking up the differences between Oracle 8 and Oracle 9 for that matter).

    Of course, if there are NO qualified staff (say that the company uses say Haskell, which isn't exactly the most commonly used language in the world, and also needs someone with Real-time kernel knowledge and understanding of networks under TCP/IP), then it becomes a "closest fit" problem, and it's probably not someone with more software engineering skills that determine whether you are a reasonably good fit or not.

    Finding a job involves several factors:
    - Luck of applying to the right company at the right time.
    - Persistence and not giving up until you get a job you like.
    - Living in the right area or finding a company with remote working capabilities.

    --
    Mats
    Compilers can produce warnings - make the compiler programmers happy: Use them!
    Please don't PM me for help - and no, I don't do help over instant messengers.

  14. #14
    Captain Crash brewbuck's Avatar
    Join Date
    Mar 2007
    Location
    Portland, OR
    Posts
    7,272
    C and C++ are like the manual transmission. They require you to think and take more responsibility for the performance of the machine. If you look around you definitely do not see an excess of manual transmission vehicles but they are still there, everybody at least knows what they are if that can't personally drive one, and it isn't going away any time soon.

    I don't know if managed code makes people "stupid" but they certainly open up the field for a whole slew of programmers who maybe could not be effective without the managed environment as a support system. We have millions of potential programmers on the planet but not every one of them is going to be the kind of superstar necessary to write solid unmanaged code.

    The world needs programmers. If managed frameworks are what it takes to get more of them writing code, then managed code is a necessary step. Like you say, there will never be zero market for people who can program closer to the hardware. The computers won't work without those people.
    Code:
    //try
    //{
    	if (a) do { f( b); } while(1);
    	else   do { f(!b); } while(1);
    //}

  15. #15
    Disrupting the universe Mad_guy's Avatar
    Join Date
    Jun 2005
    Posts
    258
    Software is only getting more and more complicated. And that isn't going to change any time in the near future.

    Because of it, I think it is in our best interest to seek out abstractions and tools that make expressing these problems easier and more robust overall. Higher level languages facilitate this - they take away some of the common burdens that are simply natural to deal with when you're closer to the hardware. You can argue that with enough encapsulation or templates etc. etc.. that you can achieve the same thing, but you're only covering up the problem and not making it go away. Past a certain point it is simply more efficient economically and logically to invest in something else, something that can get the job done quicker and with better results in the same amount of time or less.

    Having said that, I think for a programmer knowing something like C is fundamental; it is on the opposing side of the spectrum when compared with a lot of languages that are flourishing today (Java/C#, etc.) You can more accurately appreciate what higher level languages give you.

    I don't particularly think managed code makes people stupid, in many cases it can be a benefit. But it's essential to know what you're dealing with at a more fundamental level if you want to get the most out of what you're using.
    operating systems: mac os 10.6, debian 5.0, windows 7
    editor: back to emacs because it's more awesomer!!
    version control: git

    website: http://0xff.ath.cx/~as/

Page 1 of 3 123 LastLast
Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Call managed code (c#) from unmanaged code (VC++ 6.0)
    By playxn in forum C++ Programming
    Replies: 3
    Last Post: 10-14-2008, 01:11 PM
  2. make user press enter / wierd code thingy
    By CorvusVita in forum C++ Programming
    Replies: 10
    Last Post: 04-05-2006, 10:55 AM
  3. God
    By datainjector in forum A Brief History of Cprogramming.com
    Replies: 746
    Last Post: 12-22-2002, 12:01 PM
  4. How do I make and edit box scroll down with code?
    By Unregistered in forum Windows Programming
    Replies: 0
    Last Post: 11-26-2001, 02:33 PM
  5. Replies: 25
    Last Post: 10-28-2001, 01:08 PM

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21