I would make a slight correction, Typescript and C# have proven that Anders Hejlsberg can design good languages, not MS.
Honestly, Hejlsberg is like the Midas of programming languages.
That man is a language designing genius.
He is the main designer behind:
Delphi (which inspired VB6, Microsoft's DOMINANT language through the 90's. But it's so similar to Delphi, that you can pretty much credit Hejlsberg for it's success), C#, and Typescript
Sometimes whole companies get credit for the genius of what is really just one or two architects.
When it comes to Apple innovations, it's Jobs
And when it comes to MS language innovations, with the exception of F#, it's Hejlsberg.
I always thought Visual Basic got unfairly mocked because it was a fantastic language and framework for non-computationally expensive workloads.
Delphi, on the other hand, I struggled to enjoy. I really wanted to love Delphi because Pascal was one of my favourite languages but Delphi just didn't gel with me and it's hard to explain why. However Hejlsburg was also the author of Turbo Pascal and that achievement alone deserves to put him in the history books in my opinion.
It's also worth noting that your Apple/Jobs comment should probably acknowledge Steve Wozniak instead.
It's the best native scripting platform you can get on Windows, but some of its primitives (functions, classes) are weird, parallelism (at least in the v5 days) was massively hacky (process-based instead of thread-based through the PSJob abstraction, though you can use native threads if you put in some work) and its syntax and overall behavior makes it feel more like a scripting language than something you'd use to build real apps (even though you can). This makes it a really tough sell to use on MacOS and Linux, even though it's based on .NET Core and you totally could.
For example I started appreciating the way output in PS1 works only after using the parallel for each and was floored by how everything fell in place.
Take this from a full time Linux user, if you're not using powershell you're using an inferior shell.
One major downside for cli warriors though- it takes a couple of seconds to start. (at least 6, I don't knoe about 7).
This thing itself seems like a quirk but again I'm not an expert so don't know how this was designed.
> In PowerShell, the results of each statement are returned as output, even without a statement that contains the Return keyword. Languages like C or C# return only the value or values that are specified by the return keyword.
I don't want all output, no, please, I don't want it. I want something specific and not all the junk around it. So you have to turn into ugly measures like out-nulling everything or searching through your output because there is always possibility that some commandlet outputed something you were not expecting and it will return before the value you actually wished to returned.
And classes are nice and all, but lot's of stuff are not compatible PowerShell 5. And there is also the added complexity.
https://docs.microsoft.com/en-us/powershell/module/microsoft...
Reading through the examples of the unexpected behavior in so many cases is flabbergasting.
If cmdlets were easier to use i would probably have used a proper language like csscript or C# instead of Powershell.
Jeff hello, if it's alright i wanted to discuss the target audience of Powershell.
As I understand Microsoft is currently targeting azure users and enterprise sysadmins. I would like to propose that You add features to it that bash and zsh power users take for granted and target the linux community so that it gets more cred and in the open source hackers community and consequently more usage by regular people. Basically the developers developers developers thing from your old boss...
To be honest, right now I can recall anything I'm missing, fzf works, so does z. I will look at the startup time issue (my biggest one right now, I literally had PS1 as my login shell briefly ) ...
I don't want to make any news here but in a bit, the team will publish a blog articulating where we'll be focusing our next release. I think you'll like the direction we are taking.
Jeffrey Snover [MSFT]
Alacritty is a terminal - a container that transports user inputs to programs (like shells) and prints program outputs to the screen. The terminal owns the actual graphical window you interact with.
The default terminal on Windows is the Windows Console. Windows comes with two shells, the Command Prompt (cmd.exe) and PowerShell. Both of these run on top of the Windows Console.
There is also a new terminal in development by Microsoft, called the Windows Terminal. It's much more modern due to not having to be backwards compatible.
Interesting note - it is also the reason why PowerShell was able to adopt the more natural Verb-Noun model for cmd naming. In Unix, this would produce a huge # of files OR and you couldn't do "VERB NOUN" because then you would have to multiplex on the VERB. Unix's "NOUN VERB" is the result.
BTW - VMS DCL stepped on all these rakes which is why it is have VERB/NOUN and half NOUN/VERB. A complete mess.
Jeffrey Snover [MSFT]
I just wish they made the language nicer and more consistent. There are so many weird quirks around functions, modules, scope and classes that make life pretty difficult in larger code bases. I would love to see something closer to C# (or even TypeScript) that still can use cmdlets easily. The current Powershell language to me feels like a weird hack but not something well designed. Typescript and C# have demonstrated that MS can design good languages.
This leads me to another complaint. MS is cranking out a lot of useful cmdlets that would also be useful for C# programmers but using them from C# is quite painful.