Jump to content
  • Advertisement

Spoonbender

Member
  • Content count

    3938
  • Joined

  • Last visited

Community Reputation

1258 Excellent

About Spoonbender

  • Rank
    Contributor
  1. Spoonbender

    My Life in 30 Seconds

    Ooo sweet. Welcome back, and congrats on the wedding :D
  2. Spoonbender

    I Believe in Static Checking II: Tests and Bugs

    Quote:Original post by Rebooted The type system I linked to earlier also proves that programs are free of deadlock (in all cases - terms which contain deadlocks are ill-typed, and ill-typed terms are not programs). My objection was to "All this talk of static and dynamic typing is just blind dancing around this simple statement of a rather obvious fact," because it makes it sound like the checking abilities of a dynamically typed/untyped language like untyped lambda calculus, Scheme or Python are equal to the checking abilities of a typed language, just delayed. And it isn't that simple. Without cross-checking with the previous post, wasn't his point simply that everything you can check statically, can also be checked dynamically, at runtime. And not everything that can be checked at runtime, can also be checked statically? Of course you're right, when the language is cleverly designed to allow stuff like this, then yes, you can detect deadlocks in non-trivial cases. But in the general case? Across languages? No matter how complex your static analysis tools, I'd hate to see you try to reliably detect deadlocks in C++ [wink] Of course, in languages with sensible type systems static tools can make a good number of useful assertions about your code. And of course, it's pretty much impossible to do this statically in untyped languages. But that wasn't his point, was it? His point was simply that you can always delay the checks until runtime, so you'll always be able to make at least as many assertions, and catch at least as many errors, at runtime as you can statically at compile-time.
  3. Spoonbender

    Python, C#, and Beginners

    Quote:Second, the Python syntax is completely foreign from anything else. It won't help you understand Java, C#, or C++, which means that learning those languages eventually will involve a bit more work. I don't think that in itself is such a bad thing. On the contrary, I'd say that if a beginner starts out with something different from the "common" mainstream languages (let's face it, if you're going to be a programmer, you'll end up spending a lot of time in the C/C++/C#/Java family of languages) I think it's a good thing to learn from day one that this isn't all there is to programming. You don't have to think in classes and objects, the entry point doesn't have to be called main, and functions don't have to be as anemic as they are in the C-family of languages. I have the same misgivings as you do about the dynamic typing bit though. I started out with a functional language (ML), so static typing (and type inference), recursion and higher-order functions don't seem exotic or foreign to me (I'm not as good as functional programming as I'd like, but my point is it's not something far removed from "regular" programming. It's where I started) One thing I like about Python is that functional programming comes more naturally there, as opposed to, say, C#, where the first rule you learn is "Object-oriented is God!" You have to be a pretty advanced programmer (preferably knowing a few other languages too), to even start thinking about the functional features they've started adding into the language. (Even delegates take *a lot* of getting used to if the only languages you know are C#/C++/Java.) When you're starting out in C#, all you see is the dogma that "OOP is the answer. You don't need to look to other solutions, you don't need to know that other paradigms exist". I think if you start out with Python, you might end up more open to different paradigms. Of course, since I don't have, say, 50 beginners to test all this on, it's nothing more than a hunch... [grin]
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!