I can't tell if you're citing that as an example that confirms or disputes his point.:)
GNUstep has been around for ages, but honestly I'd be very surprised if non-iOS use of ObjC accounts for even 1% of the total usage. 0.1% maybe? 0.01%?
Here's a few off the top of my head. Some of them may be specific to Cocoa, but I'm pretty sure that even those are rooted in ObjC's "features":
Method signatures are often ridiculously long (see NSBitmapRep's initWithBitmapDataPlanes:pixelsWide:pixelsHigh:bitsPerSample:samplesPerPixel:hasAlpha:isPlanar:colorSpaceName:bitmapFormat:bytesPerRow:bitsPerPixel: method)
Parameter names in method calls are/always/ named. You can't just say obj.someMethod(x,y). It's always [obj someMethodForX:x y:y].
The above combine to make even the most basic operations tedious. Want to trim leading/trailing whitespace off a string? Enjoy [someString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]
Immutable arrays, dictionaries, sets, strings. I get it, it can be useful for performance to know something is immutable (maybe, I'm not that convinced). But the common use case is most certainly mutable, so/that/ should be the default, e.g. NSArray should be mutable and then if needed there can exist some NSImmutableArray or something. But no, they did it the other way around.
Memory management (up until recently) was neither fully manual nor fully automatic and ownership was based on naming conventions
Being a superset of C, they couldn't provide an object-oriented array class using the normal array syntax, so instead you have tedium like [myArray objectAtIndex:2]
Ditto for strings. Also, you have to prefix string constants with '@'.
Similarly, you can't put "plain" objects into arrays, e.g. [myArray addObject:5] won't work, but [myArray addObject:[NSNumber numberWithInt:5]] will.
And of course you can't just create an array with ['a', 'b', 'c'] but instead have to do [NSArray arrayWithObjects:@"a", @"b", @"c", nil].
Backwards conventions like [NSDictionary dictionaryWithObjectsAndKeys:@"value0", @"key0", @"value1", @"key1", nil];
If I'm going to pay the dev cycle price of a compiled language, it should catch stuff like non-existent selectors at compile time instead of blowing up at runtime
Stack traces from delayed selector calls have zero contextual information
The single inheritance model and a strict class hierarchy discourages writing reusable code. For example, if I have an app that runs on iPad and iPhone and they share a common screen (from the user's perspective although the layout/design might be significantly different), it's a real task to write a common parent class holds the common code.
Many violations of don't-repeat-yourself: if you want to have an object with properties like Foo.title, then the code is roughly:
Similarly, there's no way to have a truly dynamic object with a clean syntax, e.g. in Python/ruby/js/and a host of others you could have a quick little object you use to pass state around, kind of like a struct that has its members added on the fly, e.g.: x = new Object() ; x.name = 'dave' ; x.age = 3. There is literally no way to do that in ObjC - the best you can do is create mutable dictionary and use its verbose syntax.
We could have a whole extra thread about the toolchain (Interface Builder is an abomination, Xcode often pegs multiple CPUs when it's just sitting there, if you kill the simulator instead of stopping the app via Xcode then you often have to reboot your host machine before you can run the simulator again) but I digress.
I dev in ObjC on iOS almost every day, and the language sucks. I think it sucks less than C++, but I'm not sure that says much. The Xcode IDE (which also sucks) and the bolted-on features help, but overall the language hasn't aged as well as plain old C - i.e. while coding in it, you are constantly reminded that it is not a modern programming language. Anytime a language gets in your way, it's a bad thing, and that happens an awful lot with ObjC.
(And before the flames start: yes, I fully recognize that nobody is forcing me to dev for the iOS platform, it's a choice I've made because I make gobs of money off of it. But that doesn't make ObjC suck any less, it just makes me willing to tolerate the suck and grumble about it on/.)
Yup, so true: it frustrates me when someone arguing a scientific point expresses absolute, 100% certainty that something has been proven to be true - I hope they are just being lazy and that they don't actually believe it's all locked up and beyond all doubt. But it also drives me crazy when someone properly recognizes the degree of certainty and somebody else pounces on the perceived weakness.:)
Anyway, the week thing, as I bet you are aware, comes from Gen 1 where it lists what was done on each day. Because of this there is a common belief among/some/ people that it was done in a week. It's not my belief, but it's very common. IIRC the word that was translated to 'day' in English was in Hebrew a word that just as easily connoted 'period' or, since this is slashdot, an 'iteration'.:)
So, yeah - I think a case could be made that Genesis is partially mistranslated. But even if it is correct, there are a number of ways it could be correct and yet not support the young-earth creationist view and perhaps not even be in conflict with scientific evidence at all. As someone who really respects science, I also leave open the possibility, however crazy remote, that the earth/is/ relatively young. There's overwhelming evidence to the contrary, and I believe odds of the earth being young are very very low, but to say it's simply not possible would be appallingly unscientific.
When we say we "know" something in science, it's really just a shortcut for something like "overwhelming evidence suggests X and currently there is little or no good evidence to the contrary, such that there's not even enough there to debate it, such that it's boring to keep talking about it. Also, when we assume X is correct it also fits in with lots of other evidence and/or experiments, so until any of that changes we're going to proceed to assume X is true and go look at that cool stuff over there".
All of this is me just reiterating that I don't think there is really a God vs science dilema - any apparent conflict is simply our misunderstanding of either or both.
I agree with most of what you said except this part in particular: "Any teacher in a biological science who believes in creationism isn't qualified to teach biology", although maybe it depends on your definition of 'creationism'? It implies that believing in a God that created things is incompatible with science, and that's simply not the case. The best biology class I ever had was taught by someone who was quite religious and believed in the creation, but that in no way undermined his ability to teach the subject (quite the contrary IMO, but that's a separate discussion).
So yeah, there are some lousy teachers who try to teach their religion as science, and this is inappropriate and they should be dealt with, but it doesn't mean that all teachers who hold a believe in God are lousy. Certainly we have lots of examples of people who get really defensive about religion and who feel threatened by science, and therefore do a terrible job of representing that viewpoint, but I don't think it really has to be an either-or proposition (science or religion).
Personally I take a middle of the road approach: I/do/ believe in a God that created everything, but I'll be the first to admit that there's precious little information on exactly what that means. In particular, the earth is very likely billions of years old and the English translation of Genesis is clearly a mistranslation when it says things were done in a week. I guess I'm just not threatened by the fact that we don't know. For all I know, modern scientific theory precisely and accurately describes all the laws and principles that are in play in the creation process.
On the other hand, I'm also not at all threatened by people trying to poke holes in scientific theory. That's exactly how it's supposed to work and that's the sheer beauty of it. We got to where we are now by people questioning things. Now, that doesn't mean every crackpot wild idea has merit, and it does mean that if people want to play in the realm of science then they need to use the scientific method, but I do worry sometimes when for some people science becomes their religion - and they become fanatically defensive about it and forget the very principles on which science is based. In particular, it really bugs me when people conclude they "know" anything or that we've seen the final word on anything, that something is absolute and we know everything about it. As someone who really loves science, I find this attitude embarrassing, the same way I'm embarrassed when some Bible thumper puts forth an anti-evolution theory just because they have already made a conclusion and are now grasping for evidence to support it. In science, everything is up for debate, and if history is any indication, at any point in time we correctly understand a lot of things, we incorrectly understand a lot of things, and there is a whole lot out there of which we're not even aware yet. And that is freaking AWESOME.:)
A good scientist will readily admit that some stuff falls outside the realm of what can be "proven" scientifically, but a good scientist isn't bothered by that, either - there's so much cool stuff inside that circle that we'll be busy for a long time to come.
IMO so-called conflicts between God and science don't need to exist. If I learn something in science that is at odds with my beliefs about God, or vice versa, then it just means that I understand less about God, or science, or both than I previously realized. Again, rather than being all worried about it, it's exciting.
Why did they bother obscuring her face when they did such a poor job of it? Anybody who ever worked with her can take one look at that video and probably give a positive ID of her. Between that and not changing her voice, they basically leaked her identity.
The problem is the way the licensing works - if you ship h264 encoding or decoding capabilities in your software, you owe the patent holders money for each copy, up to a certain maximum per year. Not usually a deal breaker if you're selling a device or software, but it can be a really big issue if you are giving the software away for free - the annual cap can be millions of USD.
Ideally, major OSs (which tend to provide h264 already) would provide nice, clean APIs for at least h264 decoding, and then browsers and other apps could just tap into it in a semi-cross-platform way and not actually have to ship the codec themselves.
Yup, that's exactly it, especially when it comes to mobile: just about any modern smartphone has at least some hardware acceleration for video decoding (and often encoding). It makes an enormous difference in terms of battery life. VP8 has made little or no headway into the hardware space (it's a chicken and egg thing - vendors won't put it on the chips if there's no demand for it, and there's no demand for it because it's not supported on the chips).
I run a small development firm and we've had about 5 meetings in 2 *years*. All of us developers come from companies where there was some sort of set, regular meeting (be it a standup or a some other regularly scheduled status/planning meeting), and since leaving that madness we've never been more productive.
Most companies seem to wildly underestimate the true cost of a meeting - take the interruption in work, the prep time, the time after the meeting, and multiply it by the number of attendees and most meetings end up costing *days* of productivity. I don't care if the meeting is scheduled for 15m, it's true cost is far higher. Sometimes a meeting might be useful, but it has to provide more benefit than that cost in order to be truly effective, so they should be used with care.
If you have any sort of recurring meeting scheduled, you are wasting a ton of time. The fact that you might get some benefit from a meeting != that meeting being *worth* the time, when looking at it from a costs vs benefits perspective.
What do we do? We talk to each other. Emails, IMs, the occasional skype call, and very rarely a face-to-face so we can whiteboard. It's all ad hoc, entirely as needed, and only the people who need to be present are invited.
Some of our clients have asked us to join in their daily standups and we flat out tell them no, even if it means losing their business.
Python and related languages are compiled on the fly, so you don't get all of the same compile-time checks you would in e.g. C or Java. In practice this isn't usually a bad thing though: if you're testing your code (even informally by just exercising the code), then it's more or less impossible for those errors to slip by, and if you aren't exercising your code, then you have bigger problems to worry about.
There are of course pylint and other code checkers out there, and a few times in the past I've tried them out for a day or two, but in the end I always abandon them because for me encumbering the dev process a little doesn't provide enough benefit - like I mentioned above, the real problems are caught if you're doing even a modicum of testing.
I don't think he said that was the only reason for switching languages. Python has a lot of other stuff going for it too - significant whitespace is just one of them.
Anyway, from the perspective of developers whose first choice is Python, it's just that those curly braces are fluff, they are redundant noise. They don't necessarily make the code more readable (whitespace is used to denote the structure of the program anyway), they exist because the parser needs them, so it *feels* like a weakness in the language. It's like, "I've already taken the time to format the code to make it readable and at the same time to express my intent, unfortunately I also need to put in additional annotation to make the parser happy."
It's not a huge issue, but it's just one of the reasons I like Python: it doesn't get in my way. Anytime I find myself doing something because the language requires it and not because I need it, it's annoying. If I've been working in Python for a few days and then switch over to C++ or ObjC, I'm always forgetting braces and semicolons. Why? Because *most* of the time they serve no purpose and exist only because the language requires them. Omitting them does not indicate a logical or algorithmic error, rather some busywork required by the language.
I've been using Python for over a decade and the whitespace is a total non-issue. Maybe in theory it could be a problem, but it just isn't in practice. Hate the language for other reasons if you want, but that's just not an actual problem that occurs in the real world.
Seriously, we've used it on tiny projects to massive applications, from small teams to large, multi-department teams, from "systems programming" to web dev to desktop apps to mobile development, and off the top of my head I can't remember whitespace copy/paste problems. Ever. Maybe it happened once and was noticed and fixed so quickly that nobody ever talked about it? Who knows, it most definitely isn't on our top 100 (or top 1000 AFAICT) problems encountered during development.
Python is a fantastic choice for many situations. The choice of language to use is somewhat subjective, so if it's not for you, so be it, but IMO it's really hard to argue that significant whitespace is a practical or objective reason to not use it. In fact, I'd argue the reverse - there are real benefits to it. We use a fair amount of C++ and Javascript as well, and all of the code is indented anyway. It always feels strange in those other languages to indent/and/ give some additional cue to the parser about the structure of my code. It's redundant.:)
I assume we're talking about pundits and random bloggers and folks on Slashdot, right?:) (as opposed to any official representatives from Apple) I can't really speak to what random people on the interwebs zero in on. I'd wager that most of them are neither economists nor accountants, so maybe Joe Blogger who was giddy about market share didn't understand business very well.
That said, I think profit/was/ always a big part of the discussion, but maybe you and I read different articles and comments, I dunno.
And maybe the tablet conversation will shift as well - maybe it has more to do with the age and evolution of the conversation, i.e. in 201X Android will have the larger overall market share, but once again Apple could be wildly profitable and the others less so, and we'll be having the exact same conversations we previously had about the phone market - the merits of hardware specs, app stores, fragmentation, etc.
I think from a news perspective, the market share discussion was in fact newsworthy - both phone and tablet markets existed previously, but Apple moved in and owned it - for a time at least - by taking a staggeringly large share for a newcomer. The phone market is crowded, so for them to come in and take even a statistically significant market share caught a lot of people by surprise. The tablet market was much smaller and weaker - tablets/generally/ sucked before the iPad - so they owned and grew that market more completely - definitely newsworthy. Once those things pass, they are by definition no longer newsworthy, so they are talked about less. Now we're talking about the change in market share - because that's newsworthy.:)
I guess I'm not seeing anything surprising here - if you are debating the merits of something, you use whatever arguments you have at your disposal. Once one of your arguments is invalidated, you modify it, find new arguments, or rely on your other arguments. That's the way it works.
Could be, yeah, although as a very minor counterpoint I'd note that we use quite a few cross-platform C libraries in our iOS apps and that is completely kosher as far is Apple is concerned.
And technically you *can* write your apps in Java on iOS - you just have to embed your own Java interpreter in a shell iOS app, make sure it doesn't use undocumented iOS APIs, etc. Originally their SDK terms of use prohibited it, but those terms have since been relaxed which is why you have stuff like MonoTouch, Unity, rhomobile, Titanium, etc. (whether they relaxed because the terms were really hard to police or because they realized it angered a lot of developers is up for debate) So, hey, if you're looking to start an OSS project, you could write a shim layer on top of iOS that provides an environment that emulates the Android environment, kind of like the Wine project.:)
So far Apple hasn't officially endorsed an interpreted language by making it available in the standard SDK. Maybe they will at some point, although my own guess is that there are still enough decision makers inside Apple who are against it - they just think that the "right" way to write apps is in ObjC either because they think ObjC is great or that alternatives are too resource intensive, etc.
Someone hasn't been in a non-apple store since 1995, it seems.. The Galaxy S II outshines the iPhone at almost every angle. Same goes for the other Samsung phones and tablets (eg the galaxy nexus or tab series), and in a lesser degree for HTC and LG as they are offering very nice phones for half what Apple's asking. Apparently, price is a very important factor for a consumer when choosing a phone.
Gah, this is what drives me crazy about Android fans - "Android devices have equal or better specs", "Android devices are cheaper", etc. Those things are all true, and yet Apple continues to sell the devices nearly as fast as it can get them made. The market is telling you that those things don't matter (or that they aren't the primary thing that matters). Android fans, please wake up and listen to what the market is telling you!
Until you unravel the mystery of why Apple products are so loved by their users, Android will never dominate like it could. Identify what makes an Apple product good and then things like a lower price point and better hardware specs become tools that let you crush Apple. In the meantime, they are irrelevant.
I know, I know, it's fun to assume that Apple consumers are sheeple that waste away their money - how foolish they are for being locked in to their overpriced "hip" devices, yuk yuk yuk. Unfortunately, this way of looking at things is nothing but intellectual laziness. Sure there are a few people that fit that mold, but hundreds of thousands? Millions? Tens of millions? No way.
I own a bunch of Apple and Android devices. When Android came out I fell in love with the concept and desperately waited for it to leap past iOS. I'm still waiting (mostly, see below) - it has done nothing but disappoint me, as a consumer. Right here on my desk I have a Galaxy Tab 10.whatever that has sat there since it was released, gathering dust. It still has most of that transparent plastic on it. The longest I've used it was maybe half an hour when I first got it. The second session was a week later and lasted maybe 10 minutes. I need to try out a new release of one of our customer's apps soon, so I'll have to get it out - but first let it charge for awhile since it's been so long since I turned it on.
Why? Because so far I haven't seen any of the Android devices "get it". The manufacturers so far seem to be concerned with beating or exceeding Apple's number of pixels on the screen, the amount of RAM, the processor speed. Those are all fine and dandy, but they aren't at the core of what makes Apple's devices good. Learn - truly learn and understand why iOS devices are good - and then Android can completely crush them. Until that understanding happens, there will just be this ever-increasing pool of "meh" devices.
A month ago I finally came across an Android device I have come to use daily. Guess which one it is? The Kindle Fire - weak specs, somewhat sluggish performance, closely tied to Amazon - all sorts of negatives, and yet I love it. I might buy another one so my wife and I don't fight over it.:) As long as that statement and behavior is confusing to Android lovers/developers/manufactuers, Apple will continue to dominate.
C'mon, "as a productivity platform... iOS is useless" - don't you think that's overstating it a bit? (if not a lot)
The implication there and in many iOS-is-lame posts is that Apple products are winning on fluff and not substance, e.g. that the vast majority of Apple's products are sold to devoted fanboys that will pay way too much for anything that Apple puts in a pretty, white box. There *are* some fanboys out there, some of them quite vocal. But in reality that probably represents a very tiny sliver of the customer base.
Apple is entirely beatable, and Android could be the thing to beat it, but only once people stop arguing against Apple products on empty strawman arguments. Apple does like to play up the flair, it does love the eye candy, but if Android lovers think that's why Apple makes money hand over fist - that that is the substance behind their massive profits - then Android won't actually chip away at Apple's massive profits.
Because Apple is currently being wildly successful, and those things/might/ interfere with that. I'm not saying they would, and not saying they shouldn't be done, just that they *might*:
1) Apple truly believes a curated app store is the way to go. Don't bother telling me about the 30 different fart apps and the like - I'm well aware of the flaws of the app store and the inconsistency with which they apply their rules of curation and how some of their rules just don't seem to make sense. That said, their app store is wildly successful so I could see how they would tend to argue that what they are doing is working, so they would choose to not move from this position until forced to.
2) My guess is that Apple believes Java is too slow and inefficient and that great apps need to be very responsive and that in order to achieve that you need to use a lower level language like Objective-C. Again, I'm not arguing that they are correct in this, just that this seems to be their stance. Anecdotally, one of the big Android turnoffs for me is that apps pretty much always feel ever so slightly sluggish compared to iOS apps, and the more visually complex and interactive an app is, the more noticeable that difference is. I have 3 Android devices and 6 iOS devices, all across the range of age and capabilities, and this seems to always be true - when I interact with an iOS app, it always just feels snappier - the interaction feels more real, like I'm really moving something on an iOS screen, really interacting with it, while Android always feels like the interaction isn't quite as tightly bound. I'm not suggesting that Java is specifically to blame, but at the same time Apple's abhorrence with things like Flash seems to suggest that they have heavily invested in making that app responsiveness be like I've described, and so they are very strongly against additional technological layers that will interfere with it (going so far as prohibiting things that/might/ make apps sluggish, regardless of whether or not that is necessarily true). In that sense, running Android apps via a Java layer is very similar to allowing Flash, and so they'd philosophically be dead set against it.
3) ISTM that marketing bombardment would be most effective if the problem were a lack of consumer awareness. At this point I don't/think/ that's the problem. If anything, terms like "iPad" and "iPhone" and "iPod" are so universally known to the average consumer that they risk becoming Xeroxes, Kleenexes, and Dumpsters - trademarked terms applied too broadly and generically. I don't think we're at that point yet, although more than once I've heard a non-techie refer to a display case full of Android tablets as a bunch of "iPads".
Apple - like any other company - worries about profits. Maximizing profits doesn't always come by having the biggest market share, and as long as they can rake in the profits then beating Android in sheer volume of shipped units is less important.
Wow, that's an incredibly jaded viewpoint. I'm kind of thinking that the women that no longer have to spend hours each day hauling dirty water to their villages would disagree with you.
Can you cite any evidence at all that there are any liturgical strings attached to this charity? Are you so cynical that you disbelieve that there are people (religious and not) who just help others out of sheer goodwill? How does this "sponsor an evangelical mission at the very same time" anyway? Merry Christmas, I guess.
Pretty much as efficient as you can get: 100% of the proceeds go to help those in need. The LDS Church doesn't even deduct the cost of administering the donations, so literally *everything* you donate ends up helping the needy.
If you donate online, just enter the amount in the "humanitarian services" field - that goes to disaster relief and other efforts. If you call them you can have it applied more specifically. For example there is a program they are doing to supply wheelchairs to those in need, to help dig water wells to villages in Africa, etc. and you can ask that your money go specifically to one of those programs if you want.
I think that's a definition of atheism that I'm less familiar with, so I apologize. I checked a few online dictionaries and their definitions of atheism all seem to imply an actual belief against the idea, e.g. "the doctrine or belief that there is no God." (dictionary.com) or "a disbelief in the existence of deity, the doctrine that there is no deity" (merriam-webster.com)
I might be misunderstanding you, but I *think* you're saying that you simply don't take a position one way or another, whereas the definition of atheism I was familiar with does in fact actively take a position. Again, sorry for the misunderstanding.
It's closely related to the argument that God seems to have created a world full of geological and paleontological evidence of a world more than 4 billion years old, with a long history of biological evolution behind all the living species and the zillions of fossils. The obvious conclusion is that God wants us to believe in this history and evolution, and if we don't believe, we're violating God's will.
Sure (although as a aside I wonder how much God would really care if we believed it or not - i.e. IMO he'd probably roll his eyes and shake his head sadly more than consider it a violation of his will:) ).
This is, of course, all quite untestable (unless those pruported gods screwed up and left some evidence of themselves behind that we haven't found yet). But it's at least as good as the religious theory that one or more gods are still hanging around and we're just too dumb to spot them (or they've gotten really good at hiding).
Yeah, we have to be careful in defining what is testable to make sure we distinguish between "testable using the approach I prefer or know" and "testable". With our present understanding of the universe and physics, it may be untestable using those tools, but that doesn't mean it's completely untestable, ever. The history of science is filled with examples of discovering things that were previously unknown and undetectable. Further, if there is a god, then it wouldn't seem implausible for him to have the ability to set the conditions for communication and interaction with him.
By Occam's Razor, the judicious approach is to tentatively accept the skeptical approach, and say that the closest thing the religious people have to evidence is what would in a court of law be called "hearsay", which isn't real evidence at all. So we shouldn't accept their claims until they come up with some actual evidence.
I do think that one person's personal experience should not in and of itself carry a lot of weight beyond himself, i.e. if you have some sort of experience that makes you start to think there is some sort of supreme being, that shouldn't be cause necessarily for me to think the same. OTOH, the fact that I might not have had the same experience should not lead me to dismiss your experience outright either. Skepticism *is* probably justified, but it's hard to discount the impact a personal experience might have on someone.
Some religious texts (including the Bible) do in fact provide some guidance for testing the existence of God as well as the parameters for communicating with him. Interestingly, they seem to be engineered to *require* a one-on-one, personal experience. A cynical perspective is that this is just to keep the illusion up; a different perspective is that there is wisdom in nudging people towards obtaining first-hand evidence.
We could also bring up the long history of religions being full of fraudsters who see it as a good way to get their hands on our stuff. But that's a different topic that's only marginally related to the topic at hand (and which the religious folks would probably prefer to keep hidden behind that curtain;-).
Not at all - keeping that stuff hidden just begs it to happen again. I think you might find that the lump of people who self-identify as "religious folks" is incredibly diverse - I'm one of them, and I think tons of horrible things have been done in the name of religion, I think there have been oodles of charlatans in the name of religion, I think respecting others' beliefs or non-beliefs is incredibly important, I think the earth is super old, and I love science.:)
Actually I think you're reinforcing my point.:) Atheism is an ontological position... but so is a belief in God. Neither position is inherently more or less legitimate, nor should either position be relevant wrt science. Further, because both are irrelevant to science, either can be equally damaging to scientific thought.
I can't tell if you're citing that as an example that confirms or disputes his point. :)
GNUstep has been around for ages, but honestly I'd be very surprised if non-iOS use of ObjC accounts for even 1% of the total usage. 0.1% maybe? 0.01%?
Fair enough - see above. Also Googling will reveal lots of people with Objc-hate. :)
Here's a few off the top of my head. Some of them may be specific to Cocoa, but I'm pretty sure that even those are rooted in ObjC's "features":
Method signatures are often ridiculously long (see NSBitmapRep's initWithBitmapDataPlanes:pixelsWide:pixelsHigh:bitsPerSample:samplesPerPixel:hasAlpha:isPlanar:colorSpaceName:bitmapFormat:bytesPerRow:bitsPerPixel: method)
Parameter names in method calls are /always/ named. You can't just say obj.someMethod(x,y). It's always [obj someMethodForX:x y:y].
The above combine to make even the most basic operations tedious. Want to trim leading/trailing whitespace off a string? Enjoy [someString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]
Immutable arrays, dictionaries, sets, strings. I get it, it can be useful for performance to know something is immutable (maybe, I'm not that convinced). But the common use case is most certainly mutable, so /that/ should be the default, e.g. NSArray should be mutable and then if needed there can exist some NSImmutableArray or something. But no, they did it the other way around.
Memory management (up until recently) was neither fully manual nor fully automatic and ownership was based on naming conventions
Being a superset of C, they couldn't provide an object-oriented array class using the normal array syntax, so instead you have tedium like [myArray objectAtIndex:2]
Ditto for strings. Also, you have to prefix string constants with '@'.
Similarly, you can't put "plain" objects into arrays, e.g. [myArray addObject:5] won't work, but [myArray addObject:[NSNumber numberWithInt:5]] will.
And of course you can't just create an array with ['a', 'b', 'c'] but instead have to do [NSArray arrayWithObjects:@"a", @"b", @"c", nil].
Backwards conventions like [NSDictionary dictionaryWithObjectsAndKeys:@"value0", @"key0", @"value1", @"key1", nil];
If I'm going to pay the dev cycle price of a compiled language, it should catch stuff like non-existent selectors at compile time instead of blowing up at runtime
Stack traces from delayed selector calls have zero contextual information
The single inheritance model and a strict class hierarchy discourages writing reusable code. For example, if I have an app that runs on iPad and iPhone and they share a common screen (from the user's perspective although the layout/design might be significantly different), it's a real task to write a common parent class holds the common code.
Many violations of don't-repeat-yourself: if you want to have an object with properties like Foo.title, then the code is roughly:
@interface Foo
{
NSString *title;
}
@property (nonatomic, retain) NSString *title;
@end
@implementation Foo
@synthesize title
-(void)dealloc
{
[title release];
[super dealloc];
}
Similarly, there's no way to have a truly dynamic object with a clean syntax, e.g. in Python/ruby/js/and a host of others you could have a quick little object you use to pass state around, kind of like a struct that has its members added on the fly, e.g.: x = new Object() ; x.name = 'dave' ; x.age = 3. There is literally no way to do that in ObjC - the best you can do is create mutable dictionary and use its verbose syntax.
We could have a whole extra thread about the toolchain (Interface Builder is an abomination, Xcode often pegs multiple CPUs when it's just sitting there, if you kill the simulator instead of stopping the app via Xcode then you often have to reboot your host machine before you can run the simulator again) but I digress.
I dev in ObjC on iOS almost every day, and the language sucks. I think it sucks less than C++, but I'm not sure that says much. The Xcode IDE (which also sucks) and the bolted-on features help, but overall the language hasn't aged as well as plain old C - i.e. while coding in it, you are constantly reminded that it is not a modern programming language. Anytime a language gets in your way, it's a bad thing, and that happens an awful lot with ObjC.
(And before the flames start: yes, I fully recognize that nobody is forcing me to dev for the iOS platform, it's a choice I've made because I make gobs of money off of it. But that doesn't make ObjC suck any less, it just makes me willing to tolerate the suck and grumble about it on /.)
Yup, so true: it frustrates me when someone arguing a scientific point expresses absolute, 100% certainty that something has been proven to be true - I hope they are just being lazy and that they don't actually believe it's all locked up and beyond all doubt. But it also drives me crazy when someone properly recognizes the degree of certainty and somebody else pounces on the perceived weakness. :)
Yep, what you said is *exactly* my point.
Anyway, the week thing, as I bet you are aware, comes from Gen 1 where it lists what was done on each day. Because of this there is a common belief among /some/ people that it was done in a week. It's not my belief, but it's very common. IIRC the word that was translated to 'day' in English was in Hebrew a word that just as easily connoted 'period' or, since this is slashdot, an 'iteration'. :)
So, yeah - I think a case could be made that Genesis is partially mistranslated. But even if it is correct, there are a number of ways it could be correct and yet not support the young-earth creationist view and perhaps not even be in conflict with scientific evidence at all. As someone who really respects science, I also leave open the possibility, however crazy remote, that the earth /is/ relatively young. There's overwhelming evidence to the contrary, and I believe odds of the earth being young are very very low, but to say it's simply not possible would be appallingly unscientific.
When we say we "know" something in science, it's really just a shortcut for something like "overwhelming evidence suggests X and currently there is little or no good evidence to the contrary, such that there's not even enough there to debate it, such that it's boring to keep talking about it. Also, when we assume X is correct it also fits in with lots of other evidence and/or experiments, so until any of that changes we're going to proceed to assume X is true and go look at that cool stuff over there".
All of this is me just reiterating that I don't think there is really a God vs science dilema - any apparent conflict is simply our misunderstanding of either or both.
I agree with most of what you said except this part in particular: "Any teacher in a biological science who believes in creationism isn't qualified to teach biology", although maybe it depends on your definition of 'creationism'? It implies that believing in a God that created things is incompatible with science, and that's simply not the case. The best biology class I ever had was taught by someone who was quite religious and believed in the creation, but that in no way undermined his ability to teach the subject (quite the contrary IMO, but that's a separate discussion).
So yeah, there are some lousy teachers who try to teach their religion as science, and this is inappropriate and they should be dealt with, but it doesn't mean that all teachers who hold a believe in God are lousy. Certainly we have lots of examples of people who get really defensive about religion and who feel threatened by science, and therefore do a terrible job of representing that viewpoint, but I don't think it really has to be an either-or proposition (science or religion).
Personally I take a middle of the road approach: I /do/ believe in a God that created everything, but I'll be the first to admit that there's precious little information on exactly what that means. In particular, the earth is very likely billions of years old and the English translation of Genesis is clearly a mistranslation when it says things were done in a week. I guess I'm just not threatened by the fact that we don't know. For all I know, modern scientific theory precisely and accurately describes all the laws and principles that are in play in the creation process.
On the other hand, I'm also not at all threatened by people trying to poke holes in scientific theory. That's exactly how it's supposed to work and that's the sheer beauty of it. We got to where we are now by people questioning things. Now, that doesn't mean every crackpot wild idea has merit, and it does mean that if people want to play in the realm of science then they need to use the scientific method, but I do worry sometimes when for some people science becomes their religion - and they become fanatically defensive about it and forget the very principles on which science is based. In particular, it really bugs me when people conclude they "know" anything or that we've seen the final word on anything, that something is absolute and we know everything about it. As someone who really loves science, I find this attitude embarrassing, the same way I'm embarrassed when some Bible thumper puts forth an anti-evolution theory just because they have already made a conclusion and are now grasping for evidence to support it. In science, everything is up for debate, and if history is any indication, at any point in time we correctly understand a lot of things, we incorrectly understand a lot of things, and there is a whole lot out there of which we're not even aware yet. And that is freaking AWESOME. :)
A good scientist will readily admit that some stuff falls outside the realm of what can be "proven" scientifically, but a good scientist isn't bothered by that, either - there's so much cool stuff inside that circle that we'll be busy for a long time to come.
IMO so-called conflicts between God and science don't need to exist. If I learn something in science that is at odds with my beliefs about God, or vice versa, then it just means that I understand less about God, or science, or both than I previously realized. Again, rather than being all worried about it, it's exciting.
Why did they bother obscuring her face when they did such a poor job of it? Anybody who ever worked with her can take one look at that video and probably give a positive ID of her. Between that and not changing her voice, they basically leaked her identity.
The problem is the way the licensing works - if you ship h264 encoding or decoding capabilities in your software, you owe the patent holders money for each copy, up to a certain maximum per year. Not usually a deal breaker if you're selling a device or software, but it can be a really big issue if you are giving the software away for free - the annual cap can be millions of USD.
Ideally, major OSs (which tend to provide h264 already) would provide nice, clean APIs for at least h264 decoding, and then browsers and other apps could just tap into it in a semi-cross-platform way and not actually have to ship the codec themselves.
Yup, that's exactly it, especially when it comes to mobile: just about any modern smartphone has at least some hardware acceleration for video decoding (and often encoding). It makes an enormous difference in terms of battery life. VP8 has made little or no headway into the hardware space (it's a chicken and egg thing - vendors won't put it on the chips if there's no demand for it, and there's no demand for it because it's not supported on the chips).
... to beat no meeting at all.
I run a small development firm and we've had about 5 meetings in 2 *years*. All of us developers come from companies where there was some sort of set, regular meeting (be it a standup or a some other regularly scheduled status/planning meeting), and since leaving that madness we've never been more productive.
Most companies seem to wildly underestimate the true cost of a meeting - take the interruption in work, the prep time, the time after the meeting, and multiply it by the number of attendees and most meetings end up costing *days* of productivity. I don't care if the meeting is scheduled for 15m, it's true cost is far higher. Sometimes a meeting might be useful, but it has to provide more benefit than that cost in order to be truly effective, so they should be used with care.
If you have any sort of recurring meeting scheduled, you are wasting a ton of time. The fact that you might get some benefit from a meeting != that meeting being *worth* the time, when looking at it from a costs vs benefits perspective.
What do we do? We talk to each other. Emails, IMs, the occasional skype call, and very rarely a face-to-face so we can whiteboard. It's all ad hoc, entirely as needed, and only the people who need to be present are invited.
Some of our clients have asked us to join in their daily standups and we flat out tell them no, even if it means losing their business.
Python and related languages are compiled on the fly, so you don't get all of the same compile-time checks you would in e.g. C or Java. In practice this isn't usually a bad thing though: if you're testing your code (even informally by just exercising the code), then it's more or less impossible for those errors to slip by, and if you aren't exercising your code, then you have bigger problems to worry about.
There are of course pylint and other code checkers out there, and a few times in the past I've tried them out for a day or two, but in the end I always abandon them because for me encumbering the dev process a little doesn't provide enough benefit - like I mentioned above, the real problems are caught if you're doing even a modicum of testing.
I don't think he said that was the only reason for switching languages. Python has a lot of other stuff going for it too - significant whitespace is just one of them.
Anyway, from the perspective of developers whose first choice is Python, it's just that those curly braces are fluff, they are redundant noise. They don't necessarily make the code more readable (whitespace is used to denote the structure of the program anyway), they exist because the parser needs them, so it *feels* like a weakness in the language. It's like, "I've already taken the time to format the code to make it readable and at the same time to express my intent, unfortunately I also need to put in additional annotation to make the parser happy."
It's not a huge issue, but it's just one of the reasons I like Python: it doesn't get in my way. Anytime I find myself doing something because the language requires it and not because I need it, it's annoying. If I've been working in Python for a few days and then switch over to C++ or ObjC, I'm always forgetting braces and semicolons. Why? Because *most* of the time they serve no purpose and exist only because the language requires them. Omitting them does not indicate a logical or algorithmic error, rather some busywork required by the language.
I've been using Python for over a decade and the whitespace is a total non-issue. Maybe in theory it could be a problem, but it just isn't in practice. Hate the language for other reasons if you want, but that's just not an actual problem that occurs in the real world.
Seriously, we've used it on tiny projects to massive applications, from small teams to large, multi-department teams, from "systems programming" to web dev to desktop apps to mobile development, and off the top of my head I can't remember whitespace copy/paste problems. Ever. Maybe it happened once and was noticed and fixed so quickly that nobody ever talked about it? Who knows, it most definitely isn't on our top 100 (or top 1000 AFAICT) problems encountered during development.
Python is a fantastic choice for many situations. The choice of language to use is somewhat subjective, so if it's not for you, so be it, but IMO it's really hard to argue that significant whitespace is a practical or objective reason to not use it. In fact, I'd argue the reverse - there are real benefits to it. We use a fair amount of C++ and Javascript as well, and all of the code is indented anyway. It always feels strange in those other languages to indent /and/ give some additional cue to the parser about the structure of my code. It's redundant. :)
I assume we're talking about pundits and random bloggers and folks on Slashdot, right? :) (as opposed to any official representatives from Apple) I can't really speak to what random people on the interwebs zero in on. I'd wager that most of them are neither economists nor accountants, so maybe Joe Blogger who was giddy about market share didn't understand business very well.
That said, I think profit /was/ always a big part of the discussion, but maybe you and I read different articles and comments, I dunno.
And maybe the tablet conversation will shift as well - maybe it has more to do with the age and evolution of the conversation, i.e. in 201X Android will have the larger overall market share, but once again Apple could be wildly profitable and the others less so, and we'll be having the exact same conversations we previously had about the phone market - the merits of hardware specs, app stores, fragmentation, etc.
I think from a news perspective, the market share discussion was in fact newsworthy - both phone and tablet markets existed previously, but Apple moved in and owned it - for a time at least - by taking a staggeringly large share for a newcomer. The phone market is crowded, so for them to come in and take even a statistically significant market share caught a lot of people by surprise. The tablet market was much smaller and weaker - tablets /generally/ sucked before the iPad - so they owned and grew that market more completely - definitely newsworthy. Once those things pass, they are by definition no longer newsworthy, so they are talked about less. Now we're talking about the change in market share - because that's newsworthy. :)
I guess I'm not seeing anything surprising here - if you are debating the merits of something, you use whatever arguments you have at your disposal. Once one of your arguments is invalidated, you modify it, find new arguments, or rely on your other arguments. That's the way it works.
Could be, yeah, although as a very minor counterpoint I'd note that we use quite a few cross-platform C libraries in our iOS apps and that is completely kosher as far is Apple is concerned.
And technically you *can* write your apps in Java on iOS - you just have to embed your own Java interpreter in a shell iOS app, make sure it doesn't use undocumented iOS APIs, etc. Originally their SDK terms of use prohibited it, but those terms have since been relaxed which is why you have stuff like MonoTouch, Unity, rhomobile, Titanium, etc. (whether they relaxed because the terms were really hard to police or because they realized it angered a lot of developers is up for debate) So, hey, if you're looking to start an OSS project, you could write a shim layer on top of iOS that provides an environment that emulates the Android environment, kind of like the Wine project. :)
So far Apple hasn't officially endorsed an interpreted language by making it available in the standard SDK. Maybe they will at some point, although my own guess is that there are still enough decision makers inside Apple who are against it - they just think that the "right" way to write apps is in ObjC either because they think ObjC is great or that alternatives are too resource intensive, etc.
If the content is prepared with the machine in mind, it plays just fine. I watch tons of video on the Fire and it doesn't stutter. Works great!
Someone hasn't been in a non-apple store since 1995, it seems .. The Galaxy S II outshines the iPhone at almost every angle. Same goes for the other Samsung phones and tablets (eg the galaxy nexus or tab series), and in a lesser degree for HTC and LG as they are offering very nice phones for half what Apple's asking. Apparently, price is a very important factor for a consumer when choosing a phone.
Gah, this is what drives me crazy about Android fans - "Android devices have equal or better specs", "Android devices are cheaper", etc. Those things are all true, and yet Apple continues to sell the devices nearly as fast as it can get them made. The market is telling you that those things don't matter (or that they aren't the primary thing that matters). Android fans, please wake up and listen to what the market is telling you!
Until you unravel the mystery of why Apple products are so loved by their users, Android will never dominate like it could. Identify what makes an Apple product good and then things like a lower price point and better hardware specs become tools that let you crush Apple. In the meantime, they are irrelevant.
I know, I know, it's fun to assume that Apple consumers are sheeple that waste away their money - how foolish they are for being locked in to their overpriced "hip" devices, yuk yuk yuk. Unfortunately, this way of looking at things is nothing but intellectual laziness. Sure there are a few people that fit that mold, but hundreds of thousands? Millions? Tens of millions? No way.
I own a bunch of Apple and Android devices. When Android came out I fell in love with the concept and desperately waited for it to leap past iOS. I'm still waiting (mostly, see below) - it has done nothing but disappoint me, as a consumer. Right here on my desk I have a Galaxy Tab 10.whatever that has sat there since it was released, gathering dust. It still has most of that transparent plastic on it. The longest I've used it was maybe half an hour when I first got it. The second session was a week later and lasted maybe 10 minutes. I need to try out a new release of one of our customer's apps soon, so I'll have to get it out - but first let it charge for awhile since it's been so long since I turned it on.
Why? Because so far I haven't seen any of the Android devices "get it". The manufacturers so far seem to be concerned with beating or exceeding Apple's number of pixels on the screen, the amount of RAM, the processor speed. Those are all fine and dandy, but they aren't at the core of what makes Apple's devices good. Learn - truly learn and understand why iOS devices are good - and then Android can completely crush them. Until that understanding happens, there will just be this ever-increasing pool of "meh" devices.
A month ago I finally came across an Android device I have come to use daily. Guess which one it is? The Kindle Fire - weak specs, somewhat sluggish performance, closely tied to Amazon - all sorts of negatives, and yet I love it. I might buy another one so my wife and I don't fight over it. :) As long as that statement and behavior is confusing to Android lovers/developers/manufactuers, Apple will continue to dominate.
C'mon, "as a productivity platform... iOS is useless" - don't you think that's overstating it a bit? (if not a lot)
The implication there and in many iOS-is-lame posts is that Apple products are winning on fluff and not substance, e.g. that the vast majority of Apple's products are sold to devoted fanboys that will pay way too much for anything that Apple puts in a pretty, white box. There *are* some fanboys out there, some of them quite vocal. But in reality that probably represents a very tiny sliver of the customer base.
Apple is entirely beatable, and Android could be the thing to beat it, but only once people stop arguing against Apple products on empty strawman arguments. Apple does like to play up the flair, it does love the eye candy, but if Android lovers think that's why Apple makes money hand over fist - that that is the substance behind their massive profits - then Android won't actually chip away at Apple's massive profits.
Because Apple is currently being wildly successful, and those things /might/ interfere with that. I'm not saying they would, and not saying they shouldn't be done, just that they *might*:
1) Apple truly believes a curated app store is the way to go. Don't bother telling me about the 30 different fart apps and the like - I'm well aware of the flaws of the app store and the inconsistency with which they apply their rules of curation and how some of their rules just don't seem to make sense. That said, their app store is wildly successful so I could see how they would tend to argue that what they are doing is working, so they would choose to not move from this position until forced to.
2) My guess is that Apple believes Java is too slow and inefficient and that great apps need to be very responsive and that in order to achieve that you need to use a lower level language like Objective-C. Again, I'm not arguing that they are correct in this, just that this seems to be their stance. Anecdotally, one of the big Android turnoffs for me is that apps pretty much always feel ever so slightly sluggish compared to iOS apps, and the more visually complex and interactive an app is, the more noticeable that difference is. I have 3 Android devices and 6 iOS devices, all across the range of age and capabilities, and this seems to always be true - when I interact with an iOS app, it always just feels snappier - the interaction feels more real, like I'm really moving something on an iOS screen, really interacting with it, while Android always feels like the interaction isn't quite as tightly bound. I'm not suggesting that Java is specifically to blame, but at the same time Apple's abhorrence with things like Flash seems to suggest that they have heavily invested in making that app responsiveness be like I've described, and so they are very strongly against additional technological layers that will interfere with it (going so far as prohibiting things that /might/ make apps sluggish, regardless of whether or not that is necessarily true). In that sense, running Android apps via a Java layer is very similar to allowing Flash, and so they'd philosophically be dead set against it.
3) ISTM that marketing bombardment would be most effective if the problem were a lack of consumer awareness. At this point I don't /think/ that's the problem. If anything, terms like "iPad" and "iPhone" and "iPod" are so universally known to the average consumer that they risk becoming Xeroxes, Kleenexes, and Dumpsters - trademarked terms applied too broadly and generically. I don't think we're at that point yet, although more than once I've heard a non-techie refer to a display case full of Android tablets as a bunch of "iPads".
Apple - like any other company - worries about profits. Maximizing profits doesn't always come by having the biggest market share, and as long as they can rake in the profits then beating Android in sheer volume of shipped units is less important.
Wow, that's an incredibly jaded viewpoint. I'm kind of thinking that the women that no longer have to spend hours each day hauling dirty water to their villages would disagree with you.
Can you cite any evidence at all that there are any liturgical strings attached to this charity? Are you so cynical that you disbelieve that there are people (religious and not) who just help others out of sheer goodwill? How does this "sponsor an evangelical mission at the very same time" anyway? Merry Christmas, I guess.
Pretty much as efficient as you can get: 100% of the proceeds go to help those in need. The LDS Church doesn't even deduct the cost of administering the donations, so literally *everything* you donate ends up helping the needy.
http://www.ldsphilanthropies.org/ldsp/about/
If you donate online, just enter the amount in the "humanitarian services" field - that goes to disaster relief and other efforts. If you call them you can have it applied more specifically. For example there is a program they are doing to supply wheelchairs to those in need, to help dig water wells to villages in Africa, etc. and you can ask that your money go specifically to one of those programs if you want.
I think that's a definition of atheism that I'm less familiar with, so I apologize. I checked a few online dictionaries and their definitions of atheism all seem to imply an actual belief against the idea, e.g. "the doctrine or belief that there is no God." (dictionary.com) or "a disbelief in the existence of deity, the doctrine that there is no deity" (merriam-webster.com)
I might be misunderstanding you, but I *think* you're saying that you simply don't take a position one way or another, whereas the definition of atheism I was familiar with does in fact actively take a position. Again, sorry for the misunderstanding.
It's closely related to the argument that God seems to have created a world full of geological and paleontological evidence of a world more than 4 billion years old, with a long history of biological evolution behind all the living species and the zillions of fossils. The obvious conclusion is that God wants us to believe in this history and evolution, and if we don't believe, we're violating God's will.
Sure (although as a aside I wonder how much God would really care if we believed it or not - i.e. IMO he'd probably roll his eyes and shake his head sadly more than consider it a violation of his will :) ).
This is, of course, all quite untestable (unless those pruported gods screwed up and left some evidence of themselves behind that we haven't found yet). But it's at least as good as the religious theory that one or more gods are still hanging around and we're just too dumb to spot them (or they've gotten really good at hiding).
Yeah, we have to be careful in defining what is testable to make sure we distinguish between "testable using the approach I prefer or know" and "testable". With our present understanding of the universe and physics, it may be untestable using those tools, but that doesn't mean it's completely untestable, ever. The history of science is filled with examples of discovering things that were previously unknown and undetectable. Further, if there is a god, then it wouldn't seem implausible for him to have the ability to set the conditions for communication and interaction with him.
By Occam's Razor, the judicious approach is to tentatively accept the skeptical approach, and say that the closest thing the religious people have to evidence is what would in a court of law be called "hearsay", which isn't real evidence at all. So we shouldn't accept their claims until they come up with some actual evidence.
I do think that one person's personal experience should not in and of itself carry a lot of weight beyond himself, i.e. if you have some sort of experience that makes you start to think there is some sort of supreme being, that shouldn't be cause necessarily for me to think the same. OTOH, the fact that I might not have had the same experience should not lead me to dismiss your experience outright either. Skepticism *is* probably justified, but it's hard to discount the impact a personal experience might have on someone.
Some religious texts (including the Bible) do in fact provide some guidance for testing the existence of God as well as the parameters for communicating with him. Interestingly, they seem to be engineered to *require* a one-on-one, personal experience. A cynical perspective is that this is just to keep the illusion up; a different perspective is that there is wisdom in nudging people towards obtaining first-hand evidence.
We could also bring up the long history of religions being full of fraudsters who see it as a good way to get their hands on our stuff. But that's a different topic that's only marginally related to the topic at hand (and which the religious folks would probably prefer to keep hidden behind that curtain ;-).
Not at all - keeping that stuff hidden just begs it to happen again. I think you might find that the lump of people who self-identify as "religious folks" is incredibly diverse - I'm one of them, and I think tons of horrible things have been done in the name of religion, I think there have been oodles of charlatans in the name of religion, I think respecting others' beliefs or non-beliefs is incredibly important, I think the earth is super old, and I love science. :)
Thanks for the discussion!
Actually I think you're reinforcing my point. :) Atheism is an ontological position... but so is a belief in God. Neither position is inherently more or less legitimate, nor should either position be relevant wrt science. Further, because both are irrelevant to science, either can be equally damaging to scientific thought.