Live data from Hacker News

Ask HN: Learning multiple languages vs. mastering one

news.ycombinator.com

81–90 of 137 posts

Re: Ask HN: Learning multiple languages vs. mastering one

#81
post #74

Earlier quoted context omitted.

> It's inevitable you will have multiple languages / platforms comprising your stack. Bash scripts for admin. Golang to write servers. Data science in Python. JS / D3 on the frontend. C# / Unity 3D modelling and scripting. Even low level C / Assembly if you need performance optimizations. It's not at all inevitable. I would - indeed do - use Scala for all of the use cases you listed.

Scalia for frontend work? How do you do it?

https://www.scala-js.org/

Re: Ask HN: Learning multiple languages vs. mastering one

#82
post #74

It's inevitable you will have multiple languages / platforms comprising your stack. Bash scripts for admin. Golang to write servers. Data science in Python. JS / D3 on the frontend. C# / Unity 3D modelling and scripting. Even low level C / Assembly if you need performance optimizations. I think mastery of cloud development and deployment is crucial going forward. Start experimenting locally right on your laptop with…

> It's inevitable you will have multiple languages / platforms comprising your stack. Bash scripts for admin. Golang to write servers. Data science in Python. JS / D3 on the frontend. C# / Unity 3D modelling and scripting. Even low level C / Assembly if you need performance optimizations. It's not at all inevitable. I would - indeed do - use Scala for all of the use cases you listed.

Web browsers only run JavaScript, so in fact if you wanted to write front end code, then you would indeed need to know JS.

Even if there’s a Scala transpiler or WASM target - if you think you’re going to ship to production and blissfully never need to know JS...

Re: Ask HN: Learning multiple languages vs. mastering one

#83
post #74

Earlier quoted context omitted.

> It's inevitable you will have multiple languages / platforms comprising your stack. Bash scripts for admin. Golang to write servers. Data science in Python. JS / D3 on the frontend. C# / Unity 3D modelling and scripting. Even low level C / Assembly if you need performance optimizations. It's not at all inevitable. I would - indeed do - use Scala for all of the use cases you listed.

Hey, someone found a golden hammer! Better throw out all those other tools, who needs 'em.

Let’s rewrite the Linux kernel in Scala!!

Re: Ask HN: Learning multiple languages vs. mastering one

#84
post #74

Earlier quoted context omitted.

> It's inevitable you will have multiple languages / platforms comprising your stack. Bash scripts for admin. Golang to write servers. Data science in Python. JS / D3 on the frontend. C# / Unity 3D modelling and scripting. Even low level C / Assembly if you need performance optimizations. It's not at all inevitable. I would - indeed do - use Scala for all of the use cases you listed.

Hey, someone found a golden hammer! Better throw out all those other tools, who needs 'em.

Programming is not carpentry. The best programming languages (IMO) are general-purpose, and the gains from being able to know a single language in depth and reuse the same tools and techniques across different domains outweigh those from using different languages in different domains.

Re: Ask HN: Learning multiple languages vs. mastering one

#85
post #74

Earlier quoted context omitted.

> It's inevitable you will have multiple languages / platforms comprising your stack. Bash scripts for admin. Golang to write servers. Data science in Python. JS / D3 on the frontend. C# / Unity 3D modelling and scripting. Even low level C / Assembly if you need performance optimizations. It's not at all inevitable. I would - indeed do - use Scala for all of the use cases you listed.

Web browsers only run JavaScript, so in fact if you wanted to write front end code, then you would indeed need to know JS. Even if there’s a Scala transpiler or WASM target - if you think you’re going to ship to production and blissfully never need to know JS...

I "know" javascript in the same way that I "know" SQL, or JVM assembly. It's part of the stack, you do want to be able to read and understand it, but you don't use it for programming (that is, expressing business logic) in.

Re: Ask HN: Learning multiple languages vs. mastering one

#86
post #74

It's inevitable you will have multiple languages / platforms comprising your stack. Bash scripts for admin. Golang to write servers. Data science in Python. JS / D3 on the frontend. C# / Unity 3D modelling and scripting. Even low level C / Assembly if you need performance optimizations. I think mastery of cloud development and deployment is crucial going forward. Start experimenting locally right on your laptop with…

> It's inevitable you will have multiple languages / platforms comprising your stack. Bash scripts for admin. Golang to write servers. Data science in Python. JS / D3 on the frontend. C# / Unity 3D modelling and scripting. Even low level C / Assembly if you need performance optimizations. It's not at all inevitable. I would - indeed do - use Scala for all of the use cases you listed.

People who want jobs don’t usually have the luxury of picking them by the languages used.

Re: Ask HN: Learning multiple languages vs. mastering one

#87
post #74

It's inevitable you will have multiple languages / platforms comprising your stack. Bash scripts for admin. Golang to write servers. Data science in Python. JS / D3 on the frontend. C# / Unity 3D modelling and scripting. Even low level C / Assembly if you need performance optimizations. I think mastery of cloud development and deployment is crucial going forward. Start experimenting locally right on your laptop with…

> It's inevitable you will have multiple languages / platforms comprising your stack. Bash scripts for admin. Golang to write servers. Data science in Python. JS / D3 on the frontend. C# / Unity 3D modelling and scripting. Even low level C / Assembly if you need performance optimizations. It's not at all inevitable. I would - indeed do - use Scala for all of the use cases you listed.

That is an interesting response.

I wonder if it were equally possible with any language.

Could a Python or Java programmer say the same? I think there are probably a handful of languages that you could use for "everything". The limiting constraint is the presence of a reliable javascript compiler, followed by data science libraries (I think).

Re: Ask HN: Learning multiple languages vs. mastering one

#88
post #25

You should learn C. Most current engineers don't, and therefore the fundamentals of things like memory allocation, data types, call stacks, etc. remain a mystery to them. I have one other comment to make. In my opinion, being a strong programmer is mostly a "knack," meaning it's not a particularly teachable skill. Some people are just amazingly good at it. If you are, great. If not, I suggest acknowledging that and f…

I'll throw out my $0.02, which is C is a terrible language to learn. Much of writing "good" C revolves around knowing all the pitfalls to check for, then dealing with the archaic error handling mechanisms. Tomes have been written on the subject of proper error handing in C. > fundamentals of things like memory allocation, data types, call stacks, etc. remain a mystery to them. I don't think C is especially good at te…

Yeah I just disagree. I actually think Java is a terrible teaching language. Folks for whom Java is the closest they come to the hardware tend not to understand the internals of how computers actually work well enough to do things like understand where bits fit into bytes or what happens if you recast an int into a double without converting the underlying data.

Many times that doesn't matter, but to me it's important to have a supple and complete understanding of the underlying ideas. Java fails at that.

When I referred to memory I meant more than malloc and free. It's things like understanding how an array of ints is laid out in memory and what happens when you treat it as an array of chars instead. If you talk about this to a Java programmer, their eyes are likely to cross.

Re: Ask HN: Learning multiple languages vs. mastering one

#89
post #85

Earlier quoted context omitted.

Web browsers only run JavaScript, so in fact if you wanted to write front end code, then you would indeed need to know JS. Even if there’s a Scala transpiler or WASM target - if you think you’re going to ship to production and blissfully never need to know JS...

I "know" javascript in the same way that I "know" SQL, or JVM assembly. It's part of the stack, you do want to be able to read and understand it, but you don't use it for programming (that is, expressing business logic) in.

Which proves the commentor’s first point:

“It's inevitable you will have multiple languages / platforms comprising your stack.”

Re: Ask HN: Learning multiple languages vs. mastering one

#90
post #86
post #74

Earlier quoted context omitted.

> It's inevitable you will have multiple languages / platforms comprising your stack. Bash scripts for admin. Golang to write servers. Data science in Python. JS / D3 on the frontend. C# / Unity 3D modelling and scripting. Even low level C / Assembly if you need performance optimizations. It's not at all inevitable. I would - indeed do - use Scala for all of the use cases you listed.

People who want jobs don’t usually have the luxury of picking them by the languages used.

People usually get hired to use a particular primary language (though even then, I've worked in jobs where I was hired for Java that ended up switching to Scala mainly due to developer preference), but often have broad discretion over which languages to use for secondary tasks. Certainly in a lot of "Java shops" the pattern I've seen is that devs will not be second-guessed (or at least, will contribute to team consensus) in their choice of bash/python/ruby/scala/... for things like testing scripts or data migration tools, nor in their choice of coffeescript/typescript/... for frontend parts.
Post reply on HN