When a programming language's website says it's a "general-purpose language", I already kind of want to not use it, because it probably won't offer anything that I can't get in another language.
I'd like to see a world where every language serves exactly one area of programming, and is highly specialized for that area.
A weird thing about being 50 is that there are programming languages that I've used regularly for longer than some of the software developers I work with have been alive. I first wrote BASIC code in the 1980s. The first time I wrote an expression evaluator--a fairly standard programming puzzle or homework--was in 1990. I wrote it in Pascal for an undergraduate homework assignment. I first wrote perl in the early 1990s, when it was still perl 4.036 (5.38.2 now). I first wrote java in 1995-ish, when it was still java 1.0 (1.21 now). I first wrote scala, which I still use for most things today, in 2013-ish, when it was still scala 2.8 (3.4.0 now). At various times I've been "fluent" in 8086 assembly, BASIC, C, Pascal, perl, python, java, scala; and passable in LISP/Scheme, Prolog, old school Mathematica, (early days) Objective C, matlab/octave, and R. I've written a few lines of Fortran and more than a few lines of COBOL that I ran in a production system once. I could probably write a bit of Haskell if pressed but for some reason I really dislike its syntax so I've never been enthusiastic about learning it well. I've experimented with Clean, Flix, Curry, Unison, Factor, and Joy and learned bits and pieces of each of those. I'm trying to decide whether I should try learning Idris, Agda, and/or Lean. I'm pretty sure I'm forgetting a few languages. Bit of 6502 assembly long ago. Bit of Unix/Linux shell scripting languages (old enough to have lived and breathed tcsh before switching to bash; I use fish now mostly).
When I say passable: in graduate school I wrote a Prolog interpreter in java (including parsing source code or REPL input), within which I could run the classic examples like append or (very simple) symbolic differentiation/integration. As an undergraduate I wrote a Mathematica program to solve the word recognition problem for context-free formal languages. But I'd need some study time to be able to write these languages again.
I don't know what the hell prompted me to reminisce about programming languages. I hope it doesn't come off as a humblebrag but rather like old guy spinning yarns. I think I've been through so many because I'm never quite happy with any one of them and because I've had a varied career that started when I was pretty young.
I guess I'm also half hoping to find people on here who have similar interests so I'm going to riddle this post with hashtags:
Been having fun with #gleamlang , made more than a hundred lines of code with it. It's really refreshing having a language that compiles fast and takes barely any memory and cpu to run.
Not having to care about the build tool too much, hundreds of compiler flags, language versions, compiler plugins, formatting plugins, or any of the usual things that fill the brain I'm used to in #scala is a huge breath of fresh air.
For real, whoever is saying that F# or OCaml require a PhD in Math or are languages just for math, science, and academic stuff is completely lying to you, it is no harder than learning JavaScript/python or any other language out there.
I learned #FunctionalProgramming to escape the imperative programming languages, which in turn got me interested into #Compilers and #ProgrammingLanguages. Turns out, most of the real-world compilers are written in C and C++, so here I am back at square one.
After years of avoiding it for decades, I taught myself #Cpp in the last couple of weeks. So anyway, does anyone want me to write a series of #blog posts about making a #Lisp interpreter (https://github.com/kanaka/mal) in C++?
I've been learning Lua this week for no reason (LÖVE), and I don't know why devs joke about "arrays starting at 1" when this shit is more hilarious IMO
I find it hard to learn a new programming language that has little adoption, for two reasons:
It's often hard to find the libraries that I need to do something
If I don't feel like I'm getting a great benefit of knowing the language or like I'll be able to do lots of cool stuff once I know it, I lack motivation.
Does anyone know of an APL compiler or transpiler that can generated Vulkan or OpenGL shader scripts? (Free/libre would be most appreciated.) I think Aaron Hsu might have engineered something like this at some point, but I can't find anything about it at all right now, probably thanks to our amazing new "AI-enhanced" search engines.
#OCaml is adding ownership vs unique (mut) references vs shared references distinction – but with no generic lifetimes (thus references must be local to the callee to not prevent unique access in later calls – function calls can’t leak them to outside state).
I'm currently looking at annotations / decorations to a research programming language to estimate runtime non-asymptotically (i.e. gimme a number) in a simple execution model. I thought there might be (have been) some similar projects, but I'm not really sure where to look. I vaguely remember some work on proving loop bounds (e.g. polyhedrally). Any hints?
What do you say to whitespace-sensitive/oriented programming languages, assuming your IDE supports the whitespace-behaviour really well, and all the tooling around it is generally good?