What's the point in backing up to iCloud

So I don't see the point to select the "backup device to iCloud" (settings>icloud>storage and backup>icloud backup ) in the iCloud settings menu. Nor do I see a point to back up to iTunes (wi-fi or USB) if you are already synching data to iCloud.
So pretend you loose your iPhone, buy a new phone, and re-sync it to your iCloud account.
iCloud syncs photos, bookmarks, notes, calendar, contacts, and documents. As far as itunes purchases, they are always on iTunes to be downloaded, at will, under my itunes account. Any CD's that I rip to iTunes are on my mac's hard drive, and can put them back on the phone with a quick sync.
So please explain to me why I need to "backup my iPhone" to iCloud.
I understand why "syncing" with icloud is good. But why turn the iphone "storage and backup" slider on???? (settings>icloud>storage and backup>icloud backup on.) Can someone please give me one reason that I would want to use this option?
The only thing that I can think of is the phone's settings would return to default??? And maybe so that Apple can sell you data that you don't "really need". An I mistaken in my assessment ?

Backing up to iCloud is an alternative way for apple customers to be able to save data apart from contact, calendars, notes, etc. Now it might be pointless to you and to me, but some customers do not have computer to back up to or have their CD's that they import those songs from, so they need to save it.
To me backing up to icloud is only for 8GB iphones, any other devices will take up more than the free 5GB icloud has or you buy more storage, so it does not make sense to me or some people.

