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. Duck-typed script languages, or statically typed "compiled" languages?

Duck-typed script languages, or statically typed "compiled" languages?

Scheduled Pinned Locked Moved The Lounge
questioncsharpc++javascriptpython
38 Posts 29 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.
  • M Marc Clifton

    Examples of duck-typed, script languages: Javascript X| (what, me biased?) Ruby Python Examples of statically typed compiled languages: C C++ C# Go This isn't a question of which you think is better (I know, the answer is "it depends") but feel free to answer that question, and why (particularly what it depends on). My question is, if you were asked "how should I start learning programming?" would you a recommend duck-typed script languages or statically typed compiled language? Does it depend on what age the person is (for example, your kid, vs. a coworker interested in programming)? Which would you prefer to teach to someone new to programming? Why am I asking this? Because several sources of Python that I've encountered consider it a good learning language, and I'm curious what the experts here think! Bonus (virtual) points for whether you'd pick an imperative programming language or a functional programming language! Marc

    Imperative to Functional Programming Succinctly Contributors Wanted for Higher Order Programming Project!

    P Offline
    P Offline
    Plamen Dragiyski
    wrote on last edited by
    #28

    I vote for the non-existing language that combines:

    • Has optional types like PHP5
    • Object oriented programming and meta programming like C++
    • Dynamic like Javascript
    • Have syntax similar to C
    • Natively provided libraries are documented like Java

    I know I have big and unrealistic dreams, but every language I learned goes like 30%-60% on the right track, the rest creates a lot of "why?" questions in my head.

    1 Reply Last reply
    0
    • L Lost User

      Do I have to pick one of those? I'd start with assembly. It's structurally simple and easy to learn incrementally. "Literally a list of instructions" is the simplest model to get used to.

      K Offline
      K Offline
      kdmote
      wrote on last edited by
      #29

      Dude, I can't tell if you're serious. Because if you are, I'd say, "YIKES!" (and more below). If you're not, then I'd be happy to pile on with more helpful suggestions, like "Forget Assembly. If you really want to dip your toes in the water you should start out with machine language -- go straight to the binary, so you can really understand the way the computer thinks!" ...And if I really have to explain my "YIKES" comment... Assembly is a *marginally* useful language to explore for advanced coders. It is absolutely NOT what beginners should be introduced to. That's like giving entry-level math students a calculus book. Seriously. Yikes. Please never teach an intro course.

      L S 2 Replies Last reply
      0
      • C Chris Losinger

        i'd go with the simplest dynamically-typed scripting language i could find. introducing the language plus a compiler & linker is just too much at once.

        image processing toolkits | batch image processing

        K Offline
        K Offline
        kdmote
        wrote on last edited by
        #30

        This.

        1 Reply Last reply
        0
        • K kdmote

          Dude, I can't tell if you're serious. Because if you are, I'd say, "YIKES!" (and more below). If you're not, then I'd be happy to pile on with more helpful suggestions, like "Forget Assembly. If you really want to dip your toes in the water you should start out with machine language -- go straight to the binary, so you can really understand the way the computer thinks!" ...And if I really have to explain my "YIKES" comment... Assembly is a *marginally* useful language to explore for advanced coders. It is absolutely NOT what beginners should be introduced to. That's like giving entry-level math students a calculus book. Seriously. Yikes. Please never teach an intro course.

          L Offline
          L Offline
          Lost User
          wrote on last edited by
          #31

          I actually am serious. I don't disagree about the low relative usefulness. Of course assembly is not a convenient or easy-to-use language. But none of that matters. At its core, assembly is simple. Literally a list of instructions, that is something everyone immediately understands. The syntax is trivial too. What people have trouble with is decomposing problems into the right parts, which is a bit harder in assembly. But you can jump right in. Other languages suffer the problem that in order to do anything (or even *read* anything), a lot of pointless syntax and other magic incantations have to be learned.

          kdmote wrote:

          Seriously. Yikes. Please never teach an intro course.

          Too late. I'm a teaching assistant for a computer architecture course. First year course, straight to assembly (architecture too, of course). They also learn Java in parallel, where they get confused about declarations and types, many stay confused until they take a course in compiler construction. Almost no one is fundamentally confused about assembly, they just find it hard to use.

          1 Reply Last reply
          0
          • M Marc Clifton

            Examples of duck-typed, script languages: Javascript X| (what, me biased?) Ruby Python Examples of statically typed compiled languages: C C++ C# Go This isn't a question of which you think is better (I know, the answer is "it depends") but feel free to answer that question, and why (particularly what it depends on). My question is, if you were asked "how should I start learning programming?" would you a recommend duck-typed script languages or statically typed compiled language? Does it depend on what age the person is (for example, your kid, vs. a coworker interested in programming)? Which would you prefer to teach to someone new to programming? Why am I asking this? Because several sources of Python that I've encountered consider it a good learning language, and I'm curious what the experts here think! Bonus (virtual) points for whether you'd pick an imperative programming language or a functional programming language! Marc

            Imperative to Functional Programming Succinctly Contributors Wanted for Higher Order Programming Project!

            L Offline
            L Offline
            Leng Vang
            wrote on last edited by
            #32

            I would pick statically-typed language to teach someone new to programming. Duck-typed languages, even though they are omitted from syntax, the binary code still deal with typed data. Better fill their heads with what really are under the syntax to begin with. That way they are better equipped to understand when/if they switch to duct-type languages. Teaching new programmer with duct-type languages is equivalent to speaking a foreign language with your interpreter standing by your side.

            1 Reply Last reply
            0
            • D Danger Bunny

              Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you.

              M Offline
              M Offline
              Marc Clifton
              wrote on last edited by
              #33

              DangerBunny wrote:

              Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you.

              :laugh: :laugh: :laugh: OK, that one is going on my blog, my sig, my wall (the physical one), twitter, where ever I can post it. Marc

              Imperative to Functional Programming Succinctly Contributors Wanted for Higher Order Programming Project! Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny

              1 Reply Last reply
              0
              • K kdmote

                Dude, I can't tell if you're serious. Because if you are, I'd say, "YIKES!" (and more below). If you're not, then I'd be happy to pile on with more helpful suggestions, like "Forget Assembly. If you really want to dip your toes in the water you should start out with machine language -- go straight to the binary, so you can really understand the way the computer thinks!" ...And if I really have to explain my "YIKES" comment... Assembly is a *marginally* useful language to explore for advanced coders. It is absolutely NOT what beginners should be introduced to. That's like giving entry-level math students a calculus book. Seriously. Yikes. Please never teach an intro course.

                S Offline
                S Offline
                svella
                wrote on last edited by
                #34

                kdmote wrote: That's like giving entry-level math students a calculus book. I would strongly disagree. It is much more like teaching them the basics of arithmetic by hand before letting them use a calculator.

                1 Reply Last reply
                0
                • L Lost User

                  Do I have to pick one of those? I'd start with assembly. It's structurally simple and easy to learn incrementally. "Literally a list of instructions" is the simplest model to get used to.

                  R Offline
                  R Offline
                  R Erasmus
                  wrote on last edited by
                  #35

                  Don't agree... There is a reason people don't use GOTO in c anymore... Assembly is a whole bunch on GOTOs with some non-portable code.

                  "Program testing can be used to show the presence of bugs, but never to show their absence." << please vote!! >>

                  L 1 Reply Last reply
                  0
                  • R R Erasmus

                    Don't agree... There is a reason people don't use GOTO in c anymore... Assembly is a whole bunch on GOTOs with some non-portable code.

                    "Program testing can be used to show the presence of bugs, but never to show their absence." << please vote!! >>

                    L Offline
                    L Offline
                    Lost User
                    wrote on last edited by
                    #36

                    Yes, but that reason was that it doesn't scale to large programs and is in general hard to use, not that it's hard to learn or to at least understand the fundamentals. The point of a first language is not writing large programs in it so that aspect doesn't matter.

                    1 Reply Last reply
                    0
                    • M Marc Clifton

                      Examples of duck-typed, script languages: Javascript X| (what, me biased?) Ruby Python Examples of statically typed compiled languages: C C++ C# Go This isn't a question of which you think is better (I know, the answer is "it depends") but feel free to answer that question, and why (particularly what it depends on). My question is, if you were asked "how should I start learning programming?" would you a recommend duck-typed script languages or statically typed compiled language? Does it depend on what age the person is (for example, your kid, vs. a coworker interested in programming)? Which would you prefer to teach to someone new to programming? Why am I asking this? Because several sources of Python that I've encountered consider it a good learning language, and I'm curious what the experts here think! Bonus (virtual) points for whether you'd pick an imperative programming language or a functional programming language! Marc

                      Imperative to Functional Programming Succinctly Contributors Wanted for Higher Order Programming Project!

                      M Offline
                      M Offline
                      Moykn
                      wrote on last edited by
                      #37

                      I would recommend the one i'm most comfortable with. Since this person probably will ask me a lot of question when he/she/*he start learning. :)

                      Sorry, my english is bad beta!

                      1 Reply Last reply
                      0
                      • M Marc Clifton

                        Examples of duck-typed, script languages: Javascript X| (what, me biased?) Ruby Python Examples of statically typed compiled languages: C C++ C# Go This isn't a question of which you think is better (I know, the answer is "it depends") but feel free to answer that question, and why (particularly what it depends on). My question is, if you were asked "how should I start learning programming?" would you a recommend duck-typed script languages or statically typed compiled language? Does it depend on what age the person is (for example, your kid, vs. a coworker interested in programming)? Which would you prefer to teach to someone new to programming? Why am I asking this? Because several sources of Python that I've encountered consider it a good learning language, and I'm curious what the experts here think! Bonus (virtual) points for whether you'd pick an imperative programming language or a functional programming language! Marc

                        Imperative to Functional Programming Succinctly Contributors Wanted for Higher Order Programming Project!

                        M Offline
                        M Offline
                        mbb01
                        wrote on last edited by
                        #38

                        For a beginner I'd definitely steer clear of functional languages. As far as I know there isn't one scripting language that implements OO cleanly - perhaps Python? - and I think it is important to be able to teach the principles of OOP&D in a language that does i.e. java or C#. But before you get onto OOP you should teach the basics of structured programming. That means you should be starting off with C or Pascal. With languages like C,Pascal,C# or Java in place, the scripting languages will fall in line and the limitations should be more obvious.

                        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