Top 5 trends and technologies in software development
blog.mostof.it
blog.mostof.it
IMHO discussions like this will be more interesting if we try to avoid loaded words like "modern" (which makes it sound like something new is inherently better) and concentrate on honestly assessing both the advantages and the limitations/dangers of emerging technologies and techniques. That way, those of us who might find these ideas useful in future can learn from those who have been using them already and make more informed decisions. It's not as if each of the ideas in this article hasn't been horribly overhyped in some advocacy, even if the idea might have genuine merit in the right circumstances.
Learn and use a modern scripting language
Learn thogoughly and embrace the philosophy of a modern version control system
Be familiar with NoSQL solutions like MongoDB, CouchDB.
Learn a functional language — or more than one.
Study agile methods and concepts.Most of the other scripting languages are much more close to functional than Python is.
One major trend that's omitted is the coming important of concurrent/multicore programming. It has become clear for many that computers aren't getting that much faster but they're getting more and more core's. To be be able to utilize that power you need to start code from the ground up to take advantage of multithreading.
On the .Net side Microsoft seems very aware of this and has rolled out a number of new techologies and tool support, things like Parallel.net, PLINQ, Reactive Framework and most recently Async. F# is by nature of being a functional language very suited for parallel processing.
No doubt other frameworks and languages will soon follow.
I would argue that dyanmically typed languages (or static languages with Hindley-Milner) are intrinsically more elegant than statically typed, since you don't have the type information cluttering up your code.
That says nothing about 'better,' of course. But certainly more elegant.
http://www.muhuk.com/2010/02/top-5-untrends-according-to-me/