News for hackers. Stuff that matters.
Re:Why is it difficult for developers to learn another progr... by JamesBarney on Sunday May 03, 2020 @03:20AM (#23057437)
My biggest problem learning a second language is that it's so much less useful than the first.

Ten years ago I learned C# and since then I've dabbled in other languages like Haskell or Lisp which were a little fun, but I keep getting drawn back to learning more about my stack. There's still decades of knowledge I lack about Azure/Entity Framework/Asp.Net/Xamarin/Sql Server/WPF/C# CMS/C# CRMS/C# e-commerce/Roslyn the opensource compiler/Blazor/Typescript/React/CSS. (Not to mention all of the useful soft skills, like sales/ marketing/negotiation/management)

And I'd rather be able to build out a desktop app, a web app, or a mobile app than be able to build out a web app in js-node/C#-mvc/ruby-rails/python-django.

Basically when I learn I want to be able build I couldn't before (like a mobile app) or get better at building(learn how to better optimize t-sql queries). And when I've spent time learning new languages I felt like it wasn't as useful at delivering on these two goals.

Re:Why is it difficult for developers to learn another progr... by apatheticonion on Sunday May 03, 2020 @05:17AM (#23057874)
When I first learned Python, I found it hard understanding how another language could offer more.

What I found was learning other languages provided value in the form of insight which changed how I wrote my primary language.

JavaScript taught me about the value of concurrency, C# taught me the value of types and DI, TypeScript showed me the complexity of C# wasn't necessary, Go taught me that I code too much and say too little.

Re:Why is it difficult for developers to learn another progr... by justanotherc on Sunday May 03, 2020 @09:59AM (#23059026)
I 100% agree. The first language I learned in highschool was VB6. I only went to VB .NET when VB6 stopped working.

I next learned PHP because it gave me superpowers on the web that VB couldn't. When Ruby on Rails became popular, then Node, I dabbled in learning those but I just couldn't get excited about them because it didn't give me any more capability than PHP already did.

I generally only tackle learning new things if it provides me immediate value to do so.

Re:Why is it difficult for developers to learn another progr... by capableweb on Sunday May 03, 2020 @10:04AM (#23059052)
> I generally only tackle learning new things if it provides me immediate value to do so.

In general I agree with you, but I think this is taking it a bit too far. My journey was similar, except PHP was my starting language and I was doing frontend (so HTML+CSS+JS) at the same time.

But, now I'm doing Clojure full-time. But not until I spent 2-3 years on-off learning it. It wasn't until 1.5 year ago I actually sat down and started writing things in Clojure.

But if I had the "only if it provides me immediate value" mindset, I would never have learned Clojure. It's not until now I'm more productive than I ever been, but that required a bit of uphill fighting.

But I'm so glad I stuck with it, now I can't imagine programming in something else. Which has ruined me a bit, but I'm happy with that.

Re:Why is it difficult for developers to learn another progr... by justanotherc on Tuesday May 05, 2020 @11:34PM (#23087678)
I definitely understand your reasoning, but personally I don't see how I would be more productive by switching languages. Maybe I just don't know what I'm missing, but I feel pretty dang productive with my current stack. And I'm working on a long term project for 90% of my time, so even if I could be more productive, I don't think I could justify re-writing 40k LoC.

I also don't really get emotional over the language choice... I'd ditch PHP in a second if it made sense to, but IMO a good architecture can enable development speed FAR better than a good language can. The language choice mostly just comes down to syntax preferences.

To each their own.

Re:Why is it difficult for developers to learn another progr... by capableweb on Wednesday May 06, 2020 @06:08AM (#23089395)
> , I don't think I could justify re-writing 40k LoC.

Absolutely, I agree with that as well! I would not rewrite something to a different languages unless there is a damn good reason for it. I'm not a person who generally rewrite stuff "for fun", so I think you're spot on here.

And I agree with you on the architecture/language comment as well, it's way more important. But I do think that the common practices of a language either helps/slows you down as well, so doing the same thing in two different languages can be implemented in different speeds.

> The language choice mostly just comes down to syntax preferences

Here is where I kind of disagree, but not fully. Yes, Java and C# are basically the same, in the end. Details are different, but mostly the same. Same goes for all languages in the Algol-group of languages, which C, JavaScript, Java, Python and more belongs to.

Then we have the Lisp-family of languages. They are very similar, within the group, but compared Lisp-like languages with Algol-like languages, the differences become way larger. Add languages like Erlang, which are way different, and you get some more differences.

So yeah, most of the language choices people do today, mostly come down to things around the language (ecosystem etc) rather than the language itself, because most people limit their choice to Algol-like languages.

In the end, I could not care less about the language you use, I'm not trying to force anyone to use what I find most productive. We all have preferences that speaks for us. But I wish someone tried to get me to dive into Lisp/Clojure earlier, and I think there are others who will feel the same, but again, I don't really care what others use.

Re:Why is it difficult for developers to learn another progr... by slifin on Sunday May 03, 2020 @07:26PM (#23062739)
It's such a nice language I feel calm writing it
Re:Why is it difficult for developers to learn another progr... by vizzier on Sunday May 03, 2020 @04:33AM (#23057723)
Maybe look at F# for something .net compatible. Personally its use in some contexts, particularly those using the F# type providers has served me well.

I also prefer to use FSX scripts over CSX in contexts where that is useful. I find my deeper knowledge of the .net infrastructure easier to leverage than having to learn powershell but FSX syntax also cleaner for scripting.

Re:Why is it difficult for developers to learn another progr... by JamesBarney on Sunday May 03, 2020 @11:50AM (#23059736)
I've used f#. Type providers were really cool. And I like how terse it is but I feel like the gap is narrowing, and I couldn't ever use it on a real project. I'd feel guilty building a project for a client that is supportable by a tenth the number of developers without very good reason.
Re:Why is it difficult for developers to learn another progr... by platz on Sunday May 03, 2020 @10:01AM (#23059035)
I'm generally an FP advocate but F# on the CLR has always been an uphill battle in terms of development of the language (especially lately) and providing a compelling case to outsiders to spend resources on F# over C#.
Re:Why is it difficult for developers to learn another progr... by giantDinosaur on Sunday May 03, 2020 @04:15AM (#23057655)
Does most of what you listed matter? Yeah - I know, it matters to make money(!). But it all looks really similar to me. If, instead, a new language taught you more about recursion or typing or a different way to view program structure, isn't that more valuable than learning the latest JS framework? or Azure? What does Azure really offer from a learning perspective? You know, I use TypeScript a lot, but it has taught me absolutely nothing fundamental, and has not made really made me better at anything other than Typescript. Playing around with something like Haskell made me think about some pretty fundamental structural and domain modelling questions, which I feel, although perhaps cannot prove, has been much more valuable.
Re:Why is it difficult for developers to learn another progr... by JamesBarney on Sunday May 03, 2020 @11:47AM (#23059714)
I've spent a couple of weeks on Haskell and a couple of weeks on domain driven design and I felt like the latter made a larger impact on how I saw using code to model the domain.
Re:Why is it difficult for developers to learn another progr... by dastx on Sunday May 03, 2020 @04:37AM (#23057740)
> My biggest problem learning a second language is that it's so much less useful than the first.

Your IDE should work with you to make it more useful. For sure your knowledge of another language isn't going to be as great as your first language, but I've personally always relied on tooling around that language to tell me where I'm wrong, then I can go find out why it is that my IDE is complaining and I'll then decide whether the IDEs error makes sense or not.

Re:Why is it difficult for developers to learn another progr... by caseymarquis on Sunday May 03, 2020 @11:06AM (#23059419)
You can also build your own .NET frameworks like ASP.NET or Entity Framework using reflection and expressions. All the tools that these frameworks use to analyze the structure of your code and dynamically compile new code are part of .NET. It's not as DSL friendly as something like Racket, but you can generally get your own DSL based on class, expression, and attribute analysis up and running if you put some time in. The .NET rabbit hole goes quite deep.