195 karma · joined April 21, 2015
Anecdotal, I know. But, I think if you look around at the respectable people in the tech field, you will see that most of them are staying away from crypto for a variety of reasons.
Crypto is the worst kind of pop-culture fad tech.
You might as well try this first before doing something more extreme. If it doesn't help then try switching careers.
I know you are skeptical because python has a repl too and so it is hard to see what these "live" environments like lisp/smalltalk are offering. But trust me (and the others) that there is more than what python offers.
I have written python professionally probably more than any other language I have used, so I'm not ignorant of python btw.
No one is trying to fool you. But you don't have to take our word, please try it out for yourself!
In this vein, Standard ML (SML) is truly immortal, because the standard is set and it is "finished".
Just a fun thought!
I really admire small and simple languages that don't change much over time. Lisps, SML, etc.
But once again, many of the improvements are quite nice once you learn them and get used to them. I wouldn't want to give up arrow functions, for example, now that I'm used to them.
Some things I can think of: databases, architecture, unix tools.
What else do people recommend doing to become a better programmer? I'll admit I've fallen for the "learn esoteric languages" trap for a large part of my journey as a programmer.
Great for creating personal wikis.
Which is why I was mislead in this case :)
This is largely due to memory safety. However, immutability is also known to reduce bugs and be more secure (as many security related bugs are due to mutability). Lastly, superior concurrency constructs also have this bug-reducing effect.
That said I haven't looked into empirical studies. But I feel like it is just factually the case, at least for memory safety, that in most other languages you literally are unable to create entire classes of bugs that are possible in C. So just logically thinking about it, I don't even see why you'd need to see empirical studies. It should be quite obvious!
Although it'd be cool to see the empirical research too! Maybe someone else can reply with links to studies.
But yeah I agree with everything you said as well regarding lack of physical exercise.
I will admit though that the PATH stuff was confusing when I was first starting out with programming. But now that I'm a unix nerd, I much prefer to have more control and set things up exactly how I like.
Another relevant question is where are you in your journey so far? What have you already read? etc.
Of course there are other interesting features worth talking about, such as "images" and the introspection capabilities. Which are both great and often sorely missed in todays systems. But I think the big idea is to try to understand what Kay had in mind with OOP.
Another aspect of smalltalk that is important, beyond just the "language" is to recognize its role in advancing "personal computing". Smalltalk was essentially an operating system that empowered the user to create new media and tinker with the system.
If you want to see a modern web-browser based smalltalk-like system that uses javascript, check out Dan Ingalls' Lively Web. That will give you an idea into how smalltalk systems were meant to be used, in terms of "personal computing".
In retrospect I wish I would have traveled or done something more with my time. Instead I just sort of chilled out a lot at home. I did try to get out more and go see live music, socialize, etc. Also I entered into a relationship which is still going on. So overall it was probably good for me, but my advice would be maybe to have a plan for what you want to do so you don't feel guilty that you are wasting time or being unproductive.
IIRC, Ohm (successor to OMeta) separates syntax from semantics!
I'm curious if there are other benefits to this approach though besides just saving time when setting up a new machine. The article mentioned "you end up with (in my opinion) a much more flexible working environment." Any ideas what they might mean?
In the case of Hypercard, I cannot say whether or not this is the case. It could be that Hypercard is absolutely possible today. But I wouldn't doubt it if it was somewhat unusable on modern systems due to this "cooperation" issue I mentioned. It may need buy-in from other apps and/or the host OS for it to work fully as intended.
For another example, consider emacs. Emacs effectively gives you the lisp-machine experience, but the problem is it isn't integrated with the rest of the system. You sort of have to live in an emacs bubble. With hypercard, you could surely get it running, but would you be in a bubble? Ideally you could use hypercard to script the rest of your system as well.
What we should want is something like a "card" that could "link" to a specific cell in a spreadsheet, as an example. Or a card that could open a PDF to a specific page. The more the rest of the system "plays along", the more powerful something like hypercard could be.