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!!
Ask HN: Learning multiple languages vs. mastering one
111–120 of 137 posts
Re: Ask HN: Learning multiple languages vs. mastering one
#112JavaScript 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
#113I'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…
Re: Ask HN: Learning multiple languages vs. mastering one
#114Earlier 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?
Re: Ask HN: Learning multiple languages vs. mastering one
#115Earlier 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.
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
#116Earlier 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.
Re: Ask HN: Learning multiple languages vs. mastering one
#117Go "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…
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
#118Everyone 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,…
Re: Ask HN: Learning multiple languages vs. mastering one
#119In 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…
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
#120But 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.