What programming languages are used most on weekends?
stackoverflow.blog
stackoverflow.blog
EDIT: On second look, Python, C, and C++ are also the go to languages for CS classes (along with Java but that is also a big enterprise language unlike the other three.) Almost this whole list seems to be schoolwork related.
And so is Haskell.
But I doubt Unity 3D is schoolwork related.
It was kind of horrible because the professor for (at least one of the) intro classes reproduced cons, car and cdr from lisp and had us construct a bunch of data structures out of this monstrous java lisp hybrid.
point being probably only top tier cs depts use haskell.
MIT has also switched to Python from Scheme
I'm a fan of Haskell, but I think it being the intro CS class language is an educational fail.
I've maintained for years (since I was at college in the 2000's (UK meaning of college not US)) that programming education should be two tier, the theoretical tier at university and the practical tier using the traditional trade school model.
Taking another domain there is a lot of difference between the person doing the load bearing calculations on the bricks and structures and the person laying the actual bricks.
I've always fallen more into the latter camp naturally, I like to build things and I learn the applicable theory as and when I need to and you can get a long way with experience and a little theory when you can leverage the underpinning work of other people.
It's interesting to note that in the UK the apprentice/master model sorta exists already if you squint in the difference between junior/senior developer when done 'correctly' anyway though at the moment due to developer demand the meaning of 'senior' has degraded down to a couple of years commercial experience apparently.
On a practical note, learning a language like Java is not the hard part if you were taught properly. With a solid theory foundation (for which Haskell knowledge covers a great span of content), learning any production language to a practically useful degree should take a couple weeks at most.
Also I second another poster's point that universities are not trade schools. I think it's a little sad if a department stopped teaching Haskell because of industry pressure, because the goal of a CS program is to teach CS, not to teach whatever programming language is on top of TIOBE.
1) Does learning Java keep you from learning CS concepts like pure functions and category theory? Obviously not. It may not be completely natural, but people do unnatural things in the name of an education all the time.
2) When you hire an intern these days, it's pretty expensive. The internship ends up being a trial employee, especially if they're a rising senior. The employer wants to get as much valuable information about the intern as they can. They may contribute actual production code, but probably not if it's Haskell. More importantly, you learn more about their ability to work with your environment (and they learn whether or not they want to work there) the closer you get to the internship being as close as possible to being a newgrad employee. Haskell is cool, but it will probably get in the way of many of the valuable things an internship can provide both parties. And I want to reiterate that these aren't cheap. You often end up paying the intern new grad wages normalized for the length of their internship, and it's not atypical to pay for housing on top of that, plus various events, time taken from to bring them up to speed on a team, etc.
3) MIT is teaching Python in its intro course. If having Haskell or any other academically "interesting" language is so important then they are doing a great disservice to their CS students. What are the chances this is true? I think it's much more likely that the MIT intro course language is either an uninteresting choice or very specifically chosen to be of interest to non-academics. Now, I don't think MIT is necessarily the be-all end-all in CS education, but is anyone prepared to argue they are worse than UPenn, which uses OCaml in a similar course? (I'm a fan of OCaml too, fwiw!)
Dijkstra certainly thought so. http://www.cs.utexas.edu/users/EWD/OtherDocs/To%20the%20Budg...
> They may contribute actual production code, but probably not if it's Haskell.
Not only can interns learn new languages on the job, but any student worth hiring probably knows multiple languages already. The argument here is that theory courses should be in a theoretically sound language; that doesn't preclude students from learning corporate-approved languages as well.
For what it's worth, I picked up new languages in two of the internships I did in college. It never took me more than a week or two, and happened contemporaneously with me figuring out the codebase and dev environment. In at least one of those, which was a JavaScript codebase with many functional elements, having a strong functional background as well as a strong imperative background was what allowed me to comprehend it without too much effort.
> then they are doing a great disservice to their CS students.
I'm inclined to agree. This is, of course, a matter of opinion.
My Haskell classes helped me more with regards to becoming a better Java programmer than my Java classes.
What a creative (if hardcore) way to circumvent a bureucratic requirement :)
I know I'm writing C++ every weekend (and day, night, morning, afternoon.....)
Seeing as most people are only students for 4 years of their life, I would be surprised at how much students contribute to this change. I also can't think of a reason as to why students would be asking more questions on weekends vs weekdays.
Especially for the big difference in Haskell, I just can't imagine its largely caused by students since most students will probably only get to use it for one or two courses.
At least when I was a student, I would be pretty unlikely to ask on Stack Overflow because I'd probably need answers quickly and not want to wait for a response, but I don't expect everyone to be like me.
I also don't even feel like my assignments were typically due on Monday or Tuesday. I remember often students would ask their teachers to make their assignments due Friday instead of Monday.
Many classes have assignments over a week or two. It absolutely makes sense to ask SO for questions.
If anything, there was less urgency to my homework questions than there is to my current professional ones.
> I also don't even feel like my assignments were typically due on Monday or Tuesday.
While I had my fair share of assignments on Monday, that doesn't need to be true to explain this. Even if you assume that students work equally throughout the week on homework, they'd represent a larger percentage of developers during the weekend (when professionals are much less likely to be working).
In the real world, programmers don't take their questions with "recursion" or "pointers" very often. Nor is Assembly a common language for side projects.
This definitely seems like a case of students simply being relatively overrepresented on weekends.
So yeah, some people are weird that way..
If Hw, would correlate annually with semesters (noting that SO is internationally popular, and different countries have different schedules).
Also, I'd have thought that with weekend projects you're more likely to find things out by experimentation and reading the documentation than by asking questions. With work or classroom projects, you have to work with a fixed spec, a prescribed technology, all sorts of Best Practices, and deadlines. Weekend projects give you much more freedom in all four respects.
So yes, GitHub would be much more accurate.
Looks like the tags with the biggest differences exemplify this pretty well.
[0]- http://dataremixed.com/2015/01/avoiding-data-pitfalls-part-2...
Is the question interpreted as extending to those not on stackoverflow, or is it a complete census of the 'population' of their data?
> "what languages tend to be **asked about** on weekends, as opposed to weekdays?"
and: > "explore differences between **questions that are posted** on weekdays and weekends."
as opposed to the article title: > "What Programming Languages Are **Used Most** on Weekends?"
(emphasis added), is the problem then resolved?Suppose there were no difference between the usage of each language, and people just program on the weekends vs weekdays with some probability independent of language. Then, if a language has lots of users, it will likely have close to the average weekend/weekday proportion. The fewer users the language has, the more likely that it has an uneven weekend/weekday proportion just by chance. And if you plot the weekend/weekday proportions vs. the number of users, you expect a funnel shape just like the one in the article.
Therefore, the plot in the article - by itself - provides no evidence that there is any difference between the usage of different programming languages.
Using an (empirical) Bayesian multilevel model can both attach uncertainty intervals to the point estimates and appropriately "shrink" the estimates towards zero at the low-sample-size end.
The latter is more directly interpretable, at the cost of slightly more complex modelling (/assumptions).
Looking for explanation of multilevel model, I found http://mc-stan.org/documentation/case-studies/radon.html which seems to do exactly that in "Partial pooling model". (see graph)
Instead you'd want to use a CDF that bins that values.
I originally got on this topic when reading Bayesian Methods for Hackers [1]. I am still hunting for a good method to correct/compensate for this when I am doing these types of comparisons in my own work.
[0] -http://faculty.cord.edu/andersod/MostDangerousEquation.pdf
[1] - https://github.com/CamDavidsonPilon/Probabilistic-Programmin...
The ratio of sample sizes in the OP also isn't that bad, and none of them are very small.
a <- runif(1000); b <- runif(1000); plot(a + b, log(a/b))
Also, they likely have a low-end cutoff (notice their x axis starts at 10^4. If you do the same to the above plot, you get even closer to that exact shape. Try:
plot(a + b, log(a/b), xlim=quantile(a + b, probs=c(0.2, 1)))
plot(a + b, log(a/b), xlim=c(1, 2), log="x")
From learning perspective correct. I don't think developers chase new languages, I think it's more, play 'catch up to latest language' to be more employable. You would hope companies, CTOs, lead techs choose languages to solve the unique business problems. Language choice looks more, to me, like taste. Like choosing something ^nice^ from a menu at a restaurant depending on what is palatable.
They use linux or OSX. But they don't know awk/sed/bash, give em a very simple problem, they would write 1000 line of OOP, united test code when a few line of scripts would solve it.
I know many programmers, who graduated with a CS degree, they go out of their way to implement ridiculous rule engines and overly complicated systems, when they can just use prolog and glue their app to prolog.
I've witnessed many so called fullstack developers who break out in cold sweat at the sight or thought of writing SQL. They want an ORM.
This is what I call chasing, new things, when the old things are rock solid. I see this today, where people cry about PHP, but yet don't even use it's good features. Go use NoSQL solutions but never even had a clue about their SQL DB.
/rant
Am I in the minority of developers then? I don't know awk and sed and I'm honestly not very interested in learning them. But bash I definitely agree with. I still use a cheatsheet to get the syntax right because it's weird as hell imo.
Let's say you're on my team, and I've decided I'm a real stickler for code formatting. But I've got peculiar tastes, and one day I decide I want to have all parentheses stand out very clearly in your code.
So let's say you've got a set of source files in C, C++, or Java. Your choice. And I want you to modify them so that in each source file, every open- and close-paren has exactly one space character before and after
I like sed. I like perl one-liners. I would consider it a mistake to try to do this on a real codebase in a batch manner with just a regexp. You'd be far better off googling to find a source code formatter that includes a real parser, like clang-format.
The point of the question is more to gauge your understanding of/familiarity with available tools and ability to think laterally rather than immediately jump to "I've got to write some real code to solve this"
As an aside, the stuff I used sed/awk for in the past have pretty much been replaced by Python for me. These days it's pretty rare to not have a default Python install on any Unixy box one spins up and in the rare cases I use Windows I tend to install Anaconda so it's also slightly more cross-platform for my use cases.
Awk/Sed are optimised for text/data processing.[0] While Bash might work, will the script work on all systems (and version)? [1] awk & predecessor sed are good for one liner programs and suitable for problems that need fast, reliable solutions.
reference
[0] Opening, closing files; reading, breaking and counting record fields.
[1] OS use Bash or Bourne? https://en.wikipedia.org/wiki/Bash_(Unix_shell)#Portability
On Linux, I can use this sed command: sed -i ‘s/^”//’ example.txt
That deletes any quotation marks that are at the beginning of a line. It does it in-place, and while you have the option to rename the old file and replace it with a new file with the original name (using "sed -i.bak ‘s/^”//’ example.txt" would move the existing example.txt file to example.txt.bak and write a new one in-place), if you leave out the .bak, it just writes it in-place with no backup file.
On OS X, though, that command won't work. You have to specify a backup file, even if it's blank. "sed -i “” ‘s/^”//’ example.txt" would replace the text in-place without a backup. sed -i “.bak” ‘s/^”//’ example.txt would replace the file and move the original to "example.txt.bak".
Even with sed and awk, you still have to stop and wonder if it will work cross-platform.
If you used an operating system that shipped with BusyBox, you'd be similarly frustrated. But operating systems are tradeoffs with pros/cons. Using a different set of tools makes it distinct, not "out of date".
1. https://www.topbug.net/blog/2013/04/14/install-and-use-gnu-c...
True, but I was thinking awk/sed was a good multi OS tool with minimal code effect.
Well that kills my idea why to use awk/sed. What would you use @freehunter?
Given that description, I'd agree. Now I understand the crux of the problem, problem solved using disposable code in terse language or script.
Awk is also POSIX standard; a good remaining reason to use it (if it is a feasible alternative for a task) is that a script has to be portable outside of GNU/Linux.
So I'm surprised at the following part of your comment:
> There is no reason to use perl in situation when awk kicks its butt with clearer, shorter code free of distracting author and other line noise
In my experience, the shorter ask code tends to be the one with sigils.
curl https://raw.githubusercontent.com/kedarmhaswade/cities/master/area-codes.csv | \
awk -F, '{print $1}' \
> ~/area_codes.txt
Now, could you use grep? Yeah, sure. But for really quick examples like this - things that lend themselves to it (e.g. a raw CSV with mostly crap you don't need but something you do), this is super fast. Anything more complicated and I'd break out a regex, though.That's the caveat you want to hear. Also Facebook with php and HHVM [0] not wanting to break things too much.
Although grossly unfair, it's sometimes instructive to split people in two categories in order to consider a point. With that in mind, I notice that there are programmers who want to learn as little as possible in order to get the job done. They want tools to make things easy for them so they don't have to understand the underlying concepts. How many times over the decades have I had to unwind bad commits in source code repositories because some programmer refuses to learn how to use the software directly and leaves their IDE to do it for them? Same again for build systems. How many times have I worked with programmers who refuse to understand what a pointer is, because now that we have GC apparently we don't have to worry about leaking resources? How many programmers never bother to learn the syntax of the language, preferring to generate snippets and cut and paste from StackOverflow (or back in the old days, you would have entire applications built primarily from cutting and pasting examples from MSDN)?
Yeah, this is a problem (and has been a problem for as long as I've been a professional programmer -- i.e., a long time ;-) ). But the people who are chasing after the new shiny don't really exhibit that attitude for me. To the extent that everybody who wants to work tomorrow has to keep learning, no good developer is exempt from this. But I find the people who really chase new stuff without getting a proper grounding in the old stuff have a few overwhelming things in common. They are young (to the industry). They are excited. They want to learn.
My experience has been that if you show them the very, very cool things you can do with awk/sed/bash/prolog (Really? You use prolog!? I'm seriously impressed) they will get similarly excited by that.
Candidate 1: writes some Python code
Candidate 2: writes some C++
Candidate 3: runs "sort names.txt"
python3 -c 'import sys; list(print(line.strip()) for line in sorted(sys.stdin, key=str.lower))'
I disagree.
I went from C# to Node.js and back to C#. I learned the hell out of JavaScript, and yet I feel like nobody will ever care that I can explain some of its nuances and gotchas. Language nuances are constantly evolving anyway.
Learning Node.js unlocked whole paradigms I didn't understand in C#. I never really "got" functional programming. Switching between the two helped me understand the pros and cons of different approaches. I discovered a lot of the things I miss from JavaScript are actually there in C#, just a little off the beaten path. On the other hand, I can appreciate "the C# way" and breathe a sigh of relief that certain gotchas do not exist in that environment.
s/Lisp/JavaScript/g
As for those utilities you mention, Javascript is the most broken of them all:
>>> ["10", "10", "10"].map(parseInt)
[10, Nan, 2]
[1] https://en.wikipedia.org/wiki/Procedural_programmingThat is precisely the kind of insistence that prevents people from adopting functional languages for real world programming tasks.
JavaScript certainly lacks language level support for function composition, but it has the basic tools to allow you to build combinators and compositional functions yourself, and when dealing with functions as data you often find you can elegantly refactor code by building such a thing - so in terms of 'learning about functional programming' JS can be a great workbench to help procedural minded programmers discover those tools by discovering and building them.
So maybe JS doesn't teach functional programming, but it does at least introduce you to paradigms from which it is possible to see the benefits of a functional language.
Of course, if you then hear that those languages are only for doing math in then you'll stick with JavaScript.
You've misunderstood the GP's point. It's not that FP is about math, it's that you want to emphasize mathematical functions -- functions that don't rely on inputs other than their parameters and return values in a consistent co-domain. This is just good style to improve testability and minimize sources of potential bugs.
Because that's its definition. Change that definition and it becomes meaningless. Functional programming is about working with functions that always have the same output for a given input - the definition of mathematical functions and I wouldn't have to say mathematical if software developers wouldn't feel the need to overload technical terms. Pascal and other languages had great names for pieces of code taking arguments and that aren't functions: procedures, routines, subroutines, etc.
> That is precisely the kind of insistence that prevents people from adopting functional languages for real world programming tasks.
So let me get this straight, in order to get people to adopt something, you want the definition changed in such a way as to become meaningless?
Also, I do expect software developers to know at least high-school level math, because CS is math. Even if you lack a formal education, that's no excuse for ignoring theory that can help in your daily work, especially in this day and age with so many online resources available for free.
If a properly designed method were passed into map it would work fine.
In essence: ["10", "10", "10"].map(Number)
Don't get me wrong, but I'm pretty sure you still don't get functional programming, because functional programming is not practiced within the Javascript / Node.js ecosystem.
Yes, there are some exceptions here and there, some libraries like Facebook's React have FP-inspired ideas in them (even though those components are modelled with state and hence have nothing to do with FP) and working with asynchronous results signalled by callbacks is so freaking horrible that people have began using Promise abstractions sort of inspired by FP, except most of them broken. But no, unless you're into one of the languages that actively promote FP, like ClojureScript, PureScript, Elm, Scala.js, then you're probably not doing FP.
As evidence, go to GitHub, pick any sampling of Javascript projects and witness how a vast majority have nothing to do with FP.
Furthermore I think that with this argument you're proving the parent's point. If you want FP, then take the time to learn and work with one of the languages that actively promote FP and be prepared to suffer because it's not easy.
I use StackOverflow tag count as well as Google Trends and GitHub star count to get a rough feel for how much people are using certain things, such as version control software[2], databases, or view engines in Express[3].
[1] - http://www.arepeopletalkingaboutit.com/ [2] - http://www.arepeopletalkingaboutit.com/tags/cvs,svn,git,perf... [3] - http://www.arepeopletalkingaboutit.com/tags/ejs,pug
What really makes sense. SO format does not suit Haskell very well.
Hoogle will already tell you most of what you can learn to small, fact-focused, objective and unanimous explanations about real code. SO intellectual avoidance rules hit much before people can explain anything useful.
I guess newbies will find some of the compile messages hard to understand compared to more standard languages, however.
That's why the post works in ratios of weekend to weekday. Regardless of how much more or less likely someone is to ask about one language than another language (e.g. because they're already familiar with it), the numbers in the OP should still indicate relative usage amounts at different times.
...which means quite a few Saturday mornings in Asia have been counted as weekdays and many late Friday nights in the Americas have been counted as weekends.
It would be great if StackOverflow had information on the local timezone that the question was asked in. Seeing Mon-Fri 9-5 vs other times would be interesting.
What if Haskell never changes the rate at which it is discussed - but all the entry programers doing the 9-5 job go away on the weekends helping Haskell to be "louder"? What if the people with homework ask more on the weekend than during the week?
What if certain developers don't post questions tagging a language - but rather tagging an algorithm knowing they can implement it in whatever language they need?
What if Haskell only works on the weekend?
A few years ago the answer would have been, "the rest of the week it compiles"
From the users perspective it is pretty handy. There are a heap of non technical people (HR, accountants, operators etc.) Being able to drag and drop spreadsheets from a Windows desktop into a sharepoint library is almost a killer feature makes it very easy for non technical people to collaborate on documents across multiple sites (provided the aforementioned permissions problems do not occur).
Our plant operators use it to upload overtime spreadsheets and share them between shifts, people use it to share powerpoint slide decks for meetings and upload the minutes afterwards etc.
I'm from the generation before we had Sharepoint back then we used Mapped network shares to move documents around (or emails - but we had 50mb limit imposed by exchange) - permissions issue were even worse.
We recently started using Facebook's "Workplace" which is basically a private facebook instance for our organisation. People are starting to use that instead of sharepoint - from what I've seen anyone can make a "group" in workplace and it is so much easier then setting up a sharepoint page.
Adoption is pretty slow but some teams are starting to use workplace groups rather than sharepoint for recurring meetings etc. So I'm hoping it will finally kill Sharepoint here.
was good fun when we found the sharepoint document with results to personal surveys showing up when you search for peoples names on the intranet
I heard the line above from a Sharepoint consultant who worked on our intranet.
Also, amount of questions is not necessarily a good way of measuring a languages popularity. If a language is easy to use, it could have a large following, but not many questions. Hard to draw meaningful conclusions from the data posted imo.
If you are talking about Sharepoint specifically, then you should mention that in your post. Microsoft has a lot of products, just because one is losing popularity doesn't mean they have lost their focus.
"... Visual Basic.NET not backwards-compatible with VB 6.0. This was literally the first time in living memory that when you bought an upgrade to a Microsoft product, your old data (i.e. the code you had written in VB6) could not be imported perfectly and silently. It was the first time a Microsoft upgrade did not respect the work that users did using the previous version of a product." [2]
Personally I'd hate that stuff. Probably why most of the weekend languages are open source and can't be discontinued by some corporate overlord.
[1] https://blog.codinghorror.com/the-slow-brain-death-of-vb-net...
[2] https://www.joelonsoftware.com/2004/06/13/how-microsoft-lost...
Edit: I hadn't seen Kaggle before today, but it looks very easy to hack on the SO data set [1] with a Jupyter notebook.
[1]: https://cloud.google.com/bigquery/public-data/stackoverflow
I'm not making any judgement on the status of the Python community, just appreciating your choice of wording.
Mass Momentum
python-2.7 11915 -1.97%
python-3.x 14987 4.33%
http://data.stackexchange.com/stackoverflow/query/90306/comp...I loved Subversion at the time, and so created the TortoiseSVN Menu plugin [1] for Firefox, and an accompanying XSLT to add lots of rich info and styling into the main UI.
It's something that should have been pretty simple but I remember spending lots of my free time back then to get it just right. Funny thing is, since I worked on it at home but mostly used it at work, I really could have used a good distributed VCS at the time :D
[1]: https://addons.mozilla.org/en-US/firefox/addon/tortoisesvn-m...
Perhaps one of these decades I will actually learn a Lisp.
> something similar for JSON
And I've looked for this as well. Haven't really tried any solution in the trenches but this one might be interesting for you: https://github.com/mmckegg/json-query
Also, GraphQL is tangentially related.
Same dips can be seen for JS:
https://www.google.com/trends/explore?date=today%201-m&q=%2F...
And on the Stack Overflow it seems that JS has perfect balance of workdays vs weekends.
Alas, I don't think Rust's safety properties can guarantee you don't have stack overflows ;)
* http://data.stackexchange.com/stackoverflow/query/edit/62541...
Only Scheme of old days could be compared to have similar similar balance of features and culture of careful attention to details, which, basically, defines a craft approaching (turned into) an art.
The way I would like the world is that the weekend hacking has way better methods, languages, productivity and value for customers.
"Warning: the following section involves googling usernames and reading the first page of results for the people involved. This may be unethical. I apologize in advance."
Obviously your apology means nothing if you are doing it anyway.
There are some Haskell apps in the app store but they are not official or they are using tricks like executing the code in a remote server.
I thought this is over
And why draw everything by hand when you can script some of the animation with ActionScript?
I also know of a few embedded systems that used Actionscript/AIR for their graphical user interface. These also have a long lifecycle and need to be maintained. Although I doubt that most of these would get any new features.
https://i.stack.imgur.com/LUQei.png
Anyone want to speculate why this may be?
That may have been true 15 or more years ago but is not the case any more. I've been using Haskell almost exclusively for the last 7 years for everything from financial analysis to web back ends to, most recently, web front ends.
http://apps.axibase.com/chartlab/c1acecc0/3/#fullscreen
If anything, it might suggest that the knowledge base coverage is reaching a plateau. It would be interesting to watch how many questions are tagged as duplicates. The ratio is probably increasing.
One would think the "ideal" programming language would be so intuitive that it would have a much lower questions asked to usage ratio.
The two might not be that strongly correlated.
Django vs rails for example.
Comparing languages heavily used by acedemics may skew things since they often work on the weekends. Or game development languages vs webapp languages.
According to the infographic, most people spend their week struggling to
get a document out of SharePoint; whereas on weekends, they write cool
algorithms in Haskell, C, C++11 or assembler. This is a surprisingly
accurate reflection of the situation on the ground, from what I hear
from people around me.
Now the question is: how can we swap the weekend for the week, so that
more people can do more of the cool stuff?
http://disq.us/p/1fzpzr5Also, I find SO's coverage of it lacking. So maybe it's more about people sourcing the information elsewhere - relatively good docs, active and helpful community in IRC, and more Q&A on Reddit (albeit mostly - again, anecdotally - out of date, but still) than SO.
http://www.arepeopletalkingaboutit.com/tags/ocaml,scheme,rus...
Unless I'm missing something that graph's all time - there's definitely tonnes of Python Q&A on SO, and as I (anecdotally) described above, not much Rust.
That graph would be better titled "Have people talked about it".
Yeah, I missed that. I thought it was recent history. If we normalized by years available, Swift seems like an outlier with Go lesser so.
Rust is pretty hot on Hacker News and r/programming, but even working in a systems-language-heavy field, I haven't seen too much mindshare (outside of some friends at Mozilla). It is kind of a shame, both Rust and D are doing really cool things, and I'd love to see more penetration!
I'd did speak to a college recently that generally keeps up with new trends and he hadn't heard of rust though, so maybe the community is very small.
https://www.rust-lang.org/en-US/friends.html has very many non-Mozilla organizations :)
I realized one factor that might play a role. I came primarily from a C++ background, and back then, stackoverflow and google were paramount and used daily.
Now that I'm primarily using Go, I almost always get my answers from godoc.org (i.e., the documentation of packages), from source code, from the specification, and from trying things on playground. I don't remember using stackoverflow for Go programming questions in years, if ever.
I wonder if that's a property of Go language (great docusmentation, easily readable source, referenceable spec and viability of answering questions via playground experiments) that cause this, and if it applies to other people too.
1. example "recursion", "algorithm"
http://classicprogrammerpaintings.com/post/143847262458/hask...
http://meta.stackoverflow.com/questions/342903/well-always-e...
I am not going to get involved in politics here or question your statement, what I'm asking is this: where would people go? What's the competition to SO? If people decided they didn't like Joel's views on politics, they'd load up another browser tab and type in "www." [what?] ".com".
HN isn't going to answer why ActiveRecord is sorting my psql object backwards. Quora isn't going to help me figure out why Lua counts from 1 instead of from 0. Reddit isn't terribly friendly to my questions about Java regex vs PHP regex. If I was offended by Joel and wanted to voice that by leaving the site, where would I turn?
Its possible to continue to use SO without contributing to it, which is what quite a few people in that thread had said they would do.
That assertion is correct if you are at the cusp of retirement.
For most people, they'll need to re-tool by picking new technologies during their careers to round out their experience. The blunt truth is that, not keeping up with new languages/frameworks/stacks etc will mean that such folks will become very unemployable long before they reach 50 [0] unless they transition into a management role.
[0] http://liveblog.co/users/davewiner/2015/05/06/iWouldHaveHire...
What is amazing though, is RTFM'ing will .. but who does that these days? RTFM'ing is just 'old' googling, nichtwa?
Have we really built programming tools so complex that they require the Internet?
Some, but not all, authors restrict the term "programming language" to those languages that can express all possible algorithms
I am Some.