SpaceChem is a 2D optimization-puzzle game themed with pseudo-chemistry in which you build machines that modify atoms or molecules with bonders and waldos (these pick atoms up) to make other molecules. Then, the game progresses by building reactors and introducing more concepts.
Pro Endless gameplay through user created solutions
An individual players choices of components, arrangements or factories used will result in completely different experiences and problems/puzzles when compared to another users experience. A truly individualized experience that expands the games replayability.
Pro Allows for short or long play sessions
The gameplay allows for a player to come in and solve a single puzzle in a short amount of time or to sit and tinker with a puzzle for hours trying to devise the perfect solution and contraption. It all comes down to what one want to put into the game but the free form of the puzzle solving is what makes it great for anyones playstyle be it short or long.
Con Annoying action-y 'boss' stages
At the end of each 'world', there is a boss stage in which you have to perform a unique task. This wouldn't be too bad, but in these levels, you can use blocks that you can activate in real time to change the way your program runs. This often means lots of manual work and a lot of padding to hit the buttons at the right time, which is unnecessary for a puzzle game (and, given that you cannot rewind, also stressful if your program is very tight). I would imagine that the best scores for these levels also overly abuse this feature to make solutions that would be almost impossible without use of macros, for instance.