Jump to content

  • Log In with Google      Sign In   
  • Create Account


Starting to hate Google...


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
45 replies to this topic

#1 Serapth   Crossbones+   -  Reputation: 5261

Posted 01 November 2011 - 02:12 PM

EDIT: Hm, this was going to start out as a discussion about Dart, which would have been relevant to this forum, then turned into a bit of a rant about Google development across the board. Sorry I think it ended up not being appropriate to this forum and should probably be relocated, my bad.
I was wondering if anyone out there has given a look at Google dart?

It's their proposed replacement to Javascript ( although they wont formally admit that ), and it straddles the line between dynamic and static languages and had some very interesting concepts. I played around a bit with the online tool then decided to give it a shot.



Fast forward 4 hours later and I am still no further ahead. Simply put, I am really starting to hate Google. The seed was planted when I was working on that hateful platform Android and got to work with their half baked tools, and this experience was right up that alley. First off, you have to build the damned thing yourself, no precompiled binaries, because I guess the geniuses at Google find that offensive to their sensibilities. Oh, but instead of downloading the code via SVN, GIT or CVS, or better yet a simple zip, nooooooooo.... you have to download Google's build tool they made for Chromium and use it. Lovely. So I run this black box and joy of joys, it fails. Oh look, there is a bug report on that from 2 weeks ago.


At this point I said screw it.

This was after recently creating a tutorial for getting PlayN up and running, a process that would make Rube Goldberg proud. I followed that by attempting to deploy a PlayN game to Google App Engine, which quite simply DOES NOT WORK, but my god the process, the process made me want to cry tears of blood.

Seriously, I have worked in corporate IT, with companies like UGS/EDS and IBM that get paid by the hour and it shows in the way they do things... and even their process is streamlined compared to Google. On top of that, support is completely lacking... look in the PlayN forum at the unanswered questions... now do the same in Android development ( oh my god, the scars from working with Android! ), or even go to products like Adsense. If the answer isn't in a wiki somewhere, you are screwed. If the answer is in a Wiki, I guarantee it will have 19 steps, and 2 of them are wrong.


Seriously, Google really needs to grow up and act like a big company soon. That means not hiding behind the word 'beta' and actually creating polished and supported products. That means releasing 'good' documentation, creating proper installers, hiring people to actually answer questions asked in your forums and all the other thing every single other big corporation does. Yes, it's a bit having to hire people and pay for support, but guess what, that's all part of growing up. Until then, you are going to continue to be a one trick pony.

I mean seriously, some time contrast Google vs Microsoft developer support, it's appalling how incredibly terrible Google is. Hell, contrast the process of deploying to App Engine, with the process of deploying to Amazon or Azure. In the case of Google products, its like you are dealing with "Steve the IT guy" 's hacked together perl build process from 1992. Amateur hour at a multi-billion dollar company.

Sponsor:

#2 Telastyn   Crossbones+   -  Reputation: 3726

Posted 01 November 2011 - 02:39 PM

Google's great successes I think are the result of their attitude to let great developers spend time to make great ideas. For great developers, this works great. Filtered by great marketing and sales folks to detect gold vs. crap, this works great. When you get a skilled hacker, who doesn't have that firm grasp of customer needs (to be kind) or poor non-technical folks who don't know enough to push back on it, you're going to get awesome sounding but unpolished (or Google Wave-like alien-ness) stuff. The bigger the company the more dead weight you get.

Personally, I'm fine with getting a few (or even a bunch of) duds for every slick webapp we get. Better than most other companies who provide just as many duds without any of the stars.

#3 Serapth   Crossbones+   -  Reputation: 5261

Posted 01 November 2011 - 02:58 PM

Google's great successes I think are the result of their attitude to let great developers spend time to make great ideas. For great developers, this works great. Filtered by great marketing and sales folks to detect gold vs. crap, this works great. When you get a skilled hacker, who doesn't have that firm grasp of customer needs (to be kind) or poor non-technical folks who don't know enough to push back on it, you're going to get awesome sounding but unpolished (or Google Wave-like alien-ness) stuff. The bigger the company the more dead weight you get.

Personally, I'm fine with getting a few (or even a bunch of) duds for every slick webapp we get. Better than most other companies who provide just as many duds without any of the stars.


