I guess we should remove the `widths` argument here, because it is use only for the validation purpose; it does not really specify the widths of the two panels, which can be confusing. I did not realize this until I tried `sidebarLayout(widths = c(3, 9), sidebarPanel(...), mainPanel(...))` which gave an error message that I did not understand at first. Now I know I should use `column(3, ...)` and `column(9, ...)` here. If the users have specified the column width via `column(n, ...)`, I guess there is no need to ask them to provide the `widths` argument in `sidebarLayout()` just to verify themselves, i.e. this seems awkward

```s
sidebarLayout(widths = c(3, 6),
  column(3, fooInput...),
  column(6, barInput...)
)
```

I'd rather just write

```s
sidebarLayout(
  column(3, fooInput...),
  column(6, barInput...)
)
```

As users learn more about `fluidRow()`/`fixedRow()`, they will probably stop using `sidebarLayout`, and naturally transit to

```s
fluidRow(
  column(3, fooInput...),
  column(6, barInput...)
)
```

Without the `widths` argument, the transition will also be easier.