offices are for professionals and academia, cubicles are for technical staff and open [factory] floor is for blue collars and low level clerical (i.e. easily replaceable commodity). That basically reflects the evolution of status of programmers in the society during the last 60 years.