It's not their consumer products I have an issue with ( well sorta ), it's their developer products that are half baked, poorly supported and horrible.

#4 Antheus   Members   -  Reputation: 2397

Posted 01 November 2011 - 02:59 PM

Ask for a refund.

Oh, wait...

Although it really does come down to this: You get what you pay for.

developer support, it's appalling how incredibly terrible Google is


Google does not have support of any kind. Unless you are a popular blogger or highly paying client.


I have a similar issue. Chrome's GPU accelerated canvas is broken on one of my machines (works in IE, FF, Safari, ...). It's some weird issue with something and the results are from garbled screen to hard locked machine. Since XP was introduced, this is the only time I've had machine freeze up. Best part - accelerated canvas is on by default since 14 and same issue occurs up to canary. Bugs like this have been cropping up for the past two years.

It's not a big deal to me, disabling hard acceleration via --switch works. But I suddenly have to completely agree with Microsoft refusing to support WebGL. Not only is complete lockup of machine with trivial OGL/DX possible, Chrome is doing it by default (to me). If simply putting <canvas> into some web page is enough for lock-up Windows 7 (6870 radeon, up-to-date on everything), then giving unlimited access to any web page really is a bad idea.

#5 Sirisian   Crossbones+   -  Reputation: 1684

Posted 01 November 2011 - 03:07 PM

I was wondering if anyone out there has given a look at Google dart?

It's their proposed replacement to Javascript ( although they wont formally admit that )

Javascript needs to be replaced. I along with others online have mentioned this for a long long time.

However, their direction is wrong. Like a lot of people that want to design a web language they immediately jump to an untyped language. Ideally they should have gone for the C# approach.

Regarding concurrency:

An isolate is a unit of concurrency. It has its own memory and its own thread of control. Isolates communicate by message passing (10.14.4). No state is ever shared between isolates.


They're just taking the stupid idea of webworkers which was a useless feature and just throwing it into their language instead of implementing actual language locks and mutices.

I won't go into detail, but I read over their language spec and this is just horrible. I mean take for instance a very basic thing missing from javascript such as operator overloading? Nope Dart doesn't add that. Dart doesn't add anything that Javascript doesn't already have. You can't even allocate a byte array in their language. Javascript sucked so much they had to force a new specification for typed arrays just so things could move forward with efficiency.

All and all their language they designed looks like it was created by someone who hasn't programmed. (Just look at their getter/setter syntax wtf is that?).

They need to really keep their toy projects to themselves if they're not even going to try.

// edit I just noticed something. Their language was built while trying not to trample on any current specifications it looks like. Very interesting decision. So you have to use say the Float32Array, which is currently not supported really in the language prototype.

#6 alnite   Crossbones+   -  Reputation: 2061

Posted 01 November 2011 - 03:55 PM

I share your sentiment toward a lot of Google products.

My first cry was using gmail. Back in the day it was the most convenient webmail compared to Yahoo and Hotmail, but it was so difficult to use. Gmail for Android is even more so. The user interface is counter intuititive and frustrating. No concept of folders, but just labels, and my inbox shows ALL messages. It hides the Reply All, Forward, and other buttons inside a button that says Reply. So now it's two clicks away before I can forward emails. I was wondering if Google staff actually use Gmail. Some of them must have shared the same frustration? Yahoo mail now feels 10x better than Gmail.

Then there's Android, pretty much what you said there. I mentioned this on another post as well. They keep releasing new products and new features, and they are half-thought out. Ice Cream Sandwich has just gotten released, but how many Android users out there can immediately take advantage of it? Practically none. Why? Because it relies on device manufacturers to ship their devices with the OS, and the devices releasing now are still at 2.3! By the time the device manufacturers are able to release 4.0 Android devices, Google has probably announced an Android 5.

Then there's Google Docs for Android. I swear that product was full of bugs. Here's a company that developed Android and Google Docs, and you might think they would be able to combine both products correctly. Even with that much leverage, they still fail to deliver good products. Again, half-baked. One time it was causing an infinite loop, and didn't get fixed for days. They control Android, Google Docs, Android submission and testing, and yet they are still able to screw it up by launching a product that has an infinite loop at startup.

