skysight-inc/HackerNews huggingface dataset:
I do not know any Python (yet) - and my comment is probably off-topic. I spent a fall semester at Northeastern U, Boston in '97 and took a graduate course in Data Structures which was taught in C. I loved this course and finished top of the class (It helped that I was already familiar with C from an undergrad engg course). I fell in love with C. Implementing dequeues, linked lists, trees etc. with C was a pleasure - I learnt a lot about memory management responsibilities, smart error handling and began to understand how programming can be beautiful. Many years later when I started learning and working with Java, I felt that if this course had been taught with Java, I would not have gained as much (I could be wrong). The simple steps of typing your code in the standed editor supported by the environment (we were using a flavour of Unix in school), saving your work, compiling on the CLI and seeing the results - we just had to focus on our algorithm and nothing else. Your sentence "Many of our students have never programmed with a text editor before our unit, and dropping them into the big boilerplate world of Java micro-management was not good for them or for the course" stands out for me in this context. Since I know zero Python, I wonder how it compares. This reminds of Joel Spolsky's essay : http://www.joelonsoftware.com/articles/ThePerilsofJavaSchool...
It would make sense back then when browser security was potatoes. Today, even firefox made it hard to disable Javascript. In fact, our startup website doesn't even load unless you have Javascript enabled.

Also, it's not sub 2% today, it's more like sub 0.01%.
Depends on what you're building, I guess.

For particulary security sensitive areas, like banking web software, I'd very much appreciate it working with JS disabled, since I take particular care on security when visiting those (updated, secured, sandboxed OS within VM, not used for anything else).
Dynamically loading content has problems beyond screen readers, for stuff like SEO, so I get your point. Another guy did post this link though, showing that most screen reader users have js enabled: http://a11yproject.com/posts/myth-screen-readers-dont-use-ja...
It's called "progressive enhancement". There's a lot that's been written about it, and it's still a debate-provoking topic, but it's not just about catering to people that choose not to use javascript.

http://en.wikipedia.org/wiki/Progressive_enhancement

http://jakearchibald.com/2013/progressive-enhancement-still-...
I wouldn’t. But I have Ghostery installed and in some cases it completely destroys sites. So my guess is that the 2% you're mentioning could get a bit higher. I don't know how popular utilities like Ghostery or NoScript are outside our community but I won't be surprised if their usage rises.
Thanks for the response. Something I hadn't given much thought for is self confidence. It's important to both my wife and I to instill that in both of our kids.

I just didn't think about the role a school might have in that.

P.S. I'm in California. I visited Edinburgh last winter; beautiful city.
Good point, it sure makes sense for sites with higher security demands. I'm in the ad world though, and there's not that much security risks involved in campaign sites.
Iagree100%.Therereallyisnoreasontoattributetheattributeofseman
ticallysignificanttowhitepsace.Justasineverydaylanguage,comput
erprogrammersshouldhavethefreedomtonotusewhitespaceastheyseefi
t,justasmusicshouldnothaverests;it'sonlythenotesthathavemeanin
g.Finally,gentlepeople,Iimploreyouthatwallsinhousesshouldbemad
einfinitesimallythin,too,becauseIseenoneedtoseparateanything.
For website content (landing pages, articles, etc), you want it to work without Javascript so that crawlers index it properly.

For web applications where you don't care about content being indexed, I wouldn't worry about it being a javascript only application (and this is the direction lots of apps are heading with frameworks like Ember.js, Angular.js, and Meteor).
As an aside, if I recall, <noscript> was deprecated in HTML5.
I'm an undergrad at one of the outlier schools (UCLA) where a combination of the quarter system and a relatively conservative CS department make for an interesting undergrad curriculum.
Our "CS 1" is taught in C++ and is mostly dedicated to well, C++. The entire first course is essentially dedicated to teaching you how to not blow your leg off while managing memory.

