3 ms·
Yes, I've been combining features from different languages (Smalltalk and Haskell), but all I have now is this huge mess that I don't know how to fix.
by ndrewxie 9y ago
Yes, I've been combining features from different languages (Smalltalk and Haskell), but all I have now is this huge mess that I don't know how to fix.
- ndrewxie 9y agoThey're opposites, I know. I'm trying to put strong, static typing and laziness onto Smalltalk and clean up it's syntax a bit (it's already pretty clean, just a few things could be improved) - essentially a faster Smalltalk.
- DonaldFisk 9y ago> I'm trying to put strong, static typing and laziness onto Smalltalk This actually sounds quite interesting. You're starting from a good language (Smalltalk) and adding a feature absent from it but widely regarded as desirable (strong static typing). > and clean up its syntax a bit (it's already pretty clean, just a few things could be improved) If you go for type inference instead of having types explicitly declared, you might be able to avoid both run-time type checks and changes to Smalltalk's syntax. > essentially a faster Smalltalk. Bryce Kampjes (http://www.kampjes.demon.co.uk/index.html http://www.kampjes.demon.co.uk/index.html) was working on compiling Smalltalk byte code into machine code to speed it up, but that didn't involve changes to the language, so I think run-time type checks would still have been necessary. Making static type checks would result in a further speed-up. Good luck.
- woolybully 9y agoHave a look at StrongTalk.
- ndrewxie 9y agoYes, I saw that. I'm planning to make something similar, but still pretty different.
- blt 9y agohow can laziness be reconciled with the statefulness of Smalltalk? wouldn't it require an incredibly smart compiler to reason about the order in which different parts of the code can modify state?
- ndrewxie 9y agoWell, most variables are immutable in my language (took the lazy way out). The few mutable ones are "owned" by one scope, and must operate on the same thread.
- ndrewxie 9y agoNot to bother you with this REALLY long mess, but I've been working on it for a while already, so could you please review it for me? Some flaws just won't work out correctly, and I need a pair of fresh eyes to look at it. Laziness isn't added yet, and there are a lot of flaws that make it not ready for any sort of use (recreational or otherwise). Thanks! Report can be found at https://gist.github.com/ndrewxie/54d3299c998569c27e281d2320b43dc3 https://gist.github.com/ndrewxie/54d3299c998569c27e281d2320b...