Hacker News new | past | comments | ask | show | jobs | submit login

There are very significant differences between distributing programs in a static vs. dynamic language.

Github's Hub tool is a good example.

It was originally written in Ruby. This requires that the user:

- may need to handle a certain environment in terms of Ruby interpreter (potentially install a new version)

- may need to handle a certain libraries group (gemsets in RVM)

- needs to install dependencies

- needs to handle switching to the appropriate Ruby interpreter version and libraries group

Especially point 3 is a pain.

Even just installing everything as system Ruby won't work, because often, different Ruby interpreter versions are required.

Once they moved to Golang:

- the distributor compiles for different platforms

- the user downloads the given version for their O/S

That's all.




I wouldn't shrug my shoulders at

>> the distributor compiles for different platforms

Most people aren't doing that for you. There are lots of tools out there where you do need to still manually compile it yourself and make sure you have the appropriate dependencies which will still be painful. That being said, I agree that shipping a script can be a problem, but lots of people use Brew and that seems to work ok.


Okay. Sounds like you're on the road to a convincing argument against Ruby. (I myself have avoided Ruby in the past for similar reasons, despite other things about it that are attractive.) And gesturing towards Golang is really just highlighting a conscious design decision by the Golang team—who didn't have to design it as a static language in order to achieve the same effect; they're orthogonal issues.

Where does the generalization to dynamic vs. static languages come from?

> Github's Hub tool is a good example.

I gave an example already (a counterexample, that is—JS). Was there something wrong with that?


Yes, there something wrong with it, because the distribution of the runtime is done via binaries i.e. browsers. Using Go or Crystal is mimicking that level of ease. Ruby, or JS (which is more of a mess than Ruby even though the runtime is already distributed) are still a pain to share. No credit goes to the JS distribution system(s) nor the form that the code itself is distributed in for the most difficult bit being done by browser vendors bundling the runtime.


This another weird comment—for different reasons compared to the original. There are several statements where the truth status of the claims are hard to ascertain, because the statements they're part of are incomprehensible. The claims in the statements that are comprehensible are untrue.




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: