Personal computing discussed
Moderators: renee, SecretSquirrel, just brew it!
FlamingSpaceJunk wrote:I'm wondering about IDE/text editor experiences
FlamingSpaceJunk wrote:toolchain maturity
FlamingSpaceJunk wrote:If it's worth it, I might spend sometime getting familiar with C#, and use .NET Core as a way to move web apps
FlamingSpaceJunk wrote:Windows automation using C# libs.
whm1974 wrote:Well it looks like I'm going to learn both Visual Basic and C# for school wither I want to or not. Since I have to learn them anyway, I might as well learn how to use both of them for cross platform programming.
Flying Fox wrote:whm1974 wrote:Well it looks like I'm going to learn both Visual Basic and C# for school wither I want to or not. Since I have to learn them anyway, I might as well learn how to use both of them for cross platform programming.
Try not to spend too much energy on VB, it is going out of favour.
whm1974 wrote:Flying Fox wrote:whm1974 wrote:Well it looks like I'm going to learn both Visual Basic and C# for school wither I want to or not. Since I have to learn them anyway, I might as well learn how to use both of them for cross platform programming.
Try not to spend too much energy on VB, it is going out of favour.
I do have to take one class of VB for the degree. I can however choose to take C++ for my electives, which I'm going to do.
DrCR wrote:whm1974 wrote:Flying Fox wrote:
Try not to spend too much energy on VB, it is going out of favour.
I do have to take one class of VB for the degree. I can however choose to take C++ for my electives, which I'm going to do.
Having an introduction to VB may be useful for when encountering MS Office VBA code in the wild. That said, I'm surprised your school is not starting with Python and C# instead of VB and C#.
Edit: Depending on the sort of work you may wish to get into, getting comfortable with Powershell may be a wise investment.
whm1974 wrote:I'll probably need to talk to an adviser about which courses to take, but I'm under the impression the both C and C++ are still very widely used. My two goals are to write applications for Linux and Linux gaming.
just brew it! wrote:whm1974 wrote:I'll probably need to talk to an adviser about which courses to take, but I'm under the impression the both C and C++ are still very widely used. My two goals are to write applications for Linux and Linux gaming.
I wouldn't say C is widely used any more; it is mostly limited to specific niches (real-time/embedded and OS kernels). C++ is more broadly applicable, but overall I'd guess that Java, Python, and JavaScript are more widely used than C++ these days.
I also would not count on an academic advisor knowing what's going on in the industry any better than the developers in this forum.
derFunkenstein wrote:I write C# for .NET on Mac every day, but not really in the ways that you want to. My experience with .NET on macOS is entirely based on Xamarin. I really like it but I don't know how it compares to whatever it is you're trying to replace. 90% of the app I'm porting is in shared code that "just works" on iOS, Android, and Windows 10 UWP.
just brew it! wrote:Java (on Android).
just brew it! wrote:I also would not count on an academic advisor knowing what's going on in the industry any better than the developers in this forum.
FlamingSpaceJunk wrote:just brew it! wrote:Java (on Android).
Google is pushing Kotlin for new Android applications. https://kotlinlang.org/just brew it! wrote:I also would not count on an academic advisor knowing what's going on in the industry any better than the developers in this forum.
I wouldn't count on academic advisers knowing much of anything. Students should definitely know their degree plan and know which version they're on just in case it changes.
Flying Fox wrote:FlamingSpaceJunk wrote:I'm wondering about IDE/text editor experiences
Visual Studio: Windows/Mac, most comprehensive, but perhaps a bit bloated if you use only like 5% of the functionality.
Visual Studio Code: all OS, the new fling if you are not satisfied with whatever text editor that you like.
Any good old text editor: as long as it has syntax highlighting for C#/HTML/TypeScript/JavaScript/CSS/XML/JSON, I think you should be golden.
FlamingSpaceJunk wrote:toolchain maturity
Compilers are fairly matured since they are open sourced and work on all platforms. You get the best experience (in terms of hand-holding) if you use Visual Studio full IDE of course. For VS Code you can install the C# compiler extension right there and it can take care of things for you (there are probably other VS Code extensions to help with the development/test/debug experience). Of course, if you want to just call the compilers on the command line you sure can. Not too sure about other tools like profilers.
FlamingSpaceJunk wrote:If it's worth it, I might spend sometime getting familiar with C#, and use .NET Core as a way to move web apps
It may depend on where you are coming from. If you have say Python scripts, then why not just use a Python runtime on Windows and run the existing scripts anyway? If you are using Node.js for your web apps, I don't think you need to force yourself to go the roundabout way to rewrite a .NET Core web app just that it is portable.
FlamingSpaceJunk wrote:Windows automation using C# libs.
What sort of Windows automation? Just beware that "C# libs" targeting good old .NET Framework are different from libs targeting the .NET Core due to the different runtime layer. Perhaps your scripts on other platforms can already be run on Windows, either natively or via a Windows-based runtime engine? In reverse, PowerShell is now available on select Linux distros so people coming from the Windows side will not be completely helpless (some "porting" and adjustments may be needed).
whm1974 wrote:Now I'm wondering just how many languages I will end up learning by the time I'm done.
FlamingSpaceJunk wrote:Flying Fox wrote:FlamingSpaceJunk wrote:I'm wondering about IDE/text editor experiences
Visual Studio: Windows/Mac, most comprehensive, but perhaps a bit bloated if you use only like 5% of the functionality.
Visual Studio Code: all OS, the new fling if you are not satisfied with whatever text editor that you like.
Any good old text editor: as long as it has syntax highlighting for C#/HTML/TypeScript/JavaScript/CSS/XML/JSON, I think you should be golden.
Visual Studio Code with the C# extension is probably what I'll try first. I was looking at the Spacemacs C# layer, and it seems a bit thin. I haven't looked at Vim plugins yet, so I'm not sure where that stands.FlamingSpaceJunk wrote:toolchain maturity
Compilers are fairly matured since they are open sourced and work on all platforms. You get the best experience (in terms of hand-holding) if you use Visual Studio full IDE of course. For VS Code you can install the C# compiler extension right there and it can take care of things for you (there are probably other VS Code extensions to help with the development/test/debug experience). Of course, if you want to just call the compilers on the command line you sure can. Not too sure about other tools like profilers.
Profilers, linters, and debuggers are specifically what I'm curious about. The compiler is pretty much a known quantity, but the rest of the ecosystem isn't.FlamingSpaceJunk wrote:If it's worth it, I might spend sometime getting familiar with C#, and use .NET Core as a way to move web apps
It may depend on where you are coming from. If you have say Python scripts, then why not just use a Python runtime on Windows and run the existing scripts anyway? If you are using Node.js for your web apps, I don't think you need to force yourself to go the roundabout way to rewrite a .NET Core web app just that it is portable.
I have a Python, Perl, C++, C background.
There are a few reasons for this.
* Python is pretty portable, but there are some features that don't translate to Windows.
* Some people just insist on C#. This came up a about a month ago. I do contracting work for an agency on the side, and they had a project to build an interim web app. I said I could do it in Python, and they said they wanted it in C#.
* This is about replacing Windows serves with Linux servers. The area I live in is MS heavy. Some Serverless services support C#, and I have a small consulting and services business.
* Leverage existing C# resources a company has to run custom C# code on a Linux based product. (This is the day job part.)FlamingSpaceJunk wrote:Windows automation using C# libs.
What sort of Windows automation? Just beware that "C# libs" targeting good old .NET Framework are different from libs targeting the .NET Core due to the different runtime layer. Perhaps your scripts on other platforms can already be run on Windows, either natively or via a Windows-based runtime engine? In reverse, PowerShell is now available on select Linux distros so people coming from the Windows side will not be completely helpless (some "porting" and adjustments may be needed).
Mainly dealing with AD. User creation, group assignment, that sort of thing. Stuff that can probably be done in Ansible with less hassle.
Good to know there is a difference between .NET Framework and .NET Core.
The idea is to not run anything on Windows. I don't want to leave MacOS or Linux. Other people can work on Windows, but I want to be able to work with the code on MacOS or Linux.
I've tried PowerShell a long time ago, and I didn't care for it. It's way too verbose, and it was actively hostile to user scripts. It's basically the second most user hostile program I've every encountered. The first is a ticketing system. An object oriented shell is an interesting idea, but the execution is lacking.
whm1974 wrote:From reading this, I'm getting the impression that I could well by learning C# and getting good at it. I'm thinking that knowing C++, C#, Java, Perl, and Python will go a long way.
just brew it! wrote:Yes, I am pretty sure that is still the case, at least for PC/console games that tend to push the performance of the hardware. "Casual" games may be a different story.
For mobile game development it's Objective-C or Swift (on iOS) or Java (on Android).
derFunkenstein wrote:just brew it! wrote:Yes, I am pretty sure that is still the case, at least for PC/console games that tend to push the performance of the hardware. "Casual" games may be a different story.
For mobile game development it's Objective-C or Swift (on iOS) or Java (on Android).
For more casual games, it's most likely engine-determined. Want to use Unity? C# all the way, baby (and that includes both desktop and mobile)
just brew it! wrote:derFunkenstein wrote:just brew it! wrote:Yes, I am pretty sure that is still the case, at least for PC/console games that tend to push the performance of the hardware. "Casual" games may be a different story.
For mobile game development it's Objective-C or Swift (on iOS) or Java (on Android).
For more casual games, it's most likely engine-determined. Want to use Unity? C# all the way, baby (and that includes both desktop and mobile)
I guess I ought to add C# to my own "to do" list.
I moved away from the Windows development world right around the time it started to catch on, so I never had any significant exposure to projects that used it. Most of my Windows development experience was back in the days when MFC was the framework most people used.
just brew it! wrote:While there's a lot of Perl code out there, my impression is that its popularity is declining, as Python fits into much the same niche and is a more "modern" language. Of the languages you just listed, I'd put Perl last in terms of priority.
whm1974 wrote:From reading this, I'm getting the impression that I could well by learning C# and getting good at it. I'm thinking that knowing C++, C#, Java, Perl, and Python will go a long way.
whm1974 wrote:Sorry I didn't mean to derail this thread. Any tips on using .NET Core to make life easier with writing programs for Linux and Windows?