
MSX History: The Platform Microsoft Forgot - artsandsci
https://tedium.co/2019/01/29/microsoft-msx-history/
======
sp8
I had a Toshiba MSX (in the UK) as my first computer. My parents bought me
that, convinced by the salesman's hype, when everyone else was buying
Spectrums and Commodores. At the time it was a pain because not all the good
games came out on MSX, but I loved that thing. It taught me BASIC, got me
interested in computer-based music (BASIC programmes with endless PLAY
statements) and got me into _computing_ rather than just using a computer.
I'll always have a soft spot for MSX.

~~~
rixrax
Pretty much same story here. I got Spectravideo SVI-738 with integrated disk
drive. Being able to run CP/M on it didn’t really do much when everyone else
were having C64s and playing Pirates. :)

------
mschaef
"The most obscure part of Microsoft's history." That's a pretty high bar.

Here are a couple other candidates (restricted to stuff that actually shipped
as products):

* QuickPascal - Microsoft's low end Pascal competitor to Turbo Pascal. (The full MS Pascal might be a reasonable candidate too.)

* MS Access, the communications package. (Predates the database of the same name.)

* Softcard - Z80 coprocessor board for the Apple ][. (The Mach 10 and Mach 20 PC accelerator oards arn't bad choices either. The Mach 20 was a plug in board for PC's that itself had expansion slots.)

* Multiplan - the spreadsheet precursor to Excel.

* The runtime-only version of MS Windows. (Bundled with Excel to let people that didn't have Windows run Excel.)

* Visual BASIC _for DOS_ - Exactly what it sounds like, but running in text mode DOS.

~~~
mgkimsal
MS Bob?

~~~
mschaef
I think that omission is mainly my own bias, which stems from my age... I had
been paying attention to the industry then and at the time it got a bunch of
press. Bob's also interesting in that Melinda Gates was involved in marketing
that project, and she considers it her biggest flop:

[https://www.cnbc.com/2017/11/29/the-lesson-melinda-gates-
lea...](https://www.cnbc.com/2017/11/29/the-lesson-melinda-gates-learned-from-
screwing-up-a-microsoft-project.html)

MS Xenix is another one that might ought to be on that list. So much of
Microsoft's image is built around Windows that the notion of a Microsoft
without Windows and selling a 'Unix' has got to be startling to the vast
majority of folks.

------
opinali
MSX was a hit in Brazil largely because of our closed market at the time,
where importing computers was always very expensive and often illegal. A
computer had to be a "national" product, even if that meant just a clone of
foreign machines built with mostly imported parts (and very often violating
copyright, e.g. I had a ZX Spectrum clone which manufacturer was sued by
Sinclair, unsuccessfully, despite copying even the ROM code). In that
environment the MSX was a great solution, local companies could join the party
of selling a computer/peripherals/SW that benefited from a (hoped) worldwide
market, without the costs of licensing or the hurdles of straight piracy.

------
S_A_P
Another MSX computer from Japan that you could find in a music store? The
Roland S samplers from the mid to late 80s to early 90s. The S10, S50, and
S330/550 are at their heart MSX standard computers. The basically impossible
to find mouse was a standard MSX mouse, and its possible to use a PS2 mouse
with an adapter widely available on Ebay. These samplers were 12 bit with a
choice of a 15 or 30khz sample rate. Great for digital aliasing noises a'la
Sp-1200. They had the additional benefit of a really good digital filter that
was available before the Akai S-950. I had and used an S-550 for years, but it
really is a pain in the butt to use, even with the mouse or the programmer.
Other gear surpassed it in popularity for a pretty good reason, but that
sampler was still a pretty amazing piece of gear...

------
orjan
For me here in Sweden, it was a Spectravideo 728. Truly the reason I got into
computers. It never was a big platform here so never saw many big games. And a
couple of years later I switched to an Amiga.

There are quite a few emulators available:

\- fMSX is multiplatform:
[https://fms.komkon.org/fMSX/](https://fms.komkon.org/fMSX/)

\- RuMSX:
[http://www.lexlechz.at/en/software/RuMSX.html](http://www.lexlechz.at/en/software/RuMSX.html)

It's been a few years since I used any of them so can't vouch for quality.

~~~
guaka
I like [http://webmsx.org/](http://webmsx.org/) a lot. Works right inside your
browser.

------
mmjaa
I wrote a lot of code for Yamaha MSX systems back in the day. It was truly a
delight to be able to see ones programs running on different machines with ..
mostly .. ease.

For me, the thing that made MSX fail was over-standardisation - it was very
difficult for manufacturers to stand out from the pack. Often, the machines
all felt the same, so consumers would buy the machines on the basis of style -
and there were some truly atrociously ugly MSX machines being designed in
those days. (In some ways, its quite similar to the situation with, say,
Android today.)

And then, there were the places where standardisation hadn't quite worked.
Subtle differences between systems often mean that developers had to have a
fleet of MSX machines to test on, to be sure. (Again: Android)

And in the midst of all of this, along comes IBM and the rest is history ..
but for a while, MSX (and MSX2) were really intriguing technologies. Working
on MSX in Japan led me to becoming an ITRON adherent, which led to me becoming
a systems/OS developer.

[https://en.wikipedia.org/wiki/TRON_project](https://en.wikipedia.org/wiki/TRON_project)

.. which put me in the right place, at the right time, to become an early
Linux adopter ..

~~~
endemic
Your comment reminded me of some amazing photos of a Sony MSX machine:
[https://mobile.twitter.com/AttractMode/status/11038522081924...](https://mobile.twitter.com/AttractMode/status/1103852208192409600)

I wish PC makers today would branch out from their "copy Apple" sterility.

~~~
puzzle
Sony had probably the most stylish designs among MSX manufacturers. They were
not afraid of using curves compared to e.g. Philips' boxier style.

There was some other interesting stuff in the 80s, like the systems from
Apricot (formerly ACT). There was the Portable

[http://s11.photobucket.com/user/ballsandy/media/Computer%20r...](http://s11.photobucket.com/user/ballsandy/media/Computer%20related/Apricot/100_2162.jpg.html)
(uncropped at
[https://cs9.pikabu.ru/post_img/big/2016/10/15/5/147651790013...](https://cs9.pikabu.ru/post_img/big/2016/10/15/5/1476517900137950723.png)
)

which also had voice recognition, or the Xen

[http://www.1000bit.it/lista/a/act/apricot_xen-i.jpg](http://www.1000bit.it/lista/a/act/apricot_xen-i.jpg)

which had programmable keys and LCD screen on the keyboard.

~~~
mmjaa
Goodness, those Apricot machines are absolutely delightful. I wish there were
manufacturers with the balls to try such things again ..

------
squarefoot
During the mid-late eighties I had a Yamaha CX5 MII MSX computer which I used
as a FM synthesizer along with other instruments. I loved it, but although it
was vastly superior in just about everything compared to my old C=64, it ended
up being used exclusively as a music making machine as I was anyway in the
process of migrating from the C=64 to the Amiga. Still the CX5 was a godsend
for music: old FM synths were harder to program compared to old school
subtractive synths and being able to edit patches on a computer screen rather
on a small display made the process a lot easier than on similarly capable
synths or expanders.

~~~
kristianp
Did the Msx have midi ports as standard, or am I remembering incorrectly.

~~~
Zenst
MIDI was added later to the MSX standard, and came after the CX5M, which added
them along with the FM module (which was iirc 5 FM operators - the DX7 synth
was 7 FM operators) which was the cheaper flavour of FM.

~~~
raphlinus
The DX7 was 6 operators, and the module in the CX5M (I had one) was 4
operators, like the DX21. It used the YM2151 sound chip, which was also
present in a number of video games.

This was an awesome computer, very fun to play with.

~~~
Zenst
Aha, thank you for jogging me grey matter, I had one as well (got one with a
couple of friends and formed a band - one gig wonder). Had a TR707 as well,
fun times and great intro into music. Did enjoy the CX5M immensely, though
went out of my way to avoid any preset sound. Once you've owned a synth, you
just recognise all the presets in all the songs, but was easier back then
unlike todays sample world.

I did prefer the bass sounds on the Casio Phase Distortion synths though over
the FM options as sounded richer (at least for me).

------
outworlder
The MSX was the sole reason why I am on IT today.

Picture a 8 year old boy unwrapping his first computer back in 1988. It would
boot up right into MSX Basic (until later on when I added a floppy drive). One
could play around with commands and have stuff happen. "screen 2" would take
you to a graphics mode, where amazed me would get simple programs drawing
stuff on the screen. I didn't know that I was 'programming' anything, only
that I would type stuff and run and things would happen. I didn't understand
what the 'for' instruction did, among others.

My first 'assignment' came from my father. He repaired TVs as a hobby(mostly,
he did fix a few for money). One thing he couldn't do was to adjust the
alignment on said TVs. There were pattern generator devices which cost quite a
lot of money, money we didn't have (even the computer was second-hand).

So young me had set out to draw a greed. Easy - screen 2, then a bunch of
'line' instructions, one per grid line. Lots and lots of typing. Since the
computer connected to TVs already (through a RF box), all my father needed to
do was load the program (from a K7 tape) and hook up to TVs. That was great.

Revisiting the program a couple of months later (he wanted the grid spacing
changed) and dreading to do that work, I was flipping over the manuals, when
it suddently clicked: I could use a variable for the 'line' instructions, and
change with this 'for' instruction, which so far had eluded me. A few 'pages'
worth of code got translated into 4 lines.

I was hooked. Never stopped coding since then.

Another thing I tried to do. So PCs came around, with nice graphics (nicer
than what I had, and it took a while but then they got nicer graphics than
even MSX 2.0 or the Turbo-R). Then Windows 3.1 came around.

I tried to replicate Windows 3.1 based on magazine printouts - PCs were still
hard to come by, PCs with enough specs to run 3.1 even harder still. At that
time, I had switched from Basic to Turbo Pascal (3.0). The MSX port was
lacking a few units. Most notably, the * graphics * unit (massive omission if
you ask me).

So I set out to implement the drawing functions myself. Only I wasn't at the
university yet, and didn't know how to draw lines (or god forbid, circles). A
quick google search today will give you Bresenham's. Back then, information
like that was hard to come by.

So I did some thinking. Even though I was booting up to DOS at this time –
which meant that all pages were mapped to RAM – MSX Basic was still there in
ROM. How did it do it? The functions must be there somewhere.

I got hold of the "MSX Red Book". That book described all ROM functions, even
undocumented ones, with the memory address, input and output registers.
Jackpot! Only problem was, as previously mentioned, all memory banks were
switched to RAM. I would have to flip two banks to ROM, run the functions, and
then switch back.

Then I found a function that did just that, CLPRIM I think it was called. In
short order, I had ASM wrappers for most basic drawing functions, and I could
draw my "windows".

Two problems remained: text, and the "mouse" (I had no mouse, I was faking
with cursor keys).

Drawing text in graphical mode was far beyond my capabilities – specially
since I wanted to squeeze 64 columns (ordinarily that computer would do 40 per
line, in text mode, and the character patterns were designed for that). Then I
remembered that I had WordStar. WordStar managed to get 64 columns. How?

After some digging I found that it would load a program into RAM before
running the editor (PC-based DOS users would call these TSR's). So I 'stole'
it. Before running my 'windows', I would load it too. Yay windows with titles!
(Lots of work done afterward to ensure they would horizontally match and not
overflow).

Good, now all that's left was the mouse. So I wrote a 'TSR' of my own, which
would draw and move a hardware "sprite". The only thing the turbo pascal
program would have to listen would be for the space bar, and then retrieve the
'mouse' position from a pre-arranged memory location. The asssembly code took
a while to write - it was easy to lock the machine up - no memory protection
or multi-processes meant that these were "hard" lock ups, which required a
reset. Still, I eventually got it done.

Last major problem: both the wordstar TSR and mine required some of the same
hooks. hooks were pre-determined memory locations. A 'call' – CD 21 –
instruction would be issued to these locations whenever the event happened.
Usually, they would contain 'C9' (RET). However, there was just enough space
for, lets say, a (JMP) instruction (C3) plus memory address. This way, you
could run your own code and then (RET) when done. So we both used the same
hooks.

The way I got around this was: load the Wordstar one first, then load mine. If
I found that there was anything there other than C9, that meant that the hook
was in use. So I would save it, put my own in place. When finished, I would
transfer control to the code that I had saved before.

Finally I had a working system. A few tweaks here and there – I had to save
the current state of the graphics processor (VDP) ports whenever my 'mouse'
program activated, otherwise it would corrupt the screen. But then it worked
flawlessly, if a bit slow (ROM was much slower to access, something I did not
know at the time).

12 year old me used this fancy and overengineered system... mostly as a menu
to run games, icons and all. Very little 'serious' work was done.

It's too bad that there was no version control and almost none of the code
survived (I may still have some of the 'TSR' code printed out, an earlier
version). It would have made for a nice blog post.

I do miss some of that. There were very few abstraction layers between your
program and the system, so you really understood what you were doing.

The downside is that I now have a few neurons which are forever locked to
store now useless MSX trivia.

poke &HF346,1

call system

~~~
therein
> Revisiting the program a couple of months later (he wanted the grid spacing
> changed) and dreading to do that work, I was flipping over the manuals, when
> it suddently clicked: I could use a variable for the 'line' instructions,
> and change with this 'for' instruction, which so far had eluded me. A few
> 'pages' worth of code got translated into 4 lines.

This exact same eureka moment happened to me as a kid when I picked up BASIC
in first or second grade.

I was comparing two numbers to figure out which one is the larger one. I put
my if statement, and the condition, but then turned out I had another number I
had to compare to the larger of the first two. Once I wrote that, I realized I
needed another one, and then another one. It struck me that I didn't even know
how many numbers I was going to need to compare and it was clear to me that I
cannot continue doing it this way.

I started to think what can I do, what if I compared the first one with the
numbers after it in the list... Oh what happens on the last number? Do I wrap,
no that doesn't make sense, because I did that comparison already.

I know what to do, I should compare each number with all the numbers after it,
and pick the largest one from each iteration and place it elsewhere.

This is how I came up with my O(N^2) sorting implementation. Probably the
first "general purpose" algorithm I've ever come up with or implemented but I
remember the exact feeling of "wow, this changes things".

That realization that I could execute the same subroutine while changing the
parameters it is operating on was literally an eye opener at that age and it
was so satisfying having come up with it on my own.

------
mavarex
I'm from Istanbul, my father bought me when he retired. Just I want a computer
for playing game because my friends have c64 and everyday playing game. When I
learned there is limited game option my programming journey started. Yes I'm
programmer and 43 year old. I don't have any regret. It is my dream to be a
programmer. And MSX was my first friend. It is already working. All hail to my
MSX friends.

~~~
jacobush
Same for me, same age, same story about programming because there were very
few games, unlike for the C64 which my friends had.

~~~
mavarex
Then my friend enjoy music of knightmare /watch?v=hF0HQYSwcuw

------
tluyben2
I started on an MSX-1 and then MSX-2 in the early 80s; programming I learned
before that in GW-Basic on a luggable [0] and because my parents wanted me to
continue (I was just 8), they got an MSX-1 and a year after that an MSX-2. By
then I was writing games and wordprocessors (I had some obsession with them at
the time) in rancid combinations of MSX-Basic and Z80 asm. It was so fast to
iterate that way (provided you were careful with the asm). I wrote enormous
monsters of programs in that combi for the MSX-2 and it was always a miracle
how they actually worked in the end. Shame I do not have backups. I found a
demo of mine on an old MSX-2 BBS backup on a second hand machine I bought, but
that was the 'protected' one (Basic source obfuscated and 'hidden' and
assembly as bload blob); I have not had the time to figure out what I did
there.

After that I moved to programming BBS software in Pascal and C and more games
and it slowed down the progress a lot; so slow that compiling process.

It improved a while later with Delphi but after that (C++, Java, C# etc,
Haskell, etc) it all went down again; everything is still not really as
accessible and fast to iterate as that Basic and Delphi experience. I think it
was mainly because they both were a) very fast (interpreted and with Delphi, a
very fast, almost instant compiler) and b) for me, closed loop; I had almost
no access to other devs (only via BBS's) and that meant I had "The Book" for
my environment and that was all there was to learn. So no code completion or
spelonking 1000s of libs was needed, just use what you have and you could make
anything. Ofcourse you theoretically could make anything; practically you were
slow because you had to basically write a lot yourself that you can just pull
from the internet now.

[0]
[https://en.wikipedia.org/wiki/Corona_Data_Systems](https://en.wikipedia.org/wiki/Corona_Data_Systems)

------
gregrata
Cliff notes:
[https://en.wikipedia.org/wiki/MSX](https://en.wikipedia.org/wiki/MSX)

~~~
tom_
Risky click:
[https://en.wikipedia.org/wiki/MSX_Video_access_method](https://en.wikipedia.org/wiki/MSX_Video_access_method)
(NSFW)

------
kgwgk
POKE -1,170

Edit: apparently this is done to change the subslot to make sure RAM will be
mapped into 0000-7fff. All those words wouldn't have meant much to 12-year-old
me, but I certainly knew I had to do that before loading games on my
Mitsubishi ML-FX2.

~~~
superempie
Same on a Philips VG-8020. POKE -1,170 was the magic trick back then :)

------
icedata
I worked for Logo Computer Systems in Montreal from 84 to 94, we did quite a
bit of development (of Logo versions) for MSX computers. We had many different
models, made for the Japanese market mostly. One day we accidentally static-
damaged about ten of them (they weren't made apparently for low-humidity
environments). We had to have a bunch of the custom chips airlifted in. I
spent a week with my boss and a scope trying to get them working. We managed
to fix about six of them. I learned a lot about hardware that week. Fun times.

------
boaglio
Guys, this is a presentation from Paulo Peccin (WebMSX creator) - in pt_BR but
you can turn on subtitles auto-translation . I was there, it was great =)

[https://www.youtube.com/watch?v=yVFL05xsdhk](https://www.youtube.com/watch?v=yVFL05xsdhk)
\- part 1
[https://www.youtube.com/watch?v=ISPb1sL72EQ](https://www.youtube.com/watch?v=ISPb1sL72EQ)
\- part 2

------
xchip
I had one, and out of nostalgia I created a virtual disk drive using an
arduino ([http://codinglab.blogspot.com/2013/01/virtual-msx-disk-
drive...](http://codinglab.blogspot.com/2013/01/virtual-msx-disk-drive.html))
All my friends had disk drives and I was stuck with the frustrating tape, so
creating a virtual disk drive kind of made for it. The games though sucked.

------
dewiz
I still hold my MSX dear, protected in a box for future generations. That's
how I learned to program, fiddle with memory addresses, and weld broken
circuits. 3.5MHz could do a lot, well, sort of, games were pretty cool :-)

------
snvzz
Past the mid eighties, any personal computer platform not using the 68000
family of processor was just doomed.

In hindsight, x86 (which was a shittier ISA) survived, but it shouldn't have
been.

~~~
IWeldMelons
So did ARM

~~~
snvzz
Meant to restrict that to CISC ISAs.

If we include RISC ISAs, what's surprising is that we're still dealing with
CISC today. I'm hoping RISC-V will change that.

------
zubairq
As someone who is personally obsessed about 1960s and onwards computing I
found this to be a great a well researched article. I always considered MSX
and CP/M to be the real parents of the Windows monopoly. I view MSX as the
learning process for Microsoft, and CP/M as the building blocks, since the
first version of Windows (called DOS at the time) was API compatible with CP/M

~~~
ido
How is DOS the first version of windows? Just because it was made by the same
company? It would be less inaccurate (but still wrong) to say the Mac OS was
the first version of windows :/

~~~
billforsternz
I quite like the idea of DOS being the first version of Windows. In the
beginning, there was just a command line. Then Windows was added as a
graphical interface. Then the graphical interface became pre-eminent and the
command line became an obscure feature to most users. Windows code was
originally tied to DOS but over time first completely incorporated it, then
recast it as Windows changed from the child to the parent in the relationship.

~~~
zubairq
Yes, this is what I meant, you said it better than I did. As graphical
features were added to DOS then it was rebranded as Windows by Microsoft. I
guess at some point Microsoft realised that they had to have two distinct sets
of code and that they needed to be different products for branding and legal
reasons related to OS/2 and IBM. I guess it could have ended up being called
DOS Windows or DOS Gui or something, but Windows was a much better name...

------
pier25
The MSX was also my first computer. I wrote my first lines of code in Basic
copying small games from magazines as a 6 year old kid in the 80s.

We had a HIT BIT Sony MSX.

~~~
abawany
Same here. Mine had 16k of memory (12k usable).

------
FatDrunknStupid
Completely derailed my career. Wrote a ZX-Spectrum game and refused to port it
to MSX. The pay for the ZX game was a compiler so I doubt much would have come
of it anyway.

~~~
xchip
nice! which game did you write? And also why did you refused to port it to the
MSX?

------
Theodores
I think we also forget about how common Microsoft BASIC was.

In the late 1970's the hobby market existed with machines then being many and
diverse. Almost all of them licensed Microsoft Basic. Only later with the home
market and the likes of Commodore, Sinclair et al. did home computers come
with their own versions of BASIC.

We all know that BASIC is a load of rubbish. But the MicroSoft BASIC on those
hobby machines set the mood for what home computers would have, even if it was
not MicroSoft's BASIC.

Early home computers did have custom ROMs for all kinds of exciting languages,
on the BBC Micro you could get BCPL (C, early version), Forth and probably
Pascal. Same on the Sinclair machines, there was even a ZX81 clone - the
Jupiter Ace - that ran Forth.

Despite this plethora of languages we ended up with BASIC. Boring BASIC. There
were no resource excuses, Microsoft had just set the tone of what the home
computer market was to be.

Same problem happened with Windows. Instead of networked UNIX style computers
with some security worked out with things like 'user space' there were this
ugly DOS and Windows things and it was 'personal computing' with people
carrying disks from one PC in the office to another. Although I liked Windows
at the time it really was the second time round that Microsoft had stunted
computing, first with BASIC and second time with Windows/DOS.

Coming from a BBC Micro background where the BASIC was awesome and the disk
filing system was okayish I was massively underwhelmed when I first had to use
DOS. I felt 'is this all there is' as I experienced the kludginess of it.

MSX made precisely zero impact in the UK other than giving the likes of
Personal Computer World something to waste dead tree and ink about. From what
I remember it was not that hacker friendly as back then you needed to write
code that was familiar with the hardware, not abstracted out through some
convenient operating system. With a BBC micro you knew that you could write
something performant - as in arcade machine grade - with the built in
assembler and a lot of work with the A/Y/X registers of the 6502. MSX on a 16
register Z80 with some mystery meat video interface made that possibility
unattainable.

All considered I think MSX hampered the computer cause, promising something
that was never delivered. It was also off in that blind alley of BASIC that
MicroSoft foisted on the hobby market a decade earlier.

~~~
0815test
> We all know that BASIC is a load of rubbish.

I don't think this is right - BASIC was quite well designed considering these
machines' capabilities and projected use. The model of a BASIC-powered home
computer was essentially that of a programmable calculator with "computer"
features tacked on. You could start by PRINT-ing math expressions at the REPL,
and these would give you the sort of result you would expect, using software
floats. Then you could make more complex programs, using simple line numbers,
variables, and a handful of reserved words like PRINT/?, INPUT, IF, GOTO, FOR.
You also had PEEK, POKE, SYS and/or USR to access the hardware directly. Sure,
in theory FORTH might have been more elegant, but its RPN-like approach was
far from intuitive.

~~~
Theodores
The debate existed then, I quote Dijkstra:

"It is practically impossible to teach good programming to students that have
had a prior exposure to BASIC: as potential programmers they are mentally
mutilated beyond hope of regeneration."

I never got to own a Jupiter Ace or to have a go at FORTH. I don't think the
options were 'BASIC or FORTH', neither do I think that computers had to have
4K of ROM and 1K of RAM by the time the 8 bit microprocessors came along in
the hobby era. Sure 8K of anything cost more than a paltry 4K but were those
machines with 4K ROM of BASIC and 1K of RAM useful for anything whatsoever?

The ZX81 with 1K just mentally mutilated programmers, other than that you
learned that you needed more memory.

Your first programming language constrains how you think, I was deeply wedded
to the 'GOTO' concept and could not understand how a program could work
without line numbers. BASIC took me a long way off the object-oriented
paradigm!

Anyway, thanks for grumbling about my sweeping statement - that I still stand
by - I have now found some Dijkstra that is totally relevant to today and how
web development has gone:

[https://www.cs.utexas.edu/users/EWD/ewd04xx/EWD498.PDF](https://www.cs.utexas.edu/users/EWD/ewd04xx/EWD498.PDF)

~~~
metafunctor
The first programming language I learned was Microsoft BASIC on an MSX. I then
moved on to learn Z80 assembler, Pascal, X86 assembler, C, Scheme, Java,
Python, Haskell, Standard ML, Objective C, Rust, and whatnot. I believe I'm a
pretty good programmer.

Claiming that learning BASIC as the first language somehow permanently broke
they way I think about programming is bullshit.

~~~
TheOtherHobbes
In the UK an entire generation of professional developers started with BASIC
on toy machines like the Spectrum, before moving on to professional languages,
often after a degree.

Calling it bullshit is actually being far too polite about it.

~~~
C1sc0cat
Not to be negative but I would mention "a bad workman blames their tools ".

~~~
goto11
To be fair, all good craftsmen care a lot about their tools. But gatekeeping
other people based on the tools they use rather then the results they achieve
is just snobbishness.

