Live data from Hacker News

How to Evangelize a Programming Language

levelup.gitconnected.com

1–10 of 56 posts

Re: How to Evangelize a Programming Language

#3
This article has only one real tip: create a high school programming contest for it. The rest is evangelizing a specific language itself, which I won't mention to avoid fueling the gimmick. I think we've been had.

In general programming language preferences are subjective. We all think different. I've been in many many debates over language merit. The only language that would truly make one happy is one custom fit for his/her own head. I personally want something that leverages the database more so I don't have to do data chomping in code, nor reinvent the schema in code (DRY). I'd also like custom block-scoping so that one is not stuck choosing between OOP or FP etc. A code-block's scope would be programmer-defined. You could roll our own control and class-like constructs.

Actually some languages are meta (bend-able) enough to reshape almost any way you want, but then in a team environment, you have to face others' custom mind-fit code, which defeats the purpose.

Re: How to Evangelize a Programming Language

#5
Languages should stand or fall on their own technical merits. If you have to try and convince someone that language X is good (or bad), there is probably something not quite right.

I hated Go when it first came out. I grew tired of hearing about it. My friends tried to get me to use it. I refused. One day, I needed to write some highly concurrent code, read about Go Routines, tried it and was hooked. I've been using it ever since. No amount of selling/proselytizing could convince me (nor should it). The language itself did when I took a serious look at it.

Re: How to Evangelize a Programming Language

#6
post #5

Languages should stand or fall on their own technical merits. If you have to try and convince someone that language X is good (or bad), there is probably something not quite right. I hated Go when it first came out. I grew tired of hearing about it. My friends tried to get me to use it. I refused. One day, I needed to write some highly concurrent code, read about Go Routines, tried it and was hooked. I've been using…

But would you have tried it if your friends weren't trying to get you to try it?

Re: How to Evangelize a Programming Language

#7
Can someone with actual real-life in-production-for-a-while in-an-actual-company-with-annoying-customers-who-change-mind-all-the-times tell me about the refactoring story in Smalltalk ?

Sure, I know the IDE can change the signature of a function, and stuff like that, but is it enough to actually do broad refactorings with any level of confidence ("broad" meaning "the kind where you realize the next feature requests invalidate most of your previous design, as happens pretty much every time you get a new feature request ?")

Or are you still at the mercy of a whatever the Smalltalk version of a runtime error is, whenever you have - god forbid - made a typo somwhere ?

I'm deeply hating a certain "pretty fashionable" dynamic langage (that will charitably remain unnamed) for this kind of reason, and I'm not going to buy the "Supreme productivity" claim anymore from any language that requires me to double check every function call just in case I mispelled a word.

Re: How to Evangelize a Programming Language

#8
post #5

Languages should stand or fall on their own technical merits. If you have to try and convince someone that language X is good (or bad), there is probably something not quite right. I hated Go when it first came out. I grew tired of hearing about it. My friends tried to get me to use it. I refused. One day, I needed to write some highly concurrent code, read about Go Routines, tried it and was hooked. I've been using…

>Languages should stand or fall on their own technical merits.

A nice sentiment, but not reflected in reality. It's valuable to evangelise languages because

  1. better awareness of their novel features can pressure more widely-used languages to adopt those features - like the addition of lambdas to Java, Python, etc. 
  2. otherwise you risk being stuck with whatever people know, forever. "Lack of fluency" is a technical demerit from the perspective of a project lead.

Re: How to Evangelize a Programming Language

#9
post #5

Languages should stand or fall on their own technical merits. If you have to try and convince someone that language X is good (or bad), there is probably something not quite right. I hated Go when it first came out. I grew tired of hearing about it. My friends tried to get me to use it. I refused. One day, I needed to write some highly concurrent code, read about Go Routines, tried it and was hooked. I've been using…

A language is a product, like any other. Before it can be used, it needs to be noticed by it's target audience. And to be noticed, it needs to be mentioned.

Your own example demonstrates this. If none of your friends had ever mentioned Go to you, and no one had ever evangelised it, how would you have known that it's a good fit for that problem?

Re: How to Evangelize a Programming Language

#10
post #6
post #5

Languages should stand or fall on their own technical merits. If you have to try and convince someone that language X is good (or bad), there is probably something not quite right. I hated Go when it first came out. I grew tired of hearing about it. My friends tried to get me to use it. I refused. One day, I needed to write some highly concurrent code, read about Go Routines, tried it and was hooked. I've been using…

But would you have tried it if your friends weren't trying to get you to try it?

Possibly. Possibly even sooner; some of us are stubborn like that.

But would _wldu have tried Go if he/she had never heard of it, and had no idea what features it had? Probably not; it's really hard to choose what you don't know exists.

Post reply on HN