The Lounge is rated PG. If you're about to post something you wouldn't want your
kid sister to read then don't post it. No flame wars, no abusive conduct, no programming
questions and please don't post ads.
And how debugging is going to ensure such conformance? QA testing can help, yes, but not debugging. Debugging is useless, as long as your code is guaranteed to do exactly what is specified. If program is working incorrectly from end users' perspective, then specification have to be fixed, not the code.
I didn't say that debugging is going to ensure conformance to business requirements. All I'm saying is that it is ridiculous to say that strongly typed programs don't need to be debugged. Strongly typed programs contain bugs too. And debugging (stepping through code with a debugger attached) is also a normal part of development. Sometimes its the only way to check what the program is really doing - cause the guys who wrote that +100K LOC (5 years ago) are no longer working at the company end documentation is almost non existing...
I said, why bother using "strong" type system if you still have to debug your code afterwards? You either use a real, proper static type system and then you never have to debug your code interactively, or you'll be more flexible with a dynamic type system and do all that hipster interactive stuff.
People tend to overuse interactive debugging, and it is really sad. Debugging is not a "normal" part of development. It should be considered a very last resort, when nothing else works. With a proper type system you don't have to step through your code to find out, what the program is "really doing" - types will tell you all about it straight away.
I agree - the biggest issue I have with Ruby is the duck typing, it's really easy to get oneself in trouble and it results in bad architecture (actually, no architecture). I really miss strong typing and good design practices (mainly interfaces and inheritance) that are simply missing. It doesn't mean that one can't do those things in Ruby, it's just that they're not typically done.
I'm a C++ coder. Aside from a quick note that C# code doesn't distinguish between namespace and class member stuff (always that single dot to divide things, instead of a nice :: ), I feel your pain.
PHP, for what it's worth, does have their === operator which is, by-and-large, a way to do some strongly-typed comparisons.
There's a place for weakly typed languages - it's a specialization with a place.
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein
"As far as we know, our computer has never had an undetected error." - Weisert
"If you are searching for perfection in others, then you seek disappointment. If you are seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010
the point is beginners rarely never follow tutorial whose subject is "refactor this 100 000 LOC project"
It's harder to appreciate strong typing from the beginner point of view.
For the one that already lost its hair once, the advantages are crystal clear.
harder to appreciate strong typing from the beginner point of view
Unrelated, but that reminds me of when I was just learning BASIC -- using floats (x) and heard about integers (x%), and thought, why would would I want to use an integer when the floats work just fine?
I know this will incur the wrath of many, but client side js has always struck me as the playground for amateurs. Professionals are forced to deal with it and it's possible to write solid, clean js code, but most of what you see on the sites out there is both sloppy and ugly. Error handling seems to be an alien concept and single character variable names are the de facto standard. I can't remember the last time I had a browser up running a debugging session on my own stuff, popped up another tab to go somewhere, and didn't see a boatload of complaints about all manner of stupid and obvious things that no one even bothered to test for.
Add to that the fact that once you're on the client side you're basically in IfDef Hell trying to cope with the flakiness and inconsistency of a gazillion browser versions and it's not exactly what I'd call programmer's utopia.
I do web development because it pays money. It is, nonetheless, a crappy environment to code in. Client side js stuff just makes it worse.
I was surfing around the web and came across this french website[^] by Denis Dollfus. I just thought it would be hilarious to port this application to a tablet PC with touch screen, and let the cat play the shark. It should keep it busy for a while
I ported the code to WPF VB and you could download that here[^]
Cat claws are made of the same stuff as our nails, so not a single scratch yet. The real damage is to the carpet under the tablet when they try to figure out where the stuff went after it goes off one side or another. We have had them flip it over a few times trying to get underneath it.
We currently have a game that has a few modes. A mouse that scurries and squeaks when they bop it, a spider which makes "insect" noises when it moves, a fish that makes swimming noises and splashes when bopped. Plus it has a painting game that is the same as the mouse, but leaves colored paw prints wherever they hit it and smears when they drag their paw. Then it allows you to save the image. I haven't gone that far yet.
Fortunately for me, the one we have does not include in-application purchases. Although that does give me a cunning plan, I need a way to deliver virtual catnip via IAP.
We actually picked it up when we got our second cat. Turned the game on, put the tablet on the floor and they forgot about the fact that a cat they had never met before was sitting less than a foot away... and both proceeded to work on killing the mouse.
A friend of mine and his girlfriend foster cats for a rescue shelter, they use the same game to help new fosters relax and feel more comfortable. Nothing worse than a stressed cat in a new environment. Not good for their health and usually not good for yours either.