What I’ve Been Up To and New Projects
You may have noticed that, since updating the WizFight source code earlier this month, I’ve been fairly silent. For the most part, I've been doing a lot of research. If you follow me on Twitter, you've probably seen my dozens of references to various programming languages that I've been looking into or somesuch. I've looked into quite a few programming languages.
Among others, I've installed the compiler/interpreter for and/or begun working with:
Agda
Algol 68 Genie
APL
Aya
BCPL
Cixl
Elm
Erlang
Forth (gForth and RetroForth)
Fortress
Futhark
Idris
Julia
J
K
Klong
MUMPS
Q'Nial 7
Ursala
...and so on and so forth. What am I going to do with all of these? I'm not sure yet. It's quite possible that many will never be used in any serious capacity. I was simply interested in working with them and, thus, began setting up a development environment for them.
The two languages that I have really begun to work with in recent times are Perl 6 and K. I've become quite fond of Perl 6, in particular, as the language really embodies the mindset of "there's more than one way to do it." It's one of the most flexible languages that I've ever worked with and I genuinely feel as if I've barely scratched the surface. I haven't even begun to use features such as its optional functional programming syntax, much less really internalized its builtin Bash-like functions. It's a great language and one that I highly suggest looking into. The Rakudo implementation is said to be ready for production use, granted you deploy to MoarVM, albeit the number of available libraries is fairly small for the time being.
K is a language that I'm learning in order to learn the ways of array programming languages. One of my goals is to learn at least one language from each major paradigm, if not for use of the languages in question, then for the added perspective that learning new paradigms will bring. Rather than start with functional programming, as many probably would, I started with array programming.
While I've yet to spend quite the amount of time that I'd like on learning K, I will say that, while array languages are quite different, and can be difficult to wrap your head around due to a combination of the focus on math over logic and their insanely terse syntaxes (this Project Euler problem 1 solution exemplifies both points), I can honestly say that, once you begin to figure the paradigm out, it is quite gratifying.
To reinforce my learning of various languages that I take an interest in, I have started two long-term projects that were chosen due to the ability to be repurposed for as many programming languages as I'd like:
A fork of Karan Goel's Mega Project List, which you can find here.
Ports of the games from David Ahl's 101 BASIC Computer Games, which you can find here.
I intend to slowly chip away at each of these in the coming months, as well as the problems on Project Euler. I've folded my Project Euler solutions into my fork of the Mega Project List, which is linked above.
So far, the 101 BASIC Computer Games ports have been a valuable experience. I had never worked with programs written in a dialect of BASIC that still primarily used line numbers and goto statements for control structures and the process of porting that logic to a modern language is a rather good exercise. Trying to keep track of the gotos for more complex algorithms, such as Amazing's maze generation algorithm, can be quite difficult, so I've actually started mapping the logic out on paper. Overall, I'm having quite a bit of fun with it.
As for WizFight 64, it's still in pre-production. There are several details that I still need to figure out, including how I intend to create the 3D models that will be used in the game and how I'm going to set up the N64 development environment, as I'd like to be able to use both BASS, which I have set up on Linux, and the official N64 SDK, which only works on Windows 95, 98, and XP. I'll be sure to keep you posted as the project progresses.













