The iphone 4 is faster, the screen resolution is far superior, the camera is also much better and the gyroscope makes a good difference when using Maps or other GPS applications. Other than that it’s the same since I don’t use Facetime. The 3GS doesn’t have these things but overall, my experience with it was better until I bricked it, but that was my fault, not the phone’s fault.
Issues I have had with the 3GS: None. Everything worked and kept working.
Issues I have with the iPhone4:
1-The mail app is stuck in 12/02/11. It reads as follows: Updated 12/02/11 1:00 AM
If I tap the fetch/refresh icon(little circle arrow), it then shows the proper time and date of when I updated but if I exit the application and open it again, it’s immediately back to 12/02/11. The mail app itself works fine but it’s an annoyance to never know when I updated my mailboxes last.
2- The call app freezes when I end a call. Not always, but often. If I get a phone call when the phone is in sleep mode, upon ending the call, the phone automatically goes back to sleep mode, which is normal, but when I go back to the call app, it’s frozen on the “call ended” screen. The only way to fix this is to respring the phone. Thankfully, it is jailbroken and I have sbsettings installed so I’m two taps away from respringing it and it only takes about 4 seconds to respring. If the phone was not jailbroken, the only option would be to shut down the phone and turn it back on. That’s a real pain.
3- The reception is much better on the 3GS. This is actually an issue because the 3Gs works in B1 in my house, but the iphone 4 falls out of range so I can’t make or receive calls when I’m in the basement (most of the time). If I’m expecting a call, I have to leave the phone upstairs and then go to the basement.
All in all, it’s not that bad, but my experience with the 3GS was simply smoother. I would recommend waiting for the next generation iPhone if you are in the market for an iPhone or save yourself a bunch of money and get a 3GS instead.