A Wish List for the Next Mainstream Programming Language 133

Posted by Michael Feathers Tue, 30 Dec 2008 02:06:00 GMT

It’s been fun watching the reactions to new features in C# 4.0. Some people love them. Others wonder, legitimately, where it is all going to end. The argument for feature addition is simple: over time we find better ways of doing things and our languages, as tools, should allow us that flexibility. The only downside to this strategy is that you end up with sprawling, complex languages over time – you never get to revisit the foundations.

Fortunately, however, people design new languages all the time and some of them do eventually enter the mainstream. We get a chance to start over and address foundational problems. And, that’s nice because we can do better than Java and C# for mainstream development and I don’t think there is any way to mutate either language into a better foundation.

Before I launch into the wish list, however, I want to set the context.

When I say “mainstream language” I am talking about languages which are in the Java/C#/VB market space – languages which are light on rocket science, seen as suitable for large-scale development, and don’t scare people. So, I’m not going to suggest dynamic typing or (on the other side of the coin) tight Hindley-Milner type systems and lazy evaluation. I love those approaches and I’m happy (in particular) that Ruby is gaining widespread acceptance, but I’m not going to fight that fight here. In the immediate future, for whatever reason, there will be development shops which feel much more comfortable with traditional static typing – the kind found in Java, C#, and VB. Given that, the question becomes: what can we do to make that sort of language better?

Here’s my list:

  1. Immutability by Default – Over the past few years, a rather broad consensus has emerged around the idea that code is easier to understand and maintain when it has less mutable state. This isn’t a new idea; it’s been around for as long as functional programming, but our recent concerns with concurrency and our move toward multi-core computing just underscore the state problem. A mainstream language should, at the very least, make mutable data something special. References should be immutable by default and mutable state should be marked by a special keyword so that its use leaps out at you. It’s too late for the current crop of languages to make such a pervasive change, but the next mainstream language could.
  2. Support for Components – In large-scale development, teams have to manage usage and dependency across an organization. The notions of public, protected, and private are too coarse as protection mechanisms, and we really need scopes larger than class, assembly, and package. In the end, this sort of protection is a social issue, so we should have mechanisms which make use very easy within a team (3-10 people working together) and somewhat more manageable between teams. It’s odd that language-based support for this work stopped with Ada and the Modula family of languages. Java’s recent move toward support for modules seems to be an exception.
  3. Support for Scoped and Explicit Metaprogramming – In the past, language designers avoided adding meta-programming support to their languages because they were scared it would be abused. However, we’ve learned that without meta-programming support, people create yet another distinctive type of mess. If there is a middle ground for mainstream languages it probably involves scoping the use of metaprogramming and making it far more detectable. If, for instance, all of the code which modifies a given component had to be registered with some easily locatable component-specific construct, maintenance would be much easier.
  4. Support for Testing – This one is only a matter of time, I think. In the last 10 years we’ve seen an explosion of mocking tools and testing frameworks. It’s not clear to me that we’ve reached any sort of consensus yet, but I suspect that at the very least we could add constructs to a language which make mocking and stubbing much easier. It’s also about time that languages attempt to solve the problems that dependency injection addresses.
  5. Imposed I/O Separation – This is the controversial one. The more I work with Haskell, the more I notice that there is a beneficial discipline that comes from factoring your program so that its points of contact with the outside world can not be mixed with the pieces doing the work. When you first start to work that way, it feels like a straitjacket, but I think the benefit is apparent to anyone who has had to go on a spelunking expedition in an application to find and mock parts of the system which touch the outside world. Is that discipline too much for a mainstream language? I hope not.

So, that’s my list. There is no “grand language planning board” which decides these things. We will move forward chaotically like ever other industry, but I do hope that some of these features make it into the next mainstream programming language.

Comments

