Post #45227
2025-12-09 12:48 UTC
Replies (30)
-
@bluemoon@piefed.social 2025-12-09 13:00
Red-lang https://www.red-lang.org/ Arturo https://arturo-lang.io/ Rexx with the Regina compiler https://www.rexxla.org/rexxlang/index.srsp https://regina-rexx.sourceforge.io/ Pascal-P6 Oberon 07 using AntKrakov’s compiler etc.
-
@rock_hand@lemmy.world 2025-12-09 13:06
Scratch?
-
@Axolotl_cpp@feddit.it 2025-12-09 13:11
I would suggest Go
-
@Damarus@feddit.org 2025-12-09 13:16
surely every OS comes with a C compiler pre-installed? You would be mistaken.
-
@florencia@lemmy.blahaj.zone 2025-12-09 13:17
Rust
-
@Arcanoloth@lemmy.ml 2025-12-09 13:29
I’d be surprised if MS Windows came with a C compiler, tbh. But it’d be a bad choice for non-technical people anyway; it’s not exactly a user-friendly language… Python would’ve been my choice, but maybe also consider Lua (a lot of games include it as their scripting language, which might be an easy selling point for people)
-
@Ziggurat@jlai.lu 2025-12-09 13:49
What’s your target audience ? An what’s the goal ? There is a difference between Giving a programming training to scientist/engineer who may need more than just Excel for data-processing/visualisation, and giving a discovery what programming looks-like for a general public, or people who want to do their own website. For general public, the good-old “Logo” that kids learned programming with in the 70-90’s is still great for scientists engineer, I would go for python which is the de-facto standard for data visualisation/processing when performance doesn’t matter For a more foundation course, I think the everything is object approach in java can be pretty great
-
@tyler@programming.dev 2025-12-09 14:26
Absolutely do not use Python. It’s a nightmare to install on random computers and the majority of your time spent will be trying to get it working on everyone’s computer (that was my job at one point). As far as I remember, there isn’t a “good” C compiler that comes on windows and the one on Mac is missing some stuff. I’d go with Ruby, it’s dead simple to install on every OS, easy to teach and learn, and doesn’t work differently across OSes. There’s an installer for it for windows and it comes installed by default on Mac (or it did? Maybe they stopped that).
-
@BassTurd@lemmy.world 2025-12-09 14:38
Python 100%. It’s the most human readable and easiest to pick up, especially for a non tech person. It’s easy to setup contrary to what I’ve read in the comments. Go to python.org install the latest version and that’s it. The downloader includes Idle so no other ide is required, but I’d consider vscode as well. Either watch an install video or better yet do it yourself before going to class. I think you need to highlight the differences between OSs when it comes to setup if you plan on having a mixed environment of systems. It will also affect the code you write, so to be thorough, you’ll need to cover those differences as well. Don’t go low level like C. These people will die the first time they have to compile in terminal.
-
@JusticeForPorygon@lemmy.blahaj.zone 2025-12-09 14:45
I’m currently a college student studying software engineering, so by no means am I a professional (yet at least, lol). Nevertheless, I’ll try to give what input I can. Afaik and based on my own experiences, windows does not come with a pre-installed C compiler. (Win 11 Home at least) Also, I just honestly wouldn’t recommend C anyways especially if it’s for a non-technical crowd. It’s great once you get the hang of it, don’t get me wrong, but it’s definitely not beginner friendly. As for a “best choice” it’s of course up to preference, what you’re already familiar with, and what kind of programs you and your class plan on writing. If you want to use a language that can directly translate into a working environment, Python is a very beginner friendly option. If you want something slightly less forgiving, I think Java provides a good balance between having a lot of useful built in functions/methods and having some of the more “strict” (for lack of a better term) rules about syntax (semicolons, brackets, static variables) that you’ll find in other languages. If you’re just looking to teach programming concepts on a surface/conceptual level then honestly something like code.org or scratch is a great option (and it’s where I got my start growing up lol) As for setting up an environment, again, everyone has their own idea of the absolute best setup, and it’s also probably going to differ at least somewhat depending on what operating system you’re using. For my personal use I’ve mostly been using VSCode just because it’s pretty easy to set up. Definitely worth mentioning though that VSCode comes with plenty of Microsoft Telemetry built in by default so if you want an alternative without that I recommend Code OSS (vscode built directly from source) or VSCodium (vscode but with MS Telemetry disabled and a different default extension marketplace) The intro to computer science class I took (and am currently an aid for) at university (we used C) did all of their demonstrations using CS50.dev, which is an online environment maintained by Harvard. For the Object Oriented Programming course I took (Java) we used Eclipse. Again, I’m still a student, so take everything here with a grain of salt. And if anyone sees anything they think deserves clarification/correction please let me know. I’m still learning lol.
-
@WolfLink@sh.itjust.works 2025-12-09 14:54
Mac is very similar to Linux in that it comes with bash (these days zsh) and a lot of the command line tools you’d expect on Linux, including gcc and python3 installed by default. You’ll want them to have a decent text editor with code coloring. Sublime is what I was taught to use in university. Windows is more difficult. The command line is very different (it inherits from DOS instead of Unix like both Mac and Linux). It doesn’t come with Python pre-installed. I’ve generally installed git-bash when working on Windows. There are some Python libraries that work fine on both Mac and Linux but have issues on Windows. You could look into VSCode which is a decent IDE that works on all platforms. Of course, an IDE can be a bit of an information overload for a beginner, especially something like VSCode that’s constantly pushing AI features and plug-ins.
-
@Nemo@slrpnk.net 2025-12-09 14:57
Scratch, teach them Scratch. It runs in a browser, it’s designed as a teaching language, teach them Scratch.
-
@bradboimler@lemmy.world 2025-12-09 17:02
I suggest having your students install IntelliJ IDEA and using Java. A full blown IDE might be much but I can’t think of an easier way to install a Java runtime and an editor suited for it.
-
@jjjalljs@ttrpg.network 2025-12-09 17:57
Python. It’s pretty easy to get going. the debugger is very good. Being able to put a breakpoint and interactively fuss with it is so much better than print statements and crying you can (and should) use type annotations, but they are optional it’s on most machines already, but you don’t want to fuck with the system install of it. On Linux and Mac you can use pyenv or similar if the system came with a version you can’t use. (Don’t teach anyone python 2.) the standard library is very good. You could also do JavaScript, as that’ll work on any modern browser. However, JavaScript is a deeply cursed language. It’s really bad at like every level. I don’t recommend it unless your top priority is “it is definitely available everywhere” and “these are future web developers”.
-
@jacksilver@lemmy.world 2025-12-09 18:02
Use Google Collab or another web hosted platform. If you’re unfamiliar Google Collab is a part of Google docs that you can run Jupyter Notebooks on (and it’s free). This avoids the need for anyone to install anything and means you can test materials in the same environment everyone will run against. Additionally, Jupyter notebooks makes it easy to add markdown, so instructions can be in stylized format and the students can run the cells over and over again to see how the output changes in real time. Lastly, I would lean towards python, but there are many different languages supported in Google Collab and similar web hosted tools.
-
@yogthos@lemmy.ml 2025-12-09 18:29
I would suggest taking a look at Scheme or Clojure for somebody who has no development experience. The big reasons being that these are high level languages so you can focus on learning the actual concepts without all the incidental complexity of imperative languages. Scheme in particular was designed as a teaching language. The other aspect is interactivity, Lisps have a tight integration between the editor and the REPL and you can evaluate functions as you write them. This is incredibly helpful for learning as you can write a function, send it for evaluation, and see the result immediately. So you can play with code and get an intuition for how things work.
-
@presoak@lazysoci.al 2025-12-09 20:20
Python, definitely. It’s easy. Succinct. You can use any text editor. Has a huge community. Huge library.
-
@Lightfire228@pawb.social 2025-12-09 20:48
Python It’s an amazing scripting language, and my goto for writing automation scripts. It’s the most lenient of the 3 with dynamic typing and managed memory. It’ll let you learn the basics of reading / writing / running code as well as basic control flow and logic C is also great to learn, as it teaches you how computers work at a fundamental level, but it’s more stuff to learn up front, and can lead to some very difficult to fix bugs Java is good as an “application” language. Being memory managed like Python, but statically typed like C. Static typing makes it easier to manage larger code bases
-
@beercupcake@sopuli.xyz 2025-12-09 21:54
Consider providing students with vm. Then you can set up distro however you want, and write short instruction on how to run it and you know that they going to get whatever you want them to have for the course. That’s what i did several times. It helped a lot, because everyone’s pc going to be slightly different, packages, libraries etc.
-
@Sunsofold__dup_8138@lemmings.world 2025-12-09 22:22
Depends a bit on how much depth and which topics you want to hit. Scratch is easy to grasp and won’t require any real effort to set up, but may make adults feel like they’re being condescended to with its cartoony aesthetic, and might be a bit limited in how impressive you can make your demo. Python would require a bit of ‘teacher’s planning time’ to set up an easy workspace in Google’s collab tools and design a lesson, but could be used to show more depth if the students are the type to want/accept that depth, but don’t mistake interest for readiness. Time might also be important to consider as well. If you have only the one session to cram things into, it might not be a great idea to go deep, and definitely would be asking for trouble to try to install anything on all those machines. Non-technical people have a knack for finding the holes in your plan or taking far longer to do something that requires them to act individually, which leaves you scrambling to try to play remote tech support for the 5-50% who need it while the people who ‘did it in one’ get bored. And first things last, Murphy’s Law always applies to presentations. Just ask anyone at defcon. Even for people who are so tech-y they are teaching other tech people about tech, the demo might work 37 times the morning before your presentation, but it will fail on the 38th because that’s when you’re in front of the audience. Minimize your attack surface. When you are limited to one session, leaving them with a good, inspiring message that makes them want to keep learning is better than trying to info dump. Good luck.
-
@HiddenLayer555@lemmy.ml 2025-12-10 01:06
I need something I can easily instruct them on how to install, and has good cross-platform support so that a basic programming lesson will work on whatever OS the attendees are running. Remember they are non-technical so may need more guidance on installation, so it should be something that is easy to explain. Honestly, as much as I personally despise it as a language and as much as you probably shouldn’t use it for large applications, JavaScript. Every mainstream OS runs JavaScript, and it’s already pre-installed in the form of a web browser. On any desktop system (and even mobile systems with some effort) you can use any text editor to write an HTML file with inline JavaScript and run it by just clicking it. Python, the next best option IMO, still requires knowledge of how to use the command line, and on Windows, requires installation that is slightly more involved than installing a regular program (adding it to your PATH, etc). Python for beginners are also limited mostly to console apps, and making a GUI is much more difficult especially for new programmers. Again, you’d first have to teach them what a console even is and how it’s actually still used by developers and is not a relic of the DOS days (something I’ve noticed non technical people tend to assume, they think GUIs made consoles obsolete). JS on the other hand is literally made to create GUIs on the web, meaning they will be able to create the kinds of software they’re already used to interacting with, which is both easier for them to wrap their minds around and also more enticing. Someone with no technical experience might wrongly assume that a text only interface is like “training wheels” and what they’re learning doesn’t apply to “real” software. More importantly, they will be able to show off what they built to their friends, without needing them to install anything or send source code or executables which can get blocked by social media filters. Services like Netlify will host your static pages for free, making sharing their work as simple as posting a link. Having a GUI is even more important so they don’t have to walk their friends through how to use a console app when they barely understand it themselves. JS in the browser also has the benefit of being in a sandbox, meaning they can’t easily interact with other parts of their computer like files or system configurations. This may seem like a disadvantage but for someone just learning what programming is, it’s reassuring that they can’t accidentally kill their OS or delete their files.
-
@jaypatelani@lemmy.ml 2025-12-10 04:15
Ada programming language. Check alire
-
@lefixxx@lemmy.world 2025-12-10 10:17
python or lua i loved learning on lua, it is a little better to learn than python (less keyword, “end” instead of }, 1-index, less types) but python is waaay more prominent
-
@greenbelt@lemy.lol 2025-12-10 20:16
python. Its standard library is way better than lua in getting things done on your system. Imho a programming language that does not need internet-connection to a package manager to be useful is a big win.
-
@GnuLinuxDude@lemmy.ml 2025-12-10 20:41
Since you said non-technical I definitely recommend Python. It is easy to install and easy to get going with. It is feature ful. It is generous. You can do really interesting things without sweating details like pointers and segfaults. If this was a technically minded crowd, especially students like in high school and in person, I would have said C
-
@jobbies@lemmy.zip 2025-12-10 21:38
JS. Not a programming language but it is widely used for teaching purposes. All you need to get started is Notepad and a browser and it has similarities to C-based languages.
-
@comfy@lemmy.ml 2025-12-10 21:47
If there’s no specific use-case (this is a general introduction, not Intro to Operating System Design) and this isn’t academic Computer Science teaching, then certainly a scripting language. Easy to learn, easy to use, and much more applicable for simple automation that benefits the people learning. C is dangerous if someone doesn’t take care. Java is verbose and personally I didn’t enjoy it one bit. You said this is a non-technical crowd and you expect them to follow at home.
-
@helianthropy@lemmy.ml 2025-12-15 19:19
I’m also going to lean on javascript. It’s practical and if the student produces something interesting, it’s rather trivial to distribute (with minimal risk from sharing). There are various web-based tools as well, or going old school with locally edited files, the browser is also your debugger. Creating visual content is easy and there’s multiple options for output that don’t rely on extra code for a full app. Javascript also has that C-like syntax if you want curly braces and the like.
-
@Witchfire@lemmy.world 2025-12-16 03:17
Javascript runs on almost any browser. You could probably teach someone on a Nintendo DS
-
@bobo1900@startrek.website 2025-12-09 13:14
C is full of complex paradigms and low level details that are great if you're learning computer architectures, but pretty bad if it's your first languages. Python in the other hand is great to learn programming practices and for quick, non-optimized, easy scripts. I think it's less suited for more complex projects, but that's another thing. I honestly fon't think it's a great language, but it's easy to use and has pretty much a library for everything, that's why I think it's good to start and for simple things. Java is also quite high level, so also good for beginners, but I've never used it so I don't know how easy is to setup (python is) and how easy it is to download dependencies (on python it is). For your case I would say Python is best.