All their products have that open-source quality. Created by devs, for devs, if it works (even though it involves 10 steps) why bother with anything else?

#7 Serapth   Crossbones+   -  Reputation: 5261

Posted 01 November 2011 - 04:11 PM

All their products have that open-source quality. Created by devs, for devs, if it works (even though it involves 10 steps) why bother with anything else?


It really does feel that way, even worse now they are trying to make more money from these services ( so the "get what you pay for" comment goes away ) and are setting price structures that are simply insane.


To perfectly illustrate the level of *cough* polish *cough* Google put's on its products, compare Google App Engine to Microsoft Azure or Amazon EC2 and you will see the joke that Google is becoming. In every conceivable usability metric; documentation, support, install process, etc... GAE is appalling compared to it's competition.

#8 swiftcoder   Senior Moderators   -  Reputation: 9760

Posted 01 November 2011 - 04:45 PM

Regarding concurrency:

An isolate is a unit of concurrency. It has its own memory and its own thread of control. Isolates communicate by message passing (10.14.4). No state is ever shared between isolates.

They're just taking the stupid idea of webworkers which was a useless feature and just throwing it into their language instead of implementing actual language locks and mutices.

I can't agree with you there. The locks & mutices threading model you are talking about is vastly inferior to Erlang-style concurrency (i.e. message passing, no shared mutable state).

Dart's Isolate is likely the result of the work they have done on coroutines in Google's Go - they quite closely resemble one another, although isolate appears to be a little more general (can spawn OS threads as well coroutines).

Tristam MacDonald - Software Engineer @Amazon - [swiftcoding]


#9 BeanDog   Members   -  Reputation: 1063

Posted 01 November 2011 - 06:04 PM

My first cry was using gmail. (crying snipped) I was wondering if Google staff actually use Gmail. Some of them must have shared the same frustration?

FWIW, I haven't personally met any other person who shares your view on Gmail and Yahoo mail. At least among my family, friends, acquaintances, and coworkers, Gmail is the one undisputed shining star among all of Google's non-search products. Some people hate Docs, many hate Spreadsheets, and everyone hates Presentations, but Gmail they did right, IMHO.

~BenDilts( void );

Lucidchart: Online Flow Chart Software; Lucidpress: Digital Publishing Software


#10 Sirisian   Crossbones+   -  Reputation: 1684

Posted 01 November 2011 - 06:31 PM


Regarding concurrency:

An isolate is a unit of concurrency. It has its own memory and its own thread of control. Isolates communicate by message passing (10.14.4). No state is ever shared between isolates.

They're just taking the stupid idea of webworkers which was a useless feature and just throwing it into their language instead of implementing actual language locks and mutices.

I can't agree with you there. The locks & mutices threading model you are talking about is vastly inferior to Erlang-style concurrency (i.e. message passing, no shared mutable state).

Dart's Isolate is likely the result of the work they have done on coroutines in Google's Go - they quite closely resemble one another, although isolate appears to be a little more general (can spawn OS threads as well coroutines).

Seems like a good idea in theory until you actually do it. Pretend you have a set of data you want to work on with multiple threads. Like for multithreaded pathfinding or image processing. Suddenly you're forced to copy data. (In webworker's case you can't copy more than 1 MB of data). Doesn't matter really though since the time waste copying is so expensive that you've effectively negated any performance increase. That's not even counting the copying of the data back. The alternative is to just pass in a reference and go "hey you 2 threads work on half the data each and get back to me when you're done". No copying overhead. You'll notice in that situation that neither thread even had to touch the other's data at the same time so no lock was needed.

The only time it makes sense is when your passing off like a few values or a small array for heavy processing. Then again you lock out the bigger uses of threads that way. The lock and mutex allows everything without restrictions.

#11 ApochPiQ   Moderators   -  Reputation: 14660

Posted 01 November 2011 - 07:07 PM

Building all of your cars one molecule at a time allows everything without restrictions. Why the hell would those stupid car companies want robotic factories and pre-assembled components? Morons. ;-)


All snark aside, Dart's mistakes in concurrency are not a fundamental weakness of no-shared-state models. They are a Dart-specific flub, and should be treated as such. The correct way to parallel-process large data sets without copying is to pass a reference to disjoint subsets of the data to each worker node; the fact that you cannot do this efficiently in Dart (from my understanding) is a foible of the language, not the parallelism model.

