4 ms·
> I would keep learning plain Ruby, Elixir, Phoenix and JavaScript as my side tools > I wouldn’t spend too much time learning programming languages outside tha
by RhodesianHunter 8y ago
> I would keep learning plain Ruby, Elixir, Phoenix and JavaScript as my side tools
> I wouldn’t spend too much time learning programming languages outside that list as you need more tools in your toolbox but too many tools may get your toolbox cluttered
You suggest not cluttering your toolbox, but your recommendation is a list of completely interchangeable dynamic languages?
- yellowapple 8y agoI wouldn't call Ruby and Elixir interchangeable, even if they happen to look superficially similar on the surface. I would recommend learning either language outside the context of a framework like Rails or Phoenix, though. There's immense value in knowing the underlying libraries (Rack and Plug, respectively) and the HTTP servers underlying those (Cowboy and Unicorn/Puma/whatever-is-popular-nowadays, inverse-respectively). Once you know those, you'll either gain an appreciation for the existing frameworks or have the know-how to improve and/or replace them.
- angersock 8y agoJavascript, Ruby, and Elixir are emphatically not interchangeable. Elixir is compiled, the other two are interpreted. JS is supported natively by all browsers and is at its core an event-driven functional language, the other two are not. Ruby is probably the comfiest OOP language out there, and certainly the one with the best standard library. These are not the same languages.
- M_Bakhtiari 8y ago> Elixir is compiled, the other two are interpreted. How can a language be intrinsically compiled or interpreted? Sure, Befunge is one example of a language that's notoriously hard to build a compiler for but easy to build an interpreter for, but surely that can't be said for Ruby and JavaScript. V8 is a good counter-example to the claim that JavaScript has to be interpreted.
- regularfry 8y agoIn context, it's entirely reasonable to assume an implicit "the only realistic implementation of X to choose for production work"
- M_Bakhtiari 8y agoAnd V8 isn't a realistic implementation of JavaScript for production work?
- angersock 8y ago>How can a language be intrinsically compiled or interpreted? This is a great example of an academic nondistinction that is completely worthless in practical matters.
- M_Bakhtiari 8y agoIt is highly relevant because we in industry are the ones who actually have to work with and scale all these needlessly slow piece of shit language implementations. Implementations that get a pass because nobody can be bothered to have this conversation. Languages that are dynamic or good for scripting, rapid prototyping or whatever the hook is do not need to be implemented using slow and inefficient techniques and shouldn't get a pass for it. Similarly terrible languages shouldn't get a pass for being terrible just because they happen to have fast implementations. It's precisely in academia where it is a worthless nondistinction, there a language doesn't even need to be implemented to be studied. For instance lambda calculus predates the programmable computer.
- nyir 8y agoWhile as a fan of one particular language I tend to agree, I found http://www.jerf.org/iri/post/2908 http://www.jerf.org/iri/post/2908 a somewhat convincing argument that perhaps my view isn't so well-rounded as I thought.
- wilsonnb3 8y ago> Ruby is probably the comfiest OOP language out there, and certainly the one with the best standard library. What does Ruby's standard library have that makes it superior to Python's?
- dopamean 8y agoI've found it easier to work with strings in Ruby than in python. Not sure if it's "better."
- detaro 8y agoWhat's the critical difference between BEAM bytecode and Ruby bytecode? It's IMHO not a very important distinction if the compilation happens ahead of time or when the program is started, but maybe that's not what you're talking about? I'm not really familiar with the internals of these two.