4 ms·
Having grown up with google, I still sometimes look at code (that I just got to work after an exhausting search on Stackoverflow) and think, "man, future genera
by nothis 11y ago
Having grown up with google, I still sometimes look at code (that I just got to work after an exhausting search on Stackoverflow) and think, "man, future generations of coders must figure out something more practical" and I'll probably get to tell them, "yep, that's how tedious it was" stories as well. What strikes me the most is how often code repeats, how often mistakes repeat. You can google a quite specific problem and more or less always find a result, likely a Stackoverflow article with tens of thousands of views. While it's great that we now have a collective knowledge tool to fight this, it also illustrates how much programming is still running in circles. We take pride in expertise and skill, but how much of this is memorizing workarounds and exotic quirks that shouldn't even be necessary?
What will be the next google? The next Stackoverflow? I doubt it will literally just be a better version of either. It will probably be better IDEs and debuggers. Heck, I doubt we'll continue to type as much as we do...
- logicallee 11y ago>I still sometimes look at code [...] and think, generations of coders must figure out something more practical Imagine if package management happened this way: say you want to update your version of, oh I don't know, wget. First you Google "wget" and your operating system (analogy for your programming language). Then you open... not the wget page. There is none. You open stack overflow tabs. Not just one either. You look through them, i.e. the answers, the comments about the answers. Finally you find one that people report actually works, you copy a massive block of code into a text file. You make some changes, as it isn't really complete. You save it. You compile it. And, if it worked, there's the latest version of wget, and you move on. Sound reasonable? Apparently it is for programming languages.
- trcollinson 11y agoI am not sure that your analogy quite holds. Though maybe I am reading into it incorrectly. When I turn to Google or Stackoverflow the problem isn't something that could or should be solved by existing code or documentation. It's often more nebulous. I am sure there are those who strictly code by copying and pasting from StackOverflow but I would imagine in the long run they either get better at coding or they fail miserable. For me and most of the people I know who look things up it's more like, "I am working on this piece of code which is giving an error, and I have stared at it for a bit and I don't see what is wrong. I wonder if others have seen this problem before. I need a bit of inspiration to get me through it." It's almost like paired programming. It's not so much that I am looking for an answer, I am looking for a toe hold in order to push myself just a little higher on a cliff. Inspiration from others experiences helps me to move along quicker. I got this in the past from BBS's, books, and magazines. But now the internet has made that process quite a bit faster and less expensive. And that seems reasonable to me.
- logicallee 11y agoyes and no. It is often nebulous, but at the same time the nebulous parts are often incredibly well-defined, so that if your IDE came up with it instead of a Google result, you could fill in the blanks there and then. But your IDE doesn't do your Googling for you, you have to leave and come back.
- S4M 11y agoMy guess is that IDEs and debuggers will be more integrated with what's available online. Let's say you have a compiling error. Currently you look up on google the error message the compiler gives you and most likely get a stackoverflow link with someone having the same problem - and hopefully someone else having answered it. Your IDE could do that automatically instead - there is already a plugin to access stackoverflow from emacs [0]. I imagine one further step would be to have some AI that can read snippets of your code that are causing problems and match it to similar snippets from Stackoverflow. Let's say your code is (in python): myCounter = 0 while myCounter < 10: doSomething(counter) The AI could realize that it's exactly the same mistake as this code that someone posted on stackoverflow because it ran infinitely: i,n = 1, 50 while i < n: doSomethingElse(i) (of course, I used a very trivial example, but you get the idea). [0] https://github.com/omouse/emacs-sos https://github.com/omouse/emacs-sos
- jheriko 11y ago> Currently you look up on google the error message the compiler gives you this makes me afraid a little. although given the style of your examples i can imagine you have just not had a problem just because of using simple and permissive, modern languages which are difficult to make mistakes with. due to the nature of compiler errors 99% of the time i can work it out by looking at the line of code. 1% of the time i need to read it carefully because it involves deeply nested C++ templates, and once i find the offending line i fix it 99% of the time in the same way. the remaining tiny fraction i learn something new. but find that most of the google results are people who failed to solve the problem instead of anything useful, and just have to work it out for myself. i will waste time reading stackoverflow posts with no answers, or answers from people who only want to answer, rather than know an answer. occasionally an apple fanboy will rile me by claiming in some comment that everyone is doing it the wrong way and suggesting something so dumb my head nearly explodes. :)
- fao_ 11y agoI wonder if there is (or could be) a program that collates the most common bugs for X programming language from SO. So you run it as a sort of preprocessor, and it picks up stuff that the compiler either doesn't or can't.
- reagency 11y agoGoogle's Tricorder http://research.google.com/pubs/pub43322.html http://research.google.com/pubs/pub43322.html
- jestar_jokin 11y agoNot related to SO, but FindBugs and PMD for Java are designed to identify potential bugs, based on accumulated knowledge of "gotchas" (e.g. calling "multiply()" on a BigDecimal without assigning it to a new variable - BigDecimal is immutable).
- jheriko 11y ago> You can google a quite specific problem and more or less always find a result usually when i have to resort to finding someone else's solution i find nothing. its probably a 70/30 or 80/20 split. when it comes to low level or actually challenging problems stackoverflow is more noise than answers. its become a bit like expertsexchange used to be, unless you are a web dev.
- copperx 11y agoJust tie the compiler to Stackoverflow! I kid, but error messages could be much better.
- ucho 11y agoThere was a sorting algorithm that randomly selected a sort function from Stackoverflow posts until one of them was able to sort data
- hamiltonkibbe 11y agohttps://xkcd.com/1185/ https://xkcd.com/1185/