Shared state concurrency is disgusting, and non-shared models are almost uniformly far superior. Yes, you have to change your way of thinking, but then again, Henry Ford's assembly line changed a lot of thinking, too. New mental modes of operation are not inherently evil.

#12 way2lazy2care   Members   -  Reputation: 782

Posted 01 November 2011 - 09:46 PM

Just to add my voice to the already given sentiment. After using MSDN pretty much any open source product designed for developers to extend pales in comparison. I do think a lot of people get unjustly mad at Microsoft without really giving them credit for how balls out amazing their developer tools/support/documentation are; even their free ones. It's a shame it isn't always better translated to the public through the products the developers make.



#13 ApochPiQ   Moderators   -  Reputation: 14660

Posted 01 November 2011 - 10:46 PM

Regarding Google itself: meh. I'm going to be excessively frank about my opinions, so if you're easily offended, skip this post.




This is just a hype bubble in the process of collapsing. People got ludicrously inflated images of Google's sophistication, engineering prowess, hiring standards, processes, you name it. Frankly it was just a giant marketing campaign to help with their IPO and with recruitment drives. Everyone seems to have this almost messianic picture of Google, as if they're going to save mankind or some nonsense.

They're just another large tech company.


Seriously. Where's the hate for Hewlett-Packard? IBM? Sun? Oracle? Yahoo, for that matter? Amazon? Nah, those guys are already seen for what they are - large tech companies - and the shiny has worn off years ago. It isn't hip enough to hate them anymore - even though it once was the height of being "with it" to rag on each of those firms. The target of unjustified loathing for this month is Google, and that's purely a backlash against a very successful brand-building campaign. Yeah, so they're not going to solve world hunger and bring about eternal peace, but if you believed the hype in the first place, I've got some nice waterfront property to sell you.


Google is just a large tech company. That means they will have a few brilliant products, a few abject failures, and a handful of mediocre fluff in-between. They will try many things in an effort to expand their revenue streams and remain relevant in the rapidly-moving tech markets, and they will fail at most of them, because most business ventures are failures, even when they are started by successful firms. People seem to forget that with alarming regularity when criticizing companies in general.

Dart is just jostling for position in a market that's poised to shift radically, provided someone with enough elbow grease can shove it off the cliff. No big shocks there.

Android is frankly a far better platform to develop for than iOS (yeah, yeah, cue the flames) and arguably one of the most accessible platforms for mobile development in existence. I don't share the sentiment that it's poorly managed, aside from Hardware Hell, which was a regrettable gaffe on Google's part early on. Most of the crappy management of Android tech comes from actual cell phone vendors, who are notoriously greedy, stupid, short-sighted in technical matters, and slow to change. They inherited that legacy from the land-line phone empires of the 20th century. No surprises there, either.

Google themselves has recently realized that they've spread themselves too thin, and have started cutting back on various stuff in a transparent effort to trim the fat. Witness all the products that have been end-of-life'd in the past few months; consider the features that have been axed from surviving products; look at the (frankly respectable) re-focus on their core strengths of search and targeted advertising. The only surprise here is that an otherwise "large tech company" is self-aware enough to make such radical moves in the first place.


Hating Google is just the tech fad of the year. The in crowd all has to do it to retain their street cred.

Yawn.

#14 valderman   Members   -  Reputation: 512

Posted 02 November 2011 - 03:26 AM



Regarding concurrency:

An isolate is a unit of concurrency. It has its own memory and its own thread of control. Isolates communicate by message passing (10.14.4). No state is ever shared between isolates.

They're just taking the stupid idea of webworkers which was a useless feature and just throwing it into their language instead of implementing actual language locks and mutices.

I can't agree with you there. The locks & mutices threading model you are talking about is vastly inferior to Erlang-style concurrency (i.e. message passing, no shared mutable state).

Dart's Isolate is likely the result of the work they have done on coroutines in Google's Go - they quite closely resemble one another, although isolate appears to be a little more general (can spawn OS threads as well coroutines).

