HNHacker News
TopNewBestAskShowJobs

louiscyphre

135 karma · joined May 8, 2016

submissionscomments
louiscyphre··on How to Evangelize a Programming Language
> 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.

louiscyphre··on How to Evangelize a Programming Language
> 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.

louiscyphre··on How to Evangelize a Programming Language
Here are some good resources: https://smalltalk.tech.blog/resources/ . It's a curated list.
louiscyphre··on How to Evangelize a Programming Language
> 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.

louiscyphre··on How to Evangelize a Programming Language
> 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!

louiscyphre··on How to Evangelize a Programming Language
PHP was in the right place at the right time back in the mid-1990s. It exploited the nascent web and gained a first-starter advantage. In other words, PHP lucked out.

Most languages need some luck to make it to the top. JavaScript lucked out with the explosive growth of SPA, circa 2010. Python lucked out with the explosive growth of data science and machine learning in the past decade.

Ruby lucked out with the Rails framework.

Java and C# were heavily marketed by Sun Microsystems and Microsoft, respectively. Objective-C and Swift were heavily marketed by Apple. Dart and Go were heavily marketed by Google. Rust had Mozilla. Kotlin had JetBrains.

louiscyphre··on Smalltalk: An Entrepreneur's Secret Weapon
If you do a sweeping Google search, you will find many Smalltalk posts "from the trenches" over the years. However, they've done little to elevate the language. I disagree that this is the best way to market a programming language.

Even Haskell hasn't done that well using this approach. With all these "from the trenches" posts, Haskell is still only #45 at TIOBE. It's #26 at PYPL and falling! In terms of pull requests at GitHub, Haskell is #28 and falling! See https://madnight.github.io/githut/#/pull_requests/2019/2.

louiscyphre··on Smalltalk: An Entrepreneur's Secret Weapon
How well does one need to know Smalltalk before they can promote it? I'm a Smalltalk newbie; I've only been using Smalltalk on and off for the past few years. But I absolutely love it!

So I'm telling all my friends and colleagues to give Smalltalk a try. Does that invalidate my efforts?

louiscyphre··on Smalltalk: An Entrepreneur's Secret Weapon
If I'm not mistaken, he created the following blog: https://smalltalk.tech.blog/.

It contains "solid" articles from Leandro Caniglia and Lorenzo Schiavina.

It also contains an article about his recent programming competition (currently under way): https://smalltalk.tech.blog/2020/02/08/the-results-are-in/.

This is one heck of a competition, and it's a great promotion for Pharo!

louiscyphre··on Smalltalk: An Entrepreneur's Secret Weapon
> the one productivity study which is by now decades old

This study was published within the last decade (2017): https://www.ifpug.org/wp-content/uploads/2017/04/IYSM.-Thirt....

It contains data for languages like Ceylon (2011), Dart (2011), Elixir (2011), F# (2005), Go (2009), Haxe (2005), and Julia (2012). So, no, not decades old.

Moreover, Haskell is an old language that has only recently come into the limelight. It's considered new-ish.

The study does contain data for languages going all the way back to the 1960s. This is a Good Thing. It means we have a statistically huge sample size which only further supports its validity.

In fact, this is the largest study of its kind. Why would anybody want a small sample size that only covers a few languages from the last 20 years???

louiscyphre··on Smalltalk: An Entrepreneur's Secret Weapon
The following tutorial can be finished within 15 minutes: https://amber-lang.net/learn.html. Thereafter, you will know the entire syntax of Smalltalk-80.

Is there a Python tutorial where you can learn all of Python's syntax within 15 minutes?

louiscyphre··on Smalltalk: An Entrepreneur's Secret Weapon
Indeed, you can. The first thing to learn here is that the hash (#) signifies a literal symbol. So, #a is a symbol, whereas 'a' is a string (of length 1 and containing the character $a).

The second thing to learn is that the dollar sign ($) signifies a character value, so $b is the value of the character "b" and $c is the value of the character "c".

#() signifies a literal array created at compile time.

Thus, #($a #a 'a' 1 1.0) is an array that contains the character $a, the symbol #a, the string 'a', the integer 1, and the floating value 1.0). Easy peasy.

louiscyphre··on The Tyranny of Web Development
Still, I don't like web development. I used Python/Django and Pharo/Teapot, and they were okay, but I would rather do any other kind of programming.
louiscyphre··on The Tyranny of Web Development
Well, the three different things comprise one tool. ;-)
louiscyphre··on Is Smalltalk a weird cause to fight for?
Well, this article is simply an explanation for why he's an evangelist, sort of a stream of consciousness thing. If you follow his blog, you will find hundreds of informative posts about how and why Smalltalk is so remarkable in terms of simplicity, ease of use, flexibility, versatility, maintainability, scalability, and most importantly, productivity.
louiscyphre··on Is This the Future of Software Development?
> Unless it knows what the previous disadvantages were, and has fixed them to the satisfaction of developers