We don't even touch data structures, algorithms, composition, inheritance, etc until "CS 2," which is also in C++. When I first tried Python as part of a 1-week assignment in "CS 2.5" (a lab course), I was blown away and hooked pretty quickly. We don't get formal Python experience really until the extremely work-intensive upper division programming languages course. From my perspective, I think a large number of people are discouraged by CS 1 and how it's more of a programming class than a CS class. The only benefit of a C++ introduction is that it's easier for people to transition to C and lower level code for the operating systems class. Still, C is pretty well covered by our "CS 2.5" and "CS 3."

Other fun facts: our CS 0 (programming for non-CS majors) is split into three classes and is also in C++!

I accidentally took a C++ at a community college during high school and was forced to skip "CS 1" when I enrolled for my first quarter. I felt so unprepared for "CS 2" that I actually audited a good number of "CS 1" lectures and did half of the projects for the class even though I didn't take it.

Actual course numbers:

CS 1 -> CS 31

CS 2 -> CS 32

CS 2.5 -> CS 35L

CS 3 -> CS 33

CS 0(a-c) -> PIC 10(a-c)
I think you're spot on. I've noticed working with various people and ages that we get stuck in our beliefs. Their information is outdated and they haven't realized yet that screen readers and security are dated arguments.

The only hardcore crowd who disables Javascript entirely are people who are paranoid about ads and the uber nerd (as seen here on HN).

As a web developer myself, I would never waste what busy time I have catering to this audience. It's the same argument for why, at a certain point, you have to make a clearcut decision about how far back into legacy browsers you care to support. Large parts of Asia are stuck on IE6 because they have pirated Windows XP, but most of us don't care and probably don't need to.
I still use ALSA on my desktop system due to weird issues that only happen with PulseAudio.

I still don't trust Lennart, even though systemd looks nice from what i've seen.
The tax system seems to be set up backwards: Apple could release the cash to its shareholders, but won't do so for tax reasons (and because its managers are running the show; not the nominal owners of the company, the shareholders).
Thats a great question, and the answer depends on what your product is. If you are making SaaS or a web based app, then it is perfectly reasonable to require JavaScript. If you are making public websites, that display content or represent a brand, then you probably want to cater to those who don't have it enabled. Also remember it is not just the 2% that have javascript disabled that you need to consider. You should also take into account anyone who would require 508 compliance on your site. Thinking about 508 often leads to a more conscious decision on how to structure script based functionality on your page.
Awesome, most conversion is done through casting.
I got an acceptance email 4 minutes ago.
Show HN: Beak – Measures how "smart" your tweets are (Featured on Product Hunt)
Thanks. Super insightful to hear about your experience in hindsight. I would have said something similar - "if we provide a healthy home life, they'll be fine everywhere".

Very eye opening!
I can confirm this. Recently got a complaint from a blind user about an inaccessible form element that was buried deep deep within our JavaScript web app. We learned a couple of things that day.
Because it reduces the attack surface of the browser?

Because not all search engines could cope with it (this reason now obsolete).

Because of a variety of screen readers and browsers which don't (reason also obsolete).

It's good practice to not go with batshit insane navigation, however (infinite scroll interactions with the back button, anyone?), or require JS for trivial inanities, or not have relatively meaningful URIs.
Even in these cases there are workarounds that prerender the page and serve them to crawlers. They're not pleasant to work with, but we went with that solution on an old site we did in angular.
Of course they do, or they would not be very useful given the number of horribly-built websites today, but even the JS-enabled screen readers can get confused by dynamically loaded content, sometimes getting it in the wrong order or not being able to access content that's triggered by things like infinite scrolling. Still, requiring JS for core non-interactive functionality is a net negative for any website. Why spend more effort on making your site more annoying?
Nay. Its status is currently candidate recommendation,[0][1] so I assume they are trying to integrate it into the HTML5 standard as well.

Although, I am sure someone proposed to make it deprecated in HTML5.

[0] https://developer.mozilla.org/en-US/docs/Web/HTML/Element/no...

[1] http://www.w3.org/TR/html5/scripting-1.html#the-noscript-ele...
Breakthrough innovations are not predictable
Great answer. I wouldn't couple js with insane navigation though, that's a different problem entirely (which we as a community need to shun until it disappears).
One target for transactions is about 4,000 transactions/second. If they reduce the confirm time to 60 seconds like DogeCoin, then we are looking at about 240,000 transaction fees per block. Figure $0.10/transaction, that's about $24,000 per block. Right now it's 25 * $600, or $15,000 block - so, I can see there being a future on transaction fees on Bitcoin Alone.

But - there are a lot of other really interesting applications that can be run on the block chain, and I can see people willing to pay much greater transaction fees than $0.10 to get their transaction recorded on the block chain - so plenty of interesting opportunities.
Besides security reasons, I turn it off on my mobile. 10kb of text load much faster than 500kb of javascript and some text.
A site doesn't have to work completely without JavaScript, but its a good idea to support primary flows without it and make sure your site loads and basically functions. If you are talking about a product who's features and UI require JavaScirpt then let the user know why the product can't be used and move on.
Back in the day it was also about supporting the various lo-fi web browsing devices that were around at the time. WAP on mobile phones, and TV set top boxes (Was it called WebTV? Those were the days.)

Now I agree it's only to support web fundamentalists who disable it completely, and those people surely must be used to having sites not work properly.

At the same time, if you require JS for things that don't need it, like basic navigation or dropdown menus, then that's lame for a different set of reasons.

In general, the principle of progressive enhancement is still a useful and important one. It's good to know how to make a great website in pure html and css, and then to layer the JS on top, simply because it's an effective technique that results in good code and usable websites.
It is obviously not feasible to make all full-blown web apps work without JS, but many basic websites are also packed with annoying amounts of JS that do not do the user any good (for details see the other comments).
Verizon’s “deteriorated” phone lines cited in demand for investigation
There are just so many...

Headfirst series (JavaScript, HTML, jQuery... all of them)

Discover Meteor

Refactoring: improving the design of existing code

Database design for mere mortals

MIT books (SICP, Algorithms)

Oh, and of course... Human Interface Guidelines by Apple. One of the best UX books on app design.

All books are ebooks for me, so this list is impossibly long.
Shouldn't outsourcing increase median wages globally?
That's ... nonsense?

You know what's the defining property of OCaml's OO/module systems?

That nobody actually uses it.

Compared to that, Scala tries to make all parts of the language work in an orthogonal and consistent fashion.

In OCaml, one part of the language is crippled intentionally, due to what seems to be ideological reasons.

Apart from that, I'm unsure how OCaml counts as "functional". It doesn't even have typeclasses, let alone higher-kinded types.
There several json::read functions for stream, string and other iterators.
It really depends on your audience. As a general rule, you should try to make your site allowable for javascript-disabled-noobs to still be able to go through the primary functions of your site.

With that said, out of our 1m visitors a week, we have less than 0.1% with it disabled. So it's a tradeoff - how long will it take you to code the extra to allow those 0.1%, and does this require extra code and junk up.

We don't support any browsers once it gets to below 1% - aka IE7 so I don't generally go out of my way to make sure everything works for non-javascript users.

It used to be more important back in the day with the old school mobile browsers etc with the good ol' WAP (as Jonnie says)
The invitations were sent a couple of minutes ago.
Way too bendy to be actual sapphire crystal.Unless its some sort of a composite.
Gosh this reply is ridiculous.

We're talking about languages and .net isn't a language. The differences between visual basic and f# are vast.

Are you saying the last 30 years of language research dictate that languages should be more verbose?

Comparing go-routines to modula-2 is disingenuous at best. Multiprogramming is nothing like multithreading.
I'm so glad Stripe paid you to work on urllib3. I'm building a project that uses your lib, if became something big, i'll pay you too! In the meanwhile i hope some other companies finance your work.
Wrong. :-P It's not about receiving, but about sending cookies to a third party. Let's say I visit marcosdumay.com, where you include some images and scripts from other hosts on your page, and you want to know whether your visitors are logged into Facebook. Since marcosdumay.com != facebook.com, all content from Facebook on your page is third-party content.

