Search code examples
web-servicesoopweb-applicationsprogramming-languagesfunctional-programming

What would make you try (or not try) a new programming language?


I've been designing a pragmatic programming language for 5 or so years, and it probably won't be released for several more years (probably until after my current and next startups succeed or fail).

In the mean time, I have two questions that may prove interesting:

1) What attributes of a new programming language could entice you try it on your next project?

2) What attributes of a new programming language could prevent you from trying it on a project? (i.e. no libraries, ...)

To make sure this question isn't a philosophical debate (thus getting closed by admins), please describe your own tool selection predicates, rather than theorize about the broader population's preferences :)

Thanks!


Solution

  • My biggest absolute no is any language that doesn't treat its users as consenting adults and tries too hard to enforce its vision of "correct" programming. To me a language should make it easy to write good code, not hard to write bad code.

    Examples:

    1. Purely functional languages.
    2. Requiring that everything be declared inside a class to force OO-style programming.
    3. A general avoidance of highly expressive features (lambdas, operator overloading, dynamic typing, type inference, default function parameters, etc.) just because they can lead to obfuscated code when used incorrectly.
    4. Extremely rigid type safety, even when I explicitly ask to get around the type system.
    5. Pedantic "features" like checked exceptions and requiring that every file contain only one top-level, public class.
    6. Abstractions that you can't get underneath when there is no good technical reason for these limitations.