Google Code Search (2006-2013)  was more useful. I miss that. Its search allowed regular expressions.
I really believe that the technical crowd drives what becomes popular (app recommendations for family and friends). I feel a lot of the "Google hacking" queries have become less obvious and the search bubble stuff was getting bothersome. This is definitely a step in the right direction. Hopefully I'll be a little less frustrated with results in the future.
This behavior is actually very nuanced and impressive to watch, once you understand what's going on.
I don't think google is becoming more user friendly at the expense of being technical. It certainly isn't for me. What your problem sounds like is that it's built two separate profiles for you - one of which is what you're likely to search of desktop, and the other for what you're likely to search on mobile.
That's because Google is smart and despite the fact that more people know of Python as a snake, when somebody types just "python" into a search query, it's almost definitely true that they mean the programming language. Few people Google for types of snakes.
A similar thing is true for "ruby" and "rust".
Although most of the time Google will give me technical results if I can coax it.
This is hard because (a) you have to have contextual awareness of punctuation in certain places, like the '&' character in john&jane vs the logical &&. (b) your vocabulary of terms becomes larger - which is probably not a big deal for most folks but if you are Google then a 0.0001% increase in the vocab is a killer in space.
--EDIT-- The vocab increase is probably not as much as I noted above - but even adding a dozen terms can have an impact at Google's scale.
In that case, I think you want to just store "can't" and treat "cant" the way you would any other potential near-miss spelling of a more common word.
Maybe Google hasn't previously thought the extra space/complexity was worth the special treatment but given the relative quantity of data they already index and the usefulness of this feature I'm surprised.
The storage cost was prohibitive. Search engines rely on a data structure known as an inverted index; it's basically a list, for each token, of every document that contains the token, and for a context-aware search engine like Google it usually contains the position within the document of the token as well. Single-character punctuation marks like periods, commas, parentheses, dashes etc. appear in literally every sentence. That means that the inverted index for periods or commas would have to contain an entry for literally every single sentence on the web.
There's a similar problem for common words like 'a', 'the', prepositions, etc, but these are usually already solved by stopwording.
That's why this announcement only covers groups of punctuation with 2-3 characters. These don't appear in ordinary text, and so you can generate posting lists for them that are reasonably-sized. (I suspect that the economics of the index have changed as well, making storage costs cheaper, but this work happened after I left and so I don't know details.)
Previously if a document contained "(hello" it would just be stored in the index once: as "hello". With this change, it needs to be stored in the index twice, as "(hello" and "hello", so that people searching either term can find it.
Fixing that seems like PM101 material, yet here we are in 2017 with this still being a thing...
When I was a teenager I made music under the name shark^^bait
The ^^ is what made it stand out from others.
The issue is there is no efficient way to search for that phrase with the special characters.
I have no idea if I can still find the absolutely god awful music I made back then.
Using the phrase match in google just searches for sharkbait which doesn't help at all.
It doesn't help that years later a little movie called Finding Nemo came out.
it's google though shouldn't be surprised
">>= operator": https://www.google.com/#q=%3E%3E%3D+operator&*
But it's a sight better than it was before. It actually shows meaningful programming language results. And if I call the operator by it's Haskell name at the same time, I get very good results:
">>= bind": https://www.google.com/#q=%3E%3E%3D+bind&*
Or just the language name:
">>= Haskell": https://www.google.com/#q=%3E%3E%3D+haskell&*
Operators in C++ - TutorialsPoint
Operators in C++ - Learning C++ in simple and easy steps : A beginner's tutorial ... Right shift AND assignment operator, C >>= 2 is same as C = C >> 2.
C++ Loop Types · Conditional operator · C++ Pointer Operators · Increment operator
Feb 3, 2017 - An assignment operator assigns a value to its left operand based on the value of its right operand. ... Right shift assignment, x >>= y, x = x >> y.
Operators in C and C++ - Wikipedia
This is a list of operators in the C and C++ programming languages. All the operators listed exist in C++; the fourth column "Included in C", states whether an ...
Right Shift Assignment Operator (>>=) - MSDN - Microsoft
Using this operator is almost the same as specifying result = result >> expression, except that result is only evaluated once. The >>= operator shifts the bits of ...
<<= Operator (C# Reference) - MSDN - Microsoft
Jul 20, 2015 - except that x is only evaluated once. The << operator shifts x left by the number of bits specified by y . The <<= operator cannot be overloaded ...
Jul 20, 2015 - x >>= y – right-shift assignment. Shift the value of x right by y places, store the result in x , and return the new value. => – lambda declaration.
-= Operator (C# Reference)1 - MSDN - Microsoft
Jul 20, 2015 - except that x is only evaluated once. The / operator is predefined for numeric types to perform division. The /= operator cannot be overloaded ...
What does this ">>=" operator mean in C? - Stack Overflow
Jul 21, 2013 - unsigned long set; /set is after modified/ set >>= 1;. I found this in a ... The expression set >>= 1; means set = set >> 1; that is right shift bits of set ...
java - What does "|=" mean? (pipe equal operator) - Stack Overflow
Jan 12, 2013 - |= reads the same way as += . notification.defaults |= Notification.DEFAULT_SOUND; .... 2 <<= Left shift AND assignment operator C <<= 2 is same as C = C << 2 >>= Right shift AND assignment operator C >>= 2 is same as ...
C++ Operator Precedence - cppreference.com
Oct 12, 2016 - Precedence, Operator, Description, Associativity. 1, :: Scope resolution ... For relational operators > and ≥ respectively. 9, == != For relational ...
<your programming problem> !so
Takes your search directly to Stack Overflow
If you don't like the results, try it again with !g and your search is submitted to Google.
They've got 9000+ bangs now: