What would make you try (or not try) a new programming language?
functional-programming, oop, programming-languages, web-applications, web-services
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:
- Purely functional languages.
- Requiring that everything be declared inside a class to force OO-style programming.
- 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.
- Extremely rigid type safety, even when I explicitly ask to get around the type system.
- Pedantic "features" like checked exceptions and requiring that every file contain only one top-level, public class.
- Abstractions that you can't get underneath when there is no good technical reason for these limitations.
Problem
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!