Seems like a good idea in theory until you actually do it. Pretend you have a set of data you want to work on with multiple threads. Like for multithreaded pathfinding or image processing. Suddenly you're forced to copy data. (In webworker's case you can't copy more than 1 MB of data). Doesn't matter really though since the time waste copying is so expensive that you've effectively negated any performance increase. That's not even counting the copying of the data back. The alternative is to just pass in a reference and go "hey you 2 threads work on half the data each and get back to me when you're done". No copying overhead. You'll notice in that situation that neither thread even had to touch the other's data at the same time so no lock was needed.

Care to clarify why you believe references and message passing are mutually exclusive?

The only time it makes sense is when your passing off like a few values or a small array for heavy processing. Then again you lock out the bigger uses of threads that way. The lock and mutex allows everything without restrictions.

Concurrency is an abstraction, not an optimization; the basic bronze age concurrency primitives are quite obviously useless in this regard, when compared to Erlang-style message passing.

#15 Sirisian   Crossbones+   -  Reputation: 1684

Posted 02 November 2011 - 06:22 AM




Regarding concurrency:

An isolate is a unit of concurrency. It has its own memory and its own thread of control. Isolates communicate by message passing (10.14.4). No state is ever shared between isolates.

They're just taking the stupid idea of webworkers which was a useless feature and just throwing it into their language instead of implementing actual language locks and mutices.

I can't agree with you there. The locks & mutices threading model you are talking about is vastly inferior to Erlang-style concurrency (i.e. message passing, no shared mutable state).

Dart's Isolate is likely the result of the work they have done on coroutines in Google's Go - they quite closely resemble one another, although isolate appears to be a little more general (can spawn OS threads as well coroutines).

Seems like a good idea in theory until you actually do it. Pretend you have a set of data you want to work on with multiple threads. Like for multithreaded pathfinding or image processing. Suddenly you're forced to copy data. (In webworker's case you can't copy more than 1 MB of data). Doesn't matter really though since the time waste copying is so expensive that you've effectively negated any performance increase. That's not even counting the copying of the data back. The alternative is to just pass in a reference and go "hey you 2 threads work on half the data each and get back to me when you're done". No copying overhead. You'll notice in that situation that neither thread even had to touch the other's data at the same time so no lock was needed.

Care to clarify why you believe references and message passing are mutually exclusive?

I was referring to the common implementation of web workers which under the definition of no shared mutable state usually requires the data be duplicated so that it isn't changed on the original thread while the new thread works with it. The alternative is to use a lock statement and lock the resource while it's being used so only one thread may work with it at a time without any overhead. It's usually much more flexible and has higher performance when working with large data sets.

