• Visitors can check out the Forum FAQ by clicking this link. You have to register before you can post: click the REGISTER link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. View our Forum Privacy Policy.
  • Want to receive the latest contracting news and advice straight to your inbox? Sign up to the ContractorUK newsletter here. Every sign up will also be entered into a draw to WIN £100 Amazon vouchers!

Which programming language should I learn?

Collapse
X
  •  
  • Filter
  • Time
  • Show
Clear All
new posts

    #21
    Originally posted by Bwana View Post
    know C# is a fantastic language with a lot going for it, but...

    ...somehow I find I'm just not that keen. The fact that it...

    1) is Microsoft
    2) is "the latest thing"
    3) is riding a wave of huge popularity at the moment

    ...rings an alarm bell for me. It's all too reminiscent of VB in the late 1990's (before dot net). I see a pattern there, in the context of earning potential (rates of pay and number of jobs/contracts), which goes something like this (hypothetically speaking)...

    1) MS release new language "A" that becomes very popular
    2) Loads of people jump on the bandwagon and learn "A" (= MASSIVE SUPPLY of "A" skills)
    3) Eventually MS replaces it with something newer: language "B" (= REDUCED DEMAND for "A" skills)
    4) Rates of pay for "A" skills fall, as does the number of jobs/contracts, as a result of 2) & 3)
    Sounds like a load of rubbish to me. MS haven't released lots of languages really. And support for a language is something the community drives not MS once it takes off, to a big extent. Also, VB was around for a long time and .NET has been around what, a decade now? New technologies for .NET and Java crop up frequently but both languages have been around a while, and continue to evolve.

    Learn whatever you enjoy, or whatever is marketable. If what you pick ends up being superceded, it will not happen overnight anyway.
    Originally posted by MaryPoppins
    I'd still not breastfeed a nazi
    Originally posted by vetran
    Urine is quite nourishing

    Comment


      #22
      The last "now that is sort of interesting" moment I had in an IT moment was about 12 years ago, most of us just push numbers about with code or ferry Strings, ints and doubles from a web browser to a DB and back again.

      Comment


        #23
        Originally posted by d000hg View Post
        Sounds like a load of rubbish to me. MS haven't released lots of languages really. And support for a language is something the community drives not MS once it takes off, to a big extent. Also, VB was around for a long time and .NET has been around what, a decade now? New technologies for .NET and Java crop up frequently but both languages have been around a while, and continue to evolve.

        Learn whatever you enjoy, or whatever is marketable. If what you pick ends up being superceded, it will not happen overnight anyway.
        Well Bwana has put a lot of rubbish on this thread.

        If he has the aptitude and interest to program then learning a new language won't be such a dilemma as if he chooses one that isn't marketable, he would in a reasonable amount of time be able to learn one that was.
        "You’re just a bad memory who doesn’t know when to go away" JR

        Comment


          #24
          Originally posted by Bwana View Post
          ...somehow I find I'm just not that keen. The fact that it...

          1) is Microsoft
          The world's leading purveyor of development products? Good development products?

          Originally posted by Bwana View Post
          2) is "the latest thing"
          Its nearly 10 years old.

          Originally posted by Bwana View Post
          3) is riding a wave of huge popularity at the moment
          You mean there's loads of jobs?

          Originally posted by Bwana View Post
          1) MS release new language "A" that becomes very popular
          2) Loads of people jump on the bandwagon and learn "A" (= MASSIVE SUPPLY of "A" skills)
          3) Eventually MS replaces it with something newer: language "B" (= REDUCED DEMAND for "A" skills)
          4) Rates of pay for "A" skills fall, as does the number of jobs/contracts, as a result of 2) & 3)
          There's no sign c# is going to be replaced by anything soon from MS, regardless of the framework du jour, and offers good rates of pay.

          But your conclusion is at odds with your premise anyway if you have decided to go mysql/php instead. That combination is the definition of commodity programming skills.

          Whichever language you learn, don't underestimate the importance of business and technical domain knowledge; and of course ability.

          Originally posted by Bwana View Post
          Somehow I feel like I've been here before. Once you've seen one "paradigm-shift", you've seen 'em all!
          It isn't a paradigm, its a language.

          Originally posted by Bwana View Post
          Of course, this is all just my opinion and I could be talking bollox
          You sound like your looking for reasons not to learn c#. Perhaps it is very different looking from what you are used to?

          Comment


            #25
            Originally posted by VectraMan View Post
            If you've done VB and SQLServer it's not going to be that big a jump for you to get into doing C# and SQL Server.
            c# is a hell of a leap from VB6 (which I presume Bwana is talking about), as is VB.Net.

            Originally posted by VectraMan View Post
            C++ with respect, isn't for amateurs. It was the default choice for everything in the 90s, but these days has become more of a specialist tool, and nobody that's doing high-end C++ work is going to hire somebody who's spent a couple of weekends reading a book. And the people that were doing low-end C++ work have moved to doing C# or Java.
            What are the main valid reasons c#/java might be looked down on by a c++ programmer, apart from maintaining legacy code and legacy attitudes?

            I realise there are technical differences and c++ is more portable than c#, but given a greenfield project what can you do in c++ that is much more professional and 'high end' than in the others?

            Comment


              #26
              They love the pointers do c & c++ programmers. It made them feel they were in Tron being that close to the memory.

              (I left a c++ gig in 98 to do Java while my boss told me that it would never come of anything)

              Comment


                #27
                Originally posted by Clever Hans View Post
                What are the main valid reasons c#/java might be looked down on by a c++ programmer, apart from maintaining legacy code and legacy attitudes?

                I realise there are technical differences and c++ is more portable than c#, but given a greenfield project what can you do in c++ that is much more professional and 'high end' than in the others?
                It's complicated because it's not just about the language, it's about the platform and that means the JRE/.NET that you have to buy into. If they'd made Java and/or C# produce native code and interface direct with the Windows API, then it's probably fair to say that there'd be little point using C++ for the vast majority of applications. Java could have won if it had just been a programming language, because there's a lot to like about it as a tidied up and generally safer to use version of C++.

                But anything that needs to be high performance is best done in C++, because ultimately it gets you closer to the system and gives you more control. And if you're producing a Windows desktop app, you'd be foolish to rely on Java being present on the end user's system.

                But if we're talking languages, to pick two examples Java and C# left out multiple inheritance, and (somewhat incomprehensibly) left out const correctness. These are advanced features that the authors of the language either didn't understand themselves, or felt that their target audience weren't capable of understanding. And of course garbage collection is just a way of making programming easier for people that can't handle the concept of memory allocation. This is why C++ programmers like to look down on Java/C#'ers; no matter how you look at it to be a good C++ programmer requires a greater degree of technical understanding and ability.

                OTOH it has to be said that the C++ world often turns into "look at me aren't I clever" programming, rather than just getting on with the job.

                They love the pointers do c & c++ programmers. It made them feel they were in Tron being that close to the memory.
                That'll be one of those legacy attitudes then.
                Will work inside IR35. Or for food.

                Comment


                  #28
                  Originally posted by VectraMan View Post
                  It's complicated because it's not just about the language, it's about the platform and that means the JRE/.NET that you have to buy into. If they'd made Java and/or C# produce native code and interface direct with the Windows API, then it's probably fair to say that there'd be little point using C++ for the vast majority of applications. Java could have won if it had just been a programming language, because there's a lot to like about it as a tidied up and generally safer to use version of C++.

                  But anything that needs to be high performance is best done in C++, because ultimately it gets you closer to the system and gives you more control. And if you're producing a Windows desktop app, you'd be foolish to rely on Java being present on the end user's system.

                  But if we're talking languages, to pick two examples Java and C# left out multiple inheritance, and (somewhat incomprehensibly) left out const correctness. These are advanced features that the authors of the language either didn't understand themselves, or felt that their target audience weren't capable of understanding. And of course garbage collection is just a way of making programming easier for people that can't handle the concept of memory allocation. This is why C++ programmers like to look down on Java/C#'ers; no matter how you look at it to be a good C++ programmer requires a greater degree of technical understanding and ability.

                  OTOH it has to be said that the C++ world often turns into "look at me aren't I clever" programming, rather than just getting on with the job.



                  That'll be one of those legacy attitudes then.
                  Composition over inheritance!

                  Comment


                    #29
                    <deleted>
                    Last edited by Bwana; 2 June 2022, 18:14.
                    Bwana

                    Comment


                      #30
                      Originally posted by VectraMan View Post
                      But anything that needs to be high performance is best done in C++, because ultimately it gets you closer to the system and gives you more control. And if you're producing a Windows desktop app, you'd be foolish to rely on Java being present on the end user's system.

                      But if we're talking languages, to pick two examples Java and C# left out multiple inheritance, and (somewhat incomprehensibly) left out const correctness. These are advanced features that the authors of the language either didn't understand themselves, or felt that their target audience weren't capable of understanding. And of course garbage collection is just a way of making programming easier for people that can't handle the concept of memory allocation. This is why C++ programmers like to look down on Java/C#'ers; no matter how you look at it to be a good C++ programmer requires a greater degree of technical understanding and ability.
                      I suspect that Verilog users might look down on C++ programmers for the same reason.

                      I think the key thing to look at is programmer productivity. My personal take is that by leaving out little used features that over complicate things and removing the need to perform memory allocation housekeeping C# and Java offer a massive improvement in programmer productivity and make it easier to write correct code that is less prone to a lot of common security issues. The simpler language syntax also make it easier to write sophisticated IDEs that further improve productivity, the frameworks offer huge wedges of common functionality in a standard way and in general people write better code because they have more time to worry about writing good code.

                      I also think the performance argument is a bit spurious these days, I used to believe this myself but a friend of mine (who at the time was dev team leader on a derivatives pricing system that run on one of the supercomputers that appears as "financial institution" in the top500 list i.e. fairly performance critical code) pointed out that a modern JIT compiler will compile to native code that is just as fast and has potential for making runtime optimisations that a static compiler doesn't, so can actually come out ahead. They had actually measured this, although obviously this is a fairly extreme server side example where there isn't any interaction with the desktop and so on.

                      Of course there are going to be situations where C or C++ is the best or only choice, but not for 99% of applications programming IMO.
                      While you're waiting, read the free novel we sent you. It's a Spanish story about a guy named 'Manual.'

                      Comment

                      Working...
                      X