Question: Could someone explain me the difference between 

```
bootstrap(MyApp, [provide(Service1, { useClass: Service1})]);

```

and

```
bootstrap(MyApp, [Service1]);

```

Answer: 
The first example runs `<program>` under `stdbuf` with standard output and standard error redirected to `OutputFile.txt` in the background (`&`).

The second runs `<program>` under `stdbuf` in the background (`&`) all in a subshell which has *its* standard error and standard output redirected to `OutputFile.txt`.

What the practical effects of this difference are, however, I can't say exactly.
As already said in comments, the `(...)` enclosed statements are executed in the `subshell`.

Imagine the following fragment:

```
echo 'line1' >  /tmp/file
echo 'line2' >> /tmp/file
echo 'line3' >> /tmp/file

```

using a subshell, you can redirect the whole subshell, so the above could be written as

```
(
echo 'line1'
echo 'line2'
echo 'line3'
) >/tmp/file

```

Both produces the same result, but the second is shorter, cleaner and easier modifiable.