You can even mix powershell and C# together in the same script.
Once I realized I had a better version of everything I wanted, it became my new favorite.
You can even mix powershell and C# together in the same script.
Once I realized I had a better version of everything I wanted, it became my new favorite.
VB6 got me into programming as a kid.
I mostly use python for stats stuff. I sorta understand how to run up a GUI using tkinter, but it seems like a huge pain in the ass.
I'm sure Visual Studio offers the ability to do whatever VB6 could with a GUI, but it isn't obvious how to get there.
VB6 was one nice thing - build 'a program' as you understand them in Windows. Why the fuck is it so hard nowadays? VS isn't intuitive - it's a firehouse of information and I feel like you need training to use it. That is a bummer.
I just want to Lego-assemble a cute GUI-based program that I can make into a binary and email my wife to use. But I need to dedicate 70GB and two weeks of study to get there, I guess.
I got into coding qbasic (meh) & amiga (yeaaah) game engines in the 80s.
Currently teaching kids with Computercraft, to manipulate virtual worlds rather than boring spreadsheets.
IMO that sort of computer work will be obsolete by the time today’s kid are grown.
I’d probably avoid more than basic coding in general anymore and focus on math-y stuff. Just my take on where need will be, and discussing this with education researchers, and other thinkers.
I have a hard time believing we’ll carry as much code from the last couple decades as we had to from the previous few.
So much of it these days is web ui’s with a short shelf life relative to foundational code we shlepped forward in kernels, banking, and complex industry systems.
Maybe coding the Arduino/ESP32 game boy clones is appealing to today's kids.
The progression from there is python for those who want to control devices, or web dev for those more drawn to the visual design part. A missing piece is something for making games that sits in the middle of scratch and C++/unity. I don’t know how kids make that transition.
Or maybe Xojo: https://www.xojo.com/
I think Xojo was known as "RealBASIC" in the late 90s/early 00s and was really in the same spirit (but more cross platform) as VB6.
HyperCard occupies the same spot for me that VB6 seems to occupy for you. Today for stuff I'd have used that for in the 90s, I just stand up a quick little web app and text or email a link.
That's in no small part because nearly all of my wife's computing is done on an iThing and not on a computer that she could readily download and run something on. Unless I want to throw my cute GUI in an app store, it needs to be web-based now.
I downloaded Xojo and kicked the tires. It was absolutely cool to see that an environment like this lives on. It really does feel like a successor to VB6.
If you're interested in a GUI editor, this is the tool people are using these days:
https://www.sapien.com/software/powershell_studio
It's a paid product, but comparatively cheaper than VB6 was.
Great question. And I agree with the sentiment.
My opinion for "why is it so hard today": it has to do with the way .NET evolved right after its birth. .NET was a response to Java by Microsoft. What Microsoft did in effect was attempt to smother the Java juggernaut by introducing their own Java with J++ (Anders' team) but only available on Windows (their attempt to prevent the allure of Java's platform independence).
By all accounts that attempt was an astounding achievement from Redmond. It boasted interactive tools to create GUI drag and drop features users were accustomed to in VB6 but glaringly missing in the Java world. This was with Visual Studio 97. Then the lawsuits with Sun came. The aftermath of the J++/Microsoft Java debacle was the beginning of .NET. A "Java" for Windows with attendant crazies of the Java world. This is the reason why it is hard. Java was "hard" compared to VB6, therefore .NET had to be hard in the same way.
All analogous complexities associated with the Java world: build tools, runtime versioning tools and intermediate code compilers etc were forever required, keeping this huge katamari ball of technical debt alive for over 20 years.
Now we have .NET Core. So we've just reset the clocks and in one swoop gone right back to 1998 with a new Microsoft Java but this time it is cross platform!
22 years of a meandering path that ends up right where we started!
I am, quite frankly, exhausted.
> ...astounding achievement from Redmond. It boasted interactive tools to create GUI drag and drop features users were accustomed to in VB6 but glaringly missing in the Java world. This was with Visual Studio 97
Thay were not "glaringly missing in the Java world" in 1997 when Visual Studio was released. By that time at least these 2 IDEs with "drag and drop" were released and used already: Symantec Visual Café (a good one!), and a beta of IBM VisualAge (second part of 96). VisualAge came with specific ibm's understanding of drag and drop, however the Visual Café's experience was really similar to VB and much easier than J++ from what I remember. I tried all of them at the time including JBuilder and Sybase. JBuilder was my best for quite time.
The original version was an attempt at Delphi for Java and I liked it far better than Netbeans later, but I came from Delphi to Java so that makes sense.
Same. But I have remained with Delphi. I think we are now known as the lost generation. :-)
Accepting new members into the club? :)
1."No bullshit" - stick to the fundamentals and don't waste time over-engineering, relying on complex builds, producing ambiguous compiles (ok, we're still fixing this), relying on bulky runtime architectures. Have straightforward source code. Native. Straight-talking. Quick-compiling. Hard-hitting. Because Shipping Matters(tm). Only thing that matters. Shipping. No bullshit.
2. "Fiercely independent mindset" - Members know that they must use the right tools for the right job, but members must also display a strong ability to not be swayed by what employers are hiring for. Latest shiny flavour of tech, framework, language, might look good on your CV but many times the conclusion for "What is the right tool for this job?" can still be answered: "Delphi". Stand your ground.
So, if you are a CV-oriented programmer, you will most likely not want to do Delphi. There is an indelible and horribly misinformed meme out there that there are no Delphi jobs or that Delphi is dead, is old, outdated and irrelevant in modern software architectures. I have seen this ageist misinformation come out as lame attempts to ridicule Delphi programmers (jealousy?), branding them luddites and dinosaurs. We never retaliate. Quiet stoicism is a prerequisite for club membership.
Finally, the Delphi club also has a new membership protocol: always buy them a beer. No matter whether they eventually get accepted in the hallowed halls of this quiet corner. :-)
Cheers! <clink>
Delphi is a victim of its stewards management post Borland.
Last great decision, remove reference counting and back to full manual memory management on the upcoming Delphi version.
BTW, I used JBuilder extensively. What a topnotch tool from Borland. Pity they didn't survive the virulent competition during those IDE wars period. I still remember settling an argument with a colleague about his insistence to use the newly arrived Netbeans, while I fired up my JBuilder IDE (Yellow Porsche splash screen IIRC), created a gui, added jdbc data controls, coded a few lines and hit compile - ALL while his Netbeans was still loading with that dastardly progress bar.
(These comments have been much needed catharsis for me.)
Code emitted JBuilder's tools was not isolated from other code that was written for the application. It was easy to add a line of code that would make the included builder tool to not show the resultant GUI correctly.
This was from JBuilder 9 and JBuilder 2006, other than that issue it was a really nice IDE to use.
However I do agree Visual Basic and Delphi were much better, and if Java hadn't happened we wouldn't have lost 20 years playing around with VMs and dynamic languages, to finally start paying attention to AOT, value types on type safe languages.
edit - I'm guessing whoever downvoted doesn't know who Trent Lott is.
It's wierd enough that any old niche forum friends I've lost touch with would recognize it...and I can't imagine anybody else would use it coincidentally. He's been a non-figure for years and years
Your curiosity demands more upvotes than I've got!
My takes is because it's not modular enough. Sure it's easy to plop this and that components here and there, add events, etc. However as requirement changing each pages / sections need to be changed as well. Not to mention portability to linux or mac. That and we're talking about db access, drivers, and security (in memory data sniffing / tepering).
Of course it doesn't applied to all kind of apps, but those who need constant changing are the one who pays Microsoft bills.
If you're starting from scratch, VB.NET is not really any harder to use for this purpose than VB6.
It really annoyed me that I couldn't get nice bitmaps in menus so I eventually learned about Ownerdraw. That changed my life. Having to hook into the wndproc and all the other windows api calls introduced me to C, and so I naturally started experimenting with C++. All without internet, stackoverflow or groups.
I'm now write C++ for a living.
But just so you are aware you can use the 'class' modifier To change this behavior.
It is one of the most fundamentally bizarre language design choices I have seen in my career
It seems like it might make some kind of sense, since it doesn't output directly to the console but rather to a pipe. Bash functions sort of work the same way since they don't have complex return values (aside from exit codes) other than the function's output stream.
Take the following in PowerShell:
ls | sort DateTime -d
ls returns an array of objects, sort then sorts the array by each object’s DateTime field (and here I’m asking it to sort in descending order with -d). The point is that sort isn’t depending on any text output, so it works with any array of objects regardless of the command that returned them.
The other cool thing this enables is auto-complete awareness in the shell. If I typed:
ls | sort <Tab>
then the shell knows what makes sense in auto-completion here as ls has an actual return type and in this case it will give me a list of available fields that I can sort on.
For those unfamiliar: ls and sort here are shortened aliases to more wordy verb-noun commands. These (as well as a large bunch of others) are given to you by default.
Structured data with direct access to any OS API, regardless how it is provided, .NET, COM or straight C like DLL.
UNIX world never had that, beyond trying to fit language repls as user shell, which on UNIX always feels like a leaky abstraction.
I use fish as my command line, but I still write scripts in bash, even personal ones I only expect to use on my own machine. Just out of a vague sense that I might reuse it, or it might escape confinement, or something.
I usually get frustrated with it and bash out a quick cmdlet instead.
Freudian slip?
In terms of wider adoption, it suffered by maturing at a time when a lot of people had moved on to more powerful devop solutions. And of course, being MS tech (although technically it was acquired), it carries a stigma.
I just found it un-intuitive, ugly, and verbose. Compared to my beloved python it looks really really bad.
I used PS to write small scripts and I actually like it. I'm more fluent with bash, but that's only because I used bash a lot. PowerShell feels more robust, no silly space-in-filename problems, no silly parsing of text output to access fields. May be it's ugly for big scripts, I don't know, for me it looked like a vastly superior version of shell.
I would love to learn why people think that power shell is ugly, especially comparing with bash.
I don't think people compare it with bash, but with more modern languages.
[PS] C:\> Get-MyReallyLongFunctionName -Server furtle
$ lol --floop
PS is fine but it takes ages for the bloody thing to wake up and notice command completion. It is like dealing with a teenager in bed.
Actually, I have no problems with PS but with MS's idea of search as deployed to users.
(I run KDE on Arch. Search is faster than I can blink)
man *-AD*Autocompletion still works, just type first letter or two after get and filter most stuff out.
And so I never become comfortable with it, even though I've tried several times since it was released.
The newer IDE is pretty good too.
But C# shows what it could have been if they'd had a talented language designer do it (which no-one can determine if someone is beforehand I admit).
I just wish they'd admit defeat and just use a subset of C# instead of stubbornly sticking with something that seems fairly widely loathed.
myfunc -param1 this -param2 that
instead of:
myfunc(param1: this, param2: that);
I get the impression it's designed with the intent that you're supposed to type the dash, then hit Tab to get tab-completion in most cases. Same with the verb/noun syntax (I know I want to 'Get' something, so typing Get-<Tab> for the list of things is usually the thing to do). I do find it a bit difficult sometimes to think of an approprioate verb right off the top of my head (is it Get- or New- that I need?).
I'd also love to see the concept of proper namespaces in PowerShell; it seems really inconsistent right now (unless I've missed something). For example, type Show-Command and hit ENTER, then look at the different modules that are available. Some will express a 'namespace' by having it prepended to the noun (see for example, commands from the BitLocker module, their nouns all start with BitLocker) while others express no namespace at all (see for example commands from the 'Dism' module). For everyday use I've gone with the 'add the name to the noun' approach in my own scripts. That does mean I tend to use short namespace names though.
I've mentioned this in an older PowerShell-related thread here - MenuComplete is absolutely awesome and improves the PowerShell experience in the console. I actually think it should be the default. If you havent already, try these commands:
Set-PSReadLineKeyHandler -key Tab -Function MenuComplete
Set-PSReadLineOption -ShowToolTips
PowerShell is my full-time shell in Windows now (and it will be in Linux also when I get back into it); I rarely use CMD for anything and parsing text in bash just seems antiquated.
I'm not talking about its unorthodox syntax - that's the least of its problems. The language is hellishly inconsistent and has an inexcusable number of legacy issues for being so young.
And the quality of the standard library is poor. More and more often I find I have to drop down into .net commands to work around showstopper bugs in their PowerShell wrappers.
Excel modules? OK not quite exactly the same but close.
I wrote a finite capacity planner system for a factory a fair few years ago in Excel to replace a huge number of Lotus 1-2-3 thingies with a vast amount of copy n paste from text screens and random sheets and what not.
I started with an automated forecast. We used an (memory may be fading) exponential fit which worked best using previous four weeks. eg last four Mondays would generate next Monday's demand.
The forecast could be tweaked by Planning at any time (aaaaiiiieee - Christmas!) The forecast was then fed into prep, make, bake, wrap and then dispatch. Between each process there is a stock holding. This is food so there are quite a few constraints on time, that's why we are making to forecast and not order. The customer will generally order your forecast if you are good enough and that is the whole point in the supply chain to the multiples: you know better than they do what will sell of your product.
The forecast cranks through the processes and stock points and generates a basic plan. It shows what efficiency is needed from each machine and the amount of manning etc. Oh dear you've got a Rademacher running at 170% which is a bit unlikely (110% is fine because 100% does not mean what you think it does in this industry - its a rate that is easy to achieve and not the absolute max). Oh and that machine is due 10 hours maintenance. Crap. OK, Mel off of Planning: do your thing ... a few parameters are tweaked, some production is offloaded to another member of the group and a packet of Hobnob biscuits is dispatched to a factory 200 miles away. The amended plan is run back through the model to ensure it satisfies the inputs and then when that is OK it is fixed for now.
I have not given too many details here as to specifics. I used a huge number of vlookups and I had a lot of code that ran through tables looking for the word "End" to indicate the last row (but one).
I basically found that VB gave me enough logic and whatever to get the job done in a reasonably safe way but without getting in the way of the business logic. I could concentrate on getting the job done.
Nowadays I'm a Linux (Windows and NetWare (lol)) sysadmin who masquerades as a PHB or MD but I still have a fondness for VBA. I recall getting someone's neural network spreadsheet VBA monster working after the most unlikely helpdesk call ever.
Good times.
You don't even need Excel!
I'm pretty sure that if you partner with someone that can package your food supply chain knowledge into a nice UI/UX experience (or doing it yourself, idk), you could produce and sell a decent piece of niche software for planning in food plants.
At $work we are into software for managing plants (not in the food industry), and the demand for tailor made planning functions is obvious.
This is the VB6 comparison in my book.
The strength of VB6 was a simple and straightforward syntax and a great integrated GUI builder and IDE.
Powershell has none of that. The Powershell syntax is baroque due to the (necessary) compromise between command line syntax and scripting language and there is no IDE/GUI-builder.
Sure, Powershell is much more powerful in many ways, but that was not the draw to VB6 in the first place.
What feature are you referring to?
[0] https://dandraka.com/2018/11/12/powershell-how-do-you-add-in...