Leave a response

  1. Avatar
    Olof Bjarnason about 2 hours later:

    Great post!

    Some thoughts:

    1: completely agree. Immutability is something that should be default! I’ve taken this lesson from my Haskell courses at school.

    2: A simple idea: do away with ‘em completely. They’re just causing more harm/hassle than they buy.

    But thinking about it for more than a few seconds—this is a tough question – one that I feel reveal the conflict between testability and interfaces/IntelliSense/code clients.

    One idea would be for classes to implement some kind of hinting towards the compiler, similar to overriding Equals() and GetHashCode() in java/c#. Question is – would it be better than public/internal/protected/private/whatnot?

    A try at expressing the general problem -
    • code has different audiences/masters at different times. One master is the “package close audience” – those classes using the objects internally to solve their specific issues. Another master is the unit tests. A third one is other packages—that is if the class is part of the “package API”.

    Haskell solves this by making “module APIs” explicit. Modules have to declare what is visible to the outside world (default: everything). Any code on the inside is visible to all other code, alsways (in one file/module). So in Haskell there is no need to “tag” every single atom with public/private/whatnot.

    In any case – simplicity will be part of the solution I am certain.

    3. Yeah I’ve gone down the code-generator-road more than once being “locked into” C# for the last few years. But I don’t disregard the code-generator-road very much (but I would like better support for it inside Visual Studio .. it is kind of hackish to get it to work slick in that environment!).

    One positive side of code-generator-road is that the “main language” could be kept simpler.

    4. Agreed. I like pythons attempt - doctest - where the documentation of classes/methods also serve as unit test code.

    5. Yeah while I do see where you’re coming from (Haskell monads etc. - been there to) - and having TDDed my way out of more than one dependency jungle myself—I can see this in the future too. But it is a distant future.

  2. Avatar
    Matt about 2 hours later:

    How much of this list is covered by F# ?

  3. Avatar
    anonymous@linux.org.ru about 2 hours later:

    Please, kill this squalid language!

  4. Avatar
    Alex about 5 hours later:

    Echoing Matt – F# is it (IMHO)

  5. Avatar
    Mark Lee Smith about 5 hours later:

    I’m with anonymous.

  6. Avatar
    pmf about 7 hours later:

    It’s also about time that languages attempt to solve the problems that dependency injection addresses.

    I don’t see how this can be done and would be interested what you have in mind. I know the way the Java-world addresses DI (using ad-hoc XML-configuration languages, as for example Spring does) is not really very appealing. Switching to a dynamic language would allow one to specify dependencies more easily in the regular host language, but apart from that, I don’t see any possibilities to simplify the mechanics of DI (or alternatives). I’d appreciate very much if you could elaborate this a bit more.

  7. Avatar
    oopjosh about 10 hours later:

    F# is nothing more than a complete copy of OCaml, which is derived from Caml and SML. Their pattern matching/type deconstructing is really nice!

  8. Avatar
    Tore Vestues about 11 hours later:

    Compiler extensibility is king IMHO. Take a look at the .Net-language Boo. It’s an enabler for productivity. And if there is one thing our industry really need, it is tools for increasing our productivity.

  9. Avatar
    William Pietri about 14 hours later:

    Fabulous post, Michael. You have awakened a variety of now-suppressed desires; please forgive the length. I want all of what you suggest (except perhaps #4; I’ve not tried it yet), and more!

    Regarding #1, I’d love to see that be a pervasive principle, so much so that common objects (like List and Set) are immutable as well, requiring extra work for mutability. And that in general, all the language libraries only give you mutable things when it’s required.

    Related to #2, I think defaulting to privacy would be a great start, too.

    As to other things I’m after:

    Something I’ve always wanted is a better focus on, for a lack of a better term, run-time self-description. I’m forever figuring out how to wedge logging, state description, and diagnostic context data in to programs in a way that’s both pervasive and not absurdly obtrusive. I would love it if a language took that seriously.

    I’d also be delighted to see first-class support for refactoring, especially of APIs. I want more freedom to refactor without making giant messes for other people. I want the software equivalent of the web-server redirect baked in, so shims and adapters for old APIs are easy, consistent, and managed mostly automatically. And I’d like to be able to easily provide API users with a set of automated transformations that bring their code as up to date as possible, with notes on where they need to fix the rest.

    Related to that would be serious library management. I don’t know how it is in MS-land (although based on DLL hell, probably not so good), but there are a lot of one-eyed Java programmers who have been forced to stab themselves after accidentally glancing at an explanation of how Java classloaders work (or, more accurately, don’t).

    As long as I’m dreaming, that leads me to another eternal absence: a plausible story on addressing the various common use cases for a mainstream language. The reason that there are almost no Java command-line programs, for example, is because Java puts every barrier possible in the way of that. Difficult to call from the command line. Poor argument handling. Years without any easy way to distribute a runnable thing as a unit. Incredibly slow startup times. Version issues. And as I mentioned, library issues out the wazoo.

    Which brings me to what I really, really want: for the language designers, from the first week, to work in a big room with a lot of devs using the evolving language to make different kinds of shippable software. Without that, I think any from-scratch language is destined to either be a hodge-podge (coughperlcough) or something that’s great only in theory—and for a strictly limited set of theories mainly based on what’s wrong with the last generation of languages.

    And with a sense of mercy for your audience, Michael, I’ll stop here, as it turns out I’ve been holding things like this in for years. :-)

  10. Avatar
    Olof Bjarnason about 16 hours later:

    I’ve had this “Zero:th argument idea” floating around for some time.

    When a thread of execution enters a method, it not only gets hold of argument one to N, but it also gets hold of a “namespace of types+functions”—the whole context it executes in.

    For example:
    void MyMethod(int a, int b) {
      // in here, we can use ANYTHING
      // for example, we can use fopen,
      // printf or whatever is available in the
      // "total namespace" at this point.
    }
    

    I’d like to call that “total namespace” the “Zero:th argument” to the method:

    void MyMethod(0th context, int a, int b) {
    // context available here - it is the zero:th argument
    }
    

    Much of my experience from testing comes down to what Michael describes as dependency injection – that we make available a small context to the method under test, so that we can sense the effects the method has on that context.

    And assume the method will not be using fopen() and friends—something we really cannot “test us out of” in any way I can think of.

    What if the next mainstream language made the Zero:th argument explicit instead of implicit? So that you had to specify which “things you were to use”? And then the unit test code could override the meaning of that context-content, just as we use dependency injection today?

  11. Avatar
    Nirav Thaker about 18 hours later:

    One more addition to wish list: Integrate all concurrency primitives with language constructs. We don’t need N libraries/frameworks with N concurrency abstractions. IMO, this is essential to promote uniform concurrent programming.

  12. Avatar
    Nirav Thaker about 18 hours later:

    One more addition to wish list: Integrate all concurrency primitives with language constructs. We don’t need N libraries/frameworks with N concurrency abstractions. IMO, this is essential to promote uniform concurrent programming.

  13. Avatar
    me about 21 hours later:

    It’s a bit different, but Oz ( http://en.wikipedia.org/wiki/Oz_(programming_language) ) has many of the characteristics that you list.

  14. Avatar
    Ryszard Szopa 1 day later:

    Looks like Clojure has most of the features you’d like to see (except of the I/O separation). Making multithreading easier ootb and playing very nice with Java are a bonus.

  15. Avatar
    Ben Dyer 6 days later:

    Two things I’ve been thinking I’ve wanted in a language for a while are:

    1. left to write assigning so I can write:

    (do this) (assign result) (to this); eg:

    myObj.calculateNumber() => someVariable;

    I don’t know, I think in left to right, so I’m constantly finding I have to Jump around my line, I write the end and then have to go back and write the start. If I could have a standard new() method as a constructor and a ==> to mean something like ‘var’ in C# then I’d love to able to write a line like the way I find my self writing them in reverse now:

    MyClass.new() = => myObj;

    2. I’d like my methods to be able to accept parameters ‘mid sentence’. so for example I could write a method like

    public string Replace(string find)With(string replace){}

    so I could write code like:

    myString.Replace(“old”)With(“new”) => newString;

    Cheers,

    Ben.

  16. Avatar
    manuel about 1 month later:

    @Ben:

    You can get similar readability with named parameters:

    myString.Replace(“old”, with=“new”)

  17. Avatar
    Wmv to ipad about 1 year later:

    it is really good

  18. Avatar
    latin shoes about 1 year later:

    Most problems happens before testing, nice post anyway!

  19. Avatar
    latin shoes about 1 year later:

    would you mind updating your blog with more information?

  20. Avatar
    replica jersey about 1 year later:

    would you mind updating your blog with more information?

  21. Avatar
    TRIMMER CAPACITOR about 1 year later:

    I found this web-site by on a fluke when I was exploring on Google then I arrived onto your site. I’ve to speakyour world-wide-web webpage is pretty cool I honestly loveyour theme!

  22. Avatar
    max 95 about 1 year later:

    This is awesome! And I made my “ThemeEngine” the name of my project because it can persist any selected theme across postbacks, lot.

  23. Avatar
    yalova emlak about 1 year later:

    Thank you very much for this article.I like its.As to me it’s good job.

  24. Avatar
    wdwadwad about 1 year later:

    dwadwadwad

  25. Avatar
    http://www.kissjordanshoes.com about 1 year later:

    you are a good men,following you !

  26. Avatar
    <a href=http://www.coachoutletlinebags.com/> coach purses on sale </a> about 1 year later:

    thank you for your point !

  27. Avatar
    championship jackets about 1 year later:

    Dear friends, thank you for visiting our website ,we are an international trade company,which specializes in NFL jerseys.We wholesale jerseys at competitive price,providing a huge range of NFL jerseys of different teams,such as Arizona Cardinal,Atlanda Falcons ,Baltimore Ravens,etc.You can buy cheap championship jackets . Welcome to visist here . Website: http://www.sportsjerseysshop.com

  28. Avatar
    http://www.hats-trade.com about 1 year later:

    Welcome to our website?http://www.hats-trade.com,we supply cheap red bull energy hats, we believe that to bring you a lot of surprises.All our products are free shipping,non-tax,7days to your home,incredible discounted price for top quality products.

  29. Avatar
    http://www.caps-store.com about 1 year later:

    Fantastic website http://www.caps-store.com I will bookmark it and come back later. Thanks for posting this. Very nice recap of some of the key points in my talk. I hope you and your readers find it useful! discount new era hats Thanks again.

  30. Avatar
    Regim Hotelier about 1 year later:

    As an ex-game coder I agree with his empasis on concurrency, this is only going to be more and more important and not just in games. This is the major angle people interested in functional programming can leverage with people interested in performance.

    Then again the only success I had in getting functional code into a game engine was a scene-graph scripting language which would have been hell to debug if it had side-effects.

    Not sure about being able to eliminate all numerical/array index etc. exceptions though. A lot or most maybe but not all IMO.

    Also not sure about lenient eval’ either. Cazare in Bucuresti

  31. Avatar
    Boston Red Sox Hats about 1 year later:

    We only provide AAA quality of products. You can make purchases without scrupulosity. All of products can be ordered from our website directly, also, you can contact our professional customer Boston Red Sox Hats Welcome to visit here:http://www.caps-hat.com/new-era-mlb-hats/boston-red-sox-hats

    service to get more support about payment terms, the intention of cooperation etc. The most preferential price: Our competitive price make our customers confident to develop their own business, at the same time, reaping big benefit from this transaction. Our favor tends to the customers who are from United States, Britain, France, Spain, Germany and Australia etc.
  32. Avatar
    moncler down jackets about 1 year later:

    Best new era caps,new era hats,delicate monster energy hats,magical nfl hats,one industries hats,rockstar energy hats,Red Bull Caps,The Hundreds Hats,Supreme Hats,DC Comics Hats ,ed hardy hats are in stock now. Our site provide first-class service and reliable quanlity garantee,do not hesitate to shake hands with us and go with the tide as soon as possible!

  33. Avatar
    iPhone SMS transfer about 1 year later:

    Backup the iPhone SMS to computer as .txt or html

  34. Avatar
    nfl jerseysview about 1 year later:

    HOW TO DO NFL JERSEYS BUSINESS

    America is a big country with various popular sports and American football is one of them. NFL, the National Football League, is the highest level of professional American football in the United States. The hot sport also makes NFL Jerseys more and more popular. It represents a fashion, no matter you are sport fans or not. Nowadays everyone is getting involved in NFL gear and make money from the NFL jerseys because it becomes a growing business.

  35. Avatar
    http://www.nfljerseymvp.com about 1 year later:

    As you well known that Football is really one of the biggest sports in America,even in the whole of world. wholesale nfl jerseysNFL jerseys, as a big part of team gear ,you can see it whenever you go. It is safe to say that new nfl jerseysNFL jerseys are desired and cherished by every fan .You know that there are many ways for you to get the jerseys ,but the internet is the best places to go.Here we have an online store ofcheap nfl jerseys with great reputation which will make your order in good condition and get your satisfied respond.Come on,what you hesitated about ?Try your trial order with us ,you probably will have regular order in the days up.

  36. Avatar
    http://www.nfljerseymvp.com about 1 year later:

    It is not easy thing for you to choose a good gift for your boys .But if you know your boy’s favorite team and player ,that things will seems to be easier .It really doesn’t matter which player you pick as long as youth nfl jerseysthese jerseys are from that team. Everyone knows that the internet is the best place to go, there are many stores for you to choose .When shopping online , just consider the shipping cost in the equation as free shipping can offset a higher jersey price. And make sure the stores you are dealing with are reputable and established.Be catutious that shipping time should be on time so that you can get nfl jerseysNFL jerseys as your Christmas gifts at the right time.

  37. Avatar
    http://www.nfljerseymvp.com about 1 year later:

    nfl jerseysWe can provide all of jerseys at wholesale price ,since we have our own jerseys factory and we have been in this line for many years which make us have rich experience in making good quality and lowest price in all jerseysugg boots. We keep our NFL jerseys ,NBA jerseys, NHL jerseys ,MLB jerseys at low price and fast shipping every day ,which help us enjoy support from majority of customers. If you want to have a satisfied jerseys of your adoring players nfl jerseys come to our store is your best choice. Because having a nice jersey is a great way to show off your favorite player and feel like a part of a team. ugg boots You will also get our best service after you placing jersey orders with us , we will not only offer you nfl jerseysNFL jerseys, NBA jerseys, MLB jerseys, NFL jerseys at cheap price and assure all products in good condition ,but also in nice packing and safe shipping . nfl jerseys

  38. Avatar
    http://www.nfljerseymvp.com about 1 year later:

    Football fans want to have an satisfied youth nfl jerseysto show the honor of their favorite team and players. It is not easy to get your hands on an authentic discount nfl jerseys Not only they are very common, but also they are very expensive .If you play to give the present to your friends or family members ,then give them cheap discount NFL jerseys will be best choice. As you know, the price of these jerseys will be quite higher during the season,since there is too much demand to match the need. While during the off season, you can have a great discount jerseys from various stores online. So, if you were not able to purchase your favorite wholesale nfl jerseys during the season, you can always afford great discount NFL jerseys in the off season and have yourself prepared for the next year.

  39. Avatar
    http://www.nfljerseymvp.com about 1 year later:

    As every NFL fan knows that wholesale nfl jerseys is a very important part of game.They will want a jersey of their own to announce who is their favorite player. When it comes to buying jerseys, you want the best quality money can buy.Of course ,you care about the quality when you are going to have a deal with discount nfl jerseys .You have to compare with severals stores in local stores or online stores ,after you searching hard enhough ,probably you will get satisfied one which gives you your money’s worth. If you want to learn more how to get the best quality cheap nfl jerseys can buy now in our comprehensive guide to NFL jerseys .

  40. Avatar
    http://www.hats-trade.com/cincinnati-reds-hats-c-10.html about 1 year later:

    Dear friends, thank you for visiting our website ,we are an international trade company,which specializes in http://www.hats-trade.com.We red bull hats at competitive price,providing a huge range of hats of different teams,such as Arizona Cardinal,Atlanda Falcons ,Baltimore Ravens,etc.You can buy cheap caps. Welcome to visist here.

  41. Avatar
    discount NFL jersey about 1 year later:

    Football fans want to have an satisfied youth nfl jerseysto show the honor of their favorite team and players. It is not easy to get your hands on an authentic discount nfl jerseys Not only they are very common, but also they are very expensive .If you play to give the present to your friends or family members ,then give them cheap discount NFL jerseys will be best choice. As you know, the price of these jerseys will be quite higher during the season,since there is too much demand to match the need. While during the off season, you can have a great discount jerseys from various stores online. So, if you were not able to purchase your favorite wholesale nfl jerseys during the season, you can always afford great discount NFL jerseys in the off season and have yourself prepared for the next year.

  42. Avatar
    http://www.caps-hat.com about 1 year later:

    We wholesale hats at competitive price,providing a huge range of hats with different brand name,such as coogi hats, polo hats,Jordan hats,famous hats, monster energy hats, red bull hats, etc.You can buy cheap hats. Welcome to visist here

  43. Avatar
    annezhao_81@163.com about 1 year later:

    NFL is the most popular sports in the world as every knows.The same as nfl jerseys. It has thirty-two teams, which are chosen from all around the USA.NFL is also one of the four main professional football leagues in the North America.It is divided into two parts ,there are AFC and NFC .NFL performs regular matches and tournaments ,that is the reason it attracted so many fans in the whole world. The football season is coming ,it is right time for you to have a satisfied wholesale nfl jerseysto show off your loyalty to your favourite team and players . Come to http://www.nfljerseymvp.com on line , which you will see all lines of youth nfl jerseys with rich colors and styles .You will be happy to see satisfied price in our store. We are here for you all the time.

  44. Avatar
    outlet store about 1 year later:

    As an official http://www.wholesalemonclerjackets.com>moncler outlet store, we supply all kinds of Karen Millen Clothing. Such as:http://www.wholesalemonclerjackets.com>moncler jackets, http://www.wholesalemonclerjackets.com>moncler jacket.

  45. Avatar
    http://www.caps-hat.com about 1 year later:

    We only provide AAA quality of products. You can make purchases without scrupulosity. All of products can be ordered from our website directly, also, you can contact our professional customer new era caps service to get more support about payment terms, the intention of cooperation etc. The most preferential price: Our competitive price make our customers confident to develop their own business, at the same time, reaping big benefit from this transaction. Our favor tends to the customers who are from United States, Britain, France, Spain, Germany and Australia etc.

  46. Avatar
    Baseball Hats about 1 year later:

    That is an awfully astounding column you’ve posted.Thanks a lot for that a fantastically amazing post! Baseball Hats

  47. Avatar
    Jordan Hats about 1 year later:

    Fantastic Read! Looking forward to more! Bookmarked the site and will be back again! Jordan Hats

  48. Avatar
    belstaff jackets about 1 year later:

    hello,everybody,what is your hobby in your spare time? I am fond of

    listening to music,different styles,it’s really a kind of enjoying for

    me.

  49. Avatar
    annezhao_81@163.com about 1 year later:

    Football is always men’s favorite like as fashion is the forever topic in women’s chat. As the NFL football becomes one of the biggest pastimes of American life , nfl jerseys are also one the best selling among sport apparel. As every fan knows that there are many teams in youth nfl jerseys NFL and every season most teams change their uniforms .So there are many different types of jerseys. Also, there are different types of jerseys for female and male respectively. Nowdays , everyone can share the enjoyment of football on field or on TV. For females, there has different sized to fit all different body types. While for males, there are really countless jerseys in different types. However, it is just one style for all but in full size. Anyway, now either men or women can enjoy themselves in football game and also could wear personalized wholesale nfl jerseys to show their team spirit.It is great , isn’t it? In fact ,you can find different types discount nfl jerseys at our online store at http://www.nfljerseymvp.com .You will see some best selling on line also.

  50. Avatar
    topjersey@msn.cn about 1 year later:

    There is no question that most of people enjoy in watching NBA sports .As The NBA holds the most highly skilled players in the game of basketball and because it is known worldwide even basketball kits adds to the awesome revenues that the NBA gets. That is why nba jerseys become so popular among all the people. The way to show off your loyalty to your favorite teams and players is to wear nba jerseys as well as watching NBA games. There are many NBA jerseys stores ,the best way for you to choose is to get on the line where you will see countless NBA jerseys stores ,then you can choose one or two you love most .Before you have a deal ,be sure that this store is reputable which will guarantee the quality and offer you best services .Welcome to visit our website at http://www.nfljerseymvp.com ,where you will see a lot of NBA jerseys ,also include other jerseys ,such as nfl jerseys, MLB jerseys, NHL jerseys .You will never be regret to choose our store online and we will be here for offering you all best NBA jerseys, NFL jerseys, NHL jerseys, mlb jerseys you all the time.

  51. Avatar
    http://www.caps-hat.com about 1 year later:

    Best new era caps ,new era hats, delicate monster energy hats, magical nfl hats, one industries hats, rockstar energy hats, Red Bull Caps, The Hundreds Hats, Supreme Hats, DC Comics new era caps are in stock now. Our site provide first-class service and reliable quanlity garantee, do not hesitate to shake hands with us and go with the tide as soon as possible!

  52. Avatar
    http://www.mvpcaps.com about 1 year later:

    COOL . http://www.mvpcaps.com" title="MLB Hats ">MLB Hats

  53. Avatar
    pandora uk about 1 year later:

    he kind found in Java, C#, and VB. Given that, the question becomes: what can we do to make that sort of language better?

  54. Avatar
    belstaff bags about 1 year later:

    I am a little bit short-spoken since I was very young,because I do not like talking too much ,if there is a choice,I would rather doing or talking.I don’t know why.maybe this is me inborn.http://www.belstaffdiscount.com/belstaff-bag-s

  55. Avatar
    http://www.caps-hat.com about 1 year later:

    We wholesale hats at competitive price,providing a huge range of hats with different brand name,such as coogi hats, polo hats,Jordan hats,famous hats, red bull hats, new era hats, etc.You can buy cheap hats. Welcome to visist here

  56. Avatar
    Steven Shaw about 1 year later:

    Interesting post. I came across it ‘cause I was looking for comment on Tim Sweeney’s talk with a similar title.

    I agree on most points except for language support for testing. I tend to think that’s a place for libraries. Can’t agree more on the immutable-first principle. Support for modules – though I think .NET does a pretty good job here (certainly compared with JDK 6). Not sure if modules is really a language issue or an implementation/build/system-construction issue. I’d like to see Scheme style macro system as the meta-programming mechanism. The Scala system for meta-programming works pretty well – many problems solved by macros can equally be solved with lazy parameters. On the last point, instead of calling it I/O separation, I think it’s better to say separating pure code from impure. As an aspiring programming language designer, this is an area which requires the most type theory and I feel that I’m not quite up to the challenge yet. Seems that dependent types are all the rage and quite useful here.

    I’d like to see a more Pascal/Modula/ML style syntax – rather than C. ActionScript and Scala have taken this direction in recent years. Function types are much more readable.

    It’s possible that Haskell could “get up” as a mainstream language. It has many of these features, an excellent and liberally licensed implementation. I’ve learnt Haskell (though am far from mastery) and I like the language, I just find it hard to love it, although I try :).

    I’d like to see more control of data layout (similar to C). This is useful for games programming (and other systems-level programming such as OS or DBMS and high performance computing). I’ve got some ideas about various pointer/reference implementations that restrict what can be referred to and may lead to better memory management / garbage collection. Also leads to efficient persistence and network message passing and the revival of memory mapping tricks. This amounts to language support for something like Joe Armstrong’s UDF or Google Protobufs etc.

    In the implementation, I’d also like to see a revival of platform agnosticism amongst language designers. Not just a .NET language or a JVM language. The language should be designed to be happy on the CLR/CLI, JVM, JavaScript (Browser/node.js), C, LLVM. Other interesting targets would be PHP (since hosting for web apps is still the most economical) and Flash/AVM. Some ground is being made here in the Haskell and OCaml communities. However, the language closest to my ideal in this regard is Haxe – perhaps because I’d like to design a programming language suitable for games programming. Other languages to watch are: Haskell, DDC, ATS (ML with dependent types), OCaml, F#, C# (in particular a Pascal/ML syntaxed C#—would be a good starting point). Even though they appear dead, much inspiration can be taken from Oz and Alice ML. Great inspiration can be taken from Clojure too (“just” add static typing) and experiences from the Digital Mars D effort.

    Wondering if you’ve seen your next mainstream language in the wild? Any more recent thoughts on the subject?

  57. Avatar
    http://www.hatmvp.com about 1 year later:

    Do you want to be more fashion, more charming,just do a little thing. A exciting purchasing is ready to go! Just pay attention to. We are specializing in providing new era hats wholesale,new era caps ,one industries hats,rockstar energy hats,http://www.hatmvp.com ">Monster Energy Hats which would be your final choice. Just do what you want alonging with your active heart. Our website is persisting on best customer service. Please come and enjoy it! you can find more such article in http://www.hatmvp.com

  58. Avatar
    http://www.blacktowhiteiphone4.com about 1 year later:

    Want to buy the hottest white iphone 4 conversion kit? Highest quality white iphone 4 conversion kit is waiting for your choice! Come and take it home!

  59. Avatar
    Titleist AP2 about 1 year later:

    Good information. Support.

  60. Avatar
    Silicone Molding about 1 year later:

    Intertech Machinery Inc. provides the most precise Plastic Injection Mold and Rubber Molds from Taiwan. With applying excellent unscrewing device in molds, Intertech is also very professional for making flip top Cap Molds in the world.

  61. Avatar
    karen millen dresses over 2 years later:

    Let’s keep in touch.

  62. Avatar
    karen millen coats over 2 years later:

    Peace of mind from the minute you buy.

  63. Avatar
    karen millen dresses over 2 years later:

    Just a stone, God did not create it, or even could not move, and God to do a sounded a gray, foul, could not lift their heads,

  64. Avatar
    accounting services over 2 years later:

    Much of my experience from testing comes down to what Michael describes as dependency injection – that we make available a small context to the method under test, so that we can sense the effects the method has on that context.accounting services

  65. Avatar
    Nike pas cher over 2 years later:

    It is so lucky to read your blog,it is full of useful message.I wish we both can do better in the future.It great honour if you can visit our website,and give us some suggession.

  66. Avatar
    clothes online over 2 years later:

    Thank you for having the time to write about this dilemma. I genuinely value it. I???ll post a link of this post in my website.clothes online

  67. Avatar
    Cheap Clothes Wholesaler over 2 years later:

    Thanks for the great post, definately gives me something to think about.

    Thanks again, Blank Apparel by EZopolis

  68. Avatar
    http://www.caps-jerseys.com over 2 years later:

    wholesale red bull hat,monster energy hat,MLB baseball hat,MLB baseball jerseys hat at caps-jerseys.com online store

  69. Avatar
    http://www.hatsvip.com over 2 years later:

    new era caps with lower price and better service. You can get Wholesale Cheap hats with better service and quality. Milwaukee Brewers Hats is now on sale.

  70. Avatar
    cable ties over 2 years later:

    really nice article. thanks for sharing!

  71. Avatar
    dswehfhh over 2 years later:

    We are the professional coats manufacturer, coats supplier, coats factory, custom coats.

  72. Avatar
    http://www.mulberryhandbagsshop.com/ over 2 years later:

    Good sharing. And today i would like to share one place to buy bags. http://www.mulberryhandbagsshop.com/ where offer 65% discount off, 2011 new style, fast shipping and good service.http://www.mulberryhandbagsshop.com/"> mulberry is the British fashion brand that has been making particularly desirable http://www.mulberryhandbagsshop.com/bayswater-c-2.html "> Mulberry Bayswater bags and leather Mulberry goods since 1971 and has recently expanded its offering to Mulberry clothes. http://www.mulberryhandbagsshop.com/clutches-c-7.html "> Mulberry Clutch Bags attracts celebrity fans like Naomi Watts, Britney Spears, and Alexa Chung. Furthermore, Mulberry’s tree logo handbags are known to be a Brit girl’s staple and must-have accessory. Target Collaborates with High-end Designers.

  73. Avatar
    ipad bag over 2 years later:

    To be, or not to be- that is a question.Whether ipad bag tis nobler in the mind to suffer The slings and Game Controllers arrows of outrageous fortune Or to take arms against a sea of troubles, And USB Gadgets by opposing end them.

  74. Avatar
    Mulberry Bayswater bags over 2 years later:

    If you need a sharp-looking bag that can stand up to daily wear and tear, Mulberry Alexa bag or http://www.mulberryhandbagsshop.com/bayswater-c-2.html"> Mulberry Bayswater bag is a perfect option. http://www.mulberryhandbagsshop.com/bayswater-c-2.html"> Mulberry Bayswater bags

  75. Avatar
    Mulberry bags over 2 years later:

    Making a statement in elegance and style the shoulder bags are constantly being developed in innovative designs http://www.mulberryhandbagsshop.com/ "> mulberry bags and styles handbags to continue to satisfy the ever-changing demands of our customers,shoulder bags product is very fashionable and trendy and apart from selling directly to retail customers, We also supply our bags to various stores worldwide.

  76. Avatar
    cheap ray ban over 2 years later:

    excellent quality ray ban sale at wholesale price on cheap ray ban sunglasses online, many people like ray bans on sale here.

  77. Avatar
    Cyan crazy lace agate over 2 years later:

    I know only that what is moral is what you feel good after and what is immoral is what you feel bad after. (Cyan crazy lace agate Fuchsia crazy lace agate

  78. Avatar
    wholesale makeup china over 2 years later:

    F# is nothing more than a complete copy of OCaml, which is derived from Caml and SML. Their pattern matching/type deconstructing is really nice!

  79. Avatar
    Red Bull Caps over 2 years later:

    Large selection of high quality Cheap Baseball Caps at the lowest wholesale price online, guaranteed. Most of our Wholesale Baseball Hats offered at low wholesale prices around $1.00 each. Suggested retail is from $2.99 – $12.99. Make high profits selling these caps & hats. Very high quality embroidered Red Bull Caps with adjustable Velcro backs so one size fits all. Most of our caps are made of 80% Acrylic and 20% Wool and they are made in China.

  80. Avatar
    discount mulberry bags over 2 years later:

    It is also no secret http://www.mulberryhandbagsshop.com/"> discount mulberry bags that most ladies in the “know” turn to Hermes bags or mulberry bags for their more classic looks. We offer 65% discount off and accept credit card.

  81. Avatar
    okey oyunu oyna over 2 years later:

    Good work! Thanks

    Dunyanin en büyük online okey oyunu bu sitede sizleri bekliyor. Gerçek kisilerle sohbet ederek okey oyunu oyna ve internette online oyun oynamanin zevkini çikar.

  82. Avatar
    Air Jordan 3 over 2 years later:

    backpack wholesale[/url] n secondary schools, into the [url=http://www.guccihandbagss.com]cheap Gucci bags[/url] first year of high school team (14) pulled the first [url=http://www.guccihandbagss.com/gucci-backpacks-C31.html]cheap Gucci backpacks[/url] basket of life

  83. Avatar
    Hermes Jewelry over 2 years later:

    That is an awfully astounding column you’ve posted.Thanks a lot for that a fantastically amazing post! That is an awfully astounding column you’ve posted.Thanks a lot for that a fantastically amazing post!Hermes Jewelry

  84. Avatar
    Discount Sunglasses Outlet over 2 years later:

    Being the important carrier of Logos, science and technology have become the main content of human culture.

  85. Avatar
    mulberry outlet over 2 years later:

    Another opportunity cost to consider is simply time. If a professional can do in 4 days what might take you 2 or 3 months of weekends, it may be worth the extra money to farm it out

  86. Avatar
    canada goose jackets over 2 years later:

    MTE…. sounded like a fast/slurred “goonye!”

  87. Avatar
    designer prom gowns over 2 years later:

    I can’t wait to learn this new mainstream programming language as early as possible.

  88. Avatar
    coach bags over 2 years later:

    welcome to our website.

  89. Avatar
    Discount Jordan Shoes Stores over 2 years later:

    In concept i’d want to create such as this too.z

  90. Avatar
    gucci belts over 3 years later:

    we are enjoying the cheap gucci belts here. there are many gucci belts for men online. gucci belt sale at gucci belt outlet.

  91. Avatar
    mvphats over 3 years later:

    We only provide AAA quality of products. You can make purchases without scrupulosity. All of products can be ordered from Wholesale baseball hats directly, also, you can contact our professional customer service to get more support about payment terms, Cheap new era caps the intention of cooperation etc. The most preferential price: Our competitive price make our customers confident to develop their own business, at the same time, reaping big benefit from this transaction. new era Jordan hats Our favor tends to the customers who are from United States, Britain, France, Spain, Germany and Australia etc.

  92. Avatar
    ergo baby carriers over 3 years later:

    welcome to our website.http://www.ergosbabycarrier.com

  93. Avatar
    Baseball Hats over 3 years later:

    Good post. I am also going to write a blog post about this…

  94. Avatar
    Beats by dre over 3 years later:

    Thanks for sharing so significative article with us. I agree with your idea competely.

  95. Avatar
    air max shoes for sale over 3 years later:

    Wonderful article.http://www.nikestoreline.com/

  96. Avatar
    jeans outlet over 3 years later:

    Believe in your dreams.http://www.nikestoreline.com/

  97. Avatar
    classic gucci sneaker over 3 years later:

    The hardest part about growing up is letting go of what you were used to and moving on with sth you’re not!!! http://www.nikestoreline.com/

  98. Avatar
    discount nike shox turbo over 3 years later:

    Don’t part with your illusions,when they are gone you may still exist,but you have ceased to live. http://www.nikestoreline.com/

  99. Avatar
    nike shox r4 for sale over 3 years later:

    Ideal is the beason. http://www.nikestoreline.com/

  100. Avatar
    timberland boot hot sale over 3 years later:

    It’s better to try hard to love yourself more than to wait someone to love you. http://www.nikestoreline.com/

  101. Avatar
    timberland boot hot sale over 3 years later:

    No one’s perfect!!! http://www.nikestoreline.com/

  102. Avatar
    handbags sale over 3 years later:

    Anything is possible! http://www.nikestoreline.com/

  103. Avatar
    cheap polo t shirt over 3 years later:

    A man can fail many times,but he isn’t a failure until he begins to blame somebody else/ http://www.nikestoreline.com/

  104. Avatar
    wholesale t shirts over 3 years later:

    The secret of being miserable is to have leisure to bother about whether you are happy or not. http://www.nikestoreline.com/

  105. Avatar
    http://www.raidersonlineshop.com over 3 years later:

    Nice post!just added the website to my favourite,will Keep it up.thanks

  106. Avatar
    raiders jerseys over 3 years later:

    Nice post!just added the website to my favourite,will Keep it up.thanks http://www.raidersonlineshop.com

  107. Avatar
    http://www.regilt.co.uk/uggs-casual-boots-ultimate-tall-braid-5340-c-62_39.html over 3 years later:

    http://www.regilt.co.uk/uggs-casual-boots-ultimate-tall-braid-5340-c-62_39.html

  108. Avatar
    uggs ultimate tall over 3 years later:

    Please, kill this squalid language!

  109. Avatar
    barbour jackets for women over 3 years later:

    mbt schuhe shop I really like the fresh blog you did on the issue. Really was not expecting that when I started off studying.

  110. Avatar
    canada goose coat over 3 years later:

    Canada Goose Outlet is Marmot 8000M Parka. The Marmot 8000M Parka is really a waterproof, breathable jacket with 800 fill canada goose jacket feathers. It truly is design and light colored shell is produced for trendy, but uncomplicated, protection from cold temperatures. Reinforced shoulders, elbows and adjustable waist and hem make the Marmot a perfect alternate for skiing and other outdoor sports that want fairly a bit of arm motion. The 8000M Parka weighs three lbs., comes in bonfire and black colours and might be stuffed and stored like a sleeping bag to your convenience.This is one of well-know and prime down jacket brands.Hope our friends like its!Like canada goose womens and Canada Goose Expedition Parka.There are wholesale canada goose.

  111. Avatar
    Blogger Nusantara over 3 years later:

    Wonderful post. I am searching awesome news and idea. What I have found from your site, it is actually highly content. You have spent long time for this post. It’s a very useful and interesting site. Thanks! Blogger Nusantara Blogpreneur Indonesia | Blogger Nusantara Blogpreneur Indonesia

  112. Avatar
    beats by dr dre over 3 years later:

    and adjustable waist and hem make the Marmot a perfect alternate for skiing

  113. Avatar
    mac cosmetics over 3 years later:

    Another opportunity cost to consider is simply time. If a professional can do in 4 days what might take you 2 or 3 months of weekends, it may be worth the extra money to farm it out.http://www.wholesalemaccosmeticsstore.com

  114. Avatar
    Cheap fitted hats over 3 years later:

    Thanks for sharing so significative article with us. I agree with your idea competely.

  115. Avatar
    moncler online over 3 years later:

    The cheap moncler online are founded of shiny consuming water repellent polyamide material and quilted with 100% goose reducing filling course A, moncler vests that could make this product instead mild and warm, Today, even moncler jacket is owning an escalating need many thanks toward styles and colors. Jackets usually can be found in inventory colours like white, black, however the cheap winter coats for women girls have brilliant colours and pleasant as pink, red, green, colours which you can imagine.

  116. Avatar
    nike shox turbo over 3 years later:

    I think the better attitude toward life is to keep your humor on and show your smile to what happes. http://www.nikestoreline.com/ http://www.nikestoreline.com/ http://www.nikestoreline.com/

  117. Avatar
    HerveLegerfh over 3 years later:

    Merely simply merely because its styles with out straps, although developing utilization of bust choice wonderful simply, you don’t should support create a good offer much extra adornments, the particular eye-catching presently displaying directly. on top of that that’s the major goal this turn into encouraged through most ladies in different intervals associated to style. http://www.dress-sandals-wholesale.com/wholesale-Herve-Leger-Strapless-59-pplh-1.html Herve Leger sales It’s sustain the straps dress, the genuine http://www.dress-sandals-wholesale.com/wholesale-Herve-Leger-2011-56-pplh-1.html Herve Leger dresses on sale, it’s convey the particular envision most ladies on top of that to females with one another with two on top of that to one minimize straps, displaying each of the eye-catching away from your make, these people nowadays stated the way in which the make could possibly be the one ideal eye-catching phase, the goal condition consequently? http://www.dress-sandals-wholesale.com/ Herve Leger dresses regardless inside the man or ladies positioned on straps gown on top of that to jacket, the particular make is truly packaging with one another with two connectors, not genuinely nude nevertheless producing your individual insane appealing.

  118. Avatar
    christian louboutin over 3 years later:

    The professional design make you foot more comfortable. Even more tantalizing,this pattern make your legs look as long as you can,it will make you looked more attractive.Moveover,it has reasonable price.If you are a popular woman,do not miss it.

    Technical details of Christian Louboutin Velours Scrunch Suede Boots Coffee:

    Color: Coffee
    Material: Suede
    4(100mm) heel
    Signature red sole x

    Fashion, delicate, luxurious Christian louboutins shoes on sale, one of its series is Christian Louboutin Tall Boots, is urbanism collocation. This Christian louboutins shoes design makes people new and refreshing. Red soles shoes is personality, your charm will be wonderful performance.

  119. Avatar
    http://www.toryburchdanceshoes2012.com over 3 years later:

    I found this web-site by on a fluke when I was exploring on Google then I arrived onto your site. I’ve to speakyour world-wide-web webpage is pretty cool I honestly loveyour theme!

  120. Avatar
    Bed bath and beyond registry Bed bath and beyond registry over 3 years later:

    wow.. I used to be searching for this and at last acquired it from this post. Thanks for making it easier. Bed bath and beyond registry

  121. Avatar
    iphone contacts backup over 3 years later:

    Make it a complete way to clean the iPhone and backup the files on computer.

  122. Avatar
    http://www.newmonsterbeatsol.com over 3 years later:

    Thanks for sharing so significative article with us. I agree with your idea competely.

  123. Avatar
    http://www.newmonsterbeatsol.com over 3 years later:

    That is an awfully astounding column you’ve posted.Thanks a lot for that a fantastically amazing post! That is an awfully astounding column you’ve posted.Thanks a lot for that a fantastically amazing post!

  124. Avatar
    Office 2010 over 3 years later:

    This article is GREAT it can be EXCELLENT JOB and what a great tool!

  125. Avatar
    louboutin sales over 3 years later:

    A Wish List for the Next Mainstream Programming Language 124 hoo,good article!!I like the post!98

  126. Avatar
    bladeless fans over 3 years later:

    A Wish List for the Next Mainstream Programming Language 125 good post138

  127. Avatar
    tods shoes for sale over 3 years later:

    where can i buy iPhone attachment? iphone case cheap? designer iphone cases ? iPhone Cases Cheap ? yes, you can buy all of them cheap on the www.iphone-attachment.com

  128. Avatar
    [url=http://www.mbtshoesclearance2you.com]mbt shoes discount[/url] over 3 years later:

    people like this post…

  129. Avatar
    louisvuittonhandbag-sale.com over 3 years later:

    where can i buy Louis Vuitton Damier Azur Canvas ? where can i buy lv bags ? as those reasons , i will introduce you to buy lv bags at www.louisvuittonhandbag-sale.com , i think you will love it very much.

  130. Avatar
    ssd bracket over 3 years later:

    During the seventies, I raised my children on books that criticized the notions of rigid childcare, and if I remember correctly, one authority of those days warned that the mother could scar the child forever if she pushed a child’s toilet training?

  131. Avatar
    Cap Mold over 3 years later:

    With more than 20 years of experience, Intertech provides an extensive integrated operational ability from design to production of molds 100% made in Taiwan. Additional to our own mold making factory, we also cooperate with our team vendors to form a very strong working force in Taiwan.

    For the overseas market, we work very closely with local representatives in order to take care of the technical communication and after-sales service to our customers. We also participate in the EUROMOLD & FAKUMA exhibitions and meet our customers every year in Europe. By concentrating on mold “niche markets”, we play a very useful mold maker role from the Far East whenever customers want to develop their new projects. We provide services from A to Z to our customers on a very economic cost and effect basis.

  132. Avatar
    Hogan Shoes over 4 years later:

    They know that today’s savvy consumer Discount Cole Haan demands both. It’s clear the idea that a comfortable walking shoe must be black, box shaped and boasts no ornamentation is passé. No longer do casual shoes need to be the athletic and tennis shoes of the 80’s or the bulky “earth shoes” of the 1970’s. No longer must people face disappointment when Tod’s Men’s Shoes discovering that their foreign-made huaraches have stretched out of shape within months.

  133. Avatar
    Hogan Shoes over 4 years later:

    Vibram brings the Asics Tiger most delighting thing to its enthusiasts to let them experience the barefoot feeling by the revolutionary of “foot gloves” and proviedes them the best tool to adventure nature, creating Vibram Fivefinger Shoes.Unlike other working shoesTod’s Men’s Shoes

Comments