Antoon Pardon <antoon.par...@rece.vub.ac.be>: > In the same way writing unit tests is the most tedious, boring, > annoying, *unproductive* part. Amost always you are giving the program > results it can work out for itself.
Undoubtedly, explicit type declarations add a dimension of quality to software. However, they also significantly reduce readability and tempt you to dirty shortcuts (to avoid writing truckloads of boilerplate code). On the balance, I estimate the explicit style reduces code quality. Example (found by a random Google search): ===JAVA BEGIN=========================================================== class WrappedSqlException extends RuntimeException { static final long serialVersionUID = 20130808044800000L; public WrappedSqlException(SQLException cause) { super(cause); } public SQLException getSqlException() { return (SQLException) getCause(); } } public ConnectionPool(int maxConnections, String url) throws SQLException { try { super(() -> { try { return DriverManager.getConnection(url); } catch ( SQLException ex ) { throw new WrappedSqlException(ex); } }, maxConnections); } catch (WrappedSqlException wse) { throw wse.getSqlException(); } } ===JAVA END============================================================= ===PYTHON BEGIN========================================================= def __init__(self, max_connections, url): super().__init__(lambda: DriverManager.get_connection(url), max_connections) ===PYTHON END=========================================================== or, a bit less cryptically: ===PYTHON BEGIN========================================================= def __init__(self, max_connections, url): def get_connection(): return DriverManager.get_connection(url) super().__init__(get_connection, max_connections) ===PYTHON END=========================================================== Marko -- https://mail.python.org/mailman/listinfo/python-list