Let's talk about programming languages

Being in the social circles I am, I get a near constant barrage of half-thoughts and status updates for learning any given language. No kidding, I’m on SDF, those folks get into weird stuff. :slight_smile:

Anyhow, I wanted to share some thoughts, get some feedback. Not in one of those, “here is the best thing”, but more of let’s talk about what we know, where we are individually, and help point each other along.

Let me start by mentioning languages I am not interested in: C and family, Lisp and family, Assembly-type things. I don’t like the way those think, or perhaps it is easier to say, it is too much to overcome for me at this point. I like Perl, but I decided a long time ago I’d rather learn python, at a time when that seemed like it was a choice to be made…

Okay, so I’ll just get into it, with impressions, because I don’t really have much of a weight to these.

Go

I use Hugo, and that has been my primary exposure to golang. But I’ve seen and used some other one-off apps in go, and it is pretty cool. I like how portable it is, how the binaries work, and it seems fast. Like, all the go apps I’ve used, they are fast.

If I explored this I don’t think it would change anything for me. I don’t know if go is good for game dev.

Python

I use a lot of python, as an end user. I often had a difficult time using python software, there is a wall I don’t quite grok intuitively. I also can’t get a read on if python 2 is ever going to be superseded by python 3, and it is strange to me that I have to check for that for every project I interact with.

Python seems like a fun way to make games, and a lot of the game things I want to use are python.

  • Evennia
  • Pygames
  • Ren’Py
  • libtcod

Python is great for linux admin, and I’d definitely benefit from that, personally. But I’m not sure if I am going into sysadmin as a career. Maybe data science stuff, though.

Bash

Kind of a language, and sometime I’m gonna always gradually learn more about. Or, I could really crush this and become an expert. :slight_smile:

Rust

This is a thing, and it seems to be made for the web, at least where I hear it talked about. And that is interesting to me. If we are using web tech in this way, I want to know what’s going on. But I really don’t know much about it, how useful it is or for what kinds of things. I’m not valuing popularity, but note that I hear about go a lot more, and often in the same context. Thoughts?

JavaScript

I’ve never felt compelled to learn this for its own sake, only to use for video games, which seems like a stupid use of this language, which for years was a widget thing in web browsers. So: bias. But with the many things that use JS, all those frameworks and weird things, maybe it is worthwhile.

Professionally I’d possibly benefit, but realistically I won’t; the kinds of folk that pay for JS dev are not generally the kind doing good things on the web.

Lua

Mainly looked at this for game dev. Love2D, bunches of others, seems like lots of frameworks include this on top of another engine.


I’m open to discussing other languages, too! Like, I’ll never turn down knowledge. If I should learn Lisp, let me know (you weirdo!). :slight_smile: And maybe there are other, cool things out there I should know about, let me know them! Especially if it concerns game dev. Of course let’s keep it FOSS, because I’m not interested otherwise.

Thoughts:

  • Go
    I never looked into it and don’t have opinions on it; Google’s early heavy investment in the language creaped me out; though that was probably over reactionary on my end. Nothing about it calls to me though.
  • Python
    I learned a very small amount of Python one time and promptly forgot it all. I liked it. It has lots of game development resources. I never invested in it a whole lot because I bias towards compiled languages; though you can compile it too that never seems to be its focus. Its also what MIT standardized on for intro programming languages after they phased out lisp. Python also lost it’s dictator for life and kind of had a trial by fire to develop a new governance model and they seem to be trucking with it. Python gets a new governance model [LWN.net]
  • Bash
    I always wanna be better at shell scripting, but i learned just enough to get by and plateaud. I find it hard to carve out the time.
  • Rust
    Rust actually seems to be the exciting new kid who is worth actually worth the fuss. Rust came out of a Mozilla research project on how to write system code more securely while still being high performance and good at web and networking applications. Its supposedly as powerful and as fast as as C/C++ but with a lot of the headache reduced with fewer room for security vulnerabilities and lots of cross platform bindings. Mozilla’s Quantum engine enhancements have large amounts of Rust components for both speed and security. If I were not doing the Lisp & Qt things as my next two goals, Rust would be my next likely contender. Oh and Rust has done a pretty decent job of being available on BSDs which is something newer languages sometimes forget about.
  • JavaScript
    Javascript is getting to become a first class citizen for normal application purposes these days. Hell there are GTK bindings for it. While ive kinda ruled out investing any time with it for HTML ive thought on occasion it might be worth circling back to for app development before. Supposedly Elequent Javascript is supposed to be the go to for introducing javascript without mucking about with it in HTML btw. (Creative Commons Licensed).
