4 ms·
I have never really been exposed to the likes of Scheme, Lisp, Smalltalk etc. and I'm curious if anyone without an academic background actually got in to any of
by oneplane 5y ago
I have never really been exposed to the likes of Scheme, Lisp, Smalltalk etc. and I'm curious if anyone without an academic background actually got in to any of that by themselves.
Generally, it's just a bunch of JS, C#, Java, Python, and some Scala that runs everywhere I look, which often also has a large "I came across it and I got to work" type of developer or engineer using it. Maybe it's just the type of ecosystem I keep hopping around it but it seems that it's much less prominent than you'd expect.
There are always novel compilers, transpilers and showcases, but the amount of widespread use eludes me. (Only ErLang comes to mind with RabbitMQ, and maybe OCaml with Xen)
- fiddlerwoaroof 5y agoI picked up Common Lisp mostly because it intrigued me and there’s a decent market for Clojure and Haskell. Google Flights is still based on a CL flight search engine. Walmart processes all their receipts with Clojure. Target does a bunch of data sciency stuff in Haskell.
- bigdict 5y agoStart reading SICP or Little Schemer if you don't feel like making the time investment.
- Mesmoria 5y agoI got into scheme, prolog, smalltalk, Haskell, and ocaml - without an academic background in those languages. I dont find them useful commercially YMMV but I do think they stretch the way you program and I actually enjoy them more. Prolog is my favourite.
- nightfly 5y agoI got into Common Lisp > 9 years ago with being exposed to it in academia, or really even from social/pop-culture influences. I was looking for a language that had relatively good performance that was easy to prototype code interactively for and Common Lisp + SLIME fit that need perfectly. From there I learned how easy it was to make your own Lisp and learned a lot about how programming languages work and had a lot fun with that for a while.
- jim-jim-jim 5y agoI got into it myself. Scheme is how I self-learned programming. Through a copy of SICP found in a local university's book store specifically. I found the minimal syntax very conducive to learning. I was working in a call center at the time, but even while on calls it was possible to do the exercises in a different part of my head, since there was no real language to worry about. I don't think I would have had the same success with K&R, or God forbid: one of those 1,000 page OOP tomes. Chicken Scheme was the specific implementation I started with too. I always found it fast/solid and saw no reason to switch. The abstractness of Lisp and the direct access to memory/C FFI were a nice mix. It suited my interest in music, where composition and DSP fell into those two respective domains. I don't have an appetite for dynamic languages these days, but I might still reach for Chicken if I had to put together a dozen line script or something.
- whartung 5y agoI got in to it myself. And, early on, it was a real struggle. Like many, books like SICP, Little Schemer, On Lisp, were all powerful testaments to the family of languages. But those all came later. I poked around Lisp, very casually, for many years. But early on I really struggled with `lambda`. It was a meaningless word to me. The classic complaints with CAR and CDR et al didn't help. More meaningless words. Finally, I managed to stumble across the book "Simply Scheme". And the first thing it did was rename everything. It didn't take long to realize that `lambda` was a function. And then, the light clicked on. "Oh." During my learning of computer concepts, etc. there were a few events of true "epiphany", and learning what lambda really was, and how it worked, closures, that was one of them. The secret for picking it up is to just use it. Not for some huge project, not for bolting together a bunch of pre-built libraries. But for some actual processing. Something that needs little more than to read some file, do something to it, and write it back out. Baby steps. And, certainly, don't get intimidated by the development environments. I use emacs for my work simply because it paren matches and auto-indents. All of the integration, I don't bother with. My projects aren't that big. A few thousand lines of code. I'm spoiled by auto-indent (and re-indent), so that's my crutch. The key point being it takes very little to get started. Working the problems in Little Schemer is fun. Doing SICP exercises is fun. On Lisp is an inspiring, opinionated book, and fun to read because of it. So, you can start there. Go "write Fortran in Lisp", as they say. All of the stuff about macros and lambdas and functional or not etc. doesn't do you much good when you're searching and staring at an 8 page document on LOOP. Just write some simple stuff to get familiar with the things every piece of code has to do: input data, calculate on it, iterate on it, and print it out. Looking up the stuff that's muscle memory for your other languages kills momentum and motivation. So, work some simple stuff first. Write some crummy code first, then work on idiomatic code. Work on using new concepts later.
- bambataa 5y agoI’m interested to know what are common epiphanies for developers. For me, I can remember: - objects are closures and closures are objects - properly getting the JS asynchrony model - pointers and the whole memory addressing model - HTTP being stateless I must have had an early epiphany with function return values, since I remember not writing functions correctly at first, but I don’t remember the actual epiphany.
- agumonkey 5y agoacademicity~ is not necessary, it's more a matter of personal taste to me. I was utterly digusted with java in the 2000s and found lisp / scheme to be so much more interesting, consistent, small .. so I got into them. Their history is tied to academic / research and concepts but it's not necessarily a barrier.. if you like hacking, and learning you'll find pleasure there too. Also a lot of what you're using these days have been pioneered in these fields so you might connect both past and present nicely.
- arc-in-space 5y agoSure. I tried out Clojure on a whim, realized it's nice, later switched to Scheme because the JVM made it hard to interact with native. Also touched a bit of elisp, but more out of necessity, since it's the only way to configure emacs. Not at all academic, I just do stuff, though I did have a bit of Haskell experience which made these languages feel more natural.
- guenthert 5y agoI (academic background in physics, but visited only few courses in CS) got into it myself late in life. As an autodidact it's all too easy to miss some relevant background information. E.g. Perl's "local" variables made sense to me only after learning (much later) Common Lisp with its dynamic variables (partly because documentation around CL tends to be more thorough).