6 ms·
I think the code could be easily re-written with Python.
by diogenesjunior 5y ago
I think the code could be easily re-written with Python.
- simonw 5y agoIt wouldn't be as good though, because then you'd have to install Python in order to use it.
- diogenesjunior 5y agoI think most Linux operating systems come with Python already installed (at least all the ones I use do). It could be uploaded to PyPI, which would mean installing PIP, but using pre-installed libraries would mean you could simply use git (which is usually pre-installed too), and then run `python3 setup.py install`.
- jeppesen-io 5y ago> Neofetch supports almost 150 different operating systems. From Linux to Windows, all the way to more obscure operating systems like Minix, AIX and Haiku You're making a lot of assuptions. Many servers don't have git installed. Some only have python2. Some dont even have that. Not to mention AIX or other non-linux platforms
- diogenesjunior 5y agoHow hard is it to install git and Python 3?
- georgyo 5y agoIn some environment, very hard. Especially embedded systems and corporate machines.
- mixmastamyk 5y agoInstalling bash will be just as hard in those situations.
- IggleSniggle 5y agoOk…but bash is waaayy more common. I could see this if you were making an argument about Perl, since it’s probably pretty close to parity with bash in terms of pre-existing in most environments…but python? No way!
- mixmastamyk 5y agoPython is 10x more popular than perl these days. None are installed by default on Windows.
- IggleSniggle 5y agoAh, right, Windows, forgot about that one! So, Windows you’re pretty much always going to have to install something anyway. For almost all of the BSDs, Linux distros, Solaris, AIX, HPUX, countless others, you’re going to have both bash and Perl interpreters included by default. I think installing python is generally quite reasonable! It’s just not as ubiquitous, so if you’re looking for a one-stop interpreted language that most people will neither need to install or worry about the interpreter version, then a baseline old version of bash or Perl is a pretty good bet. Although really awk probably also deserves consideration in this regard, given that you will even have it on embedded Linux where bash and Perl are not. I don’t know enough about awk to comment on its general utility for doing something like neofetch, however.
- hansel_der 5y agoguess the point was that bash is way more common than python?
- mixmastamyk 5y agoIt’s not, especially in the Windows-centric corporate environments mentioned above. 0 not greater than 0.
- diogenesjunior 5y agoIf you cannot install git or py3 then installing bash will be just as hard, no?
- ylyn 5y agoBash is a relatively small C program. Python is a huge beast compared to Bash.
- bool3max 5y agoI'm not sure why you would want Neofetch on any embedded system or corporate machine though.
- saagarjha 5y agoWhat, you don’t send your friends screenshots of the beefy machine your work provided you? Or the potato you are running Linux on?
- moondev 5y agoHow is that better? You don't even need to install it, just run curl -L https://github.com/dylanaraps/neofetch/raw/7.1.0/neofetch | bash
- walteweiss 5y agoBut what’s the point in doing that?
- arminiusreturns 5y agoNot sure about the gp, but lots of people on hn love to hate on bash, and give reasons either it's bad or lang is better.
- mixmastamyk 5y agoReadability, maintainability, etc. if that matters to you.
- krick 5y agoThis is a pretty small project, and, furthermore, it is by its nature supposed to support a lot of different systems, so I personally don't know if it makes sense to rewrite it (and in Python out of all things: maybe then better rewrite it in a compiled language, so that you can distribute it as a binary?). So I'm hesistant to say one should do it: it might do more harm than good. But if this wouldn't bother me, I would really want to rewrite it. Just look at the source. It is 11K LoC. It is very modular by nature, since there is a lot of stuff that is "the same, but slightly different" for each OS. It is really simple by nature, just a few dozens of directives, each of them should answer 1 pretty straight-forward question. So it should be fairly easy to read (and it actually makes a practical sense even for a user, since this is so much of a collection of knowledge about different OS, not so much a "real program"). But it's not (I mean, it's not easy to read, assuming you are comfortable with bash). And it's not badly-written bash-script, quite otherwise. It's just… bash. How exactly you'd improve that would depend on the language of choice, but every "proper" PL should make it possible to write this very thing in such a way, that reading it "entirely" in a few minutes would be trivial, and wouldn't require scrolling through 11K LoC. Just separating all ASCII-art from code and making a separate class (if we use Python) for each OS implementation with a common interface, extending 1 or more base-classes (for OS families) would improve it greatly, since it would take me literally seconds to see all directives it currently supports, and to find their implementations for the particular system I'm interested in. After scrolling through some maybe 200 LoC you'd feel that you know everything that it does, and the rest 10K LoC (or whatever it would be) are just "details". So while actually suggesting to rewrite it in Python might show some lack of analysis, I wouldn't bash anyone for wishing it would have been written in Python.