P.S. if you, like me, were wondering what Libera Chat is, it’s the moral successor of Freenode with Freenode now being a shell of its former self.
P.S. if you, like me, were wondering what Libera Chat is, it’s the moral successor of Freenode with Freenode now being a shell of its former self.
The learning curve has been sacrificed. It's now a learning cliff for everything. We've used to have computers that make it simple to do simple things and hard to do complex things. Now, just so it can be slightly less hard to do complex things, we've made it hard to learn and do simple things.
In old GL it's basically glClear, glBegin, glVertex, glVertex, glVertex, glEnd and a bit of window setup.
In Vulkan you need to know what these things are: queues, command buffers, image/geometry buffers, memory locations (constant, uniform, varying), resources, bindings, shader programs, fences, swap chains, and how they all coordinate together.
And until they are all properly coordinated together, you'll just be staring at a black image or just get errors.
The world that lived behind that experience - COM & Active X Controls - was extremely complex. If you needed to build a new active x control for your app, god save you.
It's been said a million times, but in programming there is always complexity. Sometimes it is just well hidden.
You're right to observe that programming involves irreducible complexity (one of the reasons why so many low code/no code tools fail is the refusal to accept this, imo), on the other hand modern toolchains are extremely complicated and could be a little more streamlined.
It's a meme at this point, but there's no way having six different pythons on your machine or whatever the hell modern JS toolchains do -- just to pick two examples -- is the simplest it can possibly be.
Older machines and toolchains certainly had their problems (arguably even worse ones), but I completely understand the complaints.
Similarly, I tried to learn Clojure before Pharo. Spent over a hour setting Atom with all dependencies required to convert the editor into a Clojure IDE. But I botched the set-up somewhere, and ended with a dead REPL. Again, never came back.
The best experience I had so far, as a beginner trying a new programming language, was Pharo. You type a couple of lines in the terminal, and gets a full environment with _everything_ you need included in the system image. No need to spending a lot of time wrangling dependencies to get a functional system. I think the image-based development strategy from the Smalltalks is underrated.
regsvr32 coolcontrol.ocx
This is the mistake. Linux and, I believe, OSX come with several tools pre-installed including python.
It might be just me, but PowerShell feels outright developer-hostile even when compared to Bash. Perhaps it's their approach to rely primarily on .NET stuff which makes things so arcane, but when given the option it's far simpler and better to go with, say, python than PowerShell.
Bash is described as a "command language" and not a programming language per se.
Bash is what you use to type in commands, and automate said commands if you need to whip out a quick script that runs what you would otherwise run manually. Bash, scripting-wise, is command line glue.
If all you want to do is run commands with some logic, PowerShell is simply dreadful and outright developer-hostile. I doubt there is a single person on earth who uses PowerShell as a command shell like Bash is used.
This subthread was specifically about programming languages being available out of the box in OSs, so when you brought up bash my natural assumption was that meant as a programming language.
Expand your views. Everyone aren't you, didn't learn the same things as you and understand different things than you.
I learned some C++ as my first language, therefore I got stuck in an object oriented mindset, this translates really well to PowerShell and really poorly to bash. The thing where everything is text doesn't make sense, text isn't stable and everyone will write their own partially broken parsing implementation. In PowerShell they try to make everything an object, with type checking and other goodies, solid autocomplete for scripts being one.
In PowerShell I can deserialise JSON and perform CRUD operations on the data easily.
I'd say powershell is outright developer friendly as it brings a production grade language to the scripting table.
If powershell could parse bash completion files and integrate sudo better I'd use it as a command shell on all platforms, which right now are limited to MacOS and Linux.
PowerShell is such joy that it should be there on any Linux as default interactive shell.
For a long time MacOS came with only Python 2.x installed. I looked up what the latest version of MacOS comes with and came across an Apple support forum post with several responses posting conflicting answers [0]. One person got an Xcode related error. Having to install a heavyweight IDE just to get a language to run correctly is the type of needless complication the parent comment is talking about.
xcode-select --install pulls in the CLT, which is a fairly reasonably sized download given that it includes various essential dev tools including python3 but without Xcode.
This is hinted at by attempting to run python3 before any install, which calls a stub prompting you to do just that.
py2/ruby/perl/etc... are part of the base OS for backwards compatibility/expectations (because they were so before Xcode/CLT were even a thing) but have been marked as due for removal from base for something like half a decade. My bet is that at some point they will move to the CLT (or some other optional download) as well.
https://apple.stackexchange.com/questions/406244/will-macos-...
EDIT: Oh and pipenv!
If the Python version that comes with your OS is not the one you want (e.g. it's outdated), then you'll have to:
1. Install the version you want anyway, and all the tools required (that usually don't come preinstalled in the OS)
2. Try to not make them collide, which, last time I tried, was a PITA, because the OS depends on original version of Python being in the the $PATH or something.
Python on Ubuntu is notoriously misleading for newbies, because even if you apt install python3 and it tells you that it's already installed, it's not fully installed. For example, venv is not installed, you have to `sudo apt install python3-venv` and do that for every Python module that's not installed by default.
It would be easier if Linux didn't come with Python, and then people simply installed the actual, full version of Python they wanted.
Which then wouldn't work for all the repository python programs. The repo's python is what everything is built and tested against, so there is no replacing that.
I couldn't have afforded buying one, but my university had half a dozen.
I wish kids today could get that.
If you bought either of the two itch.io bundles "Bundle for Racial Justice and Equality" or "Indie bundle for Palestinian Aid", then you have the Standard license already included in that bundle. It's well worth a look IMO.
(Not affiliated other than a very happy user.)
Here's a 6-minute demo: https://archive.org/details/akkartik-mu-2021-06-09
Requires Qemu, though. And no sound yet, unfortunately. I'd love contributions there or elsewhere.
Then suddenly there were masses of weird, undocumented APIs, including APIs from any application installed on the machine. Unfortunately I was making my living from VB6 at the time, so I had to learn it all. (And then MS withdrew support for VB6, forcing me to learn a new trade, which is only one driver of my animus against MS)
Long ago I owned a Sinclair QL. That toy had a rather nice BASIC editor. I think their dialect was called QBasic. You selected a function in the left pane, and it appeared for editing in the right pane. (I also loved that it used a 68K processor; that chip had a sweet instruction set)
Tcl was such an expressive yet minimalist language. Probably the only fast and easy way back then to create GUI applications on *nix systems. I guess Python + QT has killed it now, but with a massively larger footprint and resource usage obviously.
Maybe when the browser fully swallows the OS but I hope it won't be JavaScript or it would have morphed into something else.
BASIC is smarter than C, it knows when = means assign and when it means equality
Nowadays, it's all about interconnecting different microservices just to bootstrap something, let alone build something complete.
What is an example of this?
and
> Once upon a time, one could download visual studio,
don't seem to agree very well. Visual Studio is a behemoth and usually results in stuff that's non-standard, non-portable and with lots of dependencies.
How is that not easy?
Computers are complex, and people who don’t work closely with them daily can easily get very confused.
Visual Basic (classic) that you mentioned, discontinued in 2008, was not free, unless you pirated it.
> ‘just drawing things’
For that you have much more amazing things today, like Shadertoy, or various artistic programming languages like Processing, ...
Programming is easier than ever, computers are extremely cheap, software is free, documentation on the internet is free, YouTube is full of tutorials, there are literally no obstacles if you want to do it.
Back in my day I had to pay for computers, for programming software, for books, Internet cost a fortune, ...
> Build Native Apps 5x Faster With One Codebase. For Windows, Android, iOS, macOS, and Linux
https://www.embarcadero.com/products/delphi
And it's free if you don't make a lot of money of what you build.
Delphi Community Edition only allows x32 compilation
I downloaded it to try. It's not a huge limitation for most usecases I would imagine.
Apart from the underlying language, the experience is pretty close.
Really, it's not. This trade has got much, much harder since I started. The languages are harder, because the targets are both more complicated and more various. Computers were mainly used to do sums (I worked on accounting systems written in COBOL).
I mean, it's easier if you take into account the complexity and richness of the modern computing environment, USB, PCI, caches, what have you. You are producing more powerful programs. But the onboarding ramp for modern programming is steep.