25 votes

What programming languages will you focus on in 2020 and why?

This question was inspired by this article:

As well as its discussion on Lobsters

So, what programming languages will you focus on in 2020 and why? Are there any languages, frameworks, or technologies you will not be able to focus on, but want to? Are there any that you will be focusing on, but do not want to?

58 comments

  1. [11]
    Loire
    Link
    Don't laugh: VBA I'm not in a CS field like most of you but I do a very significant portion of my work through excel in some fashion and in the last six months I've managed to automate a large...

    Don't laugh:

    • VBA

    I'm not in a CS field like most of you but I do a very significant portion of my work through excel in some fashion and in the last six months I've managed to automate a large part of my job down to a few button clicks. There are couple of functions I am having issues implementing with that will require a deeper dive into the language and possibly some time on stack overflow.

    I'm hoping enough experience with VBA will allow me to transition smoothly to something like Python one day, but those fancy new languages like Rust and... uh..."Elixir" are a long way off for me.

    17 votes
    1. ali
      Link Parent
      Programmatic thinking is much more important than focusing on one language. If vba helps you, it’s the best for you to learn

      Programmatic thinking is much more important than focusing on one language. If vba helps you, it’s the best for you to learn

      14 votes
    2. [7]
      Micycle_the_Bichael
      Link Parent
      I might suggest looking into C# as well. I developed a microsoft excel plugin for 3 years that was used by some pretty big names (Microsoft, Salesforce, KPMG Nunwood Consulting, LexisNexus) and...

      I might suggest looking into C# as well. I developed a microsoft excel plugin for 3 years that was used by some pretty big names (Microsoft, Salesforce, KPMG Nunwood Consulting, LexisNexus) and developed it all in C#. We started out working in VBA but found C# was just a bit more workable. When I was leaving we were looking at moving from .NET Framework to .NET Core so I can't help with that aspect. Not to say VBA isn't the correct solution for your use case, but more that it is rare where my excel development experience is relevant :)

      7 votes
      1. [6]
        Akir
        Link Parent
        I'd second that motion. Excel is like a multi-bit screwdriver; it can be used for many things, but for some things you are much better off using a dedicated tool. Learning a decent general-purpose...

        I'd second that motion. Excel is like a multi-bit screwdriver; it can be used for many things, but for some things you are much better off using a dedicated tool. Learning a decent general-purpose language is like knowing how to make those dedicated tools. Besides, the last time I checked (and keep in mind I'm an outsider with zero actual interest in Microsoft's programming languages), the newer versions of Visual Basic offer a coding experience that's surprisingly close to C#. Though I don't know if that's going to ring true for VBA.

        I'd be interested in what @Loire is trying to automate, if they're willing to share.

        6 votes
        1. [5]
          Loire
          Link Parent
          I have to send regular updates to our clients concerning petrology and positioning measurements conducted by our tools. The measured data populates our proprietary database which we then convert...

          I have to send regular updates to our clients concerning petrology and positioning measurements conducted by our tools. The measured data populates our proprietary database which we then convert to a reader friendly form for the client.

          My current process is producing a comma delimited text file from our database, having that automatically uploaded to excel, where some math magic is performed to create targets and projections and then having that data converted to a email friendly and readable fashion where it is then automatically exported to a Outlook email with all the desired email attachments.

          Right now I have it locked down to two button presses. One to refresh from the database and one to send the email.

          That's all well and good for me where I am familiar with the code, and how the whole process functions. Eventually I would like to pass it along to coworkers so that we align on a universal process. This would require the entire workbook to be locked down so as to prevent general users from breaking it. The biggest problem I am facing, which I imagine will end up being very simple and I just haven't found the solution yet, is allowing users to select their comma delimited file with the entire workbook under lockdown, since the file name and folder path will be different for each user, and of course processing the errors when they attempt to upload the wrong file.

          Once that's sorted I want to look into a process by which a trajectory plan can be uploaded and the current measured positioning is compared to the nearest point on the plan, where then a straight line distance from the plan can be projected to tell the client how far off we are.

          7 votes
          1. spit-evil-olive-tips
            Link Parent
            Since this sounds like an all-Windows environment, PowerShell is an option you might consider. For example, you can read a CSV file or send an email quite easily. Aesthetically, I find PS to be a...

            Since this sounds like an all-Windows environment, PowerShell is an option you might consider. For example, you can read a CSV file or send an email quite easily.

            Aesthetically, I find PS to be a fairly ugly language, but once you get past that it can be quite productive for the sort of line-of-business tasks you're automating.

            It would also be a good stepping stone to C#, as @Micycle_the_Bichael mentioned. Writing custom cmdlets in C# is incredibly easy.

            6 votes
          2. [3]
            Akir
            Link Parent
            This might be something you can accomplish fairly easily with shell scripts, depending on how CLI-friendly Outlook is. It's been ages since I had to write scripts for windows, but I believe at one...

            This might be something you can accomplish fairly easily with shell scripts, depending on how CLI-friendly Outlook is. It's been ages since I had to write scripts for windows, but I believe at one time you could drop a file on top of a script and it would run the script with the dropped file's complete path as it's parameter, which would make it really easy for your successors. If that doesn't work anymore (I'm honestly probably misremembering altogether), VBA has an easy way to summon a file selector.

            IMHO the biggest problem I have with your solution is that you're committing the one cardinal sin of Excel; using it to design printable reports. Excel formatting is so easy to break. Heck, formatting is easy to brake in any Office application. And that's less of a programming problem than a tooling problem. There are so many ways to tackle that problem that your head will spin from trying to count them.

            5 votes
            1. [2]
              Loire
              Link Parent
              The problem I have with moving into a more capable medium is that most of my compatriots are not at all willing to change their process. We paid a nice programmer in Venezuela to do basically what...

              The problem I have with moving into a more capable medium is that most of my compatriots are not at all willing to change their process. We paid a nice programmer in Venezuela to do basically what you suggested and he came up with a nice easy to us interface with decent UI and only a moderate amount of bugs, and absolutely no one switched to it because they are all so dedicated to the current Excel procedure. They may not even want to use my workbook if/when I ever release it. It's a real wild West of everyone using their own sheets.

              Once I move on from the excel project I will consider your idea though, if at the very least to make my life easier when it's all said and done. Stepping stones.

              VBA has an easy way to summon a file selector.

              Thank you for the link, Ill check it out when Im back on shift tomorrow.

              IMHO the biggest problem I have with your solution is that you're committing the one cardinal sin of Excel; using it to design printable reports. Excel formatting is so easy to break. Heck, formatting is easy to brake in any Office application. And that's less of a programming problem than a tooling problem. There are so many ways to tackle that problem that your head will spin from trying to count them.

              My fucking Christ yes. YESSSSS. You don't know how right you are. How long I spent tediously working on this fucking workbook until it output the exact format I wanted every time. Cells would inexplicably change shape in different ways everytime the email was created. cell borders would bold and unbold at random. It was positively satanic. I've finally gotten the demon spawn to do what I want it to do bit you are absolutely right that it was a huge issue.

              6 votes
              1. Micycle_the_Bichael
                Link Parent
                When I was working on my Excel project my manager just got used to features being impossible/bugs/hacks being completely independent of our code and being due to some asinine decision Microsoft...

                When I was working on my Excel project my manager just got used to features being impossible/bugs/hacks being completely independent of our code and being due to some asinine decision Microsoft made about Excel that we had to figure out a way to work around. Almost all of them were formatting/cell based.

                2 votes
    3. Akir
      Link Parent
      I'm not laughing. Sometime around the end of the month I'm going to be paid to attend a two-day training session in a complete garbage proprietary programming language called DELUGE. It's so bad...

      I'm not laughing. Sometime around the end of the month I'm going to be paid to attend a two-day training session in a complete garbage proprietary programming language called DELUGE. It's so bad has so little forethought that it's got me seriously pining for early 80s Microsoft BASIC. I swear that about 90% of the built-in functions that require numbers as inputs require them to be as strings.

      They should have called it DELUSION.

      7 votes
    4. gpl
      Link Parent
      The best language to learn is the one you'll use, and the language you'll use is the one you need. Best of luck.

      The best language to learn is the one you'll use, and the language you'll use is the one you need. Best of luck.

  2. [3]
    aphoenix
    Link
    Professionally: Python - this is my day-to-day "get things done" professional coding language. My shop is a python shop for anything of sufficient complexity (ie - anything more than a WordPress...

    Professionally:

    • Python - this is my day-to-day "get things done" professional coding language. My shop is a python shop for anything of sufficient complexity (ie - anything more than a WordPress site). Why? I fell in love with Python years ago, and I find it easy to ship working code that does what I want it to do. When necessary, we can optimize for performance in other languages, but it's frequently not necessary.
    • TypeScript - because when we are called upon for a single page application, we typically build it in Angular. TypeScript fixes a lot of the things that I find distasteful about JavaScript.
    • JavaScript - sometimes we end up just doing JavaScript though, for Reasons™ (legacy code, generally)
    • HTML, CSS - sometimes you just gotta do web things. When I started in the business 20+ years ago, the junior devs were the ones that we'd get to do this sort of thing; now it seems like many junior devs don't know what they're doing, and I end up doing more of this than I would like.
    • PHP - It's ubiquitous and if you don't know PHP as a web developer, you're going to have a bad time. WordPress solves a lot of issues, and the resale value of WP work is high. This is a bread-and-butter skill if you are in the business of designing turnkey CMS enabled websites that you expect your clients to be able to use with minimal training.

    Personally

    • Go - mostly for fun, but we do have a few AWS Lambdas that I'm going to convert to Go
    • Rust - entirely for fun and for interest.
    • Scratch / Scratch-like - My daughter has rediscovered her Kano Harry Potter Coding Wand, and it's been delightful, and I've bee enjoying trying it out with her. I've been slowly introducing more complex things along with it.
    11 votes
    1. [2]
      ThatFanficGuy
      Link Parent
      As far as HTML + CSS + JS are concerned, feel free to PM me if you have any questions. I'm not expert, but I have been doing it for five years now, so I could help you with the basics.

      As far as HTML + CSS + JS are concerned, feel free to PM me if you have any questions. I'm not expert, but I have been doing it for five years now, so I could help you with the basics.

      2 votes
      1. aphoenix
        Link Parent
        I thank you very much for the offer. I appreciate it, and I'll return it in kind; if you have any questions on anything above, I'd be happy to answer. The things that I said I would be focusing on...

        I thank you very much for the offer. I appreciate it, and I'll return it in kind; if you have any questions on anything above, I'd be happy to answer. The things that I said I would be focusing on professionally (top list) are all things that I would consider myself reasonably expert in, and I'm happy to provide help or guidance on any of them.

        2 votes
  3. [5]
    ainar-g
    Link
    In no particular order: Go, because I work with the language and because I love it. It is by no means perfect, but it's the closest to perfection for me personally. Recently the authors have...

    In no particular order:

    Go, because I work with the language and because I love it. It is by no means perfect, but it's the closest to perfection for me personally. Recently the authors have speeded up the evolution of the language, and I'm excited to see where it will go next.

    C, because it's still the lingua franca of most OSs.

    A flavour of Pascal or Oberon, because simplicity matters and because I'm a Niklaus Wirth fan-boy trash.

    Custom and existing flavours of XML, including XSLT and XHTML5, because it's still a good [family of] language[s] for structuring [meta]data, as well as transforming and displaying it.

    (POSIX) Shell, because you need to know how to command those pesky spirits in this devil-machine.


    You may notice a pattern here. Most of these languages are simple and mostly easy to grasp. I am a man of simplicity. I think that a tool that you can't master fully is not worth preferring over a couple of tools one can comprehend working together.

    They're also not very exciting for most people and not very new. I guess, because apparently simplicity is not very popular at the moment? Or because they are languages that do their job just well enough? Or I'm simply becoming an old fart who is afraid of new things :-)

    8 votes
    1. [4]
      Micycle_the_Bichael
      Link Parent
      Do you have much experience/thoughts on Golang for REST API development? I like Go a lot as a language from what I've worked with and I think it is the perfect language for my team (lots of people...

      Do you have much experience/thoughts on Golang for REST API development? I like Go a lot as a language from what I've worked with and I think it is the perfect language for my team (lots of people are learning it for Kubernetes stuff, it has a low learning curve for our sysadmin background folks, and way more efficient than python) but I can't decide if it is the right tool for the job and we already have a framework in python (very minimal but it does exist) so I want to make sure it is right before I make the uphill push.

      4 votes
      1. ainar-g
        Link Parent
        I basically do nothing but REST-ish APIs in Go for a living. It's going pretty good so far. You'll be fine, unless you try to write Go as if it were Python, Ruby, or JavaScript. A mistake I've...

        I basically do nothing but REST-ish APIs in Go for a living. It's going pretty good so far. You'll be fine, unless you try to write Go as if it were Python, Ruby, or JavaScript. A mistake I've seen dozens of times. In those languages the first thing one does is grabbing the freshest, hottest framework off the shelf and get going at it. What works well in Go is a simplicity-first, library-centric approach. That is, master the net/http package in the standard library, add a couple of libraries for routing, SQL, KV, and assets, and… that's about it, really.

        I obviously can't tell if Go is the right tool for your job, but If you have any further questions, I'll be happy to answer, but keep in mind that time zones are a thing.

        3 votes
      2. [2]
        arp242
        Link Parent
        What's wrong with your Python solution? Changing a solution that works well to another solution that works well doesn't strike me as a very useful thing to do.

        What's wrong with your Python solution? Changing a solution that works well to another solution that works well doesn't strike me as a very useful thing to do.

        2 votes
        1. Micycle_the_Bichael
          Link Parent
          So I didn't make this super clear in my first post, but the whole thing needs to be reworked. The project right now is a single "API" that is actually 2/3 in php 5.1 and 1/3 in python2, the way it...

          So I didn't make this super clear in my first post, but the whole thing needs to be reworked. The project right now is a single "API" that is actually 2/3 in php 5.1 and 1/3 in python2, the way it is deployed is such that it only works on one specific VM, which beyond being incredibly brittle also makes it a huge pain in the ass to set up a dev env, there's nearly no unit tests, there's no real semblance of version control (bc all changes are just made directly to prod bc setting up dev is a pain). There's also a huge mental shift on how the system should run and be interacted with by internal users so there is going to be a lot of changes to archictecture and a move to put it in docker/kubernetes. So basically I'm going to have to re-write almost everything already.

          4 votes
  4. [3]
    Staross
    Link
    I'll keep working with Julia, because I think it's the best in my domain (scientific computing, statistics, data analysis, ...) and I'm pretty much an expert at it at this point. I sometimes want...

    I'll keep working with Julia, because I think it's the best in my domain (scientific computing, statistics, data analysis, ...) and I'm pretty much an expert at it at this point.

    I sometimes want to do a bit of max/msp again (visual programming language for audio and video) but it's a bit expensive, although I see that they have a $10 monthly subscription, which might be fine to mess around a bit.

    I might have to do some simple C++ at work, it's kind of fun since I don't know it well, but it's certainly labourious.

    7 votes
    1. [2]
      sleepydave
      Link Parent
      Max/MSP was originally based off PureData from what I remember, have a go with that first and don't let the minimalistic UI turn you away. It's very functional, open source and has a decent...

      Max/MSP was originally based off PureData from what I remember, have a go with that first and don't let the minimalistic UI turn you away. It's very functional, open source and has a decent community behind it :)

      1 vote
      1. Staross
        Link Parent
        I've tried PureData a couple of times yes, but that Max UI looks juicy.

        I've tried PureData a couple of times yes, but that Max UI looks juicy.

        1 vote
  5. ali
    Link
    I took a lot of machine learning classes in the last year, I am working on improving my pythonic code. Instead of python code the java way

    I took a lot of machine learning classes in the last year, I am working on improving my pythonic code. Instead of python code the java way

    6 votes
  6. [4]
    Micycle_the_Bichael
    Link
    Golang: Team is doing a lot of cutting edge work in Kubernetes, maybe if I learn go I will get to too. Python3: like @ali, I learned python on my own after learning java/C. Would love to start...
    1. Golang: Team is doing a lot of cutting edge work in Kubernetes, maybe if I learn go I will get to too.
    2. Python3: like @ali, I learned python on my own after learning java/C. Would love to start using python the way it is intended.
    3. Haskell: Functional Programming seems like it might be a way for me to get back into some of the theoretical mathematics I wanted to study in grad school but was too broke for grad school, and Haskell seems to be the commonly suggested language. I don't expect it to be super useful, just for fun.
    4. Does ansible count as a programming language? Cus I'm going to be learning a whole lot of ansible...
    6 votes
    1. [2]
      ainar-g
      (edited )
      Link Parent
      (Sorry, I need this.) <rant> Fucking Ansible, man. The Ansible devs knew they won't be able to make it all nice and declarative. They knew you're going to need features from actual programming...

      (Sorry, I need this.)

      <rant>
      Fucking Ansible, man. The Ansible devs knew they won't be able to make it all nice and declarative. They knew you're going to need features from actual programming languages, such as variables, functions, and conditionals. They knew YAML sucks ass. Like, a lot of ass. And still they went with YAML instead of an actual, sane language like Lua or Python.
      Fucking Ansible, man.
      </rant>

      EDIT: Fixed the second ass-link.

      7 votes
      1. Micycle_the_Bichael
        Link Parent
        Yeahhhhh. I like ansible in that once I get something working in ansible it makes my life a lot easier, but man does getting what I want in ansible suck a lot of the time. And the more complicated...

        Yeahhhhh. I like ansible in that once I get something working in ansible it makes my life a lot easier, but man does getting what I want in ansible suck a lot of the time. And the more complicated the tasks, the harder it is to justify to myself.

        2 votes
    2. ali
      Link Parent
      For python, I really liked these 2 Videos: https://youtu.be/OSGv2VnC0go https://youtu.be/7lmCu8wz8ro I also follow Raymond on twitter where he shares some short tips

      For python, I really liked these 2 Videos:

      https://youtu.be/OSGv2VnC0go
      https://youtu.be/7lmCu8wz8ro

      I also follow Raymond on twitter where he shares some short tips

      4 votes
  7. hamstergeddon
    Link
    Looks like it'll be JS for me. I've been a PHP dev for years now, but the higher-ups at work decided to commit to a node/react stack for all new projects and some conversions are taking place. I...

    Looks like it'll be JS for me. I've been a PHP dev for years now, but the higher-ups at work decided to commit to a node/react stack for all new projects and some conversions are taking place. I also got moved from PHP project to an emberJS/Groovy project. We're in the process of migrating it to react, but in the meanwhile I guess I'm learning ember?

    5 votes
  8. [9]
    hungariantoast
    (edited )
    Link
    The four languages I will definitely be focusing on in 2020 are: Python, because that is the language I know best and am most comfortable with. However, I am far from being an expert at Python and...

    The four languages I will definitely be focusing on in 2020 are:

    • Python, because that is the language I know best and am most comfortable with. However, I am far from being an expert at Python and need to get better at writing "Pythonic" code. There are also language features and concepts I still do not understand and need to wrap my head around.
    • Java, because that is the language that my programming classes at school will be using throughout 2020.
    • Nix, which might be stretching the definition of "programming language" a bit, but NixOS has replaced Arch as my Linux distribution of choice. So, I will continue to familiarize myself with Nix's syntax and features as I keep using the distribution.
    • C, because I started learning it last year and want to continue with it.

    There are also a few other languages that I would like to eventually try out and learn concepts from:

    • Zig, because it's a better C.

    • D, because it's a better C++ (as if I'm actually qualified to say that). Honestly though, coming from even just my limited knowledge of Python and C, D is surprisingly approachable. I just wish it was more popular.

    • Rust, because it's also a better C++, but is actually popular and widely used, unlike D.

    • Prolog, because I want to give logic programming a serious try (and melt my fucking brain).

    • Haskell, because I'm curious about purely functional programming and have read a lot of neat things about it.

    This year I would, at most, be able to start learning one of these languages, but I'd like to find the time to investigate a couple of them. I guess it's mostly going to come down to how invested I need to get into Java for school and how much difficulty I have with calculus and physics this year, but I am hopeful I'll be able to make significant progress in learning new things.

    In terms of practicality, I think the best path forward for me would be to learn Rust. I like D and it is, like I said, surprisingly approachable for me, but I think Rust as a language is managed better and has a brighter future because of that. So, I suppose some time this year (hopefully sooner than later) I will start reading "The Book".

    4 votes
    1. [8]
      joplin
      Link Parent
      Regarding Haskell, I tried it a couple of years ago. I found it to be a really good way to learn something new. It is very different from the imperative paradigm usually used with most mainstream...

      Regarding Haskell, I tried it a couple of years ago. I found it to be a really good way to learn something new. It is very different from the imperative paradigm usually used with most mainstream languages. I learned a lot about how to control mutable state and when and where to use it.

      That said, the language itself is very difficult to work with. It seems to embrace doing things in an odd way just for the sake of it. It highly encourages hard-to-read styles of writing or at least all practitioners of the language that I could find on the net seem to embrace hard-to-read styles of writing it. Many of the concepts are deep computer science concepts that don't have immediately obvious business-related functions. The people who write about them seem to revel in being so smart that they understand these concepts, but have a really hard time explaining them to others or explaining their usefulness. And of course, they have their own package management system. Also, nobody else knows the language so anything you write in it will have to be maintained by you. That's fine if it's a hobby project, but generally not useful for work.

      1 vote
      1. [4]
        OGWhales
        Link Parent
        Anyone have suggestions for a decent alternative to Haskell? I always see it being the one suggested. I don't know much at all about functional programming but would like to dip my toes.

        Anyone have suggestions for a decent alternative to Haskell? I always see it being the one suggested. I don't know much at all about functional programming but would like to dip my toes.

        3 votes
        1. [2]
          ainar-g
          Link Parent
          A lot of people like ML dialects like Standard ML and OCaml. Then there are F* and Idris, if you like it rough and are not afraid of shiny new stuff.

          A lot of people like ML dialects like Standard ML and OCaml. Then there are F* and Idris, if you like it rough and are not afraid of shiny new stuff.

          1 vote
          1. Chobbes
            Link Parent
            Type Driven Development in Idris is an excellent book. In some sense I consider it to be the best book for learning Haskell too :P.

            Type Driven Development in Idris is an excellent book. In some sense I consider it to be the best book for learning Haskell too :P.

            2 votes
        2. joplin
          Link Parent
          It's the only pure functional language I've tried in earnest. I hear a lot about Rust these days, but have not tried it myself so can't really comment. If you know C#, I hear F# is a similar...

          It's the only pure functional language I've tried in earnest. I hear a lot about Rust these days, but have not tried it myself so can't really comment. If you know C#, I hear F# is a similar functional language.

          I don't mean to deter you from learning Haskell. As I said, it was a worthwhile experience. I just can't use it directly in my day-to-day work. But I have used many of the concepts I learned from it to improve my C++ and Swift skills.

      2. [3]
        emdash
        Link Parent
        You are not alone in this thought process. Even many of Haskell's most staunch proponents agree that the language has a severe community problem about how interwoven and deeply confusing its code...

        You are not alone in this thought process. Even many of Haskell's most staunch proponents agree that the language has a severe community problem about how interwoven and deeply confusing its code can be, to the point where many of them are pleading for people to write simple Haskell code, and train their Junior developers properly.

        As someone who doesn't use Haskell, but took a university course on it (and failed it!), I can't think of a worse choice for your business than picking such a decidedly mainstream, yet also ironically esoteric language. It seems like a language best suited for small teams in niche areas, or academia.

        1 vote
        1. [2]
          OGWhales
          (edited )
          Link Parent
          Glad to see someone else who appreciates the em dash! I have the alt-code memorized: alt-0151

          Glad to see someone else who appreciates the em dash! I have the alt-code memorized: alt-0151

          3 votes
          1. emdash
            Link Parent
            You had to reply to my one comment that didn't have one, didn't you? 😅 Thanks!

            You had to reply to my one comment that didn't have one, didn't you? 😅

            Thanks!

            2 votes
  9. joplin
    Link
    Swift as we'll soon be using it at work. I've already switched to it for all of my home projects because it's so nice. I'll probably start learning Python 3.x. I have some stuff I maintain at work...

    Swift as we'll soon be using it at work. I've already switched to it for all of my home projects because it's so nice.

    I'll probably start learning Python 3.x. I have some stuff I maintain at work that was in Python 2.7, and I haven't had to touch it in a while. But I'm going to need to update it soon and will want to bring into the modern age.

    4 votes
  10. JesusShuttlesworth
    Link
    I'll be learning C for school this semester. If I have any free time though, I would like to learn more python. I'd really like to get into web development and learn things like django, but man it...

    I'll be learning C for school this semester. If I have any free time though, I would like to learn more python. I'd really like to get into web development and learn things like django, but man it seems hard to get into.

    4 votes
  11. [5]
    ThatFanficGuy
    Link
    I liked Rust the last time I tried it. Might be going back to using it again. It looks pretty for my coding sensibilities, and I fathom the syntax. I'm also looking at V. One: it's not mainstream....

    I liked Rust the last time I tried it. Might be going back to using it again. It looks pretty for my coding sensibilities, and I fathom the syntax.

    I'm also looking at V. One: it's not mainstream. Two: it's made by a Russian dev. Three: it's a new, emerging language. Four: it promises to be really fast.

    4 votes
    1. [4]
      hungariantoast
      (edited )
      Link Parent
      I'm just going to come out and say it: You shouldn't waste your time with V. The development and release of that language has been... controversial. To say the least. Bunch of links that I...

      I'm just going to come out and say it: You shouldn't waste your time with V. The development and release of that language has been... controversial. To say the least.

      Bunch of links that I recommend you read over (including comments on Tildes):

      And funny enough, Christine Dodrill released another V related blog post today:

      Overall, I wouldn't touch V with a ten foot pole... yet. If you really want to learn a not mainstream, new, emerging language, Zig is the better option.

      3 votes
      1. [3]
        ThatFanficGuy
        Link Parent
        Well... Balls. I, too, want to pick up $800/mo. on a list of promises. I mean, I have the private roadmap written already. Could you guys pucker up and kiss my bank account? -_- ($800 in Russia is...

        Well... Balls.

        I, too, want to pick up $800/mo. on a list of promises. I mean, I have the private roadmap written already. Could you guys pucker up and kiss my bank account?

        -_-

        ($800 in Russia is ~50k₽. You can rent a decent apartment in Saint-Petersburg – 20~25k₽ – and still live comfortably on what's left. Saint-Petersburg is the second-biggest city in Russia.)

        Thanks for the heads-up. I got really hyped for that project since a while ago.

        Rust alone it is, then. When I'm ready for another nerdy language excursion, I'll consider Zig – and Odin, which was mentioned in the first linked thread, I believe.

        4 votes
        1. [2]
          pvik
          Link Parent
          Along with Zig, I would also suggest the following emerging languages that have interesting things going on: Nim Crystal Carp - A lot more alpha than the above 2 and If you like Lisp-y languages

          Along with Zig, I would also suggest the following emerging languages that have interesting things going on:

          • Nim
          • Crystal
          • Carp - A lot more alpha than the above 2 and If you like Lisp-y languages
          2 votes
          1. ThatFanficGuy
            Link Parent
            Nim looks interesting. Thanks for letting me know. Crystal looks rather Ruby-like, which I enjoy.

            Nim looks interesting. Thanks for letting me know.

            Crystal looks rather Ruby-like, which I enjoy.

            2 votes
  12. just_a_salmon
    Link
    My employer uses C++ almost exclusively, but I am trying to make myself more marketable to other potential employers by learning Go.

    My employer uses C++ almost exclusively, but I am trying to make myself more marketable to other potential employers by learning Go.

    3 votes
  13. Eric_the_Cerise
    Link
    C# (along with T-SQL, ASP.NET, Razor, VB, etc ...) has been my bread-and-butter for ~15 years. I want to leave the M$ stack, and in recent years, have been learning all the Linux things. Python,...

    C# (along with T-SQL, ASP.NET, Razor, VB, etc ...) has been my bread-and-butter for ~15 years. I want to leave the M$ stack, and in recent years, have been learning all the Linux things.

    • Python, 'cuz I've halfway known it for 5 years now, but I keep getting distracted. Seems like the best language to know well, to get employed as an ex-M$ guy.
    • Java or Kotlin, whichever gets me into mobile dev easier. Mainly for fun and personal curiosity, but maybe professionally, too.
    • C and C++, at least the basics of each. Just 'cuz. Each ties in with assorted interests of mine, and C esp, just good to know.
    • Plain vanilla JavaScript, another language I've halfway known my entire career w/o ever really getting a solid grounding in. Probably TypeScript, too.
    • Shell scripting, mostly Bash.
    • Go, or maybe Rust ... I want to learn (at least?) one of these, keep flip-flopping on which one (or at least, which one first).
    3 votes
  14. OGWhales
    Link
    My list: C - always wanted to learn it in and out, but never have done anything major with it. Shell scripting - seems rather useful Assembly - :)

    My list:

    C - always wanted to learn it in and out, but never have done anything major with it.

    Shell scripting - seems rather useful

    Assembly - :)

    3 votes
  15. mrbig
    (edited )
    Link
    It has to be Python. I was thinking about switching to Racket, the predictability of lisp syntax is enticing, but switching won't do me any good right now. Working with Python is not a real...

    It has to be Python. I was thinking about switching to Racket, the predictability of lisp syntax is enticing, but switching won't do me any good right now. Working with Python is not a real possibility in my area, but I can go to another state, and studying a language I enjoy makes things a lot easier. After learning the fundamentals, I can always switch to Java, C# or Javascript to become more employed.

    2 votes
  16. musa_totter
    Link
    Professionally, probably a lot of Python and some C. Personally: Probably mostly Rust. I've been reimplementing some older projects in Rust for fun, and I'll probably continue doing that. Also, I...

    Professionally, probably a lot of Python and some C.

    Personally:

    • Probably mostly Rust. I've been reimplementing some older projects in Rust for fun, and I'll probably continue doing that. Also, I don't feel like I understand borrow checking and lifetimes yet, so that will be something to focus on.
    • I used to be more excited about C#, but some of the newer features I was looking forward to (like non-nullability and the new match expression) seem more tacked-on and less well thought out. Records and associated features look to be nice, though.
    • I'll probably focus a little bit on functional programming, too. Functional programming has invaded my personal programming style over time, and I'd like to take a more active role in exploring that.
    2 votes
  17. pvik
    (edited )
    Link
    Professionally, My team was primarily a Java shop, but over the last few years we have managed to move to Clojure and Golang mostly (we still maintain some legacy services which will be decommed...

    Professionally, My team was primarily a Java shop, but over the last few years we have managed to move to Clojure and Golang mostly (we still maintain some legacy services which will be decommed over the next few years running in Java).

    Personally, I have been concentrating on OCaml and Rust over the last several months. I think I will continue that trend.

    I really like the idea of Rust but wrapping my head around the borrow-checked has not been an easy task. Working through the Rust book, I also feel like Rust provides too many ways to do things, and feel like it causes a lot more mental overhead when I am trying to write in rust. (Especially after working with Golang during the day, which at it's core is such a tiny language). This however I feel like is just a part of the learning curve with rust :)

    I also love all lisp-y languages. For most of my personal projects I pick Common Lisp, but I still keep learning new stuff every few weeks with it :)
    I have been looking at shen as well and playing with it.
    Edit: I have also been looking into Clasp. It's a common lisp implementation which compiles down to LLVM IR and uses LLVM to create native binaries. This way also provides really nice inter-op with C++ bindings.
    If anyone is interested, There is a really nice video talk creator of the Language gave at LLVM conf about this here.

    This year I hope to concentrate more on older programming languages as well, like:

    • Forth - Currently reading Thinking in Forth, it is a great book, available for free here
    • Prolog/Datalog
    • APL

    The motivation for diving into these languages is primarily because I am interested in programming languages in general. I have been trying to read more about compilers, parsers, etc and I wish to understand the internals of how a programming language works.

    By the end of 2020 I want to pick a Bytecode VM and try to take it apart and understand how they were implemented and how they work. Current pick for this task is BEAM, since it has quite a bit of documentation, which should help me in this task, and I have a fairly good understanding of Erlang to begin with.

    Edit: Forgot to mentions Dart
    I picked up Dart/Flutter last year and was pleasantly surprised with it. I was able to learn Dart/Flutter and build a simple Android App for my SO and deploy it to the play store in about 3 weeks.

    I will definitely be playing with Dart more this year. Especially with Flutter Desktop becoming more stable.

    The landscape for making cross-platform native desktop application is abysmal.

    There is Qt which is quite bloated. And, Qt5 made language bindings for non-C++ and Py languages much harder. Thankfully the Qt6 vision blog post mentioned easier language bindings as one of the things they are targeting for Qt6.

    Electron is a dumpster-fire, I do not wish to touch with a ten-foot pole.

    There are options like Revery and Sciter which looks cool, but have their own issues.

    /rant ; I should probably make a separate post about this ...

    2 votes
  18. [3]
    Eabryt
    Link
    I'd really like to finally learn PHP and maybe some Javascript, basically some more web development. The problem is that I've never really had a good "project" to work on as a way to learn. Even...

    I'd really like to finally learn PHP and maybe some Javascript, basically some more web development. The problem is that I've never really had a good "project" to work on as a way to learn.

    Even right now I use Drupal for a website so I haven't found a reason to actually do any of the coding. If anyone has suggestions on good basic projects to get started with those two languages, I'm very open to suggestions.

    2 votes
    1. [2]
      pvik
      Link Parent
      I feel building something in a language to learn the language is the best way to learn that language! A good choice would be re-creating a tool/app you use already. This has the benefit of you...

      I feel building something in a language to learn the language is the best way to learn that language!

      A good choice would be re-creating a tool/app you use already.
      This has the benefit of you knowing the exact behavior of the app.

      Something like a interactive blogging platform, would be a fairly easy project for you to create in PHP and Javascript. It would also let you explore the basics of those languages! :)

      Some people also prefer coding challenges to solve in a programming language to learn the language. This has the advantage of exposing tiny pieces of the language at a time. If you want to try this route the euler project or advent of code are nice challenges

      Good luck!

      2 votes
      1. Eabryt
        Link Parent
        Thanks for those links, and the great idea of a fun project. Hopefully they'll help with my goal.

        Thanks for those links, and the great idea of a fun project. Hopefully they'll help with my goal.

        1 vote
  19. 888
    Link
    SwiftUI, although I hope Apple improves the error messaging in the next Xcode update. Right now debugging can be very frustrating as compiler errors can be totally misleading if not outright wrong.

    SwiftUI, although I hope Apple improves the error messaging in the next Xcode update. Right now debugging can be very frustrating as compiler errors can be totally misleading if not outright wrong.

    1 vote
  20. mxuribe
    Link
    My list for 2020: python - because i started learning it in 2019, and need lots more mastery. But so far, it has been such a joy, that i want to learn far more. Also, because so many interesting...

    My list for 2020:

    • python - because i started learning it in 2019, and need lots more mastery. But so far, it has been such a joy, that i want to learn far more. Also, because so many interesting areas - data analytics, ML, AI, machine/computer vision, etc. - seem to leverage python (at least for prototypes). so it makes sense to learn python even if only to dabble in these fun-sounding areas.
    • (vanilla) javascript - much like a few folks (like @Eric_the_Cerise ) have noted, this is a language that I've halfway known for most of my career, so would like better mastery of it. Honestly, I've just never needed to use that much of it in the past (except for small little scripts here and there)...but now everything seems to include or reference javascript (or at least frameworks based on it). But i figure knowing the vanilla "edition" would help with any other aspect of javascript (e.g. nodejs, PWA, SPA, etc.).
    • php - another language that I've halfway known throughout my career. I'd like to gain more mastery only because my side hustle IT/tech. consulting shop seems to attract clients who either have existing platforms using php, or leverage wordpress, etc. None of my dayjob employers ever used php, so its not like php would immediately help with my full-time dayjob employment at all. But, since mastery would help get me more productive for my side hustle clients, that helps me with revenue. Let me clarify that I don't hate php at all (nor do i love it). I'm merely a tiny, little bit productive with it, but would just like/need to get more productive with it.

    Side note/question: Does anyone else have a tech. side hustle where they have to use some tech/platform/language that they don't care that much for, but can't really stop because...money!?! I can't be the only one. :-) (Again, i don't hate php at all, simply not my favorite language is all.)

    1 vote
  21. lionirdeadman
    Link
    Personally, I think I'll be doing : More Python, I've already done python but I need to actually learn more of what I'm doing and get better with it. Rust, I really don't want to handle memory...

    Personally, I think I'll be doing :

    • More Python, I've already done python but I need to actually learn more of what I'm doing and get better with it.
    • Rust, I really don't want to handle memory management so I want to learn Rust so I don't need to handle it myself like I would with other low-level languages.
    • GTK, not neccessarily a language per se but I really want to learn how to make GTK interfaces. I'm not exactly sure where I should start. I'm also not sure if I want to do it with rust or python. If anyone could offer help with GTK, with either python or Rust, I'd be quite grateful.
    1 vote
  22. peetezaah
    (edited )
    Link
    It's not certain yet, but from a brief research, probably C++ and python. Reading this thread kinda worried me. See, I work in the SAP department of my company for about 3 years, mostly developing...

    It's not certain yet, but from a brief research, probably C++ and python.

    Reading this thread kinda worried me. See, I work in the SAP department of my company for about 3 years, mostly developing ABAP reports or creating apps (SAPUI5). I'm not exactly a stranger to programming languages like Java and C, but I only had about 4 months of "introductory classes" on both of them (4 years ago).

    Thing is, a colleague that I've known and worked with for a long time has been complaining about being bored with SAP. He is the kind of guy that would come into this thread (probably will actually), with the intent of finding new things to learn and tinker with. But that got me thinking... I like VR and I'm somewhat decent at sharing ideas, developing and also putting things into new perspectives. Why not try something outside of SAP?

    Interestingly enough, I was accepted into 2 "innovative" projects that have recently started in my company (completely unrelated to SAP):

    • one specifically about XR (VR/AR/MR), like a company XR hub for knowledge sharing but also to connect the business ideas/people with developers - honestly don't know much about XR development yet, we are still a very small group of people, but would C++ be a good idea for me to look at?
    • and another that will basically mix project managers, developers and internal/external "experts", to identify issues or come up with ideas on how to implement new technologies (like blockchain, XR, AI, etc.), in order to create new solutions or improve existing ones - expecting a lot of python here, would that be a fair assumption?
    1 vote