1 Like

Lua and Love2D specifically are up there with Rust for me in desirability to pick up. One thing that annoys me htough is that Lua and Love are not API stable. Games written for Love2D 10.5 have no garuntee of working on Love2D 11.0. etc.

Most GNU/Linux distros also only have one version of Love packaged.

This is surmountable, but seems kinda awkward as otherwise Love2D looks like a delightful write once run everywhere sort of thing.

1 Like

Okay, here’s a thing I’ve gotten down to, and mind you, I’m scraping bedrock here, emotionally: in the past, while trying to learn different languages, I often felt they were fighting against each other. I was fortunate to use HTML all the time, so I just picked it up, and keep on top of it and CSS (and I feel fine at my current level, I can expand when I need, a feeling I’d love to feel with another language).

So, is it plausible to learn say, Rust and Python? I know the difference between compiled and parsed, but I don’t know if the syntax will confuse me, or the logic or conventions are contrary.

From Features - Godot Engine :

Script with full freedom

More choices than any other engine.

  • GDScript Python-like scripting language, designed to make games with zero hassle. Learn why our community loves it.
  • Full C# 7.0 support using Mono.
  • Full C++ support without needing to recompile the engine.
  • Visual scripting using blocks and connections.
  • Additional languages with community-provided support for Python, Nim, D and other languages.

Godot is a target for me, though perhaps a moonshot. Though I kinda want to just reuse others’ work and remix stuff. So still a target.

Is GDScript enough like python to benefit from knowing it? Probably. :slight_smile:

I don’t wanna assume our learning styles are the same; and its hard for me to guess without knowing what about Python makes you click with it; and what about C++ doesn’t make you click with it? I also have never compiled any Rust code myself; just admired the project from afar.

That begin said I’d wager you would have to change gears a bit going back and forth. Rust is closer to the ‘C’ family in terms of syntax I think curly braces and all.

GDScript & Godot are in my parking lot to get to aswell. Though people tell me if your primarily doing 2D you get further quicker in Love2D initially.

Also Wikipedia I think might be old there; I think Godot is depreciating some of those scripting options.

I didn’t check Wikipedia, that is from their current features page, which I thought might be more up-to-date. I do recall them dropping something, but I don’t know what! :slight_smile:

Despite not coding in any of these, I’m apparently a language drama watcher, as I track all the communities and leadership of nearly all open source things (that I’m aware of).

I’m glad to hear they are rocking, I didn’t know how long to wait before we knew where that landed.

I just wanna add here that someday I wanna circle back to Pascal. The Free Pascal project seems super cool and fun; and Turbo Pascal was the very first language I learned as a kid; and I never got around to learning the Delphi end of things.

EDIT

ALSO I just wanna add archive.org has a ton of old school basic game programming books.

I’ve been meaning to someday go to town on those. Either with a FLOSS basic interpreter of choice; or with RiscOS Open which ships with a modern and backwards compatible BBC Basic. (Which many of those books optionally target.)

1 Like

Your probably correct then. I noticed a wikipedia drift compared to their documentation a couple weeks ago and so that fact is just rattling around in my brain. I thought they had reduced there languages to fewer; but know they dropped things like lua which also arenot on this list.

Then again aren’t we all? ;-p

2 Likes

I’m not interested in PHP, which is surprising to me. WordPress, Nextcloud, MediaWiki, there are some heavy hitters. But I haven’t learned it yet, so obviously there is something holding me back. It is probably that PHP feels like it fits a very specific function: building web apps.

I know PHP is used for other things, but it is for hypertext. And I’m not looking for that. I get by with WordPress template tags. :slight_smile:

1 Like

I did some BASIC, in MS-DOS and Win 3.1 for Workgroups. :slight_smile: I’m pretty sure it didn’t get further than a bunch of GOTO lines, though I did modify a game of Snakes.

Is BASIC, um, good for anything? :thinking: Aside from fun, learning stuff?

