The difference is the return type:

```Scala
val o : Observable[T] = publish ++ Observable.items(initialValue)
val o : ConnectableObservable[T] = publish(initialValue)
```