How does Facebook track sessions again? Right, through cookies. If third-party cookies are disabled, and an img src tag on marcosdumay.com triggers a request to facebook.com, this request will not contain my Facebook session cookie, and I'll appear to be logged out, even when I'm not.
Well, if it's a website then it should be optional. If it's a web application then it shouldn't be. HTML and web are about linked documents after all. The fact that industry decided to slap a scripting language on top and call it GUI doesn't change the initial concept.
Clang/LLVM on Windows Update
> Are we really supposed to cater to the sub 2% that chooses not to use javascript?

In my opinion: No.

JavaScript should be treated as default feature of the browser now. It's about as worth the effort as catering to people who want to use Lynx as their browser.

The screen reader argument is bogus too, modern screen reader software is not hampered by JS.

I also wonder if those who disable JS because of the increased attack surface also disable CSS as well.
It would also be useful to include liberal arts colleges. I don't think it's representative of top institutions if you only consider research universities. For example, Harvey Mudd, has a top notch CS program, but wouldn't be considered under that metric as it doesn't have any grad programs.

I'd be interested to figure out the whole intro sequence. For example, my college begins with Java for the first class, then the next two classes can be taken concurrently, which respectively consist of functional programming/basic CS theory in SML, and Data Structures/Advanced Programming (memory management!) in Java and C++. I'm sure a number of other colleges follow similar procedures.

Also - I don't think that "CS0" classes should be included on this list as most are not taught with the intention of further CS education. For example, we have an "intro" CS course that is taught within the context of cognitive science (in Python).
Personally, I think the metaphor is quite apt. Obviously it is a metaphor so there isn't a complete mapping, but where do you feel the impedance mismatch is between the traditional architecture metaphor and software architecture? I'm genuinely curious to know, because I have found the metaphor to be strong enough that I read traditional architecture books to help me understand architecture and design in general in software development.
Thanks for this comment. I always wondered if I was the only one who felt that way, or if I was just missing the point when I found these things weird.
Turn the question around. What exactly are you providing with Javascript that is _essential_? If in the final analysis there is nothing essential, only spit-n-polish, then _why not_ cater to a broader audience by employing progressive enhancement.

In my opinion better designs would emerge from the influence of this design constraint, along with better tools and frameworks.
What about the global situation?
Wearable, playable Tetris T-shirt
People should be testing what happen to their site when random resources you're pulling in don't load.

Only time ghostery breaks sites for me is when some massive 'page failed to load' element site on top of the content. I can delete those with dev tools.
It really depends on your product. If you have an e-commerce site, you may find that 5% of your browser base could be IE8. You still want them to spend money.

It's very much a financial decision. Who is your target market and is it reasonable to assume they will have a modern browser OR you can dictate that they have a modern browser.

You then have the issue of accessibility.
Non-English loanwords enter the English language by a process of naturalization, [...] there is a tendency for accents and other diacritics that were present in the donor language to be dropped [1].

We have words with the same spelling but different meanings and pronunciations all the time - so called Heteronyms [2]. Doesn't seem that confusing to me. To me it'd be pretty weird if people who understood the word rôle were baffled by the word role.

[1] http://en.wikipedia.org/wiki/English_terms_with_diacritical_...
[2] http://en.wikipedia.org/wiki/Heteronym_(linguistics)
If your PC is old and you don't have much CPU or RAM to spare, disabling JavaScript gives a big performance boost.
Unless it's dramatically more secure than current email platforms, it's not the "next generation" of email.

Anything hosted in big shared data centres in the USA cannot be more secure. That's last year's thinking, not "next generation".
Interesting concept...

Especially since one of the changes of the network age is that music is no longer resellable like a CD/tape/record. That means it no longer has value once you buy it.

That's evidence that net music IS a service, like water or gas, just something you pipe into your house to get consumed and used. (You can't practically re-sell the water from your tap, nor your gas or electricity).

