Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What represents the most mentally challenging form of coding? [closed]

I am pursuing a graduate degree in Organic Chemistry.

Right now, many talented people in my area are headed towards nanotechnology.

What is the equivalent field in modern computer science?

like image 435
Lansen Q Avatar asked Feb 28 '09 20:02

Lansen Q


2 Answers

For me, it's threading. Even relatively "simple" threading is challenging, and if you delve into the realms of lock-free code it gets even hairier. There are certainly threading paradigms which don't raise as many mental headaches (actors, message passing etc) but they tend to come with their own trade-offs.

This is a level of "deep" complexity in my view, but there are other areas of coding which are challenging in different ways. Security, i18n and date/time handling (or pretty much anything related to actual human characteristics) is very finicky, with lots of corner cases to learn and watch out for. This is certainly hard, but in a different way to concurrency.

EDIT: As a response to twk's answer: yes, there are lots of people trying to make concurrency easier. While there are already various platforms which support concurrency well (e.g. Erlang) there's more of a move at the moment to bring simpler concurrency to already-mainstream platforms. From my point of view as a .NET developer (well, an amateur/enthusiast .NET developer anyway; professionally Java at the moment) the Parallel Extensions and Coordination and Concurrency Runtime are the two most interesting recent developments. I don't expect this to make concurrency easy - just feasible for mortals.

like image 164
Jon Skeet Avatar answered Sep 30 '22 18:09

Jon Skeet


"Strong" artificial intelligence and quantum computing would be my votes for equivalence with nanotechnology.

like image 24
Dave Swersky Avatar answered Sep 30 '22 16:09

Dave Swersky