Jump to content

Getting the younger generations more involved


Recommended Posts

Posted (edited)

It's easier/cheaper to create faster hardware than gather talented low-level coders - that's the answer. Like nobody builds their own house or car now. And builders neither build their tools or create materials - that's inefficient. 

So low-level coding is an engineering pleasure (and retro-computing is a pleasure with taste of nostalgia) but there is (almost) no way back. High-level tools give you enough level of abstraction to make complex things without need to understand complex principles. It's more craft than art. You take building blocks and construct something you need very fast.

Just an example - I had an estimate for a small startup recently. The customer asked to follow the design with per-pixel accuracy. We had to implement doughnut graphs with labels placed in a special way. So customer could not believe or realize that implementation of that small feature he demanded would take the same amount of time as the whole project. Just inventing, testing and tweaking of the algorithm of label positioning with incorporation of code to the existing library as a plugin. With time required to understand how that library was built and how it works.

Edited by Roman K
  • Like 1
Link to comment
Share on other sites

Posted (edited)
On 5/3/2021 at 7:09 PM, Falken said:

tl;dr

 

I respect that.  Here is the summary:

 

PART 1:  Earlier this year, innocent people were randomly getting banned on YT and other such BigTech platforms (and then unbanned without explanation).   Maybe a niche networked-platform could exist that is more immune to politicalized BigTech, as it wouldn't have the processing capacity to get overtaken with tracker Bots.    ALSO, a brief note that in elementary, kids are learning about Intellectual Property Rights, which can impact their motivation to try anything as "being original" in the instantly world-wide-all-markets searchable digital age is difficult to do.     EDIT: Wanted to clarify, despite recent events, I'm not actually anti-BigTech at all -- I'm just saying this factor is an aspect that may make the timing ideal for an alternative, which is part of the great thing about Capitalism: finding the niche at the right time.


PART 2:  BC will someday be shifted a few bits and end up meaning "Before Computers".  The 1970s and rise of personal digital computing introduced an entirely new media (i.e. Software), a rare event on par to the invention of Writing itself.  It's good to recognize we are, right now, still a part of that moment.  Though the living legends that made it happen is thinning out (we haven't built TRON quite yet -- instead we spent a decade perfecting "gestures").


PART 3:  Maybe a new system needs an entirely new way to address the complexity of developing multi-core software.  BASIC was that answer back in the 1970s (sans multi-core, ofc).  Maybe some kind of virtual development environment could be a newer modern answer, to visualize the code-to-hardware relationship in real time.
 

 

And somewhere in there, I also mentioned how this niche is applicable to Space Application (i.e. low power).  There is a time for a V12 3mpg 4000hp mean machine (e.g. online deathmatches), but sometimes you need something more modest (your satellite that will poke along on microvolts of solar energy).   That includes also in the medical field (Cyberpunk style implants probably won't be using high powered i7's).  This aspect is maybe what teachers should stress to students, on why to bother learning "about the metal" at all.  I hear young kids often say "I'm never going to use this knowledge"  oh how I hope in 20-40 years later they eat those words.   Knowledge is Power, that's still true today.

 

v*

 

 

EDIT:   No joke, YT random-banned folks.  Maybe it was just a test to see if folks cared enough to appeal.  But if they can randomly take out your YT access, they can take away your e-mail, etc....  I didn't care about the ban itself.  What insulted me was the lack of notice or feedback on what the issue was - the reason.  Even if the reason was just "We don't like people named Steve" - fine, it's your platform.  But don't just deny service after 10+ years without explanation.    (It's also possible a very clever hacker somehow re-directed their ban over to my account -- a compromise that YT likely wouldn't fess up about; it's also possible that some internal employee just random-banned accounts to cause trouble, another scenario YT likely wouldn't want to fess up about -- transparency only goes so far;  either way, it was an eye-opening experience; )

YT_WTF.jpg

Edited by voidstar
  • Like 1
Link to comment
Share on other sites

"Don't you know that talking about a revolution, starts with a whisper" ~ Tracy Champman.

This project started because people were asking Dave the 8-Bit Guy (though I understand that is actually 9 bits if you include parity) for recommendations on an 8bit system to get to try programming the 8bit style systems he was talking about, and he realized there was nothing he could really recommend to someone getting started out, not only because of the aging of the original systems but also because of the "barriers to entry" in terms of the difficulties in using them which we were willing to work past, back in the day, because these were the only home computers to be had.

Whether hardware people and software people, the people who are doing it for fun have a bit of a system building impulse. But it would seem from looking back at the runaway successes, modest successes and failures as far as system launches go over the past half century, often the reasons for a runaway success take people by surprise, even if they went into the whole venture with a runaway success theory in mind. The runaway success was not entirely designed in ... it was partly serendipity.

But in between grand visions of what the systems can be and just satisfying some nostalgia cravings of a niche group of retro-enthusiasts, there are other niches that are lying out there were a simple computer system that you can understand from top to bottom can play an interesting role.

The only way to find out whether the CX16 can gain a following in those niches is to produce the board, get the barriers to entry as low as practical, let people know it exists, and see how many niches pick it up.

If the CX16 is fit for purpose for the original market, it will be fit for additional purposes, because that flexibility is inherent in a general purpose computer. While it may be fun to imagine it making a much bigger splash than that, there's also plenty of fun to be had in experimenting around and coming across other niches where it makes an appealing option.

  • Like 2
Link to comment
Share on other sites

Posted (edited)

 

I've updated a few aspects of my manifesto to clarify a few points.  Thanks for allowing the EDITS.

But my favorite part is the very end: the notion of using the Star Trek Bridge as a replacement for SCRUM 🙂   I'd like some college kids to give that study a try.  But I must face the reality of what we've learned during the Ada Experiment, or the Jobs NeXT project, or maybe even LISP (?) -  as great as they are, mass adoption of any new system is a really hard thing at this point.  Without Academia support, it's a struggle.  Maybe things are different these days thanks to the "Inter-Webs"  Make it flashy enough and maybe anything is possible.      While programmers tend to be introverts, the hallmark of a good team is they can get stuff done by just reading each other and NOT talking (much)  [  my opinion of course, YMMV - but nothing is more distracting than a bored peer with apparently no code to write, and becomes a Chatty-Kathy about the weather, while you're doing Code-Surgery ]

Cyber: thanks for the link, brings a tear to my eye.   Not Understood indeed.

Edited by voidstar
Link to comment
Share on other sites

It is hard to know exactly what was edited in something of that length, but assuming you labelled the new parts as new parts:

1. Please don't color code as a primary metric that you expect to share with people. Some of us are color blind and we will snip the wrong wire and all will die. I understand the 95% or so of the population with "normal" color vision find color coding useful, but always always always provide other coding of data. When I started at my current job, orientation including information about various color flags in the parking lots where we were expected to gather in an emergency situation, the color being tied to the area of the facility in which you are assigned to work. When I made the observation that putting a letter or shape on there in addition to color would be really useful to about 5% of their employees (on average) I was told it wouldn't happen. Which is fine, just using it as an example that expecting color coding to be the exclusive metric that one uses to identify something is not good to a small but statistically significant portion of the population.

I realize that you may not have been talking about literal color coding and were just using it as an example, but it was worth discussing anyway.

2. "Flight hours" is a useful metric. In my opportunities to interview candidates in the past, it has been my experience that people who code in their personal time yet do not have a degree are often better than those who have even advanced degrees but treat it solely as a job. There are exceptions, but that has been my observation.

3. Not a scrum fan myself. Agile is good, but Scrum seems to take certain parts of the Agile Manifesto and throws them in the garbage. And anything that makes work more like Star Trek has to be a good thing. 🙂

Link to comment
Share on other sites

Posted (edited)

Correct,  I didn't literally mean colors, it was just an example.   In a way, I think a "new Calculus" is needed - some uniform symbology for the common programming expressions (or whole patterns, if that makes sense).   That was one of the pioneering thing of Isaac Newton:  the development of the symbols of Calculus.   I'm past nit-picking about syntax spacing (in code) and where my braces are, and abandoned Hungarian notation long ago (with occasional exceptions, as in everything).
EDIT: To clarify, when I say "new Calculus" - not to replace existing Calculus, I meant borrowing that concept of a new symbol set that directly corresponds to typical Programming constructs (loops, branches, allocations,  streams, ports,  threads, etc.).  Perhaps something in Simulink has this already, but  I also mean a way to instrument/augment those symbols with additional meta-context-data ("applies to this platform or this build") and how those constructs map to the address-space, interact with thread-pools, etc..

 

