Live data from Hacker News

Ask HN: If I only learn one static typed language, which one should I learn?

news.ycombinator.com

41–50 of 67 posts

Re: Ask HN: If I only learn one static typed language, which one should I learn?

#42

c# is really slick. It really is java without the suck, and with dotnet core / roslyn / azure / asp.net, it's increasingly viable as a cross-platform and web language (with the caveat that the only decent native UI toolkit is windows only). AWS lambdas support C#, as does Unity for game development.

I second this. The whole .Net ecosystem is built really well on object-oriented design principles and I've learned a ton about how DI/IoC and SRP/ISP designs get implemented since switching to C#. Additionally Code Contracts are really fun to experiment with to help you be more thoughtful in learning design by contract. If design skills are important C# is a great language to use for it. The only thing that bothered me at first when I switched to C# was the use of PascalCase member methods, outside of that one nitpick I've been very satisfied, C# is a solid language.

Re: Ask HN: If I only learn one static typed language, which one should I learn?

#44
Actually, I would suggest typescript and c# .

C# because I love it after experimenting with a lot of languages ( VB.net the first and c# second though, I'm a bit biased) and typescript because it will improve your current nodejs writing.

Both are closely aligned and I think it's perfect in your case. Start the next project with typescript and change to c# later for another project.

Also, there are a ton of projects to learn from. But other than that ( a lot of languages have great examples), there is a lot of employment in c# and it seems to be a sure bet future-wise.

Ps. CMS -> Umbraco. Webshop -> Merchello. It's like woocommerce and WordPress but easier and cleaner

Re: Ask HN: If I only learn one static typed language, which one should I learn?

#45
I would strongly recommend C. You will learn a lot about computers, rather than computer science.

If you want to stay in the computer science realm, I would recommend C#, C++, or Go. All three have the critical mass to be dominant languages in the next decade.

Re: Ask HN: If I only learn one static typed language, which one should I learn?

#47
C#. It's used from the web (ASP.NET) to gamedev (Unity), and has an excellent implementation of most mainstream view on statically, strongly typed OOP. In my opinion, the best language to write usual business logic heavy projects, that don't need dynamic metaprogramming trickery on one hand and manual memory and cpu cycle management on another.

There are many other languages that will teach you valuable things; buy if you're asking about one, or at least the first one, C# is definetly the best choice. When you'll come from it to Haskell or Rust, you will already be equipped with a habit for OOP and static typing, and will not face a frustrating cognitive overload.

Re: Ask HN: If I only learn one static typed language, which one should I learn?

#48

I am still facing dilemma Java vs C#. I have to say I like C# more but there seems to be many more Java jobs than C#.

There are so many jobs in both of them that if you're having trouble getting hired, you probably should learn a little bit more.

Re: Ask HN: If I only learn one static typed language, which one should I learn?

#49
This really depends on the reason you want to learn.

For back-end development I would orient towards Golang. Its approach to concurrency makes efficiently utilizing multiple cores a breeze; something that is not quite so simple in Node/PHP. As well, it's common that you'll find yourself able to get more out of individual machines - this will allow you to get more money out of said machines and, as a second-order effect, can delay the onset of scaling concerns. As an aside, as a primarily JavaScript developer, I do have to admit Go has a very impressive stdlib.

For taming your tools but not changing ecosystems I would recommend looking into TypeScript. It just being a superset of JavaScript means you can do incremental adoption while still enjoying all of the JS knowledge you've built to date.

For learning new paradigms I would either recommend Haskell for a "strict functional" path or Rust for an "immutable/non-racy" approach. Both languages take the concepts to a pretty extreme level and may feel overwhelming at first, but they can be brought back to your existing back-end development skills to help enhance the maintainability of your code.

For something between concurrency and functional programming I would recommend Erlang/Elixir - though I do so only from recommendations and not from any meaningful experience with either. Might be up your alley and definitely worth at least considering for your "one language".

Re: Ask HN: If I only learn one static typed language, which one should I learn?

#50
post #17
post #5

What are you trying to achieve? Change the way you think about programming problems: Haskell Enterprise Development: Java. Maybe Scala? Apple Ecosystem: Swift (and actually, it seems like a kind-of pleasant language for general server-side use). Low-level: C++. Or maybe Rust (although not yet given that a serious whirl) Edit: oh, if you're broadly happy with JS, Typescript is worth a look and might (depending on your…

C# is definitely more prevalent than Scala in Enterprise environment. In my experience even between Java and C# it's close to a 55/45 split in Java's favor. Most of the OG Enterprise jobs that people think of like banking will be Java, most of the rest will be C#.

Yes, absolutely, I had meant to mention that one but got distracted. Although it does rather collapse with Java in my mind.
Post reply on HN