
A+, the Programming Language of Morgan Stanley - ausbah
http://www.aplusdev.org/index.html
======
zwkrt
I have seen two similar “company-specific” languages in my relatively short
career:

The first is MUMPS, primarily used in the healthcare industry. The second was
the Mason templating language used at Amazon, which allowed inline integration
with Perl, similar to PHP, ASP, JSP, ERB, etc. Both were wildly frustrating to
work with because the real knowledge was all tribal, they didn’t integrate
easily with anything, and they seemed like a waste to learn since I knew the
knowledge was not transferable.

The commonality to any language used primarily in a single industry is that it
is dead on arrival. As soon as the original maintainer is gone the language
freezes. Things the maintainer may have considered bugs become specs, things
to-be-done never are, and no one can be truly at the helm when the language
needs to respond to change over time.

A company/industry is not in a good position to maintain a language, they
simply use languages as-is to solve their problems. Think of it as the
industry considering expenditures on improving the language as capex, and a
company doesn’t spend capex unless it has clear bottom-line justification.
“The devs are unhappy” is not such a justification, certainly one not
understood by accounting.

I know this isn’t always the case though, are there such languages that seem
to be thriving?

~~~
lloydatkinson
Custom languages like that are one of the many reasons I said no to a job
offer from Capita. Amongst other things I'd be working on the payroll system
(something to do with it, I forgot since) with their custom language.
Absolutely not transferable in any way and as you say probably tribal
knowledge. Can't imagine how frustrating that sort of thing is...

~~~
hhas01
Of all the reasons to say “no” to a job at Crapita (see Eyes passim), having
to pick up a custom language sounds like the least of them.

Though considering payroll’s one of the oldest and most solved problems in
software development (Hi, LEO!) I do wonder what benefits a custom language
could over current over off-the-shelf tools. Could be a legacy thing, in
league with those old COBOL mainframe systems you hear about, lurking in
shadows, waiting to teach all you kids nowadays a thing or two about walking
fifteen miles in snow, uphill both ways… [cont p.94]

------
hhas01
I think the key to understanding APL is realizing that it’s not built for
Programmers; it’s built for Mathematicians.

Here’s a fine half-hour introduction to APL in action:

[https://youtu.be/_DTpQ4Kk2wA](https://youtu.be/_DTpQ4Kk2wA)

1:00-2:00 is the motivation for APL—or any DSL—in a nutshell. (“conversational
computing”, “users who are [not] professional programmers”)

Or, if you’re happy to sit back and see math magic happen:

[https://youtu.be/a9xAKttWgP4](https://youtu.be/a9xAKttWgP4)

For all its mechanical advances over the last 40 years, it’s shocking how far
our technology has regressed philosophically.

------
beagle3
Last new feature added 16 years ago; Last fix (for 64-bit) done 11 years ago
-- but likely, real development stopped a decade before that, when Arthur
Whitney left MS.

What he did later was create K (and kdb+ and now shakti), which are
significantly farther away from APL (of which A+ is mostly just a very
opinionated dialect), but which I personally find overall cleaner and more
consistent.

~~~
ajflores1604
I literally just heard about K for the first time while listening to fast.ai
founder Jeremy Howard talk about it in a podcast, less than 5 minutes ago.

([https://youtu.be/J6XcP4JOHmk?t=696](https://youtu.be/J6XcP4JOHmk?t=696))

Do you recommend any resources for exploring these array languages? They sound
really interesting.

~~~
arthurcolle
You can evaluate the 32-bit version of q by downloading the binary from here:
[https://code.kx.com/v2/](https://code.kx.com/v2/)

The setup is a little annoying and you have to make sure q and the license
file are in same directory or something, I vaguely remember that the error
message was pretty cryptic but it is definitely worth taking it for a spin. It
is an interesting piece of engineering and there are many interesting example
scripts that you can find on the Web, although actually becoming productive in
q is another matter entirely.

------
hestefisk
Ghosu is another example, a JVM based language for the Guidewire suite of
policy and claims systems.

------
throwerhover
Anytime I think of a great DSL I think of Erlang.

