Building a Command-Line Application with Crystal
jclem.net
jclem.net
I think what I like the most is the community is willing to help you out. Although, nowadays a strong community is what makes or breaks a language.
[1] https://crystal-lang.org/2016/12/29/crystal-new-year-resolut...
meanwhile, crystal does not even support windows yet. https://github.com/crystal-lang/crystal/issues/26
> It is possible to compile a Go program entirely statically, but it is by no means simple and shows that the ramifications of including cgo in your project will ripple through your entire build and deploy life cycle.
(that article also contains the beautiful line "You’re not writing a Go program that uses some logic from a C library, instead you’re writing a Go program that has to coexist with a belligerent piece of C code that is hard to replace, has the upper hand negotiations, and doesn’t care about your problems.")
So they look at Go's static linking, their experiences using -static in gcc and glibc, and think they just found something magical.
It is interesting the amount of knowledge that gets lost within a few generations.
I've only been programming for 4 years. What's the second best way to learn the old practices and the way things were done (the first best being "living back then").
https://archive.org/details/bitsavers
Here you will find Xerox PARC, DEC, Burroughs, Apple, Sun, Borland,... old research documents, papers, manuals.
In the context of static compilation, for example in MS-DOS, take Turbo Pascal 6.0 programmer's guide.
https://archive.org/details/bitsavers_borlandturVersion6.0Pr...
For some 8 bit love you can check ZX Spectrum and Atari archives.
http://www.worldofspectrum.org/
Next step is to get an emulator for any of those old OS/computers and try to follow along one of those books.
Also there are some videos on YouTube showing those systems.
"The Smalltalk-80 Programming System"
https://www.youtube.com/watch?v=JLPiMl8XUKU
"NeXT vs Sun"
https://www.youtube.com/watch?v=UGhfB-NICzg
"Steve Jobs internal demo of NeXTSTEP 3"
https://www.youtube.com/watch?v=gveTy4EmNyk
"Amiga Programming"
https://www.youtube.com/watch?v=WOAyVIWFaXQ&list=PL1E7187BCF...
"Amiga Hardware Programming"
https://www.youtube.com/watch?v=p83QUZ1-P10&list=PLc3ltHgmii...
The Mother of All Demos"
https://www.youtube.com/watch?v=yJDv-zdhzMY
Just a very tiny sample of videos
[0] https://crystal-lang.org/api/master/JSON.html#mapping%28prop...
This post is very much about my first pass at this and my first experience with Crystal. Cleaning up the JSON parsing is the next item on my list when I have time.
edit: note that the cleanest way would probably to write your own converter so you could avoid the union type, but I didn't want to put that in and have to write a comment about it.
And I'm all windows lately. Guess I can try it on my mac but that's like over there.
I do love the multi-platform-ness and single file of go, so it'll be cool to try this and get some ruby love.
Because its so young, there have been a handful of breaking changes which affected my code a few times (and even worse, my dependencies).
They have a good concurrency model but I'm waiting for them to add parallelism.
I mostly just crave the solidarity in tooling, dependencies, APIs, compiler options/performance which will come after hitting 1.0 (i hope). I'm excited for the day I can go all in. Keep it up Crystal team!