Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. C++ v Java v ???

C++ v Java v ???

Scheduled Pinned Locked Moved The Lounge
learningc++javaswiftcom
34 Posts 24 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • D Dan Neely

    Tiobe is basically counting google/etc hits. It's not really anything I could consider a useful metric for measuring use/employment levels. That said, what language is your CS101 class taught in? IMO the first few general programming classes should all use the same language so that you can concentrate on teaching programming not the platform itself. Either C/C++/Java/C# could be used for the core courses without major problems IMO. However at some point at least one of C/C++ (memory management, pointers) and one of C#/Java (real world, higher level, standard libraries that don't suck or make you reinvent the wheel) need to be taught before graduation. A web course with CSS/Ajax/html5/buzzwords probably needs done as well, although the backend language here probably matters less.

    3x12=36 2x12=24 1x12=12 0x12=18

    M Offline
    M Offline
    MSoulia
    wrote on last edited by
    #9

    Thanks, Dan. Interesting info on tiobe. The students have had a C course. This would be their second programming course. The text I use is Savitch's Absolute C++, AW. This may shed light as to subject material. I do offer a third special topics course that implements the MIT Beer game or Hunt the Wumpus in a distributed environmnet in C# (and XAML). WRT the MSDN article I mentioned above, I think a good portion of the beginning 2nd term students might fail on your tag line.

    D E C 3 Replies Last reply
    0
    • P peterchen

      Real men learn C++. Metrosexual men learn C#. Java is a for compsci majors playing with GOF patterns. Yeah, Java huggers, smoke that!

      Agh! Reality! My Archnemesis![^]
      | FoldWithUs! | sighist | WhoIncludes - Analyzing C++ include file hierarchy

      M Offline
      M Offline
      MSoulia
      wrote on last edited by
      #10

      I use GOF with C++ and C#.

      P 1 Reply Last reply
      0
      • M MSoulia

        Henry, thanks for the input. A recent MSDN article lamented the lack of basic programming skills with recent CS grads. Goals here include purely fundamental CS concepts - how to write a small program to compute squares from an input array, implementing the WaTor world simulation. More along the OO track versus procedural languages. Nothing specialized, yet, e.g. real-time control, etc. Just basic OO programming.

        H Offline
        H Offline
        Henry Minute
        wrote on last edited by
        #11

        If it's OO that's required then SmallTalk or one of its derivatives is probably the best for that, in a 'pure' sort of way. I don't keep up like I used to but I can't think of another language where "everything is an object". After using that as an introduction to OO principles I would move on to C++ or C#. That'll teach the buggers about the real world. :) 'Transferable skills' and all that training oriented buzz speak.

        Henry Minute Do not read medical books! You could die of a misprint. - Mark Twain Girl: (staring) "Why do you need an icy cucumber?" “I want to report a fraud. The government is lying to us all.”

        1 Reply Last reply
        0
        • M MSoulia

          Hi All - If you wouldn't mind, I would like your input, zealots and all, regarding the time honored debate of a learning programming language. I'm once again involved in a discussion as to which language, C++ or Java (or Objective-C) is best suited for a 2nd term programming course. Java pundits point to tiobe.com. Us C++ guys have a keen eye on the pending C++0x release and its current boost libs. The course is currently taught in C++. What other surveys, polls, etc. (admittedly not nearly as diverse and informed as CodeProject) would compare to tiobe.com? Thank you. Let the games begin...

          E Offline
          E Offline
          Ennis Ray Lynch Jr
          wrote on last edited by
          #12

          My introduction to computing class used pseudo code so students would have to focus on concepts and not rely on language features. Imagine having to write your first binary search tree with nothing more than a pen, paper, and a rudimentary understanding of doubly linked lists. And then the merge sort ...

          Need custom software developed? I do custom programming based primarily on MS tools with an emphasis on C# development and consulting. I also do Android Programming as I find it a refreshing break from the MS. "And they, since they Were not the one dead, turned to their affairs" -- Robert Frost

          L 1 Reply Last reply
          0
          • M MSoulia

            Hi All - If you wouldn't mind, I would like your input, zealots and all, regarding the time honored debate of a learning programming language. I'm once again involved in a discussion as to which language, C++ or Java (or Objective-C) is best suited for a 2nd term programming course. Java pundits point to tiobe.com. Us C++ guys have a keen eye on the pending C++0x release and its current boost libs. The course is currently taught in C++. What other surveys, polls, etc. (admittedly not nearly as diverse and informed as CodeProject) would compare to tiobe.com? Thank you. Let the games begin...

            C Offline
            C Offline
            c2423
            wrote on last edited by
            #13

            Depends - are you taking the course yourself or teaching it? If you are taking the course yourself, I would suggest that you attempt every program in both languages - they both have their merits which you will better grasp by attempting both (remember of course that it's not just a translation between the two, but that you should embrace the programming style of whichever language you are using at the time). Obviously a lot more work then choosing one, but hopefully the benefits are clear. If you are teaching it, then <wearing="flameproof suit"> C++ is better for learning about languages and their syntax, while Java is better for teaching algorithms (less pointer stuff to worry about means more time taken on the actual algorithm).</wearing> Just my 2c. Chris

            1 Reply Last reply
            0
            • M MSoulia

              I use GOF with C++ and C#.

              P Offline
              P Offline
              peterchen
              wrote on last edited by
              #14

              That doesn't contradict my statement ;)

              Agh! Reality! My Archnemesis![^]
              | FoldWithUs! | sighist | WhoIncludes - Analyzing C++ include file hierarchy

              1 Reply Last reply
              0
              • M MSoulia

                Hi All - If you wouldn't mind, I would like your input, zealots and all, regarding the time honored debate of a learning programming language. I'm once again involved in a discussion as to which language, C++ or Java (or Objective-C) is best suited for a 2nd term programming course. Java pundits point to tiobe.com. Us C++ guys have a keen eye on the pending C++0x release and its current boost libs. The course is currently taught in C++. What other surveys, polls, etc. (admittedly not nearly as diverse and informed as CodeProject) would compare to tiobe.com? Thank you. Let the games begin...

                R Offline
                R Offline
                Ravi Bhavnani
                wrote on last edited by
                #15

                I would recommend learning Java over C++ for 3 reasons:

                • It contains many of the concepts present in modern programming languages.
                • Assuming you're a competent programmer, you can get a job if you know Java.
                • It makes learning C#/.NET a breeze.  Assuming you're a competent programmer, you can get a job if you know C#.NET.

                /ravi

                My new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com

                1 Reply Last reply
                0
                • M MSoulia

                  Hi All - If you wouldn't mind, I would like your input, zealots and all, regarding the time honored debate of a learning programming language. I'm once again involved in a discussion as to which language, C++ or Java (or Objective-C) is best suited for a 2nd term programming course. Java pundits point to tiobe.com. Us C++ guys have a keen eye on the pending C++0x release and its current boost libs. The course is currently taught in C++. What other surveys, polls, etc. (admittedly not nearly as diverse and informed as CodeProject) would compare to tiobe.com? Thank you. Let the games begin...

                  N Offline
                  N Offline
                  Nemanja Trifunovic
                  wrote on last edited by
                  #16

                  The Perils of Java Schools[^]

                  utf8-cpp

                  M 1 Reply Last reply
                  0
                  • M MSoulia

                    Hi All - If you wouldn't mind, I would like your input, zealots and all, regarding the time honored debate of a learning programming language. I'm once again involved in a discussion as to which language, C++ or Java (or Objective-C) is best suited for a 2nd term programming course. Java pundits point to tiobe.com. Us C++ guys have a keen eye on the pending C++0x release and its current boost libs. The course is currently taught in C++. What other surveys, polls, etc. (admittedly not nearly as diverse and informed as CodeProject) would compare to tiobe.com? Thank you. Let the games begin...

                    J Offline
                    J Offline
                    Joe Woodbury
                    wrote on last edited by
                    #17

                    I fanatically suggest C using the C++ compiler; I'll call it C/C++. (Among other things, it lets you transition to C++ easier and lets you take advantage of many C++isms in procedural code AND it teaches developers that you don't have to use templates and write convoluted classes to write C++ code!) One of the biggest problems with new developers is that they are amazingly ignorant about how computers work. They tend to be oblivious of what their code translates into in real terms. They assume garbage collector means more than it does (that they can sit in a tight loop doing new xxx every iteration!) C/C++ teaches you HOW a computer works and HOW languages really do what they do beneath the covers. When taught with Windows, it also teaches the base API and how Windows works which is also helpful. Java and .NET aren't just magic, but it seems that way too many new developers treat them like they are. C/C++ also makes teaching basic algorithms fairly straightforward--and by that I don't just mean the concept of the algorithm, but how it really works. Yes, it can be ugly, but you can avoid that with good planning. (All languages can get quite ugly, C/C++ just hands you the shotgun, takes off the safety and aims it at your feet for you. But with that power, you get understanding and that is sorely lacking with too many recent graduates.) I do a lot of embedded development. If I've learned one thing is that it's really hard to teach Java/C#/VB programmers to write decent embedded code, even in their own damn languages, let alone C/C++. I now prepare myself for the howls of protest and boldly state: OOP is an oversold concept. I can't count the times that simple procedural code (or simple classes treating methods procedurally) makes faster, easier to understand and much more stable code. Even if it took a little more time to write (which it does less often than many think) the time saved on debugging and maintenance, let alone support calls, makes up for it. Another advantage of C; Visual Studio. Yeah VS 2010 sucks blah blah blah, but it's still the best damn thing on the market by magnitudes. One of the best ways to learn C is to use the debugger (plus having fresh graduates actually know how to use a debugger would be a HUGE leap forward.) I seriously recommend C as the starting language for everyone.

                    M D M 3 Replies Last reply
                    0
                    • J Joe Woodbury

                      I fanatically suggest C using the C++ compiler; I'll call it C/C++. (Among other things, it lets you transition to C++ easier and lets you take advantage of many C++isms in procedural code AND it teaches developers that you don't have to use templates and write convoluted classes to write C++ code!) One of the biggest problems with new developers is that they are amazingly ignorant about how computers work. They tend to be oblivious of what their code translates into in real terms. They assume garbage collector means more than it does (that they can sit in a tight loop doing new xxx every iteration!) C/C++ teaches you HOW a computer works and HOW languages really do what they do beneath the covers. When taught with Windows, it also teaches the base API and how Windows works which is also helpful. Java and .NET aren't just magic, but it seems that way too many new developers treat them like they are. C/C++ also makes teaching basic algorithms fairly straightforward--and by that I don't just mean the concept of the algorithm, but how it really works. Yes, it can be ugly, but you can avoid that with good planning. (All languages can get quite ugly, C/C++ just hands you the shotgun, takes off the safety and aims it at your feet for you. But with that power, you get understanding and that is sorely lacking with too many recent graduates.) I do a lot of embedded development. If I've learned one thing is that it's really hard to teach Java/C#/VB programmers to write decent embedded code, even in their own damn languages, let alone C/C++. I now prepare myself for the howls of protest and boldly state: OOP is an oversold concept. I can't count the times that simple procedural code (or simple classes treating methods procedurally) makes faster, easier to understand and much more stable code. Even if it took a little more time to write (which it does less often than many think) the time saved on debugging and maintenance, let alone support calls, makes up for it. Another advantage of C; Visual Studio. Yeah VS 2010 sucks blah blah blah, but it's still the best damn thing on the market by magnitudes. One of the best ways to learn C is to use the debugger (plus having fresh graduates actually know how to use a debugger would be a HUGE leap forward.) I seriously recommend C as the starting language for everyone.

                      M Offline
                      M Offline
                      MSoulia
                      wrote on last edited by
                      #18

                      Great feedback. I've done a bunch of embedded stuff with C++. I've found the object modeling a great tool for design, maintenance, etc. I've also done some modifications or "feature enhancements" of truly ugly embedded C code. I still vote for OOP over procedural here. I'm sure this will be an ongoing lively debate. The simple C code always seems to grow - a la Therac25. Also, if I recall, didn't the MIT autonomous vehicle in the DARPA challenge quite every 45 minutes due to memory leakage? If garbage collection still confounds this caliber of programmers / engineers, the 2nd years haven't got much of a chance. I totally agree with you on VS2010. The capability for developing debugging skills is fantastic.

                      1 Reply Last reply
                      0
                      • N Nemanja Trifunovic

                        The Perils of Java Schools[^]

                        utf8-cpp

                        M Offline
                        M Offline
                        MSoulia
                        wrote on last edited by
                        #19

                        Ah, yes. Joel to the rescue. If this wasn't my favorite site, I'ld have started there!

                        1 Reply Last reply
                        0
                        • M MSoulia

                          Thanks, Dan. Interesting info on tiobe. The students have had a C course. This would be their second programming course. The text I use is Savitch's Absolute C++, AW. This may shed light as to subject material. I do offer a third special topics course that implements the MIT Beer game or Hunt the Wumpus in a distributed environmnet in C# (and XAML). WRT the MSDN article I mentioned above, I think a good portion of the beginning 2nd term students might fail on your tag line.

                          D Offline
                          D Offline
                          Dan Neely
                          wrote on last edited by
                          #20

                          MSoulia wrote:

                          The students have had a C course

                          If they started with C I think they probably should stay with C/C++ for the rest of the core/into courses.

                          MSoulia wrote:

                          I think a good portion of the beginning 2nd term students might fail on your tag line.

                          IF their CS101 teacher failed them that badly I guess it'll be up to you to fill in the gaps in what they should've learned while covering new material.

                          3x12=36 2x12=24 1x12=12 0x12=18

                          1 Reply Last reply
                          0
                          • J Joe Woodbury

                            I fanatically suggest C using the C++ compiler; I'll call it C/C++. (Among other things, it lets you transition to C++ easier and lets you take advantage of many C++isms in procedural code AND it teaches developers that you don't have to use templates and write convoluted classes to write C++ code!) One of the biggest problems with new developers is that they are amazingly ignorant about how computers work. They tend to be oblivious of what their code translates into in real terms. They assume garbage collector means more than it does (that they can sit in a tight loop doing new xxx every iteration!) C/C++ teaches you HOW a computer works and HOW languages really do what they do beneath the covers. When taught with Windows, it also teaches the base API and how Windows works which is also helpful. Java and .NET aren't just magic, but it seems that way too many new developers treat them like they are. C/C++ also makes teaching basic algorithms fairly straightforward--and by that I don't just mean the concept of the algorithm, but how it really works. Yes, it can be ugly, but you can avoid that with good planning. (All languages can get quite ugly, C/C++ just hands you the shotgun, takes off the safety and aims it at your feet for you. But with that power, you get understanding and that is sorely lacking with too many recent graduates.) I do a lot of embedded development. If I've learned one thing is that it's really hard to teach Java/C#/VB programmers to write decent embedded code, even in their own damn languages, let alone C/C++. I now prepare myself for the howls of protest and boldly state: OOP is an oversold concept. I can't count the times that simple procedural code (or simple classes treating methods procedurally) makes faster, easier to understand and much more stable code. Even if it took a little more time to write (which it does less often than many think) the time saved on debugging and maintenance, let alone support calls, makes up for it. Another advantage of C; Visual Studio. Yeah VS 2010 sucks blah blah blah, but it's still the best damn thing on the market by magnitudes. One of the best ways to learn C is to use the debugger (plus having fresh graduates actually know how to use a debugger would be a HUGE leap forward.) I seriously recommend C as the starting language for everyone.

                            D Offline
                            D Offline
                            Dan Neely
                            wrote on last edited by
                            #21

                            Joe Woodbury wrote:

                            Another advantage of C; Visual Studio. Yeah VS 2010 sucks blah blah blah, but it's still the best damn thing on the market by magnitudes. One of the best ways to learn C is to use the debugger (plus having fresh graduates actually know how to use a debugger would be a HUGE leap forward.)

                            Agree. Learning a debugger should be part of any intro course regardless of the language/platform.

                            3x12=36 2x12=24 1x12=12 0x12=18

                            1 Reply Last reply
                            0
                            • M MSoulia

                              Hi All - If you wouldn't mind, I would like your input, zealots and all, regarding the time honored debate of a learning programming language. I'm once again involved in a discussion as to which language, C++ or Java (or Objective-C) is best suited for a 2nd term programming course. Java pundits point to tiobe.com. Us C++ guys have a keen eye on the pending C++0x release and its current boost libs. The course is currently taught in C++. What other surveys, polls, etc. (admittedly not nearly as diverse and informed as CodeProject) would compare to tiobe.com? Thank you. Let the games begin...

                              M Offline
                              M Offline
                              Mustafa Ismail Mustafa
                              wrote on last edited by
                              #22

                              If I had the choice of teaching a class across at least one semester, then I'd definitely introduce several concepts. The most important of which is that a programming language is nothing more than a tool that translates the concepts that you should know into binary. I'd plan out a project that would last the whole semester with twice a week checks to make sure that things are on track. Start with pseudo-code and from there onto C or Python. Yes, Python. On top of all that, to make sure that students learn the concepts right, I wouldn't have them do things through an IDE, let them boot strap themselves. Vim on Linux, they want to learn to understand compiler outputs, proper debugging.. Of course, these are just pointers on how to go about it, but I'm certain it will drill how things work into their brain. This way, when they tackle a problem, they can think their way into a solution. That is the most important thing, not a language.

                              If the post was helpful, please vote, eh! Current activities: Playing Star Craft II. Don't bother me, eh? Now and forever, defiant to the end. What is Multiple Sclerosis[^]?

                              1 Reply Last reply
                              0
                              • M MSoulia

                                Hi All - If you wouldn't mind, I would like your input, zealots and all, regarding the time honored debate of a learning programming language. I'm once again involved in a discussion as to which language, C++ or Java (or Objective-C) is best suited for a 2nd term programming course. Java pundits point to tiobe.com. Us C++ guys have a keen eye on the pending C++0x release and its current boost libs. The course is currently taught in C++. What other surveys, polls, etc. (admittedly not nearly as diverse and informed as CodeProject) would compare to tiobe.com? Thank you. Let the games begin...

                                K Offline
                                K Offline
                                Kenneth Kasajian
                                wrote on last edited by
                                #23

                                I programmed in BASIC and assembly language first, then C, then Forth, then C++, then Java then C#. With BASIC I learned control flow, variables, conditionals, simple data access. With Assembly and C, I learned what things actually look like in memory. It gives you a sense at what your limits are, and more importantly, what the possibilities are as far as footprint and performance. With FORTH I learned meta-programming With C++ I learned Object-Oriented Programming, generic programming, and ability to create efficient libraries (ala STL, Boost) With Java and C# I learned reflection, virtual machines, garbage collection. If I didn't already know OOP and generics, I would have learned that, too. So, what if you learn programming with just C# and Java, what would you be missing? I think you'd be missing out if you never understand meta-programming -- it's worth looking at so that you know it's there and exists. But most importantly, C# and Java hide the hardware. So you're really not laying down the bits exactly the way you want (especially truth with Java). Maybe the best thing to do is to use C# or Java for most of computer-science, and then add a course where you actually write code for a single-board computer or micro-controller using low-level C or assembly language. That should give you the breadth you're looking for.

                                ken@kasajian.com / www.kasajian.com

                                1 Reply Last reply
                                0
                                • M MSoulia

                                  Hi All - If you wouldn't mind, I would like your input, zealots and all, regarding the time honored debate of a learning programming language. I'm once again involved in a discussion as to which language, C++ or Java (or Objective-C) is best suited for a 2nd term programming course. Java pundits point to tiobe.com. Us C++ guys have a keen eye on the pending C++0x release and its current boost libs. The course is currently taught in C++. What other surveys, polls, etc. (admittedly not nearly as diverse and informed as CodeProject) would compare to tiobe.com? Thank you. Let the games begin...

                                  C Offline
                                  C Offline
                                  costas0811
                                  wrote on last edited by
                                  #24

                                  A hello world programmed in C++ is just much a greeting as a hello world in Java. I would say measure how superior you feel you are and find yourself on this chart. Cool Kids

                                  1 Reply Last reply
                                  0
                                  • M MSoulia

                                    Hi All - If you wouldn't mind, I would like your input, zealots and all, regarding the time honored debate of a learning programming language. I'm once again involved in a discussion as to which language, C++ or Java (or Objective-C) is best suited for a 2nd term programming course. Java pundits point to tiobe.com. Us C++ guys have a keen eye on the pending C++0x release and its current boost libs. The course is currently taught in C++. What other surveys, polls, etc. (admittedly not nearly as diverse and informed as CodeProject) would compare to tiobe.com? Thank you. Let the games begin...

                                    7 Offline
                                    7 Offline
                                    77465
                                    wrote on last edited by
                                    #25

                                    The 2nd term is a whole year, right? The audience already knows something but the employment and other things like that are at or below the horizon? If so... I guess C++ is too ugly to be taught at this stage. It may leave a false impression that ALL programming is a mind dead mess. Java is an oversimplified language with compromise loving disconnected afterthought additions. The way it treats generics alone is sufficient to damage the mindset of the students. Besides, if you do not go into libraries, what are you going to speak about after the first couple of months? I guess C# is just right. It has many features and no one is there without a good reason. I guess even the simplest approach - taking one feature after another and explaining them in a problem/solution style - will make a great course. Pay more or less attention to alternative solutions and C# will fit a year long course perfectly. Besides, the way how LINQ was added to C# (that is, a bunch of features that are each logical and useful while magically allow for LINQ when combined) must be shown to students as early as possible.

                                    1 Reply Last reply
                                    0
                                    • J Joe Woodbury

                                      I fanatically suggest C using the C++ compiler; I'll call it C/C++. (Among other things, it lets you transition to C++ easier and lets you take advantage of many C++isms in procedural code AND it teaches developers that you don't have to use templates and write convoluted classes to write C++ code!) One of the biggest problems with new developers is that they are amazingly ignorant about how computers work. They tend to be oblivious of what their code translates into in real terms. They assume garbage collector means more than it does (that they can sit in a tight loop doing new xxx every iteration!) C/C++ teaches you HOW a computer works and HOW languages really do what they do beneath the covers. When taught with Windows, it also teaches the base API and how Windows works which is also helpful. Java and .NET aren't just magic, but it seems that way too many new developers treat them like they are. C/C++ also makes teaching basic algorithms fairly straightforward--and by that I don't just mean the concept of the algorithm, but how it really works. Yes, it can be ugly, but you can avoid that with good planning. (All languages can get quite ugly, C/C++ just hands you the shotgun, takes off the safety and aims it at your feet for you. But with that power, you get understanding and that is sorely lacking with too many recent graduates.) I do a lot of embedded development. If I've learned one thing is that it's really hard to teach Java/C#/VB programmers to write decent embedded code, even in their own damn languages, let alone C/C++. I now prepare myself for the howls of protest and boldly state: OOP is an oversold concept. I can't count the times that simple procedural code (or simple classes treating methods procedurally) makes faster, easier to understand and much more stable code. Even if it took a little more time to write (which it does less often than many think) the time saved on debugging and maintenance, let alone support calls, makes up for it. Another advantage of C; Visual Studio. Yeah VS 2010 sucks blah blah blah, but it's still the best damn thing on the market by magnitudes. One of the best ways to learn C is to use the debugger (plus having fresh graduates actually know how to use a debugger would be a HUGE leap forward.) I seriously recommend C as the starting language for everyone.

                                      M Offline
                                      M Offline
                                      Mike Winiberg
                                      wrote on last edited by
                                      #26

                                      I agree totally with the reasoning behind your post - it is amazing how little many people (even with the relevant paper qualifications) understand about how a computer works and hence what the issues are with doing certain tasks efficiently and effectively in such an environment. Even basic things like the underlying differences in integer and floating point escape many otherwise skilled people (who wonder why their huge financial calculations end up differing from the expected value by a small percentage after time). An understanding, in basic terms, of how the underlying hardware actually works makes it obvious why certain things have to be done the way they are, even in supposedly very high level languages that are intended to hide the architecture of the machine. Having started with paper-tape and punched card mainframe systems, worked up through assembly language programming and embedded systems, and then majored in C++ since version 1.0 (and including parallel processor development long before multi-core CPUs were a twinkle in the Intel milkman's eye - remember the Transputer?), I've seen an awful lot of languages and methodologies come and go. I could see the great advantages of OOP principles for my development and adopted them, but have long thought that C++ has become so complex (and full of gotchas for the unwary) that developing using the latest template schemes, Standard Library classes etc has become 80% learning the language and 20% solving the problem. Bear in mind too that it is possible to write OO code in almost any language, even assembler... I've also gradually come to the conclusion that programming is like driving a car - the core problem-solving skills you need are the same almost regardless of language, dev environment etc, and the language you use is the car: it might have a bigger or smaller engine, left or right hand drive, automatic or manual gearbox and so on, but it's still a car and if you know how to drive well, you'll be able to get along. So, what would I recommend? Tricky, but I tend to agree that if you want to demonstrate how what gets written relates to the constraints of the underlying hardware, but also want something that gives transferable skills, its really got to be C/C++ (ANSI C in other words I suppose). If you were trying to teach skills that are more applicable to higher level business or web environments, then probably Java (+ data handling and touching upon SQL etc) (or maybe Scala?) My main point is you need to be teaching the principles, not the l

                                      1 Reply Last reply
                                      0
                                      • D Dave Parker

                                        I'd say all are more useful than the several modules of lotus notes plus the module in fortran we had to do. Then again I'm stuck in foxpro land at the moment. My guess is that Java and .NET are most in demand, they tend to be the best choices for developing most general business apps imo. There don't seem to be many C++ jobs around which is just as well as I don't think many would be able to handle it.

                                        S Offline
                                        S Offline
                                        SadieQ
                                        wrote on last edited by
                                        #27

                                        we have both in te office, but it looks like the swing is now to Java.

                                        1 Reply Last reply
                                        0
                                        • M MSoulia

                                          Thanks, Dan. Interesting info on tiobe. The students have had a C course. This would be their second programming course. The text I use is Savitch's Absolute C++, AW. This may shed light as to subject material. I do offer a third special topics course that implements the MIT Beer game or Hunt the Wumpus in a distributed environmnet in C# (and XAML). WRT the MSDN article I mentioned above, I think a good portion of the beginning 2nd term students might fail on your tag line.

                                          E Offline
                                          E Offline
                                          englebart
                                          wrote on last edited by
                                          #28

                                          I finally figured out the tag line... I have seen it numerous times but never dwelt on it too long. The context of the current conversation helped. If the first semester was C, definitely stick to C++. I think a lot of people who start in Java and C# do not get a good understanding of pointers and hence do not understand how reference assignments in Java and C# actually work. They are really just primitive pointers that can not be dereferenced. As an employer, I would rather teach a C++ programmer Java than the other way around. You might throw in some C++ topics that will help translate into other languages. e.g. a class that has only pure virtual functions that is used via multiple inheritance with 2 totally different concrete type hierarchies. (a la Java interface) Here is another one that I learned the hard way. Use space, not 0 if you want to beautify C code. 1x01=1 1x04=4 1x08=!compile error.

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups