5 ms·
Hottest take: is the programming language something that even matters? at all? Everyone is using the same libraries anyway, there is no blub paradox, we are ju
by qsort 4y ago
Hottest take: is the programming language something that even matters? at all?
Everyone is using the same libraries anyway, there is no blub paradox, we are just talking about which language has shinier bindings.
- dpflan 4y agoSeems like they are saying a bit more than bindings...syntax, fundamental designs for concurrency, can be typechecked/compiled...
- dopidopHN 4y agoType and concurrency are more than syntaxic sugar. You can lean on it.
- sdflkjsdlkj 4y ago> is the programming language something that even matters? It absolutely does. I think one of the major reasons that all these massive software companies grind to a halt with innovation is because of bad software architecture and a bad choice of programming language contributes to that. Also underlying systems built in non-performant languages hobble the company for years. It's complete delusion that a company will rewrite systems as they gain product market fit. I have a strong list of requirements but there is no perfect language today. For general software any language I start a project with today must have 1. Fast iteration / compilation times 2. null safety 3. Some form of algebraic data types (and by implication a static type system) 4. Garbage collection (unless the domain specifically requires the performance benefits gained from forgoing a garbage collector). 5. A robust standard library and package ecosystem. All of the above contribute to two very important things: 1. The ability to iterate quickly. 2. The ability to describe state in such a way that invalid states become impossible to represent due to the type checker. Nice to have productivity boosters: 1. Actual value types 2. Pattern matching. 3. A good class system with traits or interfaces. There isn't a perfect language that meets these requirements so there will always be tradeoffs with language choice.
- bragr 4y ago> I think one of the major reasons that all these massive software companies grind to a halt with innovation is because of bad software architecture and a bad choice of programming language contributes to that. I see social structures having far more influence on architecture than any underlying technical details so I feel your thesis is built on false premise
- Verdex 4y ago> I see social structures having far more influence [...] I don't know. If that were true, then we as a society would just architect our C/C++ based projects such that we don't bump into memory safety issues. Instead we see something like 70% of security issues coming from memory unsafety across the board. The premise seems legit when thinking about it in terms of the issues with C.
- jaspax 4y agoI think that typescript meets all 5 of the items in your first list.
- sdflkjsdlkj 4y agoExcept fast compile times unfortunately.
- swsieber 4y agoI am curious to what you choose language wise though. I currently go with Rust, but I'd be interested in other languages that meet most of your list and compile faster.
- freilanzer 4y agoCommon Lisp with Coalton seems to fit perfectly here.
- pharmakom 4y agoonly true if you are primarily gluing together big libraries and not writing much of your own logic and abstractions.
- qsort 4y agoWe are talking about ML. Nobody writes their own symbolic differentiation libraries or LAPACK.
- adgjlsfhk1 4y agoThey do, just not if they're using python. In Julia they absolutely do. Here's a matmul and LU respectively that are SOTA (especially for small matrices) https://github.com/JuliaLinearAlgebra/Octavian.jl https://github.com/JuliaLinearAlgebra/Octavian.jl and https://github.com/JuliaLinearAlgebra/RecursiveFactorization.jl https://github.com/JuliaLinearAlgebra/RecursiveFactorization...
- zorked 4y agoJulia's stack isn't just wrappers around the same libraries though.
- adgjlsfhk1 4y agoThis isn't true. A lot of the reason Julia would be so good for ML is that you can write your own high level kernels in Julia that compile down directly to device code with CUDA.jl. The reason Python is in a lot of ways a really bad fit for ML is that you can't write fast python. You instead have to call a C/C++ library.
- dagw 4y agoLanguage (and, equally important, language culture) absolutely does matter. There is a reason why Julia ML development is pushing academic boundaries and doing really cool experiments with automatic differentiation, while Python ML development is more focused on applying ML to different fields and developing and deploying simpler, more robust, models to production in industry.