4 ms·
Python is a very good language for academic use. It is a more featureful FOSS system that can be used for RAD or matlab like purposes. Lack of types is not a se
by fithisux 8y ago
Python is a very good language for academic use. It is a more featureful FOSS system that can be used for RAD or matlab like purposes. Lack of types is not a serious problem for small codebases. But when the code base passes the magical 10000 line spot, type problems start to become serious. I hate the annotations about types in comments it is not maintenable.
Either you create a codebase strictly modularized respecting the lack of types and the 10000LOC speed limit or you change language. Golang is not fancy but it is really pragmatical and could appeal to the dynamic language crowd.
The other choices are Java/D/Scala. Or one can use Python as a glue language (superpowered C written modules used by Python). This is the problem/solution with Lisp too. If you go dynamic, you should be very careful, but there are gains. Don't forget to write tests unless you intend for a Matlab style experience.
- some_account 8y agoIt's very easy to use rust for code that needs to be fast, and call them from python.
- hellofunk 8y agoI like Rust as much as the next HN enthusiast, but there's a reason there's not a lot of Rust code actually out in the wild, or jobs much available, or libraries with more than one creator/maintainer... and it's because of all the words you could use to describe Rust, the last one on that list would be "easy." Anything non-trivial in Rust is a lesson in extreme patience.
- ApolloFortyNine 8y agoIt's more because every place of employment uses the language of the lowest common denominator: either C++ or Java. A new language will have few people who can support the code. An old language will have many.
- stevesimmons 8y agoPython scales to large code bases too. I work in a decade-old Python codebase that is now up to 30m LOC. Our 2000+ developers are doing 15k commits a week, with continuous deployment. (I gave a talk on this at PyData London two weeks ago)
- kristjansson 8y agoDo you know if slides/video will be available?
- stevesimmons 8y agoI expect the videos from PyData London will be posted on PyVideo.org in a month or two. I am awaiting confirmation whether I am allowed to put the slides on Github.
- fithisux 8y agoMy personal experience shows that you need many separate codebases to achieve 30m LOC, in other words many small projects of the 10.000 LOC code limit. Do you work this way?
- stevesimmons 8y agoThis is the main trading and risk management platform for a bank. A central team of around 150 people build the core platform libraries and underlying infrastructure. Then business-aligned teams build applications on top. The code is in one huge mono-repo.
- Too 8y agoWhy do you feel type annotations in comments are not maintainable? The type checker obviously has to be run in continuous integration so it's not like the annotations are going to get outdated just because they are in comments. (Actually you shouldn't see them as comments, they are as much code as the rest of your code)
- Rotareti 8y agoInline type annotations are possible in Python since 3.5, you don't have to put them into your comments any more. E.g.: def myfunc(foo: str, bar: int) -> Tuple[str]: # ...