The author gets you with some Pharo evangelizing in there, sneaky. I'd really like someone from the Rust community (steveklabnik?) to write a history of the language/community and what decisions they took to grow. There's social and technical stuff that got people to go out and evangelize, which is half the battle - what they've really succeeded at is getting people to listen.
Frankly, Rust is not the example I would take about successful evanglization: the numerous Rewrite It In Rust (RIIC) posts, the ones asking on an inquisitional tone why the project haven't been written in rust, or those who changed the topic to rust in unrelated discussion (that's literally trolling) that is happening in a lot of threads here are really off-putting.
How to Evangelize a Programming Language
21–30 of 56 posts
Re: How to Evangelize a Programming Language
#22This 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…
Also w.r.t. reinventing the schema for databases, I have got a lot of mileage out of deriving the schema from code. Shameless plug, I have this little project (https://github.com/Morgan-Stanley/hobbes/) where we have a self-contained header-only library to push structured data out of process with minimal latency, query data concurrently with a Haskell-like PL. It works well for our kinds of systems (millions of orders per day, ~1 billion market data ticks, structured log data from multiple systems involved, ...).
Re: How to Evangelize a Programming Language
#23Earlier quoted context omitted.
Frankly, Rust is not the example I would take about successful evanglization: the numerous Rewrite It In Rust (RIIC) posts, the ones asking on an inquisitional tone why the project haven't been written in rust, or those who changed the topic to rust in unrelated discussion (that's literally trolling) that is happening in a lot of threads here are really off-putting.
I mean my point was that it seemed to have worked. It's been awhile since I've seen RIIR posts or the dumb evangelism. More often I see comments like "this wouldn't have been a bug if you wrote it in Rust" which is usually accurate and engages compelling discussion.
It's usually accurate, but it rarely spurs compelling discussion in my experience. Whether it's inertia or actual pigheadedness, smugly suggesting that they could have "just" rewritten their software in Rust and they wouldn't have their day ruined doesn't invite the best kind of discussion, considering that the people involved are either just coming out of the bad day or tend to underestimate the costs of switching.
Re: How to Evangelize a Programming Language
#24Can 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 i…
On this note, I still haven't found a language that does broad refactoring as well as C# (with resharper) does. From method extraction, to module, namespace, function renaming, to adding parameters to functions, it just takes care of it. My suspicion is that Java does it as well (but I don't have experience with it), but every other language I've tried lags far behind it. It's been really frustrating to be really get…
Re: How to Evangelize a Programming Language
#25So far, IMO, there are zero programming languages that do this. Java comes closest but is like only half-way there, rest are either lagging behind or even don't even approach this. Also I hate Java, but that's my personal choice.
Re: How to Evangelize a Programming Language
#26The author gets you with some Pharo evangelizing in there, sneaky. I'd really like someone from the Rust community (steveklabnik?) to write a history of the language/community and what decisions they took to grow. There's social and technical stuff that got people to go out and evangelize, which is half the battle - what they've really succeeded at is getting people to listen.
The author is presenting one example, and pointing to a Pharo programming competition as the key exhibit. It's a pretty impressive competition, too. Impressive prizes. Impressive competition map and Pac-Man style game.
In fact, if you look around the same blog, you'll find a nice comparison to another competition called Battlesnake: https://smalltalk.tech.blog/2020/03/03/battlesnake-the-compe.... JRMPC seems to be a cut above.
Re: How to Evangelize a Programming Language
#27Languages 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…
Python has 76,979 job postings, Java has 72,743, and even lowly Perl has 14,802. Technical merit is not enough; those lesser languages need marketing.
The fact is, language adoption in the IT industry is very much a matter of luck, fad and fashion.
Re: How to Evangelize a Programming Language
#28This 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…
One way that I feel comfortable with is publishing clear, real life-ish examples of what can be accomplished in the language by playing on it's strengths. Debating merits never really leads anywhere, all languages have strengths and weaknesses, all languages are compromises in some respect. I've put quite some effort into the DRY database schema problem over the years. The only reasonable way forward that I've found…
And we don't have to rely on the DD to do everything. Of course intricate business logic should be in app code, but app code shouldn't reinvent the obvious things like minimum length ("required"), max length, field description, synopsis (longer "help"), display order, key type (primary, foreign) and their related "look-up" references, etc.
I've found that if the DD results can be intercepted by the program, then it's more flexible. It should have an event that allows the DD attributes to be programmatically altered per screen, and then another event to modify or remove the actual HTML and/or SQL generated from the those attributes. I call it "staged rendering". This allows the DD to do 90% of the grunt work, but not limit local customization. Local customization has been the most common bottleneck of past DD-based attempts.
I like it when computers do the grunt work; that's what they were invented for. Our current common CRUD stacks violate data-related D.R.Y. up the wazoo and nobody seems to care as long as they get a paycheck. Auto code generation is only a half solution because once you alter the copies, you can't rely on generators anymore: they wipe out your custom code.
Re: How to Evangelize a Programming Language
#29The author gets you with some Pharo evangelizing in there, sneaky. I'd really like someone from the Rust community (steveklabnik?) to write a history of the language/community and what decisions they took to grow. There's social and technical stuff that got people to go out and evangelize, which is half the battle - what they've really succeeded at is getting people to listen.
I think one of the hard things about making suggestions about how to do a thing like this is that it's unfalsifiable. I'm not suggesting that only things that are falsifiable are worthwhile, but like, let's take what you're saying here at face value: Rust was evangelized successfully. What we can't know is, could we have done a better job than we did? Did some of those choices that I or whoever else would suggest as…
I was more suggesting that there's a story about how Rust became what it is today, and the active guidance that members of the core team(s) took on to take it there. It's a story I'd like to read, that's all.
The questions you bring up are very good ones, and they're relevant to anyone developing technology like a programming language - be it a FOSS project, a creative tool, whatever. But I think from a literary perspective it wouldn't be the job of the person telling the story to answer them, but for the reader to decide for themselves.
Re: How to Evangelize a Programming Language
#30Does 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…
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).