I’ll make this quick. I’m currently working in JS, css, sass, HTML, and pug. I’ve learned a lot with the front-end assignments I’ve been assigned. Since our dev team is short staffed and there is more work coming in, I’ve been asked to also take on other projects to help developers out. I was curious what your thoughts are when making these decisions. The three different projects focus on either electron, Java, or C#. The only experience I have had with Java is in college and I didn’t find it interesting. But considering I started coding in my second year of college I may not have given it a chance. For electron, I actually introduced it to myself when I first started working at my job because I wasn’t getting a lot of assignments yet. For anyone familiar with electron, I cannot tell you how exciting it was to see my first ever programmed desktop app working on my computer.
So getting back to why I am writing this topic: would you advise that I should continue with something like an electron based project since I definitely have more to learn in that area? Or should I try to get back with feeling comfortable with something like Java or C#. Someone told me it is good for someone in CS to have a server-side language under my belt and frankly I just want to have a good skill set for whatever may come next.
Electron is for making cross platform desktop GUI programs. For example: VS Code editor is made with Electron. If you want to create desktop programs, and you want to leverage your existing web-based knowledge (JS, Node, HTMl, CSS), this is the ticket.
C# (in conjunction with ASP.NET and .NET Core) allows you to also create desktop and backend programs. (Note: There is an alpha software right now called Blazor, https://www.hanselman.com/blog/NETAndWebAssemblyIsThisTheFutureOfTheFrontend.aspx which will allow you to use C# for dynamic frontend work, running on the browser via WebAssembly… something interesting being developed right now.)
One recent development though is the new .NET Core, which allows you to write C# programs that are cross-platform and will run on Windows, Mac, Linux without any changes. (Unlike ASP.NET framework, which is mostly a Windows/IIS server hosted framework only.)
Long answer:
Id consider Electron to basically be Javascript, Electron is the platform, but Javascript is the language. An application running on a website can be ported over to Electron relatively easily, since Electron at its core is just chrome. (huge abstraction, but good enough for this case). So for a comparison the JVM for Java is more or less the Electron for Javascript (more or less )
If you already know the basics of Java then you more or less know the basics of C# as a language (they are very similar). Unless you plan on sticking with Microsoft products and .NET I wouldn’t focus to much on C#. The main things you could learn from Java and C# would be the different frameworks, since I’m pretty sure they didn’t teach you in school hehe. Something like Spring or Spring boot is a common web framework for Java (there are others too) for example. But learning frameworks is only good if you use them, so its situational. I wouldn’t jump into learning any framework without base knowledge of the language first, and Id learn toward anything your work uses.
Now Id consider Javascript to be the most useful since it can be ported to multiple different areas with similar code. (As I said before a web-app can be converted to an electron app pretty easily) You can also use javascript on the backend with nodejs, so understanding the basics of javascript is pretty nice. Since the language is pretty flexible and there are a lot of ways to use it, getting your feet wet with it is pretty good, especially since the Javascript ecosystem is growing the most rapidly, compared to Java and C#.
Finally,
Its pretty easy for most of us to be biased, but Javascript does have a lot of potential in the current and in the future, it is the language of the web and that fact isn’t going to change any time soon.
Java and C# are extremely similar if you can work in one, it’s really easy to switch to the other. Java is more ubiquitous but C# is nicer to work in. Which of the available projects interest you more? Which would mean working with developers that you click better with? Go with whatever is most interesting to you.
You can certainly go and learn ASP.NET Core which is a web development framework in C# language.With it, you can make any type of server side application like APIs, Machine learning, websites, etc.