Live data from Hacker News

How to Evangelize a Programming Language

levelup.gitconnected.com

41–50 of 56 posts

Re: How to Evangelize a Programming Language

#41
post #19

PHP did not need anybody to evangelize it

PHP was evangelized by every website which mentioned it was built in it, including having URLs ending in ".php". Similarly, C and shell were evangelized by every Unix installation, Javascript was evangelized by every website which used it, BASIC was evangelized by innumerable microcomputers which had a BASIC interpreter instead of an OS... the point is, the best evangelism is to tie the language to something useful.…

> What do you use the Smalltalk system for? Very few have an answer.

I have...

You use Smalltalk for back-end web development with tools like Seaside (http://seaside.st/ ) and Teapot.

You use Smalltalk for front-end web development with tools like Amber and PharoJS.

You use Smalltalk for data science with tools like PolyMath library, Roassal data visualization (https://youtu.be/R2rLr7Z1b8Y ), and Moose analytics platform (https://moosetechnology.org/ ).

You use Smalltalk for machine learning with Pharo bindings for TensorFlow and Keras.

You use Smalltalk for IoT applications with tools like PharoThings (https://github.com/pharo-iot/PharoThings ).

You use Smalltalk for robotics with tools like PhaROS (http://car.mines-douai.fr/category/pharos/ ).

You use Smalltalk for virtual reality like in this example: https://youtu.be/b4nNtN7XBi8 .

You use Smalltalk for mobile software with tools like Apache Cordova.

You use Smalltalk for desktop software with the Spec library (https://books.pharo.org/spec-tutorial/ ).

Enterprises have been using Smalltalk for decades. It's especially popular in the financial industry. It's also used in manufacturing, utilities, transportation, government, etc.

Lam Research is worth mentioning. This company is a vital link in the global supply chain. The electronic components in your smartphones, PCs, laptops, etc. started out as silicon wafers fabricated by Lam machines controlled by Smalltalk. You owe your digital existence to Smalltalk!

The U.S. joint military even used Smalltalk to write a million-line battle simulator called JWARS. It actually outperformed a similar software called STORM written in C++ by the U.S. Air Force. JWARS was decommissioned in 2010 due to budget cuts.

Did you know that Smalltalk is also used for system scripting just like Python and Perl? With GNU Smalltalk and Pharo (in command line mode), this is common practice.

There are very few programming languages that are as flexible and versatile as Smalltalk.

Re: How to Evangelize a Programming Language

#43
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…

I disagree. Many languages are technically excellent, but not gaining much mind share. They languish in the job market. For example, at Indeed, Clojure has 393 job postings, Elixir has 430, F# has 156, Haskell has 419, Julia has 706, Lua has 562, and Nim has 81. These are for the U.S. at the time of writing. Python has 76,979 job postings, Java has 72,743, and even lowly Perl has 14,802. Technical merit is not enough…

81? I’m actually surprised there are so many for Nim. What sort of jobs are these?

Re: How to Evangelize a Programming Language

#44

This entire article is nothing but evangelisation for Pharo. Misleading title, worthless post. I’m not surprised either. The author only ever writes Pharo evangelicals that consistently fail to demonstrate any of the supposed benefits; we’re always to simply believe what is said. Any body can show me buzz words. Nobody gets points for buzz words, not even for effort. That’s patently not how one promotes a programming…

Evangelization is "preaching"; it's essentially advertising or marketing. There's no one way to preach or advertise. One can take a number of different approaches. Presenting technical information is one way, the most common way. It's how most languages are promoted. But most languages never succeed with this approach. Most languages never gain much mind share. So the author has taken another approach, something that…

> There is no one way to preach or advertise

But writing articles about a particular premise then barely discussing it or offering a solution, that's not it.

> The programming competition is an original and clever idea

It's not that original; competitions for languages, especially to develop particular solutions in a language, happen all the time. That's how plenty of lesser-used languages wind up with some of the 'batteries' that erstwhile appeared to be missing.

It's a clever idea, yes. However, mention of the competition is also barely a paragraph's worth of text's mention at the bottom of a blog post that, I re-emphasise, gives the impression of discussing programming language evangelisation but then almost immediately makes no interesting remarks on the topic other than "some programming languages are still obscure", immediately launches into a poorly-demonstrated list of reasons why Pharo is apparently so good, and then a sentence or two about a competition.

The competition isn't even really discussed, how well it did, how many participants it drew, what came out of it. As it states, the success of the experiment is yet to be determined — which makes mention of it even more confusing.

We have a blog post with a broad, general scope that finishes with no real conclusion to its own thesis. This isn't advertising, this is spam.

> I'm not sure how one can "demonstrate the benefits" of a programming language

- Code examples (like GTK+ new website)

- Interactive widgets on websites (like ReasonML's website)

- Demonstrations of how a specific idea is better/more easily/more stably solved using that language (like most functional programming languages' websites)

- Interviews, often as blog posts or podcasts, with developers who've deployed applications or services backed by the language

There are plenty of ways that plenty of languages (and other technological artefacts, such as libraries and runtimes) can demonstrate their benefits, many more than I've listed.

Anything has to be better than saying "yes, it's better" without being able to reasonably demonstrate how or why to the satisfaction of people whose existing set of tools already ably work for them.

> Does trotting out these projects prove anything?

Yes, actually. It does. Most programming websites are falling over themselves to demonstrate that their languages are successfully used and deployed in all sorts of situations, some more domain-specific than others.

It proves that something not only is ready for the big time but also can do it something so much better than competing solutions — and, again, will demonstrate how or why.

Re: How to Evangelize a Programming Language

#45
post #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 fo…

> This article has only one real tip: create a high school programming contest for it. Yes, but this "tip" was demonstrated by an example. The example is a Pharo-based programming competition, so it's reasonable to say a few words about Pharo. Otherwise, the article would be pretty darn brief!

> Otherwise, the article would be pretty darn brief!

It is pretty darn brief. The title and first few paragraphs would lead one to believe that the article is going to be about programming language evangelisation.

Instead, it's nothing of the sort. It's nothing but a dishonest segue into listing the author's favourite merits of Smalltalk/Pharos then briefly mentioning the programming competition.

No dissection of existing approaches to programming language evangelisation; no analyses of successful approaches and lessons drawn from those with lesser success; no examination of the correlation between a programming language's long term succes and strong community-based evangelisation and/or support from a major, well-known player in the IT industry.

None of that.

The mention of the competition is literally in the last two paragraphs, the last of which is only one sentence.

Let's be honest: this isn't really an article at all. It's clickbait, and we've all been had. It attempts to write a cheque it can't cash.

Re: How to Evangelize a Programming Language

#46

Does it has cross-platform? One codebase, multiple targets? That's how you evangelize any programming language. In today's environment where the customer wants his solution to work on all devices, the programming language that has the least (zero might be impossible) quirks when targeting different OS'es wins my heart. So far, IMO, there are zero programming languages that do this. Java comes closest but is like only…

Absolutely. Pharo is much like Java: it's VM-based, so Pharo software will run on any platform that has a Pharo VM. This includes Windows, macOS, and Linux. And if you use PharoJS, which transpiles to JS, the same software will run in any web browser, and on mobile devices (using Apache Cordova).

Maybe I was not detail oriented in my above comment. You see, there are plenty of programming languages that have multiple targets/cross-platform capabilities but when it comes to serious implementation users want to have same experience everywhere.

For example, dialogs. Choose a file, right? I mean how hard can it be to select a picture and view it on screen. Well, Android is non-blocking while Windows can be modal blocking. So in Windows it's easy to show a file dialog to select a file then your code goes to put it on screen. Well, good luck doing that in Android. There you have to split your code in several routines that chain each other in order to achieve same effect. Which leads to different code either split by files or surrounded by compiler switches. Boom!! Not what I want!! I know how to do that in dozens of so called cross-platform programming languages. What I want is one call "ShowDialog" implemented at programming language level, not 3rd party, not my code splitted by compiler switches, that behaves the same in all targets. That, my friend, is what I meant by zero programming languages doing this currently.

Re: How to Evangelize a Programming Language

#47

Earlier quoted context omitted.

Evangelization is "preaching"; it's essentially advertising or marketing. There's no one way to preach or advertise. One can take a number of different approaches. Presenting technical information is one way, the most common way. It's how most languages are promoted. But most languages never succeed with this approach. Most languages never gain much mind share. So the author has taken another approach, something that…

> There is no one way to preach or advertise But writing articles about a particular premise then barely discussing it or offering a solution, that's not it. > The programming competition is an original and clever idea It's not that original; competitions for languages, especially to develop particular solutions in a language, happen all the time. That's how plenty of lesser-used languages wind up with some of the 'b…

> The competition isn't even really discussed, how well it did, how many participants it drew, what came out of it.

I took the article as an invitation to dig deeper into the competition (follow the links). So I did. Here's what I learned...

Thirty teams registered for the competition. They represented 18 schools from 13 cities and 3 provinces all across Canada:

- St. Michaels University School (Victoria)

- St. John’s School (Vancouver)

- John G. Diefenbaker High School (Calgary)

- Robert Thirsk High School (Calgary)

- Webber Academy (Calgary)

- Strathcona High School (Edmonton)

- Waterloo Collegiate Institute (Waterloo)

- Centennial Collegiate Vocational Institute (Guelph)

- Westmount Secondary School (Hamilton)

- Marc Garneau Collegiate Institute (Toronto)

- Woodbridge College (Vaughan)

- Langstaff Secondary School (Richmond Hill)

- Henry Street High School (Whitby)

- Bayridge Secondary School (Kingston)

- A.Y. Jackson Secondary School (Ottawa)

- Longfields-Davidson Heights Secondary School (Ottawa)

- Nepean High School (Ottawa)

- St. Patrick’s High School (Ottawa)

Here is the list of participating teams: https://teams.jrmpc.ca/teams .

Here is the list of teams in the leader board for the final, prize-winning round: https://teams.jrmpc.ca/leaderboard .

So, here were the winners:

First Prize of $6,000 went to team ‘WCI1’ of Waterloo Collegiate Institute in Waterloo, Ontario.

- Keenan Gugeler (Captain)

- Alex Liao

- Ethan White

- Thomas Ingram

Second Prize of $4,000 went to Team Dijkstra of Centennial Collegiate Vocational Institute in Guelph, Ontario.

- Andrew Dong (Captain)

- David Xiao

- Alexander Liu

- Brayden Chumbley

Third Prize of $3,000 went to team ‘Bickle Blatwoon’ of Robert Thirsk High School in Calgary, Alberta.

- Xinhua Cao (Captain)

- Hunter Chen

- Umut Emre

- Ethan Kerr

The following teams were recognized for their fine efforts in the Honour Roll. They were awarded $500 each.

- The Battle of Waterloo from Woodbridge College in Vaughan, Ontario

- Computationalism from St. Michaels University School in Victoria, BC

- Quad Coders from St. Michaels University School in Victoria, BC

Throughout the JRMPC blog (https://jrmpc.ca/blog/ ), all the competition software was made available for you to download so that you could play with it yourself. That includes all the source code!

A great article comparing JRMPC to another similar competition was published: https://smalltalk.tech.blog/2020/03/03/battlesnake-the-compe... . It revealed some terrific insight.

All in all, the competition appeared to be a great success. It has certainly drawn a lot of attention, which was purportedly the goal. This is the PR value that it sought.

Re: How to Evangelize a Programming Language

#48

Earlier quoted context omitted.

Evangelization is "preaching"; it's essentially advertising or marketing. There's no one way to preach or advertise. One can take a number of different approaches. Presenting technical information is one way, the most common way. It's how most languages are promoted. But most languages never succeed with this approach. Most languages never gain much mind share. So the author has taken another approach, something that…

> There is no one way to preach or advertise But writing articles about a particular premise then barely discussing it or offering a solution, that's not it. > The programming competition is an original and clever idea It's not that original; competitions for languages, especially to develop particular solutions in a language, happen all the time. That's how plenty of lesser-used languages wind up with some of the 'b…

This is a decidedly peculiar attitude. The web is a vast global network of hyperlinks — that was its original intent. A web user is expected to follow the hyperlinks to discover more information.

The author provided the key hyperlinks: https://smalltalk.tech.blog/2020/03/07/jrmpc-2020-award-winn... and the YouTube video link, as well, which also links to the main JRMPC website. Once you get to the JRMPC website, you can learn ALL about the competition in great detail, including the source code to the competition!

Moreover, the smalltalk.tech.blog itself shows the author's approach to evangelizing the language. It's one of pure marketing, trying to engage the audience with flashy visuals and more hyperlinks to examples, resources, etc. It's a very nice layout.

The whole point of the web is that a single document doesn't have to cram in all the information in one location. Think of this particular article as an "executive summary." You want to learn more? Follow the hyperlinks and do a deep dive.

The article was never intended to spoon-feed you. Use the web as intended. I did, and I'm more knowledgeable as a result.

Re: How to Evangelize a Programming Language

#49

Earlier quoted context omitted.

Evangelization is "preaching"; it's essentially advertising or marketing. There's no one way to preach or advertise. One can take a number of different approaches. Presenting technical information is one way, the most common way. It's how most languages are promoted. But most languages never succeed with this approach. Most languages never gain much mind share. So the author has taken another approach, something that…

> There is no one way to preach or advertise But writing articles about a particular premise then barely discussing it or offering a solution, that's not it. > The programming competition is an original and clever idea It's not that original; competitions for languages, especially to develop particular solutions in a language, happen all the time. That's how plenty of lesser-used languages wind up with some of the 'b…

> competitions for languages, especially to develop particular solutions in a language, happen all the time.

Perhaps, but they aren't well-advertised. It's difficult to find these competitions even using Google search. Where are they???

I'd like to know what programming competitions exist for Clojure, Dart, Elixir, Haskell, Julia, Lua, Nim, and Rust. Can you point to any? Thanks.

Re: How to Evangelize a Programming Language

#50

Earlier quoted context omitted.

> This article has only one real tip: create a high school programming contest for it. Yes, but this "tip" was demonstrated by an example. The example is a Pharo-based programming competition, so it's reasonable to say a few words about Pharo. Otherwise, the article would be pretty darn brief!

> Otherwise, the article would be pretty darn brief! It is pretty darn brief. The title and first few paragraphs would lead one to believe that the article is going to be about programming language evangelisation. Instead, it's nothing of the sort. It's nothing but a dishonest segue into listing the author's favourite merits of Smalltalk/Pharos then briefly mentioning the programming competition. No dissection of exi…

> No dissection of existing approaches to programming language evangelisation; no analyses of successful approaches and lessons drawn from those with lesser success; no examination of the correlation between a programming language's long term succes and strong community-based evangelisation and/or support from a major, well-known player in the IT industry.

That was your expectation, not mine. You were led to believe one thing; I interpreted this article differently.

Sure, for some people, the title could be seen as clickbait. I didn't see it that way.

The author did present information, just not the information that you wanted. He pointed out that most language evangelization depends on technical publications and GitHub repos, and that this hasn't produced the desired outcome. That's practically axiomatic! Just look at where Clojure, Crystal, Elixir, F#, Haskell, Idris, Julia, Nim, Pony, and Ring are. They're still struggling for relevancy.

In the third paragraph, he states: "I’m a Smalltalk evangelist and Pharo is one of these languages." There's nothing dishonest here. He's presenting Pharo and the programming competition as a sample case study.

Once you dive into the linked article, you learn all you need to know about the competition.

Post reply on HN