Okay, I went and read up on a whole lot, and kinda have a plan formulating (though I’d love to hear more from folks): learn python.

I mean, I can rattle off game things that use python, and I know a lot less about all the rest. There are tons of things that bug me about python, another indicator I’ve been crushing on it for years. :stuck_out_tongue:

Also, a bunch of folks wrote on the internet that Rust is a horrible first language, and that angered me into thinking about it rationally, and I don’t have anything I want to do with Rust right now. Whereas I want to make all the games. And Rust will get there, when I am ready to build my own server for the thing I am doing. :slight_smile:

And now I’ve said it. So I’m sure the universe will start turning.

Ruby

_why the lucky stiff’s poignant guide to ruby is lovely and there are cute foxes. https://poignant.guide/

“matz is kind so we are kind” “matz is cat so we are cat”

http://rubykoans.com/

Let’s talk about the phrase "let’s talk about [programming language]"

wat: Wat

I wouldnt use it for much outside of that but people could.

I have many thoughts on this all, but am crunched for time so will condense it.

PHP

I used to not like working in it, because it felt old and not hip. However, after PHP7 came out with it’s massive speed improvements, among all sorts of other goodies, I’ve changed my mind. PHP 7.2 is fantastic, and eye-bleedingly fast. I will go as far as to say… if what you’re making is for the web, be it a site, or API endpoint, or online game engine, then it should be in PHP. Unless you need it even faster, in which case…

Go

I haven’t used it in a little while, but the work I did in it felt so fresh. It takes more work to do anything, but holy moly is it fast. See: https://blog.iron.io/how-we-went-from-30-servers-to-2-go/

Rust

I definitely want to check it out, as it appears even faster than Go, and is gaining momentum.

Python

This used to be my white whale. I talked, often of how I’d learn Python so that I could do web server things AND applications. Seemed great. Well, after working with it some at a previous job, I no longer feel that way. Reasons:

  1. It’s not nearly as fast as PHP7. see: https://benchmarksgame-team.pages.debian.net/benchmarksgame/faster/php.html
  2. I find how includes work in Python to be less clear than namespaces are in PHP
  3. The lack of curly braces and indentation being a core part of the language just don’t work well for me.
  4. The trickiness to actually get a binary out of it really bothers me. I realized I want my apps to compile.

JavaScript

It’s great for UI/UX on the front end. I think the JS front-end frameworks that push a ton of processing to the client are a form of class discrimination, as if you have a lower end machine/mobile your experience will be pretty crappy. JS for web games is a different thing, obviously you need a lot of processing on client side. But info sites or really lean apps… making the client do a ton of work isn’t cool.

Ruby

I’ve used it a little, I kinda have similar feelings about it vs. Python. If I’m doing web, it might as well be PHP because it’s mucho faster.

Lua

I have the Lua book on my shelf, and do indeed want to learn it at some point, for 2D game reasons. :slight_smile:

1 Like

I wanna throw Haxe out there as a language I keep peeking in at. Both the Neko VM they target and the fact that they support compiling to a vast swath of runtimes is interesting to me. It seems potentially very modern and almost ridiculously cross platform, supporting multiple methods of execution on target platforms.

It seems to forget the BSDs exist though; and the community has jumped graphical frameworks like two or three times in the years ive been following it, which gives it a greater API instability feeling than things like Love2D.

1 Like

Not general purpose, but SPARQL is something I expect to use a lot in the future.

Libre lounge had an episode with the current lead developer of Fennel. Which sounds very clever. It’s a lisp/scheme family language that compiles to lua bytecode. Ive seen chatter about integrated it with love2d elsewhere. Seems interesting and related to my current knot of interests. 30: Fennel with Phil Hagelberg -- Libre Lounge

Been going down a lot of rabbit holes lately. Free Pascal + Lazarus seems to be kinda interesting. Or atleast is so to me, not just because of my nostalgia for Turbo Pascal but also because of their community and their commitment to write once compile everywhere. Theyve done a good job of making object pascal a fist class citizen everywhere, not just desktop applications buarduino style microcontrollers and arm based android devices.

They have a high level widget library that runs native on all major desktops and widget sets, and their rapid design tools, have a plugin available for building android UIs (After fiddling with the google NDK).