In addition to David's response, lets break down the concept of a costmap.
What's the costmap doing?
The costmap is around to buffer information collected about the environment into some representation of the space. This isn't just done for fun, its primarily interesting for path planning and control.
It stands then to reason, any robot in any environment that is conducting path planning and control must require some configuration space to operate in. If its a static space, maybe you can use a recomputed map if everything is included. But in reality things move. So you need to have something creating a representation to plan in over time.
Costmaps are one way to accomplish this, but its also a catch-all phrase I use (probably others) to describe any sort of environmental representation. Costmaps are very efficient and for many usecases are the best option. Other options include gradient maps (marking the gradients of surfaces rather than individual cells of occupation or cost) or vector maps (maps that take detections or segmentations of obstacles and places them in a more abstract planning space), but usually people use one or many of these options in tandem for complex applications (ei autonomous driving, outdoor navigation, legged traversibility estimation, etc).
In any case, you can find plenty of examples of costmaps outside of ROS. If you're on flat ground and on limited compute, costmaps are the way to go. If you have a little compute to do detections and segmentations, costmaps are the way to go with an additional vector map layed on top.