Programming languages - likes and dislikes

Rosetta Code is probably the best place for finding new languages. Just have a look at 99 Bottles of Beer task in… 307 languages/dialects. :wink:

1 Like

Job/Professional
Python - The majority of my programming.
Perl - First language I ever learned. Still used when I need to get something done quick, usually something to do with processing text.
C - When I need to squeeze some better performance out.

School
Visual Basic - Intro to Programming. Haven’t used since.
Java - Intro to OOP Class. Never liked it and still don’t. Sorry!
C++ - Advanced OOP Class. Extremely important and interesting to learn. Though, I’d rather write C or Rust to be honest.

For Fun and Experimentation (Yes, I’m nerdy like that)
V - An awesome, simple, yet very powerful language inspired by Go, Rust, and C.
Crystal - Statically typed and compiled language that reads like Ruby. Awesome project.
Raku - Formerly Perl 6. Literally has every single functionality you can think of and more. Needs optimization in the Rakudo Compiler & MoarVM still, it runs too slow for production right now.
Chapel - A parallel programming language intended to replace C + MPI/OpenMP. Really great syntax and includes both high level and low level concepts. Focused on scientific computing.
Rust - Basically the future of systems programming. Steep learning curve if you’re not coming from C++. Once you get the hang of it, very enjoyable to program with.
Vala - Most recent language I’ve been learning via GTK development tutorials.

I love comparing and contrasting programming languages. It is just so interesting to see how different developers tackle the same problem in their language.

I think I really just love language in general :man_shrugging:

4 Likes

I’ve tried V recently. It looks like simplified Go. Still in alpha and not ready for serious work, but I will definitely keep an eye on it.

1 Like

Yep, it is definitely still in alpha. However, I really hope it shapes up and stabilizes soon. It combines a lot of the stuff I love about different languages into a single language that is simple to learn, read, and write, allowing you the low-level control of something like C and the flexibility of something high-level like Python.

For anyone interested, the V official website can be found here.

1 Like

Of all the languages you’ve mentioned, Rust is the one I’m most interested in. I agree it’s a good one for the future of systems development. I think there’s even an OS being written using it?

I have used Perl too, was groundbreaking for scripting when it first came out. It’s very handy for quick text-tasks, especially, as you said, though it’s write-only :wink:

I recommend some functional or logic languages too, if you’ve not tried them!

2 Likes

You can’t call yourself a real programmer if you haven’t written anything in Perl. :wink:

3 Likes

Besides HTML, which I know isn’t actually programming, the first programming language I learned was C. While I had fun, I didn’t learn enough to actually be of real use. Eventually, I moved on to Java, C++, and an abortive attempt at C# on Linux, but didn’t really have any use for them either, and my life was automated for several years with mere shell scripting.

When I was in high school, I came across a problem in WINE that I attempted to work around with a Bash script. The problem proved to be more complicated than I initially assumed, and I settled on Python as an ideal language to solve my problem. The bug was fixed before I published the script, however, so my skills were never submitted to the scrutiny of the outside world.

I’m a student studying computer science now, by way of Java. I’m not a huge fan, but, to be fair, I haven’t spent as much time with it as some of the other people in this thread. :man_shrugging: Now that the semester is over, I can pursue my own interests. I have bought a book on Clojure to read this summer, and I may research Haskell as well. I have also been told that COBOL will be in demand when I graduate, as it continues to power our infrastructure even as fewer and fewer people bother to learn it.

2 Likes

My main reasons for preferring Java are that it’s syntax if very familiar, coming from a C/C++ background, it has an enormous standard library for doing pretty-much most things and it’s portable across the major desktop OSes.

Functional programming is very interesting and Haskell is worth a look for that reason. COBOL may be in demand but I don’t think it will be very satisfying to use as mainly I imagine it will involve maintenance work.

Python has nice features but being old-fashioned I still prefer to avoid scripting languages as they just don’t seem as safe.

If anything, I’d be looking at Rust now, but I recently heard Microsoft were trying to get a finger in that pie, which I hope they do not!

2 Likes

