dude old school programmers are so goated. the things my professors tell me they did when they were in school would have my classmates pissing and shitting themselves, causing mass drop-outs. i'm told back then the computer science degree didn't exist, and most started out as mathematicians or engineers.
Anecdotal but I've read someone else say that the best programmer he ever knew was a Middle English scholar
Another problem is a sort of Kaczynskian oversocialization: for corporate code monkeys, conformity is key, Dive into any Java codebase and pleasure your eyes with all the common design patterns. There is no room for clever, simple and beautiful solutions.
The necessity for boilerplate pajeetery diminished in Java 8 and since then but, other things being equal, I'm more interested in other JVM languages
Since I learned about smalltalk lisp somehow didn't feel as revolutionary anymore. I've been dabbling with Cuis here and there (dabbling because I'm not sure what to with it in the end) and I sometimes have that dream of building the most minimal of minimal linux machines that just directly boots into a smalltalk image. Never quite understood all the talk of dead languages that live on elsewhere. The languages are right there, you're allowed to use them.
Smalltalk is bad at playing nice with the Unix world. Maybe its way of doing things is better in some respects but the Unix philosophy won and getting things
done with Smalltalk tends to involve some kind of concessions made to Unix or other operating systems that base things on files instead of images, partially defeating the purpose of using Smalltalk to begin with. Look here for example (§5.1):
It's also possible to edit Smalltalk code with an external editor and load it in (at least in Pharo) but that defeats even
more of the purpose. My experience is that the Pharo editor widget is merely "OK" in comparison with either of Vim / Neovim or Emacs. What makes Pharo shine is other programming tools but using an external editor will give you a painful, fragmented experience.
What for?
You'll see many people ricing their emacs by adding 2482384822 packages, mostly to completely change how default emacs works but that really isn't necessary and I wouldn't recommend doing it before you actually understand bog standard emacs workflows, which in all honesty, are different from what you are probably used to, but not bad at all.
I don't use any Emacs distribution but learned only fairly basic stuff before making my own
init.el replete with invocations of
use-package
As a heterodox data point, Common Lisp writes just fine under neovim, but make sure to have a rainbow brackets plugin of some sort. I use
https://github.com/HiPhish/rainbow-delimiters.nvim They really help you visually ascertain where you are in the paren nesting hierarchy. But if you want more of an "IDE" style experience, yeah, EMACS.
Neovim + Lazyvim will give you more of an IDE experience in general but Emacs is widely considered superior for Common Lisp (and, from what I've heard, Clojure as well)
For Emacs the equivalent package is
rainbow-delimiters however out of the box the colors are quite dim as such i have the following set:
There are a number of good color themes in
doom-themes, which does not require the installation of Doom Emacs. I use
doom-outrun-electric and it is even better than
cyberdream.nvim.
i got filtered by emacs not syntax highlighting numbers by default in c mode
I didn't know about that and I saw you got a bespoke solution here but there is also an Emacs package that does it for you,
highlight-numbers
i would never want to grade for a class that taught java just because i'm so tired of hearing students bitch about java. it's always python or rust fanboys crying about java and how complicated it is. it's a prerequisite for a reason, just shut up and learn.
The alternative (if not Python) is usually C++ and C++ is substantially more complex than Java, including at the level of the absolute beginner
Can you even realistically make a pure HTML / CSS website anymore?
For most interpretations of "realistically", no. If you want to avoid a framework in front-end JavaScript I would consider at least using jQuery.