One Article Review

Accueil - L'article:
Source ErrataRob.webp Errata Security
Identifiant 286649
Date de publication 2017-01-05 22:50:57 (vue: 2017-01-05 22:50:57)
Titre Profs: you should use JavaScript to teach Computer Science
Texte Universities struggle with the canonical programming language they should teach students for Computer Science. Ideally, as they take computer science classes, all the homework assignments and examples will be in the same language. Today, that language is usually Java or Python. It should be JavaScript.The reason for this is simple: whatever language you learn, you will also have to learn JavaScript, because it's the lingua franca of web browsers.Python is a fundamentally broken language. Version 3 is incompatible with version 2, but after a decade, version 2 is still more popular. It's still unforgivably slow: other languages use JITs as a matter of course to get near native speed, while Python is still nearly always interpreted. Python isn't used in the real world, it's far down the list of languages programmers will use professionally. Python is primarily a middlware language, with neither apps nor services written in it.Java is a fine language, but there's a problem with it: it's fundamentally controlled by a single company, Oracle, who is an evil company. Consumer versions of Java come with viruses. They sue those who try to come up with competing versions of Java. It's not an "open" system necessary for universities.JavaScript has none of these problems. It's an open standard with many competing versions, two of which are completely open-source. New versions of the language are backwards compatible, but everyone stays closely up to date with the latest version anyway. It's extremely fast, as browsers vendors compete among themselves for the fastest JavaScript engine. It's used professionally everywhere, from writing phone apps to writing network services. And as mentioned above, everyone has to learn it eventually, because it's the language of web browsers.It's a great "software engineering" language. Most IDEs support it, but especially Microsoft's "Visual Code", which provides the same IDE for Windows, Mac, and Linux for editing and debugging JavaScript. A cross-platform IDE that works the same for all students, regardless of desktop, is an enormous plus. All the other "software engineering" features work well with JavaScript as well, such as professional requirements of version control, bug tracking, and unit/regression testing.It's an adequate "computer science" language. It supports all the major paradigms, like object-oriented and functional programming. It's perfect for teaching algorithms, data structures, complexity, boolean logic, number theory, Like most programming languages, it's got great library support for things like graphics, machine learning, robotics, cryptography, networking, databases, and so on.One weakness is that it's not "multithreaded", but that's pretty much a weakness in every language except maybe Erlang. Even in C, people are taught to do it wrong (mutexes) instead of the right way (scalable).JavaScript certainly has some quirks, but those are a feature for education, not a fault. Educators should go into a deep-dive with JavaScript explaining how it differs from other programming language. Explain how JavaScript pointers differ from C pointers, how object-oriented features differ from Java/C++, how functional features differ from LISP. A deep dive into things like AsmJS and JITs will teach you a lot about all languages.It's not adequate to teach all computer science concepts, of course. If you are teaching scientific computing, then things like MATLAB and R will be better -- but those languages are impractical for other computer science topics.In short, unlike any other language, everyone eventually has to learn JavaScript, in order to work within the browser. Given that, then we might as well use it as a pedagogical language. For most computer science topics, it's as
Envoyé Oui
Condensat about above adequate after algorithms all also always among any anyway apps are asmjs assignments backwards because better boolean broken browser browsers bug but canonical certainly classes closely code come company compatible compete competing completely complexity computer computing concepts consumer control controlled course cross cryptography data databases date debugging javascript decade deep desktop differ differs dive down editing education educators engine engineering enormous erlang especially even eventually every everyone everywhere evil examples except explain explaining extremely far fast fastest fault feature features fine franca from functional fundamentally get given good got graphics great has have homework how ide ideally ides impractical incompatible instead interpreted isn it: java java/c++ javascript jits language languages latest learn learning least library like lingua linux lisp list logic lot mac machine major many matlab matter maybe mentioned microsoft middlware might more most much multithreaded mutexes native near nearly necessary neither network networking new none nor not number object one open oracle order oriented other paradigms pedagogical people perfect phone platform plus pointers popular pretty primarily problem problems professional professionally profs: programmers programming provides python quirks real reason regardless requirements right robotics same scalable science scientific services short should simple: single slow: software some source speed standard stays structures struggle students such sue support supports system take taught teach teaching testing that themselves then theory there these things those today topics tracking try two unforgivably unit/regression universities unlike use used usually vendors version versions viruses visual way weakness web well whatever which who will windows within work works world writing written wrong
Tags
Stories
Notes
Move


L'article ne semble pas avoir été repris aprés sa publication.


L'article ne semble pas avoir été repris sur un précédent.
My email: