Live data from Hacker News

Ask HN: Learning multiple languages vs. mastering one

news.ycombinator.com

111–120 of 137 posts

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

#111

Earlier quoted context omitted.

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

Let’s rewrite the Linux kernel in Scala!!

I know we're just having fun here...but if we really could standardize on one language (or mostly one language) the development benefits would be insane.

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

#112
Here's what I learned in order: html, css, some JavaScript and php, more JavaScript and php, ruby/c/others, more JavaScript, more php(for work), more JavaScript

JavaScript is pretty crucial to learn no matter what your backend language is. Since your backend language can be JavaScript also, using node, you might want to focus on that. Php is where a lot of the freelance work is, and it's also one of the easier backend languages to get started in. I'd say once you're pretty proficient in fronted JavaScript and some backend php, then ask the question again maybe try some other language's backend.

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

#113
post #94

I'd recommend learning a few, here's my 2 cents: - Start with Python, it's a very common dynamic language in the wild. - From Python it's easy to learn Go and you'll want some Go experience if you want to work on distributed systems in today's culture. - Javascript is another extremely useful one to know that you'll find everywhere, start with the book "Javascript the good parts". Adding these in addition to your Jav…

If you learned Elixir, it would not surprise me if you started to prefer Elixir for most backend projects.

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

#114
post #84

Earlier quoted context omitted.

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.

I agree with Imm Check out this boat car btw! ( http://yachtpals.com/boat-car-9158 ) It’s a boat. And it’s a car. It’s amazing. People are so stupid that they’re still buying cars that can’t go in water. When will they learn?

I first read that as "bloat" car ;)

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

#115
post #110
post #100

Earlier quoted context omitted.

I think most languages could get close - see e.g. https://www.teamten.com/lawrence/writings/java-for-everythin... . Of course if you want to actually execute code in the browser then you need to compile to javascript, but I'm not convinced that's required as often as people think it is (Wicket offers a very interesting AJAX model where you re-render UI fragments on the server in response to changes - all the code tha…

Rust is better suited as universal language than Scala for me as I am writing also music applications, which really hate the garbage collector needed in Java/Scala, things that run on the JVM. I never really needed recursive types, but that's also something limiting on the JVM.

> Rust is better suited as universal language than Scala for me as I am writing also music applications, which really hate the garbage collector needed in Java/Scala, things that run on the JVM.

That's the conventional wisdom about GC, but I'm not sure how true it is these days - prototyping a video streaming program in a previous job we were surprised to discover that Haskell performed significantly better than C++ in that role. The JVM GC is quite tuneable and if you're willing to sacrifice throughput for latency you can get it quite low.

(Rust has a lot of good points but I won't be interested until it gets HKT).

> I never really needed recursive types, but that's also something limiting on the JVM.

What do you mean? Recursive types in the sense I'm used to work fine on the JVM; there is even e.g. a recursion-schemes like library for Scala (matryoshka).

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

#116
post #73
post #67

Earlier quoted context omitted.

"I don't think we use Java much either": may I know what your trading firm uses?

99% chance it's C++, that's what essentially all trading firms use.

Yeah, all of the trading systems I've worked with have been in C++. At a previous employer, they had initially written their entire stack in Java. But, performance was an issue, as was cost (this was back Java still belonged to Sun and they were running Solaris on Sun hardware). Right before I joined, they had rewritten most of the java components in C++ and were in the process of moving off of Sun hardware & Solaris in favor of Intel & Linux. Front end stuff was mostly C++/MFC on Windows, later was C#/WPF. Perl & Python were both heavily used there, as well.

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

#117

Go "T-shaped". In other words, be a "jack of [some] trades, master of [a few]". Specifically, you almost have to choose modern JavaScript -- because you will need it on virtually any real project (it's everywhere), and you've already got the enterprise-y server-side covered. Don't get pigeonholed into backend-only, non-JS roles. Despite all the haters, es6+ is powerful and expressive. You'll want to suppress your OO…

No doubt JavaScript is useful but I've been a professional game developer turned VR developer for 18 years without ever needing it in my career. I have friends who went into embedded development who are even less likely to need it.

I could get by just fine professionally knowing C++ and later C# plus a bit of assembly (more so in the past) along with HLSL/Cg for graphics programming. The other languages I've learned have been for my own interest / education and that's included only a very minimal amount of JavaScript.

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

#118
post #95

Everyone has an opinion about which language is better or worse. It didn't actually matter, they all suck in some way or another. https://wiki.theory.org/index.php/YourLanguageSucks You'll find something you like over the others. But it's all just syntax at the end of the day. The real mastery is programming paradigms. Some languages lend themselves to particular methods and some just can't, or can't do some easily,…

All languages have flaws but that doesn't mean all languages are equally good or bad. Some languages are better than others but due to the complexity of the subject and the relatively few people who know many languages really well (along with perhaps some personal preference) there's endless room for debate on the exact ranking.

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

#119

In my information science bachelor I got introduced to Java and a little bit of PHP (by sheer chance). I had issues with programming. In my computer science master I got introduced to (in chronological order): Objective-C (+ Cocoa Touch), Python, JavaScript (+ HTML5 & CSS), Bash, a toy processor ISA, x86 assembly, C (handy when you know x86 :D), ES6 (+ ReactJS). I might have missed one or two. The thing is, I don't u…

I'd say you're missing quite a lot and are a bit arrogant. You don't mention any functional languages in your list for a start so you're missing a whole programming paradigm that will change the way you think once you understand it.

Good programmers are aware that they never know enough but also that they have to get on with solving things and building stuff anyway. They spend their careers trying to get better and learn more, focusing particularly on what is most relevant to the problems that currently interest them.

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

#120
I think some people get lucky and can get away with living off being very deep in one language only, for long periods of time (like 10+ yrs). Eg. they are hardcore C++, and write compilers, or games, or find a good oppty at one of the big companies where they optimize code that runs on 100K+ servers, so it's a stable and well-paying job with lots of impact.

But I think for most people, including me, having a good grasp of a "ground layer" of languages is the way to go. It just makes you more swiss-army-knife, it reduces risk, opens up opptys.

For me, the base languages are:

- C/C++: so you understand what happens under the hood, how memory is actually managed, how it can "leak"

- Javascript(+HTML): so you can write your webapps

- Python: useful on the server side, for data science, etc; the most useful overall probably

- SQL: to get data out of your RDBMS; many people don't understand how powerful SQL is and end up writing imperative code that could be replaced with 5 lines of SQL, so this is a surprising blindspot for many otherwise good programmers. Beware of anybody telling you SQL is not a PL or it's not useful. A lot of your life runs on SQL, you just don't know about it.

- Bash scripting: nobody actually remembers Bash, we just monkey our way to something that works :)

... and of course take some (sometimes entertaining) detours into Haskell, Prolog, etc. For me, the big blind spot is mobile development, so maybe +1 for that.

Post reply on HN