On the flip side though, it has to be more than that, because different glasses of water don't tell stories like songs do. Hmm Deep Thoughts.
How does the meltdown of the middle class drive up college tuition fees? Wouldn't they have less money to spare for education, not more? Or is it that they throws everything they have into education as a last desperate attempt to avoid the decline into poverty?
I used it for exactly this when playing around with the data I exported from my Google location history. As a relative newcomer to GIS the process was pretty simple.

http://i.imgur.com/fXMc7nc.png
Thank you for taking out the time for a detailed answer.
From the UK government:

> Surprisingly, the proportion of people that have explicitly disabled JavaScript or use a browser that doesn’t support JavaScript, only makes up a small slice of people that don’t run JavaScript.

https://gds.blog.gov.uk/2013/10/21/how-many-people-are-missi...
The question is why you think a RESTful data model fits the problem. It is a model that fits when resources are published globally, when the CRUD methods are enough, whose purpose is to enable global caching and make hyperlinks possible.

Pretty much none of this is true for email. You don't even want global caching here. You want responsivity, and a rich and extensible data model.

How would you move an email? How would you control whitelisting? Spam scoring? Folder ACLs? How would you sleep until a mailbox changes? Even if you _could_ represent these things as resources, it's going to be much more hairy than IMAP with the performance of POP.

The evolution of email has been completely opposite of dumbing it down. Users expect calendaring and global contact lists, and here you have the impedance mismatch _again_. Look at the mess that is CalDAV, and that's DAV which is much richer then REST.

Regarding asynchronous commands, I don't know what you think it has to do with AJAX. It is the Javascript that is asynchronous in AJAX, not the HTTP requests. Web browsers typically implement it using multiple connections. This is a problem. Do you really want connection pooling (so a server can serve _fewer_ clients)? No, you want an evented protocol. Such as IMAP.

And again, you probably could do it given enough work and come close to the performance of IMAP for most end users, but why would you? It doesn't really map to the REST architecture.

It you would rewrite your comment but s/REST/RPC/ I would not object to it. I would just think you were from the past :).
Netflix hiring a Binge Watcher in the UK
I'd disable javascript sometimes because it takes up CPU cycles and memory on my laptop and starves my other applications. GMail specifically has gotten so bad that I've started using the HTML version of Gmail just to avoid all the unnecessary javascript cruft.
I have a JS blocker browser plugin/extension as standard, so I always end up browsing sites with JS off.
I find these kinds of frameworks intimidating, because in them there is usually a ??magic?? phase that is difficult to debug if it does not work.
QuiteRSS: awesome desktop RSS reader
No WebGL enabled on Linux Chrome in my experience. Kind of annoying when cool visualizations get passed around and you can't see them.
Who Is Satoshi Nakamoto? An inside look at the man behind Bitcoin
This footnote is also interesting by itself:
http://cypherpunks.venona.com/date/1993/10/msg00759.html
Nice experiment, I will try to use it.

But I usually save interesting links to favourites. Please consider to add favourites to selection of lists.

Also, Vellum does not support cyrillic at all, even if it's in utf-8.
FUD. Try to get anything done in a Windows group policy environment. Same problem, different OS. The serious IDEs are (mostly) available on all platforms, except for Visual Studio (naturally). The machine is installed to be used by a regular user, why would you want it to be developer-friendly? Regular civil servants need to compile applications?
There are some who would consider that the default behaviour of JavaScript in web browsers is unsafe. They went off and made things like https://developers.google.com/caja/ and http://www.adsafe.org/.

In my day to day web browsing I don't really see good use cases for JavaScript. In addition, IMO rendering feels faster with JS disabled, specially on mobile devices (iPhone 5s).

A part of your "sub 2%" includes some security researchers. Think about that for a moment.
>I started from scratch last night and was having fun immediately.

"Fun" in dwarf fortress usually refers to losing violently.
Don't troll. CSS cannot run arbitrary code on your device.