Early seventies 3-years post-university evening course on software engineering for other engineers:

  • IBM 360 Assembler
  • PL/1
  • Cobol
  • and a lot of mathematics and SW stuff like OS internal layering, parallel processing and semaphores, virtual memory algorithms, modularization, etc.

Work 1969 - 2010:

  • Assembler for Philips main frames, mini computers and PDP/11
  • SPL PL/1 for system programming
  • RTL/2 (An elegant UK real time language, with auto translator to C :slight_smile:
  • Clipper (i386) and C, both for only one project.
  • SQL

The last 20 years defining SW architectures for Waferfabs and Air Traffic Management Systems.

I liked SPL, which allowed you to base a data structure on a HW register and I liked RTL/2. Both languages allowed you to insert assembler code. I did not like C that much because of its { } syntax.

1 Like

Rust interests me a lot too; I just haven’t been thinking about it, I guess. I see that “the book” is available for free on their website, as well as in print form from No Starch Press. I’ll check it out if I have time. :smile:

1 Like

When I was very small one of my cousins was doing a degree in Computing. That was in the days of batch processing and he used to have piles of cards that used to be machine-read, bearing the programs; didn’t know enough about programming then to ask which language. This was in the seventies!

Very interesting thread, thanks to everyone who contributed. Personally, I can’t program in any language, but this is interesting for me to follow as my son has fallen in love with programming. He started with C++ which he has used with QT on a couple of projects for MX Linux. He picked up bash, vim script, Python, and dabbled with Rust and HTML/CSS/Javascript. He has written a few vim script pluggins to help with writting documentation in Asciidoc, automate his vim configuration, and help build the code for FIRST robotics. His Python web projects have been fun to use on our home server too. He loves to automate just about everything with bash and combines that with SpaceFM to do some cool file management tasks. At 14 he already eats and breaths programming, it is by far his favorite activity. As his dad, I’m just wondering how I can encourage this passion and direct him to opportunities that will help develop and deepen his abilities, and set him up to do programming as a career.

So far I have done the following:

  • Encouraged him to get involved with an open source project. He has done this with MX Linux and loves working with that project.
  • Taken him to a Linux Fest where he saw the size of the community and some of the ways open source is being used in businesses.
  • Encouraged him to stay involved with the High School FIRST Robotics team (he was their main programmer for the robot, but of course that season got cut short because of current issues)

What other programs or ways could he get real job programming experience while still in high school?

I noticed @DannyBoy mentioned that he was in a CS college program. Are there routes to programming jobs without a college CS degree or is a college degree still the best way to get a programming job?

2 Likes

Glad you’re enjoying the thread and all the best to your son. Sounds like he’s off to a flying start!

I’ve been coding since I was about ten and did my degree in Software Engineering. I moved into teaching for some years (Computing/IT) and find that tools and techniques in programming can change quite rapidly so my guess is to keep an eye on trends and work with languages/frameworks that can help get a foothold in the industry. Often prior to interview coding tests need to be passed. There has been talk in the industry of their not being such a useful tool as often they involve tricks and details that are not used in everyday coding, just to set a high bar to entry. If your son wishes to pursue a career in commercial development, of course experience in open source could be a fantastic start, but I also recommend looking at these coding tests. Just my opinion :slight_smile:

So, it has been said that BASIC corrupts minds. Might be true, as I started with BASIC/QBASIC “back in the day” as a kid. Well, its been almost 25+ years since I’ve messed with programming, and I wanted to get back into it. However, there is no more ‘BASIC’ or ‘QBASIC’. In fact, liner programming seems to have completely been eclipsed by ‘Object Oriented Programming.’
It could be that BASIC corrupted my brain to think in steps, or it could be that I simply am not object oriented by nature or something… but I have been having the hardest time wrapping my head around how programming works these days.

Thanks to @MichaelTunnell I purchased a humble-bundle pack of Python programming books. Its taken a lot of time here and there to start reading through these. Am I on the right track with tackling python, or should I be looking at something else?

I figured python seems popular and fairly universal. It appears to be a ‘scripting’ language. (As BASIC was). It’s just Object Oriented, and I’m trying to find a way to understand the ‘Object Oriented’ concept.

What’s the best way to learn Python? And is there a serious limitation I should be aware of with this language? Seems like Py 2.7 & 3.7 have a good number of incompatibilities, and 3.8 might be introducing some with 3.7?

1 Like

Wow, your son sounds brilliant, and you sound like an awesome dad! I wish I had had a home server to play with when I was 14. My parents are technical as well as very supportive, but not interested in FOSS, so I was out of the loop for a long time. The primary way I learned about Linux and programming from decades-old books bought secondhand or leftover from my parents’ college days—hence why I started with C instead of Python or JS. :upside_down_face:

As far as getting a job in programming goes, I really don’t know. I’ve never really explored the option of trying to land a job without a degree. Your question would probably be better answered by someone who has experience with the “real world.” :laughing:

EDIT: That’s interesting, Discourse has never had problems loading new posts before. My message was addressed to @mowest.

1 Like

Python is a great language to get started in. There shouldn’t be any problems with the transition from Python 3.7 to 3.8; just some added features that aren’t in 3.7. I wholeheartedly agree that Python 2 should be avoided at all costs!

While I have never programmed in BASIC myself, my mom calls it “stream of consciousness coding” and has told me several times how grateful she was to have learned Pascal first. If it makes you feel any better, trying to apply an object-oriented approach to every problem can also dig you into a hole, in my (albeit limited) experience.

1 Like

@DannyBoy thank you for the nice compliment and response. I wanted to encourage your journey as well. I think it is great that you are diving into programming, it is something that I wished I have learned. Personally, I think I would have learned in the structured environment of the class syllabus, lectures, labs, and assignments. College was wonderful for me as far as preparing me for my profession. My son has demonstrated an ability to self learn and self motivate to learn the next new thing. I kind of feel it would do him some good to get connected with programming in a work environment as soon as he is able so that he can see what direction he would like to go and then decide if he needs the college degree to take him to the next level, but since I followed the “college first” “job later” I’m not sure how to find him opportunities to do it in the opposite direction. I’m hoping that some of the coders in this thread might have some ideas.

By the way, you were mentioning in your original post now that summer is here, you were wondering what to look into next. My son has mentioned that having a project to work on really helps him dive deeper into a language. Besides the projects that I and MX Linux have given him to solve, he has found some value in doing Advent of Code. 25 days or 25 problems to solve using whatever language you desire. He is using this to further his learning of Rust. Maybe you would enjoy sharpening those Java skills with it, or trying to learn a new language with it.

Have a wonderful summer growing as a coder.

2 Likes

@jastombaugh I can relate. I remember falling in love with computers when I programmed an Apple IIe in grade school, but never got enough time on the computer to make it stick, since I didn’t have one at home. I have tried to teach myself programming, but I can’t seem to get it to make sense in my brain either. I think I need to do a better job of investing time, some time every day to either reading a book, doing a course, or working on a project for myself with a programming language, then hopefully the “Ah Ha” moment will happen. Have fun with Python, I’ve started this journey again recently, not with Python, but with something else, maybe this time it will stick.

1 Like

Depending on who you ask you may have dodged a bullet. I’ve worked almost exclusively in object orientated programming and this video rocked me pretty good.

I delved into C a bit but it’s looking like Rust or Golang is where I should be headed though ultimately you just learn what gets the job done.

“The most important programming video you will ever watch”:

https://www.youtube.com/watch?v=QM1iUe6IofM

1 Like

Interesting discussion about BASIC. I started-off with Commodore 64 BASIC which was a variant of Microsoft BASIC (of all things)! I think a major backlash at the time could have been because it did not support upcoming principles of “structured programming” i.e. careful thought-out constructs for paths of execution in decision and loop statements. BBC BASIC was widely praised because it incorporated at least some support for structured programming.

Visual Basic was the widely-used BASIC back in the 90s, having incorporated structured programming and also some support for objects, but not inheritance, which in those days was considered a life-saver for reuse of code. Unfortunately over the years inheritance has often been abused in poor hierarchy design and of-late there seems to be a backlash against use of inheritance, hence lack of direct support for it in Go.

Although my favourite language is Java, I do find it’s insistence on being “object oriented” very forced at times. In that sense I definitely prefer how C++ does not insist on enforcing a particular paradigm, though it has become a very complex language due to the flexibility it offers.