Batch Scripting Language

Great. Thanks for the progress. I suggest we leave this until @ErikSchierboom is back from holiday, where he can add his wisdom as to how he thinks best to proceed next! :slight_smile:

There is no need for a very special installation effort, .NET can be installed automatically with the winget command that comes with windows and no special installation is required for xUnit, Dotnet solves these problems in itself.
winget install Microsoft.DotNet.SDK.6

@iHiD
I would love to act more accurately with the person you labeled, I don’t know when he will be back from vacation, but if you think it is more appropriate, you must know something.

  1. Remember, a lot of people use Linux or Mac. Tracks should work across all common platforms. Simple or special or regular, a required install is still a required install.
  2. I believe Erik took off for the holidays, so roughly Christmas through New Year. I think he’ll be back sometime next week.
  1. Let’s remember Batch Scripting Language made for Windows, like how Shell Scripting language won’t work native in windows, Batch too same in other OSes but still maybe somebody want to learn in another OS, if use another OS, that’s okey but makes harder to everything because Batch made for Windows.

  2. Thanks for information :heart:

Regardless of the origin and intent of Batch, I believe it is an Exercism requirement that tracks work across multiple platforms. The test runners use Linux containers. I believe any new track will have to support Linux. If you would like to build a new track, that is part of what you should be planning on building.

Our memories may be different, as I remember IBM PC DOS in 1981 or 1982 which used AUTOEXEC.BAT on disk, and this was before there was a “Windows”.

1 Like

I understand you and I agree with you, thanks for remind :grinning:.

You right, Batch made with MSDOS and this meaning before than windows, everything was okey to here. I just point terminal like msdos in old age, and so windows has full adapt to Batch since unix doesn’t, but still we can use with some other tools.

My (short) research indicates, that you need wine to run a batch file. I don’t know how “okay” that is for a Linux user.

1 Like

QEMU or Wine or some other “virtual machine” or even emulator software… Running some DOS version is probably more the prerequisite than which emulator or not emulator. Freedos in Linux, dosemu2/dosemu2, and there is/was OpenDOS or Dr-DOS but may not be a (viable) option any more.

A VM requires an OS image. Are there open source images that run Batch? Would image size be an issue?

If Batch is used only on one or two operating systems, it doesn’t really make sense to me that people will want to learn them on other OSs. If people are using Batch to manipulate windows, why would a linux user want to use it?

The only requirement is that we can have a test-runner for the site that runs on Linux, I’m not too worried about what the local tool-chain for the language looks like beyond that. We supported Delphi for a long time when it was only really used on Windows for example. (As a side note, I’d bet that installing a Docker image with Wine and Batch is still less than the ~2GB install needed for Rust!)

1 Like

First of all, Let’s understand this first, wine is not the only way, as we saw in the conversation, there are different ways and I offered a way called picobat, so there are many possibilities for those who want to use it.

I also very much agree with ihid, it is very difficult for someone using linux to get these trainings, maybe one in a thousand. Also, as the data speaks, the install needed for rust is heavier and the disk is not a problem in my opinion, we are not talking about absurd numbers. (Come on, nowadays even the medium graphics games start at 10GB.)

If Batch is used only on one or two operating systems, it doesn’t really make sense to me that people will want to learn them on other OSs. If people are using Batch to manipulate windows, why would a linux user want to use it?

I mean you could make the same argument in many different areas. Bash can only run in UNIX like system so it can’t run on Windows unless you use a virtual machine or emulate (and I don’t see why you would want to emulate bash on Windows). And if we exclude mobile operating systems then Windows stands for around 70% of the PC market. This means that more than half of desktop/laptop users can’t use native bash and would be able to use batch.

There are more examples of this: Crystal in its early days had only macOS and Linux support, and Swift did only support macOS. Say in a theoretical world so had Apple kept Swift “Apple exclusive” (which wouldn’t be that unreasonable, there is not really any reason running swift on Windows, you can argue that it is useful to be able to run servers in Linux in swift), would we then not add that language, just because it only runs on macOS/(other apple os)?

Swift as it currently stands has 20k students signed up and I would still argue that the usage on Linux and even more on Windows isn’t that significant. This can be quite clearly seen through that the only proper Swift ide is macOS exclusive. I think arguing on whether a language is useful for everyone is not a good way to go about it. Say there was a language that everyone could use but only 1000 people were interested in or a language that could run on only one platform but 20k were interested in?

Powershell follows a similar story but from a Windows standpoint, were Powershell was exclusive but opened up to other OS. And I see very few cases of using PowerShell on Linux or mac, perhaps if you are used to Powershell you may want to use Powershell on other OS or you want an object-oriented shell, or you need a shell that can work with .NET? But outside of those specific cases there is barely any reason to use Powershell on anything but Windows. But even though the track has seen around 3,5 k new students since it launched around 6 months ago.

1 Like

I mean storage cost isn’t as simple as it may seem. The data is stored on amazon through some system (Jeremy can likely fill in here). There each gb costs 30$ per year. Which why comparing it to local installs isn’t really fair, since a 1tb hard drive may cost 70$? But with amazon 1tb would cost 30000$ per year

1 Like

We got to 5.1K now, meatball :partying_face:

The track had like 1 - 1,5 k when the track launched so it becomes a bit tricky to count the exact amount.

Could we put this conversation on hold until Erik’s back please. I feel like we’ve gone quite far off track from “Let’s put a hello world exercise together and then create the repo”, which is where I was aiming for! :slight_smile:

1 Like

That is a great question. As a sytems and network administrator for Nokia, that is exactly what I did while administering Windows and OS/2 networks from Linux.

I would write the batch scripts on my Unix workstation, or my Linux workstation, depending on where I am, and it worked fine.

Why would I want to leave the comfort of my operating system to administer another one unless I absolutely had to?

Did I “want” to necessarily do this, not really, but it was needed and not really all that terrible.

Also, using Bash on Windows has been a thing using mgwin32.exe and Cygwin for decades. While it is true “on some UNIX like system” since those provide that system, it is something that Windows users would use to get those things that they needed. It is one way that some students were using Git on windows in 2008, for example.