In regard to passing references in a message to a thread I'm not sure what your question is. I never said they're mutually exclusive. How did you imagine working with a reference in a concurrent thread? Say you don't have locks and you just access it then it's no different than what I described as a more flexible system to allow. Placing the constraint on data that whatever you access is immutable between threads is the unnecessary constraint I'm not a fan of. Especially since it doesn't reflect any native hardware limitation. Accessing referenced data from a thread without a lock for instance should be a decision left to the programmer. Sure it can be unpredictable with registers and such, but as long as it doesn't allow scripting security holes then it's fine. (Implementing it so it doesn't have security flaws is fairly trivial in that respect).


The only time it makes sense is when your passing off like a few values or a small array for heavy processing. Then again you lock out the bigger uses of threads that way. The lock and mutex allows everything without restrictions.

Concurrency is an abstraction, not an optimization; the basic bronze age concurrency primitives are quite obviously useless in this regard, when compared to Erlang-style message passing.

That's an extremely naive view of parallel processing. When used correctly the speedup is rather impressive especially on dual and quad-core systems. Using it only as an abstraction is kind of missing the big picture especially when those threads are mapped to kernel threads like in most languages.

#16 mdwh   Members   -  Reputation: 840

Posted 02 November 2011 - 06:41 AM

Yes I do hate the way that gmail shows email in its webmail - I have no idea if I've received a new email or not, so I keep having to look at the email, only to find it's an old thread that hasn't received a new email yet.

Yes, threading has its uses, and a threaded email client would be great, but it should be easily switchable between different views, and not done the gmail way.

(I see that Android does text messages/email this way? If there's no way to turn that off, I'll have to keep clear of Android for my phone.)


http://erebusrpg.sourceforge.net/ - Erebus, Open Source RPG for Windows/Linux/Android
http://homepage.ntlworld.com/mark.harman/conquests.html - Conquests, Open Source Civ-like Game for Windows/Linux

#17 Shadowdancer   Members   -  Reputation: 319

Posted 02 November 2011 - 06:41 AM

Javascript needs to be replaced. I along with others online have mentioned this for a long long time.


I'm quite new to JS, but from what I've seen, the language itself is "fine" (plus or minus personal preferences or offbeat requirements).

What needs to be replaced is its integration in browsers, mostly

  • The overly shitty execution model that allows for "fun" things like just executing stuff by appending it to the document, and
  • The supremely half-assed brainless DOM API that just does some things wrong (ever tried using an onclick handler on a submit button?) and is generally decoupled from what the DOM is really looking and acting like.

Both are not language-, but integration issues.

#18 mdwh   Members   -  Reputation: 840

Posted 02 November 2011 - 06:45 AM

This is just a hype bubble in the process of collapsing. People got ludicrously inflated images of Google's sophistication, engineering prowess, hiring standards, processes, you name it. Frankly it was just a giant marketing campaign to help with their IPO and with recruitment drives. Everyone seems to have this almost messianic picture of Google, as if they're going to save mankind or some nonsense.

They're just another large tech company.


Seriously. Where's the hate for Hewlett-Packard? IBM? Sun? Oracle? Yahoo, for that matter? Amazon? Nah, those guys are already seen for what they are - large tech companies - and the shiny has worn off years ago. It isn't hip enough to hate them anymore - even though it once was the height of being "with it" to rag on each of those firms. The target of unjustified loathing for this month is Google, and that's purely a backlash against a very successful brand-building campaign. Yeah, so they're not going to solve world hunger and bring about eternal peace, but if you believed the hype in the first place, I've got some nice waterfront property to sell you

I agee that Google (and Apple for that matter, and even more overhyped company) are just yet another company. But I think this sort of "hate" is inevitable - the reason we don't see the hype for HP, IBM, etc, is because they're never overhyped by the media and its fans to the point of ridiculousness in the first place.

I don't think it's the people criticising Google being hip - they're just responding to the hip crowd that go on about them all the time.
http://erebusrpg.sourceforge.net/ - Erebus, Open Source RPG for Windows/Linux/Android
http://homepage.ntlworld.com/mark.harman/conquests.html - Conquests, Open Source Civ-like Game for Windows/Linux

#19 swiftcoder   Senior Moderators   -  Reputation: 9760

Posted 02 November 2011 - 09:19 AM

the reason we don't see the hype for HP, IBM, etc, is because they're never overhyped by the media and its fans to the point of ridiculousness in the first place.

Maybe not recently, but they have all created vast hype at one time or another...

Remember when Gateway was going to 'revolutionise the world through low-cost computing' (their computers were shoddy, and not terribly cheap)? Or when they ran ads on every media channel claiming to the world that they had an 'iMac killer' (the iMac is alive and well)? Remember when Dell had the 'best customer service in the world' (but it took an hour to speak to a human)?

Tristam MacDonald - Software Engineer @Amazon - [swiftcoding]


#20 Serapth   Crossbones+   -  Reputation: 5261

Posted 02 November 2011 - 10:18 AM

I am not talking at all about end user products like GMail, Android or any other Google product.

I am talking about their developer products, the horrendous lack of support and the shoddy state they are shipped in. I don't talk about IBM, because frankly their developer support is absolutely stellar. Actually in my brief exposure to Yahoo's developer support it was incredibly good too, although I only worked with their UI toolkit and BOSS search engine technology, but both were exceedingly well documented and packaged in a way that made it extremely easy to get up an running. I have dealt with Amazon as a developer, working with their S3 and EC2 technologies and though the experience wasn't amazing ( it has improved ), it was vastly superior to any time I have dealt with Google products. It at least had timely, thorough and accurate documentation, which is the baseline of what I expect.


I use Google as my primary search engine, I am typing this in Chrome, my phone is an Xperia X10 ( not that I am happy about it over all ) and I own a Asus Transformer. I have no particular hate over Google products, but their developer support is absolutely and overwhelmingly shit.




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS