No entiendo por qué el [método String.substring() de Java] (http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#substring(int,%20int%29)) está especificado tal como está. No puedo decir que empiece en una posición numerada y devuelva un número específico de caracteres; tengo que calcular la posición final yo mismo. Y si especifico una posición final más allá del final de la cadena, en lugar de solo devolver el resto de la cadena para mí, Java arroja una excepción.¿Cómo debería funcionar la subserie()?
Estoy acostumbrado a los idiomas donde la subcadena() (o substr()) toma dos parámetros: una posición de inicio y una longitud. ¿Es esto mejor que la forma en que lo hace Java, y si es así, puede probarlo? ¿Cuál es la mejor especificación de lenguaje para subserie() que tiene visto, y si alguna vez sería una buena idea para un idioma hacer las cosas de manera diferente? ¿Es eso IndexOutOfBoundsException que Java arroja una buena idea de diseño, o no? s todo esto solo se reduce a preferencia personal?
De hecho, es una cuestión de preferencia personal, que es lo que hace este "Subjetivo y argumentativo". He necesitado los sabores de "longitud" y "posición final" de la subcadena en diferentes momentos, por lo que para mí no tiene sentido decir que uno es "mejor" que el otro. –
No es necesario argumentar sobre esto simplemente porque es subjetivo. Sheesh. ¿No podemos hablar sobre los méritos relativos de las decisiones lingüísticas sin tener una guerra santa? Si Jon Skeet cree que vale la pena responder y no es solo una llamada a discusión, ¿eso significa algo? – skiphoppy
Si lo edito para eliminar las palabras "asombrado" e "inconveniente", ¿parecerá menos argumentativo, ya que nadie ha discutido? ¿Las preguntas de diseño de lenguaje (que intrínsecamente implican una compensación subjetiva en la mayoría de los casos) no son apropiadas para el desbordamiento de pila? – skiphoppy