What I want to see in Next Programming Language and IDE’s

May 1, 2007

In response to the last post on a new programming language called StreamIt (which, at the moment, I don’t find it very interesting), I tried to imagine if I was asked what kinf of characteristics or features in future programming language that I want to see, what will I say.

One, it’s definitely threading and multicore support natively from the language. The language will have to provide a way to write programs in thread safe fashion without the programmer have any concious of it. The language also have to provide a way for data to be shared accross threads, process, cores, anything,… without any hassle like:
lock ( obj ) { data = value; }

like construct. instead, maybe the language can just declare something like:
shared int data;

The language will also have to be able to determine which object/class that runs inside a particular thread and disallows any access on non shared data/methods accross threads. For optimization and load balancing, the runtime should be smart enough to know how to balance objects that is not thread-bound specified (not declared specifically in the program). Of course all of these requirements will require native thread support in the underlying language and that is what I’m waiting for.

Second, one thing that i noticed is that one of the source of confusions in programs is in branches. branches is non linear. branches is not sequential. branches are hard to maintain and to visualize. But without branches we’ll never go anywhere. So what I want is a way for branches to be more abstract. In more general way, I need programmers to think sequentially most of the time especially when they are writing codes. Maybe an IDE support can be  a bit of help by detecting branches and enhanced them visually. (In my imagination, theres this big screen in front of me, and when I scroll down to where the branches are, the IDE just splits the code into different windows. When I’m writing for a particular condition, all the other windows will be minimized so I got the feel that the code before the branch and the code I’m writing now is in a sequential fashion. Just one of my wild imaginations).

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: