5 ms·
why aren't the "more expressive" (which in this post seems to be a synonym for "functional") languages used in these fields Because very often the best solutio
by danieldk 6y ago
why aren't the "more expressive" (which in this post seems to be a synonym for "functional") languages used in these fields
Because very often the best solution does not win, which is why we are still using x86(_64), Unix, etc.
Python is a good example of worse is better. A functional language could provide more elegant abstractions. But for most people the ML APIs that Python provides are good enough. By taking a pragmatic approach, Python was faster to capture some niches, including machine learning and data science. Now we are at a point that even if another language had better abstractions and had similar library support, it would face an uphill battle because of inertia. Why would someone invest in learning another language for machine learning when Python is good enough?
To me it seems that only a language that has both a good model development story and a good deployment story stands a chance to compete with Python, since deployment (especially on mobile/embedded devices) is a weak point of the Python ML ecosystem.
- rtkaratekid 6y agoLittle tangent, but what do you consider better than Unix? I don’t have much experience with anything else so I’m curious.
- pjmlp 6y agoAnything based on the workstation concepts explored at Xerox PARC, and further pursued at ETHZ, TI and Genera. Bitsavers has all the necessary papers and manuals, and computer museum as well. Here are some video sessions. "Yesterday's Computer of Tomorrow: The Xerox Alto │Smalltalk-76 Demo" https://www.youtube.com/watch?v=NqKyHEJe9_w https://www.youtube.com/watch?v=NqKyHEJe9_w "Alto System Project: Dan Ingalls demonstrates Smalltalk" https://www.youtube.com/watch?v=uknEhXyZgsg https://www.youtube.com/watch?v=uknEhXyZgsg "Eric Bier Demonstrates Cedar" https://www.youtube.com/watch?v=z_dt7NG38V4 https://www.youtube.com/watch?v=z_dt7NG38V4 "The Final Demonstration of the Xerox 'Star' computer" https://www.youtube.com/watch?v=_OwG_rQ_Hqw https://www.youtube.com/watch?v=_OwG_rQ_Hqw The end of the road from Plan 9, Inferno. http://www.vitanuova.com/inferno/index.html http://www.vitanuova.com/inferno/index.html http://doc.cat-v.org/inferno/4th_edition/ http://doc.cat-v.org/inferno/4th_edition/
- krebs_liebhaber 6y agoSmall tangent: It's sad that the Mother of All Demos still looks like the future of computing. Google Docs and its siblings come close, but they still don't match it in scope.
- danieldk 6y agoBesides what pjmlp said. I was thinking of Plan 9, VMS, NT (the kernel, which takes a lot if ideas from VMS), L4. Of course, out of these, NT did succeed wildly as well did L4 (e.g. iOS secure enclave). Some improve in the architecture, some in user land, some in both :).
- snidane 6y ago"Worse is better" is a myth - it all depends of your definition of better. The reason why Unix and Python win is simplicity. For many people simple == better. Software is so easy to create and mold that many get trapped in excess complexity. Not being able to write complex software on a platform such as Unix or Python is therefore a feature, not a bug. It prevents you from ever getting trapped in the wet sands of complexity. If there is a silver bullet in software engineering it is simplicity - and aggressive pursuit thereof.
- atilaneves 6y agoSimple is better. People however tend to not agree on what's simple.
- krebs_liebhaber 6y agoI think that's a bit too strong of a statement. In my opinion, it's not going to be possible to represent every solution to a problem in a simple manner when reality is so mind-bogglingly complex. Good tools should allow you to face natural complexity head-on, instead of trying to fit the outside world into a "simple" Bed of Procrustes.
- jfkebwjsbx 6y agoIt is actually the opposite: if you let complexity creep in, you have lost. To model complex systems you have to keep them as simple as possible.
- JoeAltmaier 6y agoAs simple as possible, but no simpler. As the previous comment was getting at, there is often a point of irreducible complexity. Modelling that efficiently is a mark of a good language.
- MaxBarraclough 6y ago> "Worse is better" is a myth - it all depends of your definition of better. Isn't that the whole point of worse is better?
- pydry 6y agoPython prioritized pragmatism over expressive purity. That alone put it way ahead of many other languages. Attention to language interop (especially with C) and a decision not to try and be all things to all programmers was another reason for its success - particularly in data science which relies upon heavily optimized numerical processing libraries that are mostly best written in C, C++ or Fortran.
- neutronicus 6y agoHonestly I think this is a little bit too abstract. Imo the answer is that only one mainstream language bothered to emulate MATLAB's plotting API to the best of its ability.