
Spry Language - nickpsecurity
http://www.sprylang.org
======
nickpsecurity
This language draws on traits of LISP, Rebol, Smalltalk, and Forth. There's a
lot of potential for languages doing that. :) It has a REPL. It’s key
components started at under a thousand lines of code each. It was written in
Nim, leverages it for GC + concurrency, and can use either Nim or C for
performance reasons. I was strongly considering writing a LISP or Smalltalk
variant in Nim for past few months for similar reasons. The output would be
very different since I want to leverage various analyses for safety-critical
tooling. The common thinking seems to have been Nim as a strong, base language
for macros, portability, and performance. As in Spry, one also needs something
to drop down to when new language isn’t cutting it for whatever reason.

I put it on the Bootstrapping page since I think it has potential to be used
or inspire thinking about mid-level languages in that.

[http://bootstrapping.miraheze.org](http://bootstrapping.miraheze.org)

~~~
eitland
FWIW no elements except the menu seems clicable on that bootstrapping page (FF
mobile).

~~~
nickpsecurity
You're right: mobile version doesnt work any more. I tested it on Chrome, too.
Ill tell the maintainer. Btw, there's a desktop link on bottom that gives
working set of links for me. Try that if you see it in FF.

------
throwaway7645
Pretty cool to see Nim being stable enough prior to 1.0 for people to be
writing other languages with it.

Spry does look pretty cool too. Besides JS, I have huge respect for all the
langs that Spry was influenced by (Lisp, Rebol, Forth, & Smalltalk). I think
only APL is left out if this were my favorite grouping :).

With that being said, what are the plans for doing a multi-user live coding
setup? Also, how is the Smalltalk like syntax homoiconic?

~~~
gokr
The multiuser stuff etc, I am temporarily too focused on other things so Spry
is at "a hold" right now. I would also like to fix more things in the language
before proceeding.

The Smalltalk keyword syntax is a simple preprocessing in the parser so that
`a at: 3 put: 5` turns into the AST of `a at:put: 3 5`. And yes, it's
homoiconic.

------
JepZ
Sometimes, when I read that a language was inspired by another language, I
wonder why you can't see the simplicity of the first in the second.

~~~
gokr
Looking at my inspirations I would (take it with a grain of salt) say that
Lisp and Forth are too simple, javascript is a mess (but with nice literal
syntax for maps etc), Smalltalk is too complicated and Rebol is basically also
a bit complicated and IMHO a bit of an oddball with some neat ideas. And Nim
is a totally different beast.

~~~
nickpsecurity
I thought Smalltalk was relatively simple. What makes you think it's too
complicated?

~~~
gokr
I have worked extensively with Smalltalk, I know it quite well and it's my
favorite language. I made SqueakMap and several other packages for Squeak.
Still, it's not as simple as it can/could be, especially not the meta model.
Alan Kay himself has the same feelings AFAIK.

~~~
nickpsecurity
Do you have anything specific in mind about how you'd simplify it while
keeping the overall experience? That's what I meant by the question.

Far as Kay, he's been building things on LISP's and Ometa-like languages in
STEPS that I was aware. Given that, Im not sure how much he really believes im
Smalltalk these days. Maybe he's implemented new Smalltalks that I just
missed.

------
mchahn
This is impressive enough that it might turn into a real language instead of a
hobby language. I think improving the speed is the top concern. Everything
else seems to be already in place.

~~~
throwaway7645
How could they do that without doing something like LuaJIT?

~~~
gokr
The general idea was to leverage Nim's capabilities, either as implementing
core parts of standard libraries in Nim (which is very easy to do) or possibly
by partial compilation using the Nim meta programming mechanisms.

------
rmason
Am I the only one who thought wait a minute. Is Adobe's JavaScript framework
making a comeback?

~~~
justbaker
Jeez I’m starting to feel old now, yes the name sounded familiar to me

~~~
giancarlostoro
For those who were wondering like I was:

[https://github.com/adobe/Spry](https://github.com/adobe/Spry)

------
pmarreck
Has anyone else completely lost interest in non-"functional" languages after
spending years making the same OO mistakes?

~~~
skrebbel
Sounds like you just jumped from one bandwagon to another.

~~~
pmarreck
I’d wonder that except that I’m finding I’m writing far fewer bugs

Fortunately there is some empirical data becoming available to support this
(single data point) assertion:

“Functional languages have a smaller relationship to defects than other
language classes such as procedural languages” – _A Large Scale Study of
Programming Languages and Code Quality in Github_

“Functional and scripting languages provide significantly more concise code
than procedural and object-oriented languages.” – _A Comparative Study of
Programming Languages in Rosetta Code_

------
virmundi
So were is the feature for DRY business logic like centralized validation?
There was a post not too long ago about Bitcoin like currency that only
validated on the front end. Where is the language or framework that solves
this? To this day Java doesn’t. I don’t think that even Node really does.

I guess WebForms if they passed to POCOs that errored in a certain way.

~~~
zwww
Can you provide the link to the currency you mentioned?

------
nerdponx
What is the appeal of "100% live coding in a Smalltalk style immersive
environment"?

~~~
gokr
A lot of things including very good development speed, very good debugging
capabilities, very good meta programming (making your own tools) etc. Try out
Pharo.org for example.

------
pvg
Are you the author of or contributor to Spry?

~~~
MattRix
It is posted as "Show HN" so I would assume so.

~~~
nickpsecurity
No, no, I nust have clicked wrong thing by mistake. I meant it as a regular
submission, not show hn. Im _not_ the author. Ill email dang to see if he can
change that.

I did think you all would like it, though. Again, sorry for clicking wrong
thing everyone. :(

~~~
sctb
This was completely my fault, I misinterpreted the original comment and added
“Show HN”. Removed now. Sorry!

~~~
nickpsecurity
Given my memory problems, I was really stretching to figure out how I did
that. I just assumed I slipped since they're close together on this device.
So, I appreciate you owning up to it so I dont get all paranoid about
submissions haha.

------
agumonkey
Either they changed their websites or I have memory loss .. I posted this on
reddit a year ago but completely forgot that when reading this page

~~~
gokr
They = me. I suppose you did it when Spry was still called Ni?

~~~
agumonkey
I have no recollection of anything, I just wanted to share it to reddit and I
realized it was already done long ago 4 times, one of the submissions by
myself u_u

~~~
gokr
Hehe!