Similar Messages

  • What is the point of icloud backup, when you have to plug your iphone into itunes to restore it anyway?

    ok im confused now.. What is the point of backing up and restoring your iphone with icloud, when to restore your iphone you have to plug it into itunes anyway? you might as well just restore it from there then shouldnt you?

    when to restore your iphone you have to plug it into itunes anyway?
    But you don't. You can restore your phone data direct from iCloud wirelessly without a computer.

  • Backed up ipod to the cloud (12/25 11am) and then updated. Music is gone and the back up is not restoring?! why? What's the point of the cloud if nothing is there?

    Ipod has been playing music in my car the past two years. new computer this year and new email address. Backed up to cloud. change ID on itunes. Music on my ipod disappeared. Shouldn't it be on the cloud somewhere?! What's the point of this cloud? And is it b/c I can't seem to change my icloud ID to the new one on my ipod settings?

    Music is not stored in your personal iCloud account, or in your device backup.  Music purchased from the iTunes store is in available for redownload as explained here: http://support.apple.com/kb/ht2519.  Music from other sources such as your CDs should be in your iTunes library on your computer and can be synced back to your iPod from there.
    To change the iCloud account on your device you have to delete the exsting account, then sign back into the new ID.

  • What is the point of a back-up?

    After updating my 4s from os 6.1 to 7 I lost all my apps and my music, why are music and apps not included in a full phone backup? What is the point of a backup if everything will be wiped and cannot be recovered?

    There IS "warning" or information about what is stored in a backup. See: http://support.apple.com/kb/ht4946.
    Apple does make the assumption that you will keep your music in iTunes on your computer, because if you don't the next time you connect the phone to your computer and sync the music will be erased. Or if you don't that you will take advantage of iTunes Match for music not from the iTunes store.
    The point is why didn't you keep the music in iTunes? It can't be because it takes up too much space, because if your music was in your backup it would take up just as much space.

  • What's the point of warranty?

    I am a student coming from Hong Kong  to London for postgraduate study. Before I left Hong Kong, I decided to buy a netbook for my lecturers in the UK. Lenovo s10-2 was chosen because the version available in HK comes with 6 cell battery with international warranty and Lenovo Protection Service (against accidental damage).
    This is the first Lenovo machine for me. All was well and I was starting to appreciate Lenovo. Suddenly, the LED screen started to flick with white lines moving across the it, just two weeks after I bought it from Hong Kong.
    Yesterday, I called the UK support line who initially suggested replacement (because the purchase is last than 30-day old). However, when the agent found out that I bought the machine in Hong Kong, he said I could only get it repairs. Fair enough.
    I packed the netbook this afternoon ready to ship it to the repair center. Being not sure about whether or not my proof of purchase was needed, I called the support line again. This time, the agent gave me a "friendly warning" or maybe a management of my expectations.
    I was told that Lenovo believes that there is a 99.5% chance that these type of problems are due to “internal damages" caused by users! I was also advised that sending the machine in for repairs risk myself getting into paying 230 pounds (pretty much the purchase cost) to get the LED screen fixed because it is likely to be not covered by warranty. On top of that, I would have to pay 65 pounds even if I want my netbook back after inspection without getting fixed because again, 99.5% chance that "damages by users" would be concluded!
    What's the point of warranty? Totally unacceptable. Any thoughts? Should I take the risk?
    I only got the machine just over two weeks ago and used for less than 10 times!

    seblee,
    This bears a bit of looking into to provide you the best answer.   Sometimes, the accidental damage policies are only valid in the home country, and I would like to check.  If that were to be the case, you would have replacement or repair options in HK, but standard warranty terms would likely apply in UK.
    Your situation sounds exceptional, and I'd like to look into this and see what can be done.
    Can your send me a private message with your contact information and the serial number from the bottom of the unit?
    Sorry that you are having this trouble.  Will see how we can help.
    Mark
    ThinkPads: S30, T43, X60t, X1, W700ds, IdeaPad Y710, IdeaCentre: A300, IdeaPad K1
    Mark Hopkins
    Program Manager, Lenovo Social Media (Services)
    twitter @lenovoforums
    English Community   Deutsche Community   Comunidad en Español   Русскоязычное Сообщество

  • JWSDP and J2EE Integration: Doesn't work. What's the point?

    My problems involve the integration of JWSDP and J2EE as described in these two documents:
    http://developer.java.sun.com/developer/technicalArticles/WebServices/wsj2ee/
    http://java.sun.com/j2ee/documentation/windows_guide.html
    It looks like a long one, but it�s really not that bad. All comments are appreciated.
    I�ve numbered each line-paragraph-section for easy reference later.
    (1) My ultimate goal is to setup a website that displays data from a database. I will use Java, Apache, Oracle, and whatever else I need to create a website that uses servlets, JavaServer Pages (JSP), and JDBC.
    (2) I�ve got four Pentium III computers:
    1. Windows 2000 Server to be the web server (MyWebServer, IP = 10.10.1.1).
    2. Windows 2000 Professional to be the database server (MyDatabaseServer, IP = 10.10.1.2).
    3. Windows 2000 Professional that I use to develop and test (MyDeveloperPC, IP = 10.10.1.3).
    4. Windows 2000 Professional that I use as a client to connect to the website (MyClientPC, IP = 10.10.1.4).
    (3) On MyWebServer I installed the following:
    Java 2 Standard Edition (J2SE)
    Java 2 Enterprise Edition (J2EE)
    Java Web Services Developer Pack (JWSDP)
    The JWSDP tutorial
    Apache HTTP Server
    (4) The files I downloaded and installed are as follows:
    j2sdk-1_4_0-rc-win.exe
    j2sdkee-1_3_1-win.exe
    jwsdp-1_0-ea1-win.exe
    jwsdp-1_0-ea1_01-tutorial.zip
    apache_1.3.23-win32-x86-no_src.exe
    (5) After installing these products, I set the environment variables as follows:
    JAVA_HOME = c:\j2se
    J2EE_HOME = c:\j2ee
    JWSDP_HOME = c:\jwsdp
    Path = c:\j2se\bin;c:\j2ee\bin;c:\jwsdp\bin; [and other previous statements]
    (6) I checked to see that Apache is running as a service. It is.
    On MyWebServer I start Tomcat and J2EE. Both start properly and are operating simultaneously.
    (7) From MyClientPC I open Internet Explorer and in the address box I type:
    http://10.10.1.1
    This displays the page c:\ApacheHTTP\apache\htdocs\index.html.en (The Apache default server installation page.)
    (8) I then enter this address in IE:
    http://10.10.1.1:8080
    This displays the page c:\jwsdp\webapps\root\index.html (The default JWSDP page).
    (9) I then enter this address in IE:
    http://10.10.1.1:8000
    This displays the page c:\j2ee\public_html\index.html (The J2EE 1.3 Default Home Page).
    (10) So far so good. Now I want to test JWSDP as a container for JSP pages.
    (11) I use ant to build the converter app found in the tutorial examples (in folder c:\jwsdp\�\tutorial\examples\gs). I then deploy the converter app to the c:\jwsdp\webapps\gs folder.
    (12) From MyClientPC I open Internet Explorer and in the address box I type:
    http://10.10.1.1:8080/gs
    The converter app works perfectly.
    (13) To eliminate the need to enter the port number, I create a link from the Apache default server installation page to the converter app. From MyClientPC and enter this address into IE:
    http://10.10.1.1
    I then click on the link to the converter app and it works perfectly.
    (14) Question: Is this the best way to display JSP pages without having to enter the port number?
    (15) Now it�s time to integrate JWSDP and J2EE as described in these two documents:
    http://developer.java.sun.com/developer/technicalArticles/WebServices/wsj2ee/
    http://java.sun.com/j2ee/documentation/windows_guide.html
    (16) After I complete this integration I cannot start both Tomcat and J2EE at the same time. This makes sense because they both share port 8080.
    I start Tomcat.
    (17) From MyClientPC and use Internet Explorer to test the various relevant addresses. Everything works the same as it did before except this one:
    http://10.10.1.1:8000
    The page cannot be displayed. The J2EE default home page is not displayed, which makes sense because the J2EE port is no longer 8000; it has been changed to 8080.
    (18) Now I shutdown Tomcat and start J2EE.
    From MyClientPC and use Internet Explorer to test the various relevant addresses:
    (19) http://10.10.1.1:8080
    Displays the JWSDP default home page.
    (20) http://10.10.1.1:8080/gs
    The page cannot be displayed. The converter app no longer works.
    (21) From MyWebServer and use Internet Explorer to test localhost:
    http://localhost:8080
    This displays the J2EE default home page.
    (22) Question: Why does localhost give me a different page than the IP address?
    (23) Question: What was the point of integrating JWSDP and J2EE?
    (24) I want to get the converter app working, so I create a .war file and attempt to add it to the J2EE deploytool (see the two integration documents listed above at section 15.) I create the .war file following the instructions in the JWSDP tutorial:
    http://java.sun.com/webservices/docs/ea1/tutorial/doc/WebApp3.html#64606
    (25) I change to the c:\jwsdp\�\tutorial\examples\gs\build folder.
    I then type:
    jar cvf converter.war .
    A .war file is created.
    (26) I open the deploytool: File, New, Application, and I name it �converter�.
    I attempt to add the .war file: File, Add to Application, Web WAR.
    (27) When I attempt to add the converter.war file I get this error:
    �converter.war does not appear to be a valid web JAR.�
    I tried a few different attempts, all with the same result. I�m stuck.
    (28) I ask again, What was the point of integrating JWSDP and J2EE?
    (29) If this is the preferred configuration, how do I display my JSP pages like the converter app?
    Please help!!!

    The JWSDP tutorial says to be in the �build� folder of the example when issuing the jar command to create the .war file. The build folder is created when I run the �ant build� command.
    Attempt 1 from the command prompt in folder c:\jwsdp\tutorial\examples\gs\build>
    I typed this command:
    jar cvf c:\jaxmservices\converter.war .
    In this case I directed the .war file to be placed in a different folder as you suggested. Here�s the output:
    added manifest
    adding: index.jsp(in = 921) (out= 525)(deflated 42%)
    adding: WEB-INF/(in = 0) (out= 0)(stored 0%)
    adding: WEB-INF/classes/(in = 0) (out= 0)(stored 0%)
    adding: WEB-INF/classes/Converter.class(in = 582) (out= 358)(deflated 38%)
    Didn�t work. Same error as before.
    Attempt 2 from the same folder:
    I typed this command as you suggested (I tried it with and without the final dot):
    jar tvf converter.war
    Here is the output:
    java.io.FileNotFoundException: converter.war (The system cannot find the file specified)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:103)
    at java.io.FileInputStream.<init>(FileInputStream.java:66)
    at sun.tools.jar.Main.run(Main.java:185)
    at sun.tools.jar.Main.main(Main.java:904)
    I tried a few other variations on these attempts with no luck. I�m stuck.
    I�m attempting to create a .war file out of two files: index.jsp and converter.class.
    Now that I�ve integrated JWSDP and J2EE, is there some other way that I can run the converter app instead of a .war file and the deploytool? In other words, if I go back to using ant to build and deploy converter, where would I deploy it so that it will work with J2EE?
    By the way, it doesn�t have to be converter. I�d be happy if I could get any JSP page to work in J2EE after the integration.
    Forever grateful,
    Logan

  • Mac Pro 800 port (9-pin to 4-pin) what is the point?

    I finally found a store that sells the 9-pin to 4-pin cable for firewire 800. But on the packaging it says "up to 400Mbps Transfer Speed."
    Does that mean that hooking up my Mac Pro's 9-pin connection to my camera's 4-pin is only going to give me the same as the 6-pin to 4-pin connection?
    If so, what is the point of Firewire 800 and the 9-pin connection?
    -james

    What difference does that make? It's gonna transfer data at video speeds. Even if there was a FW8000 port, it would transfer data at the speed of the material played back from tape real time. That means that data is coming off the tape at about 25mbs... no matter what speed the port is.
    Patrick

  • What is the Point of Active Directory/LDAP Specification?

    My college threw an interesting curve ball today and I couldn't give him a good enough answer. The question was simple 'What is the point of active directory'. Now I don't have a lot of exposure to active directory, but I thought I could easily answer. My argument was; If you have a group of objects its easy to look up attributes for those objects using active directory. For example, if you have a group in AD and you want to verify the users of that group you simply look up the member attribute of that group. However he argued, rightly so, that you can do that with a table in a database, why do that in AD. I couldn't give him a good enough answer and now I'm curious. Given the above example, why use AD over a database?
    To me AD is a way to manage a set of resources, whatever they are, by mapping them to objects that have however many attributes. But we could do that in a database, whats the point of AD? Why do you use AD?

    I come from a primarily database centric background. Just like life experience, it casts a certain perspective on problems. Database people solve things with databases. Directory people solve things with directories. Everyone has their perspective. It's not really about who's right and who's wrong. It's about perspective because people are most likely to go with what's familiar when given a problem. It's easy to have this conversation in a educational environment but when you're on the job it's about turf, schedules and careers. My latest job (in which this debate comes up a lot) has been about directories which has been a very enlightening experience because I've been given a gift of perspective. I can put on the directory hat and look at it from another angle.
    To get back to your professor's question. The answer is easy. LDAP (AD or other) is an application above a database. It has a data store behind it, in most cases we can just assume this is a database. So, in short, it's apples to oranges. But if we insist on comparing which makes the better juice, let's look at how we'd make a database like a directory. We could create a data model with an attributes table, an entries table and so on. We can deconstruct what LDAP data structures really are and implement each type as a table with FK/PK relationships and so on. It's sure to work because there are already so many products on the market doing this very thing. But think about the effort now. How are you going to add new users? A front-end? Stored procedures? Scripts? How are you going to keep someone from seeing things they shouldn't? You have to insert an object into all the right tables to ensure that your data is consistent and valid. In a pure database, you're trying to create ACLs on database rows. Now you're writing a full featured application with a lot of complexity. Given enough directory features, the database isn't going to be able to do everything without an external application.
    What is the point of LDAP? It's got hierarchy, ACLs, group of unique names functionality and things that are a layer of abstraction above the data store. I love databases but if you start designing out a directory server from scratch you'll realize it's far beyond comparing a user.ldif to a row in a user table. They are similar in appearance but different types of software.
    Edited by: milkfilk on Dec 16, 2008 11:48 AM
    Edited by: milkfilk on Dec 16, 2008 11:54 AM

  • Seriously, what is the point in Firefox 29 in removing from Sync the ability to copy all the settings on Device A to Device B?

    Sync used to work, albeit clunkily before Firefox 29. Now it does nothing at all in Firefox 29. What is the point? Bring back Sync functionality so we can copy all the tabs, bookmarks, passwords, and history from Device A to Device B.

    Tyler - Yes I have, yes they are, and yes they are.
    No, Sync is very different in Firefox 29. Before, you could pair a device and specify that you want copy all the tabs, history, bookmarks, and passwords on Device A to Device B and it would do it. It worked. Now in Firefox 29 you upgrade, you log in, you ask it to Sync and nothing happens. It does not work.

  • What's the point of a contract when Verizon can cancel it any time?

    I live in an apartment and have a two years contract with Verizon Fios which I signed back in Jan of this year. There is some issue in my apartment unit and my apartment management is transfering me to a ground floor unit in the same building. When I initiated the service transfer request with Verizon, they wanted me to drop my two year contract and sign a new two year contract with a significantly higher monthly fees. What's the point of two year contract that I signed back in January? 

    Technically you broke the contract by moving.

  • What's the point of redo logs?

    Why does Oracle bother writing everything to redo logs? If it's going to write data changes to the disk, why not just write them once to the data files and be done with it? What's the point of doing it twice? And if it's a redundancy thing, why not mirror the data disks?

    Hemant K Chitale wrote:
    How would you backup a database while it is in use ? You can't lock all the datafiles to prevent writes to them. Yet, transactions may be updating different blocks in different datafiles even as the backup is in progress. Say your backup starts with datafile 1 (or even datafiles 1,2,3,4 in parallel) at time t0. By time t5, it has copied 20% of the datafile to tape or alternate disk backup location. Along comes a transaction that updates the 100th block (somewhere within the 10-11% range) of datafile 1 and also the 60th block of datafile 5. Meanwhile, the backup continues running, already having taken a prior image of the 100th block and not being aware that the block has been changed. At time t25 it completes datafile 1 (or datafiles 1,2,3,4) and starts backing up datafile 5. Now, when it copies the 60th block of datafile 5, it (the backup utility) doesn't know that this block is inconsistent with the backup image of the 100th block of datafile 1.
    Instead of 1 transaction imagine 100 or 1000 transactions occurring while the backup is running.
    Surely, Oracle must be able to regenerate a consistent image of the whole database when it is restored ?
    That is what the Redo stream provides. The Redo stream is written to Archivelogs so that it can be backed up -- no Archivelog file is "in flux" (particularly if you use RMAN to backup the Archivelogs as well !).
    Had Oracle been merely writing to the datafiles alone, without a Redo stream, there is no way it could recreate a consistent database -- whether after Crash Recovery OR after Media Recovery.Interesting point about how redo logs facilitate backups. So what you're saying is that the redo logs help keep the data in the actual data files in a consistent state by only writing full transactions to them at a time. Presumably Oracle will either write out the redo log data to the data files before a backup or will at least prevent the redo logs from writing to the data files during a backup. I always wondered how databases got around that problem of keeping the system available for writing during a backup. I wonder how SQL Server does it.
    Hemant K Chitale wrote:
    Now, approach this from another angle. A database consists of 10 or 100 or 500 datafiles. You have 10 or 100 or 1000 sessions issuing COMMITs to complete their transactions, which could be of 1 row or 100 rows or 1million rows, each transaction of a different size. Should the 1000 sessions be forced to wait while Oracle writes all those updated blocks to disk in different datafiles -- how many blocks can it write in "an instant" ?
    But what if Oracle manages to write much less information -- the bare minimum (called "change vectors") to re-play every transaction to a single file serially ? That would be much faster. Imagine writing to 500 datafiles concurrently, having to open the file, progess to the required block address and update the block, for each block changed in each file VERSUS writing much lesser information serially to a single file -- if the file is full, switch to another file, but keep writing serially.As to your second point, I don't really have a good enough understanding about the format of redo logs vs. the data files to follow you totally. Are you saying that it takes more time to write to the data files because you have to find the proper place in the B-Tree before you can write to it? And that doing that is slower than just opening the redo log and always appending new information to the very end? Maybe so, but it seems like all transactions having to write to a single redo log in serial would slow things down since there would be a ton of contention for one file. Whereas with the data files, you could potentially have several transactions writing to different files simultaneously (provided you hardware would support doing that). And it seems to me like a change vector would contain a lot more information than a field value, but, like I said, I'm not really familiar with the format.

  • What is the point of having a smartphone if nothing ever works?

    Before my GS3 updated to kitkat my apps would crash all the time. My phone updated last week and now the apps work but in what used to be areas with strong steady 4g coverage I have no data. So annoyed. I can turn my data on and without touching it I'll have 4g for a minute and then none before coming back for 5 seconds only to go out again. What am I paying for?  My office doesn't have wifi and I have a large data allowance but what is the point if I can never use it?  I do a lot of travelling and use my phone as a GPS but as I have no no longer have reliable service anywhere even in Philadelphia where it was a constant 4g.  Not to mention the GPS is unreliable as well. Waze is an amazing GPS but to have a phone that doesn't work half the time is frustrating. I should just go back to my old flip phone that lasted me 2 days on a single charge. My phone is due for an upgrade in a few months. Maybe I'll save some money and get something that isn't a smartphone and I won't have to worry about paying for the data and everything else that comes with having a smartphone.

    I can understand that Verizon did not make the phone.  My satellite provider did not make the dish nor the receiver I use either, but if they malfunction and make it to where I cannot receive their service (the satellite signal) then the satellite provider assists in getting equipment that works.  If it is a software issue, they have more sway with the provider of said software, as the representative and mass user of the software, than individual customers do.  So if Verizon is receiving multiple complaints from their customers, complaints that their customers are unable to use the service that they are being paid to provide, then they can go to manufacturer to request the fix.  Who do you think Google or Samsung is going to listen to more, an individual who received a phone from a 3rd party (Verizon) or the entire company who purchases those items (phones and software) en-masse and thus can more affect their bottom line?  As another example... when you purchase a car and the seatbelt malfunctions, do you go to the seatbelt manufacturer or back to the car maker?  Should each person who has a seatbelt malfunction go to the seatbelt maker or should the car maker issue a recall on all affected vehicles and offer a fix, provided from the seatbelt maker?  When I go back to Samsung or Google, and IF they listen to me and initiate a fix, what priority is Verizon going to make it to get it out to their customers?  Or is Verizon relying upon each disgruntled user to go find their own fix without it affecting them (Verizon) at all?  Other service providers have already started issuing fixes according to my research... and if Verizon delayed pushing this update out for so long (as I've seen complaints that it was), why did they push it with these known issues and not insist before they pushed it out that Google or Samsung fix it first so as not to get these complaints?  Sorry, but Verizon is at least partially responsible for my inability to use their service, as the provider of the equipment and software that I need to be able to utilize their services.  I didn't go out on the black market and purchase this phone, I bought it at a Verizon store.  I have not rooted the phone or in any way done anything other than add about 6 apps to the phone from the way it was provided to me by the store, and their required update - pushed across their cellular and data service - is what has resulted in my phone no longer being functioning.  So yes, while Verizon may not manufacture the phone or the software, they are in fact the provider of said items to me and thus are responsible, and should be pushing back to Google or Samsung to get a fix for their customers.  I was hoping to hear that Verizon was doing just that, but it does not appear to be the case.... Yes, other providers may be having the same issue, but I've seen them working with their customers to get a solution, providing CUSTOMER SERVICE to their customers, and that is all that I and others like me, have been looking for from Verizon in this kitkat fiasco and which they have been failing at.

  • I have recently purchased the highest storage but was unable to backup my phone via icloud, the button on my mphone to backup on icloud is grey out, anyone knows how to resolve the problem?  What's the point of purchasing the biggest storage?

    i have recently purchased the highest storage but was unable to backup my phone via icloud, the button on my iphone to backup on icloud is grey out, anyone knows how to resolve the problem?  What's the point of purchasing the biggest storage?

    First check that your device is correctly connected to the wifi/internet (settings > wifi)
    If your back up continually fails, you might try turning off back up on your mobile device (settings > iCloud > storage & backup) and then deleting the backup file from iCloud by swiping the backup file on the mobile device (settings > iCloud > storage & backup > manage…) and then turning back up on again.
    If this doesn't help, try turning off some items for back up in a pattern to try to establish if your problem is being caused by specific data on your device.
    Being able to back up to the cloud can be very useful, especially if you don't have access to a computer or have infrequent access to one, however unless you specifically need to use iCloud for back up, you will find backing up to iTunes significantly more convenient and possibly more reliable.
    More about iCloud v iTunes Back Up

  • Capture Conv: rev/reverse - what's the point?

    Take this example from http://www.langer.camelot.de/GenericsFAQ/FAQSections/TechnicalDetails.html
    public static List<?> reverse(List<?> list) { return rev(list); }
    private static <T> List<T> rev(List<T> list) {
         List<T> tmp = new ArrayList<T>(list);
         for (int i = 0; i < list.size(); i++)
              list.set(i, tmp.get(list.size() - i - 1);
         return tmp;
    }Now, I've read the JLS, the Generics tutorial, the JOT.fm article and the langer.camelot.de FAQ, but I can't for the life of me figure out one thing:
    What's the point!? The wildcard version of reverse returns List<?> whereas the naive alternative (public static <T> List<T> reverse(List<T> list)) returns whatever you pass in. That seems much more useful! You pass in a List<String> and you get back a List<String> The JLS says that the templatized version "is undesirable, as it exposes implementation information to the caller."
    My question is this: is that the real reason? It's not, right? What implementation information is exposed? The type parameter? How is that bad? Is it bad enough to reduce the functionality of the method?
    I have a hunch that "exposing implementation information" is low on the tradeoff scale - and that the real reason for the wildcard version is backward compatibility. If you only had the templatized version, old code that tries to pass in a plain-old List to reverse would now generate unchecked warnings because of the conversion from raw List to the formal parameter's type List<T>. The preferred wildcard version doesn't generate unchecked warnings because the conversion from raw List to List<?> is 'safe'.
    Isn't that right? The reason that "public static <T> List<T> reverse(List<T> list)" is bad is not because it exposes implementation details, but because it causes old code to generate unchecked warnings, non?
    If I'm right, then my follow up question would be: who cares? Who cares if old code generates unchecked warnings? Isn't that fair? - a sort of gentle pseudo-deprecation of raw types?
    And furthermore, if you'll allow me to smush several questions together, why the preoccupation with eliminating unchecked conversions all over the place? Doesn't the bytecode that comes out look the same either way? What benefit does an unchecked-conversion-free program or CompilationUnit have over one with such conversions? Does provability make possible some future JVM optimizations where some casts or instanceofs can be eliminated? I don't really see how, unless we're talking about some wacky static compiler. Why go to so much trouble to avoid unchecked conversions?

    Angelika, you caught me. I was writing about the 'void reverse(List<?>)' example from the JLS when I went back to your page and realized that your example had a return type. It confused the matter slightly, but not enough to detract from my main point, I thought. In fact, it seemed to prove my point - to provide a good counter-example to the JLS reasoning! But let me start from the beginning:
    In the draft JLS, it mentions that<T> void reverse(List<T> list) {} is preferable to void reverse(List<?> list) {} which is "undesirable" because "it exposes implementation information to the caller."
    What implementation information? The only difference between the two is that the 'unknown element type' has a different name. '?' as opposed to 'T'. In both cases, it means the same thing! A List with some unknown element type.
    Whether it's called 'T' or '?' is inconsequential, it seemed to me. Perhaps one could argue that one is 'prettier' than the other but I didn't see how any implementation detail was exposed.
    I didn't see any real reason to prefer the wildcard version over the other, except the reason I gave: the wildcard version avoids unchecked warnings for legacy code.
    I now see that there is one other important difference - the type parameter T is actually part of the method signature. That could have important implications for overriding. In that sense, the 'List<T>' version does 'expose' and impose an unnecessary implementation constraint. I haven't thought through how that could be a problem, but I certainly can imagine that it might.
    However, neither the 'avoid-unchecked-warnings-on-legacy-code' reason nor the 'typeparameter-is-part-of-method-signature' reason is mentioned in the JLS example. Without those two pieces of information, the preference just seems arbitrary.
    So that was my initial question: "am I incorrect? The dont-expose-implementation-information reason seems much less important than the avoid-legacy-warnings reason - shouldn't the JLS mention *that* instead?"
    THEN, to add to my feeling, I noticed that the similar-looking example on your page involved a return type of List<T>. It seemed to follow the JLS recommendation to its detriment! The preference in the JLS example seemed arbitrary yet harmless, but here it seemed actually wrong! In trying to avoid the hand-wavy concept of 'exposing implementation information to the caller', the usefulness and semantics were ruined! That seemed like alot to give up, just to spare legacy people some unchecked warnings. I thought this just drove home my original point about the JLS example - but instead it just made my question a confusing mixture of two different issues. I should have realized that and left the FAQ version out of the discussion.
    Given all of that, consider now only the JLS's 'void reverse(List<?> list)' case and let me ask this refined question:
    I think the JLS should say that '<T> void reverse(List<T> list)' is undesirable not because of the vaguely unconvincing reason that "it exposes implementation information" but rather because of these two explicit reasons:
    . the type parameter is part of the method signature (which can cause strange 'gotchas' with overriding) and because
    . it causes previously acceptable code to now unnecessarily generate unchecked warnings.
    Does anyone else think differently?
    POSTSCRIPT:
    Of course, the thing I didn't realize was that that code snippet in the FAQ is crazy. ie. 'List<?> reverse(List<?> list)' is absurd! You would probably never do that. What kind of reverse method would return a List of a different parameterization than it gets? That would be a really weird reverse method, I think.
    Given that, it seems to me that you should modify the 'reverse' snippets in the FAQ, under sections "What is the capture of a wildcard?" and "What is a wildcard capture assignment-compatible to?". I think you should do one of three things:
    1. Make rev/reverse return 'void'. Then your example code becomes the same as the JLS, the wildcard version makes sense, and preferring it makes sense too.
    2. Remove one of the two methods and only have 'public <T> List<T> reverse(List<T>)' which gives the correct implication.
    3. Keep the example but give the methods a different name and purpose than 'reverse', like
    'List<?> examineListAndMaybeReturnOneWithDifferentElementTypes(List<?> list)'. :)

  • AVCHD/ HDV- What's the point

    This is probably as stupid as it sounds, but it suddenly struck me today, but what is the point of having AVCHD/ HDV compatibility and editing on FCE/ FCP if you can only burn the projects onto a standard def DVD? Does FCE give you any other options in tems of what you do with your freshly edited High Def content? Do you lose a heap of quality when you burn it to DVD?

    hey there qsack,
    in the USN i was told the only stupid questions are the ones you don't ask. you can send your HDV project back to tape in your cam to watch on your HDTV... the shoot/edit/distribute flow that we have in DV, is not yet ready w/ HDV, partly because of the cost of the burners & the R&D to develop the authoring software for mass commercial use(make it simple enough for average users as w/ iDVD). also the major studios are probably closely guarding the technology in part due concerns about piracy, also the HD-disc format war thing.... these are just some of the speculations on why we can't yet burn our HD movies to disc.
    i've burned some of my HDV content to SD discs & they look pretty good, because i had good lighting to start with. though i dropped down a lot in terms of res from 1080i to 480p. i was okay w/ the results & as w/ most graphic types be it print, photo or video, it's usually better to start out w/ more or larger(1080/720) & if you have to shrink it(480) you still have a decent image rather than have a small image & try to scale up. for example--a photo from a 10 megapixel DSLR "RAW" file will still have a lot of detail & look good when it gets down-converted to a JPEG vs. a photo from a 2 megapixel phone camera that starts as a JPEG.

Maybe you are looking for

  • IPod no longer removing played podcasts

    Please help! this is driving me absolutely insane. I have my iPod sync settings set to: automatically include all unplayed episodes of selected podcasts. It used to work just fine, only syncing unplayed podcasts, and removing played podcasts. now it

  • Error executing a package on Oracle 10G database

    Hi, I've a package on Oracle 10G database which accepts xml string as input,loads it into XMLDOM and does some processing. When I execute this package from .Net 2.0 client,I get the following error: **Error** err ORA-31011: XML parsing failed ORA-192

  • Itunes automatically open when plugging in iphone

    Before installing Lion iTunes would automaticall open when I plugged in our iPhone or iPad to the Macbook. Now it does not. I have the "Open iTunes when this iPhone is connected" box checked. What next?

  • Mouse freeze after boot

    I have two separate partitions on two separate drives which have MacOS 9.2 installed. They are both behaving in the same same. After booting up, I can usually move an icon around on the desktop for a while. Sometimes I can even move it to the trash,

  • Firefox does NOT respond when trying to clear history, cache etc

    Firefox does NOT respond when trying to clear history, cache etc windows says not responding and I can not clear anything