Random insight of the night: every couple years, someone stands up and bemoans the fact that programming is still primarily done through the medium of text. And surely with all the power of modern graphical systems there must be a better way. But consider:

* the most powerful tool we have as humans for handling abstract concepts is language
* our brains have several hundred millenia of optimizations for processing language
* we have about 5 millenia of experimenting with ways to represent language outside our heads, using media (paper, parchment, clay, cave walls) that don't prejudice any particular form of representation at least in two dimensions
* the most wildly successful and enduring scheme we have stuck with over all that time is linear strings of symbols. Which is text.

So it is no great surprise that text is well adapted to our latest adventure in encoding and manipulating abstract concepts.

@mdhughes vis-a-vis terrible languages, I mean Sturgeon's law predicts they are gonna be there. But if it's easy to make languages, I'd suggest you'll get more good ones too.

@rafial Even if 90% of languages are crap, which seems lowball, it's peculiar that the popular ones are all crap. Programmers are supposed to be "smart" but it looks a lot more like doubling down on whatever you get by random chance.

@mdhughes @rafial this situation arises because of competing standards for what's "good". For people learning to program, good means cheap/free, accessible, easy to set up, has lots of examples freely available, has discoverable 3rd-party libraries and frameworks, and offers a responsive and helpful community

For businesses, good means "I can easily and inexpensively find programmers to maintain it"

Those criteria tend to be overlooked when comp scientists and expert engineers design what they consider "good languages". So many good designs have been killed by gatekeeping or snobbery.


@calcifer @rafial Phrases like "gatekeeping" and "snobbery" are "sus af" as the kids say. We do want gates to keep out the incompetent. We do want snobs using taste to choose the better solutions.

@mdhughes @rafial we don't want gates to "keep out" anyone. No one should stand at the gate of capability or knowledge and say "you shouldn't learn this". We want to provide mentorship and education, not tell fledgling developers "you're not worth talking to until you learn a 'good' language, and oh by the way if you can't learn it without accessible manuals and guides then you aren't worth teaching". THAT is gatekeeping.

@mdhughes @rafial We don't want snobbery. We don't want people who look down on others because they disagree with or don't understand our choice of tools. We want people who have taste driven by experience, yes. But not people who will say "oh this language doesn't fit the way you think? Then you're not a real programmer". That's snobbery.

And incidentally, it's my experience that snobs are, the majority of the time, on the short end of Dunning-Kreuger. So pattern suggests that if someone is language/paradigm/toolchain snob, they probably shouldn't be listened to.

@mdhughes @rafial you want good languages to get popular? You have to understand "good" isn't good enough. They need to be made accessible. The toolchains have to make sense to younger programmers. The community needs to be welcoming and supportive. The entire ecosystem has to solve problems you can articulate to people who are not masters of the art. The system has to play well with the problems people want to solve.

The "bad" languages are successful because they addressed the people part of the equation better than the "superior" languages.

@calcifer @mdhughes @rafial
I can't see earlier posts in this thread, but I have years of stories about the Haskell community that boil down to exactly that.
1. welcoming community
2. solves real world problems
3. plays well with other languages
4. decent tool chain

@calcifer "We"? You have a mouse in your pocket? Your opinions are yours alone, don't misrepresent them as some mob behind you.

Education has been tried, and the demands of hordes of unqualified children have driven it from reasonable languages like LOGO (for small children), Pascal, C, and Scheme, to Scratch, Java, and Python so they'll "be ready for enterprise" rather than learn anything hard.

The world is better with *less* bad software written by the unskilled.

@mdhughes I do in fact have a mouse in my pocket. His name is Euclid.

I also know when someone is has an opinion they're not willing to reexamine because they are convinced they must know better than everyone. There's nothing but a silly fight to be had like that, so I'll leave you to your tower and you can leave me to my little research dungeon.

Sign in to participate in the conversation

Mastodon x appdot.net = fun? A place for former ADN users - on the whole