In a saucepot, whisk together 1/4 cup sugar and 1/4 cup cornstarch. Slowly stream in 2 cups whole milk (or non-dairy milk)ilk while whisking until no lumps remain. Whisk in 1 tsp rose water or vanilla extract if using.
Place saucepot over medium heat. Whisk constantly until mixture becomes thick and bubbles appear around edges of the pot, about 10 minutes.
Pour the pudding into 4 containers. Optionally, press plastic wrap against surface of pudding to prevent skin from forming. Refrigerate for at least 2 hours before serving. Keeps for up to 3 days in the refrigerator.