All programming languages have disadvantages. They don't need to be "fixed" in order to be useful and accepted. You think Java, Python, and JavaScript are perfect? How about Go, Kotlin, and Swift?

louiscyphre··on Pharo, the Modern Smalltalk
Sorry, but the author has never derided Clojure and Racket. Common Lisp, yes, but not Clojure and Racket. He actually likes Scheme.

He has factually pointed out that most people are turned off by Lisp syntax. This is not an insult, simply a statement of fact.

louiscyphre··on Pharo, the Modern Smalltalk
You gave the wrong URL. See https://www.fun-mooc.fr/courses/course-v1:inria+41010+sessio...
louiscyphre··on Pharo, the Modern Smalltalk
Capers Jones is a well-respected expert in software metrics. He's done some ground-breaking work in this area. Unless you're an expert too, I wouldn't denigrate him.
louiscyphre··on Pharo, the Modern Smalltalk
I'm sorry but you are really completely missing the point. You are conflating how Smalltalk is implemented under the hood (using files) with how Smalltalk is used for programming (using the image). Under the hood, Smalltalk has to adapt to the host platform, whether that be Windows, macOS, or Linux. In the original Smalltalk implementation over four decades ago, Smalltalk was the host platform (or operating system), so there were no files for source code.
louiscyphre··on Pharo, the Modern Smalltalk
> remain rigid and stick to old, familiar ways

> Insulting people who don't use your language.

How am I insulting people??? I'm making a factual assertion, completely devoid of judgment.

louiscyphre··on Pharo, the Modern Smalltalk
Pharo, like GNU Smalltalk, has a command line mode so that you can use your favourite editor. However, without the live coding IDE, you lose the biggest benefit of the language: highly accelerated development and enormous programmer productivity.

Yes, Pharo (and Smalltalk) is a world unto itself but that's the price you pay for a highly productive, easy-to-program software development environment. How are you going to achieve this by retrofitting to an archaic methodology based on text files and over-engineered IDEs like Visual Studio and Eclipse? Java and C++ impose severe constraints and compromises in this respect.

At the end of the day, it's all about a programmer's ability to adapt to new methodologies. If they remain rigid and stick to old, familiar ways, there can be no great improvement in the way we create software.

louiscyphre··on What makes a programming language “cool?”
If you had bothered to read the paper, you would've seen this:

"At least 50,000 software projects have been measured using IFPUG function point metrics, including more than 5,000 projects that are publically available from the International Software Benchmark Standards Group (ISBSG)."

What Namcook Analytics did was analyze actual software projects and then extrapolate the findings using their own methodology. If this constitutes "fake cooked statistics," then that's your own personal interpretation, one that is not shared by everyone, nor the majority of readers.

louiscyphre··on Smalltalk to get a second crack at the whip
Smalltalk is the second most loved programming language, according to the 2017 StackOverflow survey. (Rust is most loved.) If any language deserves a second chance, it's Smalltalk.

Thus, there's no reason why Smalltalk can't be widely adopted, whether it's in the enterprise or elsewhere (teaching, hobbyist, research, machine learning, natural language processing, IoT, virtual reality, etc.).

Teaching: https://medium.com/p/an-open-letter-to-all-universities-ad98...

Machine learning: https://biosmalltalk.github.io/web/

IoT: https://medium.com/concerning-pharo/pharo-pi-9eef257b6a21

Virtual reality: http://www.opencobalt.net and http://www.3dicc.com

louiscyphre··on Best reasons to use Smalltalk
This is the best article on Smalltalk ever! Thanks!

Is there a way to use Smalltalk with popular version control software such as Git?