Some set of icons (visual-floating in space, not 16x16 BMPs) could represent the very concept of "LOOP", "OPENING A PORT"(data stream), with virtual pipes show these data connections - many pipes begins to show the complexity, and also perhaps starts to show the excessive redundancies.  It's how I see the code in my head, and I wish others could SEE that this program:  it's a complex factory of manipulating bits.   And I've coded long enough to know how good SDKs just "die" as certain key programmers retire.  Code syntax is one thing, but a "worth money" programmer has invested in being proficient in key libraries to get stuff done.  But when the tribal knowledge of that in-house library evaporates, yikes.   It's daunting to inherit a 30 year old Ball-of-FORTRAN, but if the equations are still valid, what's the saying "don't throw the baby out with the bathwater"?    But if all that logic could be presented in a standard set of virtualized icons - my virtual "Software Clockwork", maybe it becomes more approachable to future generations.   Maybe.  But perhaps just like ancient Monks - translating ancient text for centuries is just the way of things have to be for awhile.   

 

I'm not saying Latin/Pure Assembler is The Way, but I'm just saying we're struggling to move beyond High-Level Languages, to (more) cleanly abstract out Intent vs Efficient Clockwork (optimized opcodes) to invoke that intent.  Speaking of optimizers, yes they are quite magical.  But my mind is more about: how to make existing source more approachable to the-next-generation of caretakers.    I can see a Programmers Keyboard, with our standard symbols - or however, to gesture up a FOR-LOOP, it's gonna manipulate 3-data cubes, and one of those cubes it going to get sent thru this pipe to a database.... Stuff like that:  a Data Cube just being a visual virtualization of a STRUCT, but in that virtualization you can immediately see how it is memory-aligned, etc.  (the corner of the Data Cube is some etched symbol indicating the platform -- immediately, not fiddling around with #define target settings).

 

 

 

Edited by voidstar
Link to comment
Share on other sites

  • 4 weeks later...

I came to this topic/thread after searching for "Python".

I was one of those kids who first learned BASIC and then 6502 assembly on the C64 and then later studied computer science. That is just not a thing anymore. The X16 has the potential to remedy that, at least on some modest scale.

However, I think the BASIC / assembly combo is less than helpful. Both of those do help you learn to understand the machine, but they don't teach you good programming, or something you can use elsewhere.

So what I've been thinking about: what about coming up with a subset of Python that replicates the BASIC 2.0 functionality? Python is interpreted and thus gives you instant results just like BASIC. It doesn't use annoying syntax rules like { } ; you see in other common languages, but it does do away with BASIC's GOTO statement and all the bad habits that creates.

It would need to be a subset of the Python language to fit on an 8-bit system, but also because that way, the language is small/simple enough to understand quickly so you can read and understand other people's code. But when you reach that level, you've also made a good start learning "real" Python.

So in addition to "you can easily write your own games by banging the hardware!" there would be the argument "and you'll learn programming skills that will serve you the rest of your working life".

Thoughts?

Link to comment
Share on other sites

If it doesn't come with Pythonesque libraries, it won't REALLY teach them Python type programming, and it's the libraries that require the massive porting effort if you are working with a non standard "Python like" language. Teaching the Python language without Python libraries is like teaching people to build a brick and mortar wall, without including the bricks.

It's really the same for ANY slimmed down version of a  "modern" interpreted language. So really, tackling the challenge head on, the first step is to ask the question, which of the "modern" languages have the easiest libraries to port?

Link to comment
Share on other sites

11 minutes ago, BruceMcF said:

which of the "modern" languages have the easiest libraries to port?

I'm going to say, not Java. 😁

I don't think anything is going to fit this particular bill. The educational benefit of the X16 is not going to be that direct. It's about being able to understand a complete system and work around limitations. That kind of learning is far more valuable that training up to be a Python code monkey, which you could do with a Raspberry Pi or literally any cheap modern computer that the X16 can't really compete with on performance/price ratio, or even price alone.

  • Like 1
Link to comment
Share on other sites

35 minutes ago, SlithyMatt said:

The educational benefit of the X16 is not going to be that direct. It's about being able to understand a complete system and work around limitations.

I agree. X16 is also about direct low level connection between user and hardware. Something that modern systems don't provide.

  • Like 1
Link to comment
Share on other sites

BruceMcF:

This isn't about Python for Python's sake. I fully embrace the "direct low level connection between user and hardware". But can we please do it without GOTO?

I guess having IF ... THEN ... ELSE ... ENDIF would also accomplish that. But an additional benefit of using a small Python subset (only the stuff that's also in BASIC) is that it's easier to move code from an X16 to a modern machine (as long as it doesn't use the special hardware), and for someone who learned programming on an X16 to move to a modern machine.

Of course once you can program the language doesn't matter all that much, but it's still easier if you don't have to start from scratch.

Link to comment
Share on other sites

Posted (edited)
1 hour ago, iljitsch said:

BruceMcF:

This isn't about Python for Python's sake. I fully embrace the "direct low level connection between user and hardware". But can we please do it without GOTO?

I guess having IF ... THEN ... ELSE ... ENDIF would also accomplish that. But an additional benefit of using a small Python subset (only the stuff that's also in BASIC) is that it's easier to move code from an X16 to a modern machine (as long as it doesn't use the special hardware), and for someone who learned programming on an X16 to move to a modern machine.

Of course once you can program the language doesn't matter all that much, but it's still easier if you don't have to start from scratch.

What does "can we please do it without GOTO" mean in the context of a system that has a Forth compiler available before launch (and may have a second). If you mean, "will the design team please make Basic incompatible with CBM V2 Basic," I would predict no, they won't. If you mean add to the ROM Basic features that make GOTO avoidable, sure, go ahead and program those and issue a pull request.

We can HAVE whatever language we can write, if it's within our time and skill to write it.  There's already a Forth implementation, which avoids goto, a Small C compiler running on that Forth, maybe explorations of the m-code interpreter for the Kim-1 will lead toward a Small Pascal, and of course, since a Lisp had been implemented in Forth, having a Forth means it's not far from having a Lisp.

But IMV, a "small Python subset" either isn't REALLY Python, in any important way, or else isn't REALLY small, in the sense of fitting comfortably a CX16. A "Basic but with some superficial Python syntax" seems like the likely result, giving users who haven't used real Python a hopelessly confused idea about how Python programming works.

A small-c shell program that follows small-c syntax but is interpreted would be well within the capabilities of the CX 16. And after all, the DICE top 12 programming languages by job postings has a clear top 6, between 20,000 & 80,000, where #7 is under 10,000. It puts SQL first, then Java, Python, JavaScript, Microsoft C# and C++, with the combined C's close to Python in total number of job listings, so C is far from dead yet.
 

Edited by BruceMcF
  • Like 2
Link to comment
Share on other sites

8 minutes ago, BruceMcF said:

It puts SQL first, then Java, Python, JavaScript, Microsoft C# and C++, with the combined C's close to Python in total number of job listings, so C is far from dead yet.

It's also worth noting that C/C++ jobs are generally better paying, as well.

Link to comment
Share on other sites

2 hours ago, SlithyMatt said:

It's also worth noting that C/C++ jobs are generally better paying, as well.

Indeed! I attended university from 1986 through 1989 but didn't finish. I just was too immature at that point in my life to take my studies seriously. I went back in 2016 and finished a software engineering degree December 2020. Thus I'm in a "unique" position of having about 33 years experience, most of it including C++, while also being a recent college graduate. As a result, I get a lot of contacts from recruiters wanting to slot me into entry level webdev positions. They think they're offering great money for an entry level position (and they probably are) but rarely do I have anyone contact me who can even approach where I'm already at, even once they realize that I'm not simply a recent grad.

Link to comment
Share on other sites

Ah, Forth. I actually had that on my C64 back in the day. Pretty cool little language but definitely more for the connoisseurs, not a middle of the road language for day-to-day productivity.

Link to comment
Share on other sites

4 hours ago, iljitsch said:

Ah, Forth. I actually had that on my C64 back in the day. Pretty cool little language but definitely more for the connoisseurs, not a middle of the road language for day-to-day productivity.

Though a file based Forth is likely to be one of the best programming languages available for day to day productivity on a system this size. Being productive versus being middle of the road can be a trade off as well.

  • Like 1
Link to comment
Share on other sites

Here are my 2 cents.

The younger generation, I mean even younger than me (34 times around the sun) don't want to code ... that's too "oldschool".
But there are many who try it out and also know the good old games. If you give them an
incentive to move from non-coding to assembly language, a guided incentive like a games editor.

My idea would be a modular click system that ultimately generates asm code with the option of writing your own code.

Why the effort? From my experience of the last 2 weeks (quarantine), in which I learned asm for the C64.
It wasn't really easy. But when it clicked it was very satisfying. I read through and looked at all the
things that had something to do with my idea. (I learn best on a project-related basis)
There are a lot of good things, Matt Heffernan, Oldskoolcoder, shallan etc. all absolutely top in the field,
have done a lot for the community and I respect that. Above all, that they have acquired knowledge over
the years and that they share it for free! But young people want to see results quickly without cramming
mnemonics for hours.

 

Conclusion: I would like to discuss the possibility of such a project, I think there are enough developers here 🙂

  • Like 2
Link to comment
Share on other sites

This is a good one ... a games generator that has an assembler language routine OPTION. It would also need a profiling function so it can show which generated steps are being used the most often, so that assembly language replacements have the best chance of improving game performance.

Link to comment
Share on other sites

On 4/22/2021 at 10:30 PM, ZeroByte said:

I'm sure most of us are already doing what we can to share our passion for this stuff with our own kids / grandkids, but I've been thinking lately that there will never be a better time than now to "infect" as many people with the retrocomputing bug as possible. Right now, retro computing is at an apex - pixel art is popular. Indie games tend to use pixel art style. It's never been easier to resurrect old boxes with things like SD replacements for IDE/SCSI/PCI/ISA/etc. This hobby is to gen-X what tinkering around with muscle cars was to the boomers. I have been thinking about what sort of things would be required to start a successful retro computing club here in my home town, meeting at one of the libraries. What kinds of activities would be the most accessible and interesting to younger people, especially teenagers?

I mean, having a "seminar" / lecture / presentation on how to do BASIC programming or Assembly or whatever would be useful, but such topics aren't exactly great starter material for getting new blood interested in this stuff. Should it be integrated with Raspberry Pi / Arduino type stuff? Clearly, it would suck to have to lug a bunch of this kit down to the library every 4th Saturday, yet I think it would be really important to have real HW for people to touch and interact with. It's a lot more cool to see than just some blue window on a Lenovo laptop.

I've got a nephew who has a mind capable of gobbling up content like Ben Eater, but he's just interested in making stuff in Minecraft or watching TickTock videos. If he lived in the same city as I do, I'd bring him over to help build the 6502-on-a-breadboard project.

I know this post has been kinda rambly, but it's been on my mind lately, and I really am itching to share this stuff with people who would love it if only they knew it was a thing, and were able to get away from the brain candy for long enough to find out how fun and fulfilling it is to actually make something instead of just watch others do it on YT, or worse - just watch people floss dancing with "snapchat" filters over their faces on TikTok.

Try POKE 53280,4

Link to comment
Share on other sites

Posted (edited)

Well if you add a printer, graphing calculator and word processor and dictionary, thesaurus would anyone even use it do home work on? Not to mention all the circuit diagrams, software support as detailed as the vic 20. I think the hobby market may be the way to go for such a machine that and doing some sort of micro controller or eeprom programmer or what have you for robotics. And have a few comforts like a re writable cd drive for music or some high capacity data storage for more complex programs. Or just have it do something like three D printing and three D printer CAD? Any way I think it may make it more interesting for kids.

Edited by Travis Bryant moore
Link to comment
Share on other sites

31 minutes ago, Travis Bryant moore said:

And have a few comforts like a re writable cd drive for music or some high capacity data storage for more complex programs.

The X16 will use an SD card for its primary storage, so capacity will likely not be an issue.

  • Like 2
Link to comment
Share on other sites

  • 2 months later...
On 5/28/2021 at 10:48 PM, iljitsch said:

Ah, Forth. I actually had that on my C64 back in the day. Pretty cool little language but definitely more for the connoisseurs, not a middle of the road language for day-to-day productivity.

Depends on circumstances and who you are. Way back when the C64 was my main computing device, I found Forth to be the most productive language, by far, that I could lay my hands on. Which is why cc64 is implemented in Forth.

Edited by pzembrod
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

Please review our Terms of Use