Domain: crockford.com
Stories and comments across the archive that link to crockford.com.
Comments · 144
-
Re:The web is one hack after another!
> built around one of the worst programming languages around (JavaScript),
.
/sarcasm But it such as bastion of good design. *snicker* You mean it being written in 10 days wasn't long enough? :-)"JavaScript: Designing a Language in 10 Days" aka Javascript: 10 days for the designer, 10 years of frustrations about fucked up design for devs
* http://www.computer.org/csdl/m...As Douglas Crockford, inventor of JSON, said about Automatic Semi-Colon Insertion
@34:31 "Why am I betting my career on this piece of crap"
And about amateurs
"Most of the people writing in JavaScript are not programmers. They lack the training and discipline to write good programs. JavaScript has so much expressive power that they are able to do useful things in it, anyway. This has given JavaScript a reputation of being strictly for the amateurs, that it is not suitable for professional programming. This is simply not the case."
But let's keep relying on stupid shit such as this hack to turn on type safety:
"use strict";
--
Why do the two shittiest languages, PHP and Javascript, power the web?? -
Re:bullshit
Related: http://www.crockford.com/javas...
-
Re:JavaScript includes Java WT*???Of course I can. Search for "Javascrpt is not Java" to get a bit of history here
JavaScript is a completely separate technology from Java. Java was the "in thing" back in the days when Brendan Eich at Netscape created a programming language that was originally going to be called LiveScript, so unfortunately they decided to rename it from LiveScript to JavaScript in the hope of catching the media’s interest.
and here
JavaScript, aka Mocha, aka LiveScript, aka JScript, aka ECMAScript,
The Java- prefix suggests that JavaScript is somehow related to Java, that it is a subset or less capable version of Java. It seems that the name was intentionally selected to create confusion, and from confusion comes misunderstanding. JavaScript is not interpreted Java. Java is interpreted Java. JavaScript is a different language.
The Question: What's the difference between JavaScript and Java? The best answer on stackoverflow
Java and Javascript are similar like Car and Carpet are similar.
So, you got any evidence showing the GP was right? Because the GP, contrary to your claim, ignored the facts.
-
Re: COBOL was better than JavaScript.
I wouldn't go so far as to call JS a "Scheme implementation," but it is indeed somewhat like Scheme.
-
Re:another language shoved down your throat
You are far from alone in misunderstanding Javascript.
That link is 13 years old. Surely JavaScript has become even more confusing by now.
-
Re:another language shoved down your throat
You are far from alone in misunderstanding Javascript.
-
Re: Two sides to every issue
JavaScript does have private methods: http://javascript.crockford.co...
-
Google misunderstands
-
Re:Worth it.
I think it was Crockford who said that the programmers who understand multi-threading should be captured and compelled to do systems programming, but I'm not sure.
Ah, I remembered right.
Races and deadlocks are just really difficult to reason about. There are very few people in the world who can reason about them effectively. My belief, and I mean this sincerely, is that they should all be enslaved and made to work on operating systems. And that nobody else should have to go near this stuff, because it's just way too complicated.
-
Re:Worth it.
What bad habits? Logic of whatever type you want to implement is inherently sequential.
No, it is not. Logic is inherently reflexive and transitive. It's a major failing in math education, that people think it is about performing algorithms in sequence. Most people never learn the relations that allow you to rearrange the equations and create new algorithms.
In programming, the idea of sequential programming has problems. CPython guarantees that only one bytecode is executing at one time, and therefore they find it extremely difficult to remove the Global Interpreter Lock. C guarantees sequence only between sequence points, and makes liberal use of undefined behavior. Even Javascript, with its relatively simple model, has variable hoisting that catches beginners by surprise. Locking limits scalability, and shared-memory multi-threading is so difficult that it's believed that almost nobody knows how to do it properly. I think it was Crockford who said that the programmers who understand multi-threading should be captured and compelled to do systems programming, but I'm not sure.
Declarative and functional programming don't require execution in a particular sequence. The canonical example of this is Haskell, with its lazy evaluation, but logic programming is based on this idea, and even event-driven programming is like programming inside-out for a sequential programmer.
-
Re:Is this a joke?
Javascript is much more a functional programming language than a procedural one. It's by no means as pure as Haskell, but this also allows it to be useful.
I suggest you read up on some of the articles by Douglas Crockford, who does an awesome job of explaining the true nature of Javascript to the world. This is a good starting point.
If you don't believe Javascript is indeed a functional programming, here is a Google Talk by the same Douglas Crockford explaining how to do monads in Javascript: http://www.youtube.com/watch?v=b0EF0VTs9Dc
-
Re:Full classes?
if prototypical inheritance is so great, why does almost everyone write a class-like wrapper around it to make it useful?
Probably because they haven't read this.
if (typeof Object.create !== 'function') {
Object.create = function (o) {
function F() {}
F.prototype = o;
return new F();
};
}
newObject = Object.create(oldObject); -
Secure JavaScript crypto environment?
Douglas Crockford tends to disagree. And he's not alone.
How do they mitigate these inherent security problems of the JavaScript platform in the API draft? With XSS, I can always overwrite the browser's crypto API object, replacing it with a rogue implementation.
My understanding has been that JavaScript in its present form is not a viable platform for cryptography.
-
Re:if php is broken what is javascript?
The World's Most Misunderstood Programming Language
http://javascript.crockford.com/javascript.html
I strongly agree with this. Most people who complain about JavaScript never fully learned it, and hate the DOM (the DOM isn't really JavaScripts fault)
I've been working with Node.js for a while, and love it compared to PHP. It's faster too, and my code can run client or serverside depending on the needs/abilities of the browser, bonus! -
Re:if php is broken what is javascript?
The World's Most Misunderstood Programming Language
-
Re:Notify facebook and contact an attorney
It's called a run-on sentence composed of multiple comma-splices, and it's incorrect. Learn about it.
Strange. No one seems to read The Elements of Style anymore.
It can be had for free online or you can buy a copy.
-
Re:Douglas Crockford is amazing
I strongly suggest that you start with "The World's Most Misunderstood Programming Language: http://javascript.crockford.com/javascript.html. And then, watch his YUI videos.
-
jQuery + Douglas Crockford
1. Read everything Douglas Crockford has on his JavaScript website. Use his jslint program. Down the road, read the code of his jslint program, I suppose. Buy and read his book. It's also available for the Kindle. Read the whole book twice. Basically, the lesson is don't make JS try to be Java, it only causes headaches.
2. Get a good JavaScript book for the language itself, this listing of JavaScript book reviews recommends the Wrox book, but I haven't read it, I use the 6th edition of the Flanagan book. See the link.
3. It's a language that, along with HTML and CSS, needs you to have a great memory or a good IDE that will prompt you for the allowable names. You can get a version of Eclipse pre-built for JavaScript, and you can get the Active State Komodo Edit program, both free. They say the Komodo IDE is even better, but it's expensive and probably not as complete as the (free) Eclipse.
4. You can get a version that runs on your desktop like a shell or perl/ruby/python will, but it isn't necessary. I know you can easily get a version of Mozilla SpiderMonkey that will do that.
5. Don't use the double-equals comparison operator, it's too confusing. Use the triple-equals operator ( "===" ), it's a pain to type but it's more straightforward.
6. Be wary form whence you copy. There's a lot of terrible code out there.
7. Use jQuery after your first two or three practice web pages, and after you've got CSS under control. This means also get a good CSS book. I guess start with the 'Lie and Boss' book, even though it's old.
-
Before going any further ...
Understand the Javascript language, because it is a simple, yet powerfull language on its own. So, before digging deeper into libraries and tools, take some time to read the javascript garden, which will give you the dirty parts: http://bonsaiden.github.com/JavaScript-Garden/ And, as previous posters already said, the Crockford site which will give you good insight into good practices and useful patterns: http://www.crockford.com/
-
Read more
-
Douglas Crockford is amazing
This man has done more for my understanding of JavaScript than anyone else. My abilities took a huge leap after reading his clear and deep explanations that get to the heart of JavaScript's design:
Douglas Crockford's JavaScript articles
He covers prototypical inheritence, classical inheritence, how to create private members, closures, engine performance, and other widely misunderstood aspects of javascript. HIGHLY recommended.
LS
-
Be dynamic when you use a dynamic language
Dynamic languages have different strengths and weaknesses than static languages. The best advice I can give you is: deal with it.
Best practice in a dynamic language includes automated unit tests for your code, for example. I don't use JavaScript so I can't tell you all the best practices and developer idioms for JavaScript, but I have heard that the best book is the O'Reilly reference book and that anything by Crockford is worth reading.
Note that lots of other Slashdotters are already giving you very similar advice to what I wrote.
P.S. Hmm, doing a Google search for "JavaScript best practices" found this: http://www.javascripttoolbox.com/bestpractices/
steveha
-
Re:LOL
I don't think Utes are the kind of Indians we're talking about here.
There is a line, I' not sure where exactly it should be drawn, but certainly this is well on the other side:
Ladle Rat Rotten Hut
Wants pawn term dare worsted ladle gull hoe lift wetter murder inner ladle cordage honor itch offer lodge, dock, florist. Disk ladle gull orphan worry putty ladle rat cluck wetter ladle rat hut, an fur disk raisin pimple colder Ladle Rat Rotten Hut.
Wan moaning Ladle Rat Rotten Hut's murder colder inset.
"Ladle Rat Rotten Hut, heresy ladle basking winsome burden barter an shirker cockles. Tick disk ladle basking tutor cordage offer groin-murder hoe lifts honor udder site offer florist. Shaker lake! Dun stopper laundry wrote! Dun stopper peck floors! Dun daily-doily inner florist, an yonder nor sorghum-stenches, dun stopper torque wet strainers!"
"Hoe-cake, murder," resplendent Ladle Rat Rotten Hut, an tickle ladle basking an stuttered oft.
Honor wrote tutor cordage offer groin-murder, Ladle Rat Rotten Hut mitten anomalous woof.
"Wail, wail, wail!" set disk wicket woof, "Evanescent Ladle Rat Rotten Hut! Wares are putty ladle gull goring wizard ladle basking?"
"Armor goring tumor groin-murder's," reprisal ladle gull. "Grammar's seeking bet. Armor ticking arson burden barter an shirker cockles."[the rest of the story is at the link]
-
Do not want
Working with Objects seems particularly primitive to me. I believe someone else pointed out the lack of strong typing and inheritance, among other things
Prototypal object models are just different from class-based object models. Neither is particularly better/worse than the other, just different. If you want to you can even implement "classical" object orientation in Javascript if you want.
You can almost get strong typing (not static) in Javascript if you always use the "===" and "!==" operators instead of "==" and "!=". (See "JavaScript: The Good Parts" by Crockford and JSLint.com.)
I wish that hardware manufacturers, browser develoeprs, and web standards groups, etc. would normalize and standardize languages and hardware access so that it [...]
This was more or less what happened with the DOM... one the (rightly) most maligned APIs of all. You may think you want an API designed by a committee, but you really don't. If DOM isn't example enough, I don't know what would be.
-
Read Crockford's "Javascript: the good parts".
How does one establish whether methods/vars are public/private/protected? Or inheritance? To me, the weird misappropriation of the function keyword to build objects, the verbosity of the code to express objects, and the lack of inheritance, etc. are primitive compared to Actionscript 3, to Java, to PHP5, to C++, and a variety of other languages I've dealt with.
You really need to read Crockford's "Javascript: the good parts". You absolutely do make private methods and vars (ever noticed that you can't directly call jQuery's internal methods? Or TinyMCE's? Or any other major library/framework?)
He also makes the case that actually JS has more patterns to allow code re-use. That's why things like Mootools can even fake things that look like classical class inheritance patterns for you, if you really want to do that.
Check out http://www.crockford.com/javascript/inheritance.html and http://javascript.crockford.com/prototypal.html and http://www.slideshare.net/douglascrockford/javascript-the-good-parts-3292746
-
Read Crockford's "Javascript: the good parts".
How does one establish whether methods/vars are public/private/protected? Or inheritance? To me, the weird misappropriation of the function keyword to build objects, the verbosity of the code to express objects, and the lack of inheritance, etc. are primitive compared to Actionscript 3, to Java, to PHP5, to C++, and a variety of other languages I've dealt with.
You really need to read Crockford's "Javascript: the good parts". You absolutely do make private methods and vars (ever noticed that you can't directly call jQuery's internal methods? Or TinyMCE's? Or any other major library/framework?)
He also makes the case that actually JS has more patterns to allow code re-use. That's why things like Mootools can even fake things that look like classical class inheritance patterns for you, if you really want to do that.
Check out http://www.crockford.com/javascript/inheritance.html and http://javascript.crockford.com/prototypal.html and http://www.slideshare.net/douglascrockford/javascript-the-good-parts-3292746
-
Scheme? Nope.
Repeat after me: "JavaScript is Scheme in C's Clothing."
Ok, let's test this claim:
- Does Javascript have anonymous lexically scoped closures? Yes.
- Does Javascript have tail call optimization as an implementation requirement? No.
- Does Javascript have first-class continuations with unlimited extent as an implementation requirement? No.
- Does Javascript have hygienic macros? No.
Score: 1/4. I call this a failing grade.
-
Re:A long way from SICP
Repeat after me: "JavaScript is Scheme in C's Clothing."
-
Douglas Crockford explains...
Douglas Crockford explains why you think JavaScript is a bad programming language: http://www.crockford.com/javascript/javascript.html
-
Re:Perfect example of popularity over quality
Do you know JavaScript ? I know it is misleading, but have a look here:
-
Re:Javascript is a disaster
While this point of view was quite popular 5-10 years ago, now it just betrays your ignorance. We know better now. Douglas Crockford has been the most active promoter of a more mature understanding of Javascript: http://javascript.crockford.com/
Some of Javascript's repuation is, like PHP's, historical baggage based on immature early versions that lacked features or had bugs which have since been corrected.
But the real problems with Javascript are threefold:
1. Being embedded in the browser, it can only operate on the elements the browser provides; since those elements differ from browser to browser, the naive assumption is that it is the language (or at least its implementation) causing these differences.
2. Javascript may appear to be a simplified version of Java, but it's not. Crockford contends it is "Lisp in C's clothing". Most professional programmers know Java-like languages much better than Lisp, so they don't really understand Javascript's power and elegance,
3. Most people writing Javascript aren't even programmers, and those that are, are often not very good ones. While this is not unique to Javascript at all, it is certainly the case that a good chunk of the Javascript in existence is of the form of "knew just enough of the language to use it in the worst possible way". (This is often true of PHP, COBOL, and many other language as well - the easier to use and more accessible the language is, the more likely this is the case.) -
Re:Javascript is a disaster
You're entitled to your own opinions on javascript -- I'm not a huge fan myself, although I see some of it's utility, especially the proper use of first-order functions a-la List or Scheme.
Your original post, however, and many since, have contained glaring factual inaccuracies. At least try to understand the language structure and design before making an argument to whether it's good or not. There are much better critiques if you're determined to hate it.
Having operator overloading and type inference does not mean "no types to speak of" or "+ doesn't work". It means that there's a design decision about the language -- you may not like it and plenty don't, but it's hardly uncommon either. I really don't think you have vars "containing numerical values, were assigned numerical values, are treated as strings". At some stage you put a string in the variable, 1 + 1 still equals 2 in javascript. "1" + 1 does not.
It's been explained about 20 times that having classes is not the same thing as being object oriented. Here's a better and more complete explanation from Douglas Crockford (one of the people who have contributed to this "one man hack" via ECMA).
http://www.crockford.com/javascript/inheritance.html
The first couple of sentences are especially relevant:
"JavaScript is a class-free, object-oriented language, and as such, it uses prototypal inheritance instead of classical inheritance. This can be puzzling to programmers trained in conventional object-oriented languages like C++ and Java."
Says it all.
-
Re:wrong device
You think Nintendo will allow nudity on their devices?
Every company but Apple just loves nudity.
Tell that to lucas arts.
-
Re:Modern Computers do come with BASIC
JavaScript is much, much closer related to LISP than Basic.
http://www.crockford.com/javascript/javascript.html
It just has C-like syntax, that is all.
-
Re:Scheme
JavaScript itself is not problem, even if "use strict" would come handy. The biggest problem is DOM and other associated APIs a JavaScript programmer must deal with. It's horrible. But along good practices (Crockford's Javascript The Good Parts come to mind) it is a very nice language to deal with.
Take a look at Crockford's JavaScript: The World's Most Misunderstood Programming Language for reference.
-
Re:"Offers one way of doing things"
Douglas Crockford of Yahoo seems a bit 'meh' about HTML5, he thinks it should have been focused on security. (starts 1m33seconds into video clip).
He published an HTML5 wish-list back in 2007.
-
Re:The same Sony that ruthlessly killed Sega?
Exactly. Other issues:
DRM on the NES.
Suing the people who made the Game Genie.
Censoring their games in a way that would make Apple App Store critics curl into the fetal position. This is a good read: http://www.crockford.com/wrrrld/maniac.htmlHowie Rubin of Jaleco (the company that was going to publish the game under license) advised us the that the baddest bad word is Kill. The central activity in most Nintendo games is killing things. The image and the act are good, but the word is bad, even if the word does not suggest the image or the act.
-
Re:3000BC called...
They might do better using a purpose-designed set of ideograms, such as BlissSymbols. You can learn the basics here
-
Re:Java
I expect Android to be where the lion's share of Java development happens in the next few years
This is a joke, right? You must have no sense of how broadly Java is used in the industry. Even if Android were to surpass the iPhone in popularity, all the Android apps put together would be just a drop in the bucket next to the massive, active Java codebase in other sectors.
You're onto something with regard to JavaScript's importance, on the other hand, but I'd hardly call that "regrettable". It has its quirks (coerced concatenation with the + operator, some math gotchas), but on the whole it's an excellent programming language, as dynamic imperative languages go. I'm surprised at the extent to which the language is still misunderstood... think of it as Lisp in C's clothing.
-
Re:Let's just ditch JavaScript.
The only thing about JavaScript that is a quick hack is its name. JavaScript is the world's most misunderstood programming language (funny how this link finds its way into every Slashdot story that mentions JavaScript) as well as the first (only?) functional language accepted by maistream.
You might argue that most of the JavaScript code on the Internet is a quick hack (or at least was, before frameworks like Prototype and jQuery became popular), but that doesn't make it a bad language.
-
Re:javascript
First of all, javascript is an awful language.
No, it's not. JavaScript is a simple, elegant language with some really nifty features, with a horrible runtime environment (web browsers with varying degrees of standards compliance) and an awkward model for doing things in that environment (the Document Object Model) grafted onto it.
I suggest you read some of Douglas Crockford's writings. JavaScript: The World's Most Misunderstood Programming Language would be a good start.
That being said, I do not think JavaScript is a good first language either, due to the two reasons I mentioned. But those are not faults of the language as such.
-
Re:Why bother?
When I talk about an object oriented programming language I'm referring to a language that allows you to use the concepts of OOP in a *natural* and *homogeneous* way.
Please provide an example of how Javascript doesn't do this.
I'm aware that it isn't completely homogeneous in the same way that, say, Ruby is. I challenge you to show me an example of this that actually matters.
I don't want to write a library and helper methods to write an OO program, I want to use the language.
So when you write C++, do you never use the std namespace? When you write Perl, do you completely ignore the existence of CPAN?
People have already written libraries that implement many of the ideas of "traditional" OOP, though if you talk to the person who actually coined the term, most of those "traditional" ideas really aren't.
I think it speaks to the power of a language when whole paradigms like that can be written as libraries. It means that the language is multiparadigm without even trying. And it's always nice to see something you'd think of as a core language feature, even a keyword, but it's possible to express it naturally as library code.
It's OK if it doesn't has classes, and therefore inheritance does not have a place in Javascript,
This is a non-sequitur. Javascript is built on prototypical inheritance, which does not rely on classes.
I'm guessing you found that "private" page -- and enforced-private stuff is not a requirement of OOP, by the way -- but you probably found it here, right? Shortly after that link is another -- this explanation of inheritance in Javascript.
just stop trying to force it to be something that it was not meant to be (that is a general purpose language to write medium to large scale applications).
The fact that it wasn't "meant" to be isn't entirely relevant. It does explain some of the problems we see with it -- I certainly won't claim it's perfect -- but can you explain why Javascript isn't suitable for medium to large scale applications?
-
Re:Why bother?
When I talk about an object oriented programming language I'm referring to a language that allows you to use the concepts of OOP in a *natural* and *homogeneous* way.
Please provide an example of how Javascript doesn't do this.
I'm aware that it isn't completely homogeneous in the same way that, say, Ruby is. I challenge you to show me an example of this that actually matters.
I don't want to write a library and helper methods to write an OO program, I want to use the language.
So when you write C++, do you never use the std namespace? When you write Perl, do you completely ignore the existence of CPAN?
People have already written libraries that implement many of the ideas of "traditional" OOP, though if you talk to the person who actually coined the term, most of those "traditional" ideas really aren't.
I think it speaks to the power of a language when whole paradigms like that can be written as libraries. It means that the language is multiparadigm without even trying. And it's always nice to see something you'd think of as a core language feature, even a keyword, but it's possible to express it naturally as library code.
It's OK if it doesn't has classes, and therefore inheritance does not have a place in Javascript,
This is a non-sequitur. Javascript is built on prototypical inheritance, which does not rely on classes.
I'm guessing you found that "private" page -- and enforced-private stuff is not a requirement of OOP, by the way -- but you probably found it here, right? Shortly after that link is another -- this explanation of inheritance in Javascript.
just stop trying to force it to be something that it was not meant to be (that is a general purpose language to write medium to large scale applications).
The fact that it wasn't "meant" to be isn't entirely relevant. It does explain some of the problems we see with it -- I certainly won't claim it's perfect -- but can you explain why Javascript isn't suitable for medium to large scale applications?
-
Re:Javascript is actually a great language
Javascript has a lot of neat little features, but some of the design leaves me wanting. I wish it were a little more C-like in its design. I'd like block-level scope. It's not a flaw or a problem, but it's definitely something I'd like. I can see people calling that a wart. 'typeof' is just plain broken. To quote Douglas Crockford:
typeof [] produces 'object' instead of 'array'. That isn't totally wrong since arrays in JavaScript inherit from objects, but it isn't very useful. typeof null produces 'object' instead of 'null'. That is totally wrong.
Further down, he explains how to differentiate between objects and arrays constructed in a different frame. That you need so much code for that is, in my opinion, a wart on an otherwise concise language.
-
Re:Why bother?
You mean the Douglas Crockford that wrote http://www.crockford.com/javascript/private.html?
When I talk about an object oriented programming language I'm referring to a language that allows you to use the concepts of OOP in a *natural* and *homogeneous* way. I don't want to write a library and helper methods to write an OO program, I want to use the language.
It's OK if it doesn't has classes, and therefore inheritance does not have a place in Javascript, just stop trying to force it to be something that it was not meant to be (that is a general purpose language to write medium to large scale applications).
-
Re:Ruby Javascript
Sounds like the start of a Ruby fanboi crowd right here on
/.Javascript is a powerful functional protyped-based language that is just as powerful as any other dynamic language. Libraries like jQuery show just how powerful and expressive the language can be while applications like google maps, gmail, etc show how capable the language is.
It gets most of its negative sentiment from devs who don't understand it fully to appreciate its strengths. I would suggest using the resources on http://www.crockford.com/javascript/ to learn some advanced techniques.
For anyone who's interested I have a Class.js as described on my blog http://www.servicestack.net/mythz_blog/?p=3 that simplifies using OOP in Javascript.
-
Re:Doesn't it depend on Nintendo's strategy?
As far as I remember, Nintendo has been trying to build up the corporate image of a "family friendly" entertainment company.
You remember wrong then. Or it's just semantic, I don't know.
Nintendo actually built up a corporate image of a "for every member of the family" entertainment company.
And strong evidence of this are their handheld consoles, which can't be played by all the family at once, but every member of the family can play games on them.
Perhaps that's what you meant.
Apart from that, Nintendo is just selling entertainment devices, and as for their home consoles, they're still selling a true home console. Home consoles always were local multiplayer devices, with at least 2 controllers that could be attached (there are some exceptions that were failures).The elderly people on slashdot might remember the ridiculous censorship that Nintendo forced on "Maniac Mansion" before they backed its release for the NES (link: http://www.crockford.com/wrrrld/maniac.html).
Given that Nintendo was heavily burned with lawsuits as soon as they tried to enter the western markets, I think history is far more complicated that simply citing one outcome like they did it to displease their customers.
Nintendo financially relies on embracing new target audiences for their products to evade direct competition with Sony and Microsoft.
What does this mean exactly? It makes no sense.
Nintendo financially relies on their customers, and their business strategy is aiming at a population that includes everyone, contrary to their competitors that only target some specific demographics.
And it has nothing to do with evading competition from Sony and MS. They're not preventing Sony or MS to target this audience at all. Sony and MS are the ones who actually are unable to target this audience, and are catching up to compete. Nintendo never prevented them to compete, and nothing of this has anything to do with financials.
Nintendo is the one making money on its console from the start, while the two big competitors were losing money: if anything that should lower Nintendo's ability to compete.
Financially, Nintendo just relied on their belief that the time was ripe for disruption, because the gaming industry was going more and more away from gaming.
Just look at the competitors' consoles: they are adding lots of features that have nothing to do with gaming, their games are more and more alien to local multiplayer.
Nintendo always financially relied on providing big values for gaming, not big values for specs.Just recall the introduction of the Gameboy, which was technically inferior to its main competitor, the Atari Lynx or think of the WII, which shares most of its components with the not-quite-new Gamecube. Directly targeting the same audiences like Sony or Microsoft got Nintendo in trouble really soon. So, as long as Nintendo does not make an U-turn in its sales strategy it is therefore very likely that "mature" content will be nothing more than a niche that they accept but don't actively promote.
There's sth missing here. I don't see how you made the correlation between "technically inferior hardware" and "mature games". This just makes no sense. All previous generation consoles had very successful "mature" games and all were technically inferior to the Wii.
The problem is pretty simple really. And it's just not true that Nintendo would not actively promote a "mature" game. But it makes no sense to believe that people that want "mature" games will come to the Wii for "Madworld". Some people seriously believe that?
Nintendo made efforts to have a GTA game on the Wii, which was turned down by Rockstar.
To bring an audience for some genres, you need a big game, not lots of small ones. People will go where the big games of that genre are available. How can anyone expect people that like "mature" games to come to the Wii for Madworld when GTA 4 is on HD consoles?
See the problem? It's pretty obvious. -
Doesn't it depend on Nintendo's strategy?
As far as I remember, Nintendo has been trying to build up the corporate image of a "family friendly" entertainment company. The elderly people on slashdot might remember the ridiculous censorship that Nintendo forced on "Maniac Mansion" before they backed its release for the NES (link: http://www.crockford.com/wrrrld/maniac.html). Nintendo financially relies on embracing new target audiences for their products to evade direct competition with Sony and Microsoft. Just recall the introduction of the Gameboy, which was technically inferior to its main competitor, the Atari Lynx or think of the WII, which shares most of its components with the not-quite-new Gamecube. Directly targeting the same audiences like Sony or Microsoft got Nintendo in trouble really soon. So, as long as Nintendo does not make an U-turn in its sales strategy it is therefore very likely that "mature" content will be nothing more than a niche that they accept but don't actively promote.
-
Re:A practical use
Why not teach Javascript itself?
It's a simple but powerful general-purpose object-oriented language. It's also a functional programming language with C-like syntax, closures, and lambdas.
A browser is the interpreter.
**** Please read http://javascript.crockford.com/javascript.html before modding this down. ****
-
Re:How about a Javascript - to - python convertor?
The link to Douglas Crockford's site in the parent was to an article entitled "The World's Most Misunderstood Programming Language".
The awful scoping mechanism
From the brief survey of Javascript on Crockford's site:
"""
When used inside of a function, var defines variables with function-scope. The vars are not accessible from outside of the function. There is no other granularity of scope in JavaScript. In particular, there is no block-scope.
"""
iow, use the var keyword. Programmers who do not know this ONE RULE (TM) are bitten by mysterious insects. Use a lint program if needed.Functions are objects in Javascript, so this effectively allows, in either functional or object styles of programming, programmers to freely and simply define their variable scoping.
Procedural programmers used to simple block scoping (Hi COBOL fans!) may need to find a mechanism to cope with this. But I'd suggest using OO techniques if your program is complex enough that this is a problem. Javascript allows simple, non-demanding OO. If you like your OO authoritarian then Google has a Java-to-javascript translator.
intrinsic objects are too limited to be useful, so much so that now there are more than 4 different common framework projects
Python has one official library (and many 'unofficial' modules too), without which Python would be very limited. Javascript has many unofficial libraries. Welcome to the free world.
btw, I use Python, and I get Twisted Python at least to some extent. Twisted's deferred abstraction is mimicked in Dojo Javascript. I use Python on the server and Javascript + Dojo on the browser. Python has less warts and more modules. Javascript has astounding power in simplicity, as in the scoping rule.