Programming languages - likes and dislikes

Welcome, catdaddy! I’ve never tried Fish before. Do you find it very different from bash, including for scripting, I wonder? I think the nature of shell scripting is that most people will only use it when they absolutely have to - at least that’s how it is with me. I’d rather use Perl than bash but at times bash makes most sense. Some recommend using Python instead now, for anything but the most basic scripting in bash. I really should get around to learning it some time soon!

How fascinating! Thank you for that. Maybe something like Gnu Octave would be used now, or, it being similar to Matlab, that, as an alternative to APL? I’ve long been fascinated by the history of programming languages too. I learnt a fair bit of FORTRAN for that very reason, can’t remember which version. I also think Lisp and Prolog were fascinating for early AI work. The Pascal / Modula-2 / Modula-3 series were also very interesting just before object-oriented technologies started sweeping the board, though I have to say, I still admire the power of functional programming and have yet to find anything to match it’s elegance!

I’ve done very little fish scripting because I don’t really script much but I find it more pleasant to write fish scripts than bash and posix scripts. It’s similar to ruby where you end blocks with the keyword end. It’s a much saner scipting language in my opinion.

1 Like

Like i said, i have very little knowledge of programming, and after reading the replies here, a question came to mind. (maybe a stupid one, but here goes), do we need so many languages? And why?

Or is the why part something like, “because we can”?

1 Like

I think it’s like Linux distributions. From what I understand, programming languages were mostly created out of scratching an itch.

1 Like

This immediately made me think of a very commonly thrown out phrase in the Ruby community, “There’s a gem for that.”

1 Like

This used to drive me bonkers too when I was an undergrad especially. I just didn’t understand why we needed slightly different syntaxes for the same while loop. I thought C++ and Java pretty-much sticking to C syntax was a real win. I think JavaScript followed suit.

When you look at other languages whose approach is very different from imperative procedural / object oriented languages, their having a different syntax makes sense. For example Haskell’s functional approach to program suits a very different syntax, as does Lisps completely different approach and Prolog’s to cite two examples. Ruby is very different. I can accept its syntax being different. But why did Python need to be so different? To get rid of {} and ; ? Maybe.

I haven’t really started exploring the world of gems, but apparently the Ruby ecosystem is quite something. I hope it’s well organised. Perl seemed to have pioneered the repository idea too, as far as I am aware, but it seemed like a huge unorganised mess to me, with very unpredictable quality and reliability. Maybe I was being over-cautious?

I didn’t know this thread existed. My first programming was done in Aston-Tate’s dbase. Computer Associates sold a compiler for dbase that allowed scripts to be run as standalone programs in DOS. The compiler I used was named “Summer of '87” – that’s as creative as they could get. What was really creative was a book I found for DBXL (a dbase clone). That book had the most wonderful examples and use case scenarios I have read. Each function or call in the entire book was appended with an example that was like:

John runs a dairy farm and has 512 cows. 430 are producing milk. 27 of those non-producing cows have purchase dates older than 7 years. At the current market rate of 87 cents per pound for beef on the hoof, and $129 per ton of silage, let’s mine the data to determine if now is the best time to sell off some of the non-producing cows and which cows should John sell first as his trailer only holds 14 cows.

Now it might not be exactly like that for each one – but I remember it to be so creative that it caused me to start thinking in code when trying to tackle any problem. That book fueled my mindset for solving problems with coding.

Today I read documentation that’s for the most part totally absent of creativity. I miss that.

2 Likes

Well I’m glad you’ve found this thread now – I think I raised this discussion way back when this community was first started, so it’s good to see the discussion continuing now :slight_smile:

I never coded in dbase, though I have heard of it of course, in '87 I would most likely have been hacking in 6502 Assembler on my C64. I don’t think we got an Amiga until about '89 or '90. I was still at school and PCs were a little beyond me at that time.

Now, I personally fear at times that the internet, and everybody wanting everything instantly, including “knowledge” means that because of the constant rush, some depth is lost, including the kind of creativity you mention. I miss that too. That’s partly why I still love to sink my teeth into a chunky book that wrestles with the meat and goes all the way through to the bone, as it were. At the moment I have two fat books on Ruby. Next, I’m guessing it will be Rails, which is what most people seem to use Ruby for.

1 Like

I’d recommend exploring gems. Gems are at the core of ruby. Gem and Bundler are part of a Rubyist’s toolkit?

1 Like

I get the sense that gems are like the community contributions but I’ve only been learning the language for a couple of weeks, in earnest, so I’m just finding my feet at the moment :slight_smile: I am hoping that not just the language, but also the community is somewhere I can find myself fitting in, though I’m also looking at the much more traditional C++/Qt route for KDE development too, in the coming months, hopefully.

Has anyone tried out Pyret? I recently heard about it on THIS episode of Functional Geekery.

I’ve only skimmed the first few pages of the book A Data-Centric Introduction to Computing but so far it seems interesting. It’s intended to be a language to teach programming/computing with.

1 Like

I’ve not heard of it until now but will have a look, thanks :slight_smile:

My favorites are very old like me: SPL, a subset of PL/1 we used for system software in the seventies. It did not have any IO and it allowed to base data structures on up to 4 hardware registers using the reserved name Global1 to Global4. The other language I used in the eighties, was from the UK: RTL/2 or Real Time Language/2. We even paid for an improved code generator, where again 4 register were assigned as base for the most used RTL/2 data structures. RTL/2 had the same constructs as C, but I preferred the layout of RTL/2. Later we even had an automatic translator from RTL/2 to C. Afterwards I made a career and I was doing architecture and management, so I stopped writing programs myself.

For the remainder I used assembler a lot.

1 Like

I first taught myself to code on a C64, in BASIC and fairly quickly found the limitations of what could be done with it, so found myself having to learn 6502 Assembler. That taught me a huge amount about computers and architecture which helped immensely when I went to college to study computing (which also included some assembly programming but not that much). Relatively recently when I was looking at the code of Minix as a stepping stone to the Linux kernel I did delve again into some assembler. There is a beauty to working at that level too. In some ways it’s exerting the greatest control we can have over the machine.

More recently I’ve been working with Ruby, which I love, and also some JavaScript, which for web development, really is essential, I find!