[HN Gopher] The Bipolar Lisp Programmer (2007)
___________________________________________________________________
The Bipolar Lisp Programmer (2007)
Author : sph
Score : 149 points
Date : 2023-08-11 08:13 UTC (14 hours ago)
(HTM) web link (www.marktarver.com)
(TXT) w3m dump (www.marktarver.com)
| cgio wrote:
| Not bipolar, but comfortably in the spectrum, and I matched the
| details pretty well. What he does not mention, which from my
| point of view is important , is the tendency to go down rabbit
| holes. Lisp is a shallow rabbit hole and you do get the
| satisfaction of getting it without an huge investment. And I do
| love lisp with passion, but never finished anything using it.
| Python is therapeutic in a way. It can get you to finish that
| "assignment" at last moment with less of a feeling that you
| should perfect it. If you are that eventually B student, do not
| fret, you can do quite well professionally when meaning is linked
| to livelihood.
| jwmcq wrote:
| I get this. I've been programming Python (mostly) for the last
| few years, and it's honestly great for getting things done in
| places where most of what we're asked to do boils down to
| sticking lego bricks together.
|
| However, I'd strongly disagree with the assertion that lisp is
| a shallow rabbit-hole. It's probably one of the deepest I've
| ever been down. There's a good half-century of history there
| (much of which is even recorded!) - you'll end up learning
| about four or five different object systems and probably
| implementing your own, for example - and, even if you want to
| ignore the past, the accessibility of every level of a lisp
| system means that I probably know more about how SBCL turns my
| code into electricity than I ever will about Python, despite
| never having used the former professionally.
|
| Big big, very deep rabbit-hole filled with a lot of very
| interesting rabbits.
| bitwize wrote:
| I remember this chestnut from back in the day. Sounds like a
| discipline issue. If Lisp really is the programming language that
| appeals to people with discipline issues, then were I a hiring
| manager a fondness for Lisp would be a no hire.
| d3ckard wrote:
| That's actually great, as you would be doing these people a
| favour by not hiring them.
| lampshades wrote:
| I've never had a professor understand me like this. I picked up
| Lisp during my Freshman year when I bought SICP. If you look at
| my transcripts you can easily infer my mental state at the time.
| Some semesters all A's, others all F's (or W's), with no rhyme or
| reason. I graduated with a 1.7 GPA, showed up high to class (if I
| showed up at all), and barely made it through. It took me 9 years
| to graduate between all the stopping and starting, working at
| Pizza shops most of the way through.
|
| But I never had problems with the programming assignments or the
| labs, I enjoyed those. And when I finally got my degree, I found
| out that all it takes to make hundreds of thousands of dollars is
| to solve a couple of algorithms for someone. I guess it all
| worked out in the end, although I do hate the corporate world
| (and have trouble staying anywhere long) with a passion and would
| very much like to find a way out.
|
| Note: I was put on bipolar medication because of the wild swings
| in my grades during college, but I don't believe I am actually
| bipolar so I no longer take it.
| bsima wrote:
| > I picked up Lisp during my Freshman year ... I do hate the
| corporate world (and have trouble staying anywhere long) with a
| passion and would very much like to find a way out.
|
| maybe we should work together
| convolvatron wrote:
| I'm going to over-generalize and say that we are a type.
| while we don't really work that well with people who have
| different mindsets sometimes, we don't necessarily work very
| well together either :(
| generalizations wrote:
| I think that type is "hacker". Welcome to the club!
|
| https://catb.org/jargon/html/personality.html
| convolvatron wrote:
| and to think we used to run this place
| jakeinspace wrote:
| I'm fairly annoyed with myself on my worse days for heading into
| embedded as a career path when Lisp (clojure mainly) is the only
| development process I've really ever felt fit my brain. I'm
| positive that there is a Lispy language out there (actually in
| existence, or the aether) that is appropriate for embedded work,
| but the constraints of the target make it difficult to envision.
|
| I like C and assembly because they're simple from a language
| semantics level but incidental complexity is nearly unavoidable.
| I'm not sure if I have undiagnosed ADHD like many here are
| wondering, but I do wish I could go back to living in a REPL
| without giving up the joy of working on real hardware at the
| register programming level.
| JonChesterfield wrote:
| Lisp makes a spectacular high level assembler but you may have
| trouble using it in a team environment. Think writing assembly
| but with lisp as the macro layer.
| sph wrote:
| I just got a Pico W to run Forth on. It's like a REPL for low
| level hardware, and I'm unreasonably excited to play with it
| this weekend.
|
| Somehow I've gone 36 years without anyone telling me I could do
| explorative programming on bare metal, and now I can't shut up
| about it.
| uticus wrote:
| would enjoy seeing a write-up or blog on this
| sitzkrieg wrote:
| yea forth is amazing for that, i used to develop a lot of
| baseline or "test everything in the beard spin" type if
| firmwares in forth and miss it
| kragen wrote:
| i'm sorry, i've been trying to tell people that for years
| (specifically with respect to forth)
| Lyngbakr wrote:
| > _I'm positive that there is a Lispy language out there
| (actually in existence, or the aether) that is appropriate for
| embedded work, but the constraints of the target make it
| difficult to envision._
|
| Perhaps Fennel* fits the bill?
|
| * https://fennel-lang.org/
| rglullis wrote:
| I wonder if I could write the story of the BBM once he left the
| university and went on to work in Corporate Land.
|
| My career (if may be called that) can be summarized by a constant
| swing.
|
| On one side, I have a "job" where I start well but after a while
| I fall out of grace from higher-ups because I inevitably end up
| calling out their bullshit and/or start seeing the pointlessness
| of it all and lose interest in progressing there. This leads me
| to either quitting or getting fired, which brings me to the other
| side of the swing: I dive into another project where I try to do
| everything "my way", no compromises, no shortcuts, no
| justification of "best practices" because "that is how everyone
| else does it".
|
| While I am on this side, I feel incredibly productive and I am
| forced to grow/learn a lot of things that are required to the
| problem at hand. Yet, because of this hard-line stance on not
| compromising, my projects gets either out-competed by a startup
| that was (rightly) willing to take the shortcuts I didn't take,
| or I end up building something that had no market for, or (worse)
| there is a market and no strong competitor but I refused to pivot
| out of the original idea for a matter of "principle" that only
| _I_ cared about - hub20 definitely fell into that category.
|
| When I am finally out of steam (or financial reserves), I go back
| into the job market, usually with a renewed set of skills which
| helps me land a job that was better than the previous one, and
| the cycle is complete.
|
| Honestly, I am tired of this. These swings were fun for the first
| 3 or 4 times but now I am increasingly feeling that my luck will
| run out soon and that I need to get out of this swing, no matter
| on what end. Either I finally make one of my projects more than a
| nice portfolio piece or I learn how to settle and navigate the
| corporate world without hating it and myself so much.
| pif wrote:
| > I inevitably end up calling out their bullshit and/or start
| seeing the pointlessness of it all
|
| The fundamental point to keep in mind is that it does not
| matter. The only thing you are entitled to in a corporation is
| your salary. Interesting projects and things making sense all
| over are just side perks. They are very nice perks, I have to
| say, but they don't pay your rent or put food on your table.
|
| Keep this is mind and life will get easier.
| rglullis wrote:
| Don't you ever get a feeling that life is more than worrying
| about how to make rent or put food on the table?
|
| Maybe it's just my (relatively) comfortable upbringing in
| Brazil or me living for over 10 years in Germany, where I see
| how the Welfare State affords me some peace of mind in
| knowing that my kids will be okay even if I give up on my
| career... but "I just better swallow this bullshit and do so
| for the majority of my productive life or I won't be able to
| pay rent" has _never_ been a thought that crossed my mind.
| adrianN wrote:
| Have you considered part-time?
| rglullis wrote:
| I did and still do, but it's hard to find someone willing to
| hire part-time for a lead/staff/IC position. If you have any
| good tips, I'd appreciate it very much.
| adrianN wrote:
| Move to a country where working part time is a right ( eg
| Germany), get hired full time, wait a year or so, reduce
| your hours.
| rglullis wrote:
| I live in Germany already. AFAIK, changing to part-time
| without any special condition (e.g. Elternzeit) would
| require a change in the contract, no?
|
| Also, I've had little success breaking into any higher-
| level position as an employee here. For the past 5 years
| or so I've worked only remotely for foreign companies
| and/or freelance and/or on my own projects. Employment
| offers were low-balling me and in a German company who
| would see me as a simple cog.
| capr wrote:
| That pretty much describes my "career" of the past 20 years.
| Lately it's been getting harder and harder to get _any_ job.
| These days it's either web dev which has reached unbearable
| levels of idiocracy with its endless tail-chasing web
| frameworks, microservices and even the platform itself
| (DOM/CSS), or it's million-line C++ legacy-on-arrival
| abstraction shitfests written by OOP-heads. It feels like
| there's nowhere to run.
| conor- wrote:
| I've found that "devops" is a pretty nice niche to fall into,
| even with all of its warts. And that means devops as in
| literally a developer who can also provision/manage infra and
| operations and not just a YAML jockey who gets a buzzword
| title. You can kind of pick your lane: dev-experience
| tooling, build systems, infrastructure automation,
| observability systems, etc.
|
| It's a nice way to break out of the rat race of bad practices
| and questionable frameworks being used all over the place and
| it seems pretty secure because most of the tail-chasing
| framework types aren't exactly keen to learn the details of
| what actually takes code from 0 to production-grade so having
| the breadth of knowledge becomes an asset that lets you work
| on a variety of problems. Obviously there's a different slew
| of annoying things to deal with (wrangling cloud services,
| insane abstraction around infrastructure, etc.) but I think
| those are more pleasant to work around.
|
| The infra-side of things also hasn't really slowed down in
| hiring like pure developer positions has.
| kaveh808 wrote:
| "He can see far; further than in fact his strength allows him to
| travel. He conceives of brilliant ambitious projects requiring
| great resources, and he embarks on them only to run out of steam.
| It's not that he's lazy; its just that his resources are
| insufficient."
|
| This speaks to me. As I get older, I am tempted to start curating
| a list of my "failed" (or abandoned) projects.
|
| I have been fortunate enough to launch an open-source 3D graphics
| Lisp project late in life which has managed to keep my interest.
| Early on, I made a number of conscious decisions about how I
| would view this project and avoid some mistakes of my past.
|
| - No comparing to existing 3D packages. It's evident that I can't
| compete with commercial packages with decades of programmer
| effort.
|
| - No hunting for a "better" language (though this hasn't really
| been a problem). A goal of the project is to develop a system
| where I can bring the power of Common Lisp to bear on 3D
| graphics. In some ways this is a throwback of work I did
| developing 3D graphics on Symbolics Lisp Machines back at the MIT
| Media Lab [0]. Returning to my youth?
|
| - Keep it simple. Or, does it need to be more complicated?
| Understandable code is a benefit, as is code you can (mostly)
| keep in your head. Avoid excessively clever code, which I have
| been guilty of in the past (macros, anyone?). Also (more
| controversially) avoid dependencies where possible; keep it in
| house.
|
| - Build a community. Having others involved is the best way I
| have found for not running out of steam. My other projects have
| invariably been solo efforts. Now I am interested in creating
| something which will outlast me. Hence the decision to put the
| project on Github [1].
|
| - This "thing" has value in and of itself, and doesn't need to be
| "better" than what is out there. By virtue of being different
| enough, it is a worthwhile project to bring into existence. The
| world probably doesn't need another browser-based JavaScript
| package.
|
| - Keep the momentum going by working on whatever interests me at
| the time. Avoiding tedious development and yak shaving keeps me
| from losing motivation. I do realize the article touches on this
| as a weakness of the Lisp developer mindset, and I admit to not
| being motivated to build an industrial-strength system. E.g. my
| half-baked GUI built on top of raw OpenGL.
|
| - Finally (have to stop sometime), don't overthink things. Enjoy
| the journey. I am enjoying enhancing the system while not
| fretting over who will use it or for what purpose. The journey is
| the destination.
|
| [0] https://medium.com/@kaveh808/late-night-lisp-machine-
| hacking...
|
| [1] https://github.com/kaveh808/kons-9
| sph wrote:
| I quite enjoyed this article, but I reckon they're talking about
| ADHD rather than "bipolar" mind. Seen under that lens, I resonate
| with his caricature.
|
| Focus is a precious, rare resource outside my control. Mainstream
| languages, made for collaboration in big teams rather than
| maximum personal freedom, soon impose restrictions that kill
| hyperfocus. The "unused variable is an error" is the most
| egregious of them that I hate with a passion. The separation
| between compilation and running is another that seemingly
| inescapable today. With languages like Lisp, I can code at the
| speed of thought from prototype to production.
|
| These days tech is advanced by FAANGs, so no one cares about
| removing the safeties from our languages; this is the reason the
| focus-challenged among us still go back to Lisp and other lost
| languages (Forth, Smalltalk, Self) that have disappeared from the
| mainstream.
|
| Rust, C++, Go, Python, etc. are good, but they're not made for
| us.
| brabel wrote:
| I don't think the kind of student the author is talking about
| has ADHD symptoms or any sort of mental illness. I think they
| just have different personalities - and having a certain
| personality than the majority of people shouldn't be considered
| a mental illness or disorder. People are not all the same... at
| what threshold do we count difference in personalities as an
| issue?? As long as the person can keep functioning in society
| without major side effects (crime, extreme isolation,
| depression) the person is just "normal" even if they tend to
| work and act differently from the average.
| [deleted]
| mtreis86 wrote:
| I like to think I'm ADH, I've got everything ADHD except
| for the disorder
| ska wrote:
| > but I reckon they're talking about ADHD rather than "bipolar"
| mind
|
| I think while some of the people he describes may have ADHD,
| very few people with ADHD are this person. His description
| resonated with me as a particular archetype, one that often
| makes their way into grad school eventually. Often enough to be
| recognizable.
|
| I also don't think the author meant these people are bipolar in
| a medical sense, but used "bipolar" as the success+failure
| designation, perhaps unfortunate terminology.
| sudosysgen wrote:
| It's not necessarily technically impossible to make this work
| in Rust/C++/Python. Using something like rr, completely
| disabling all optimizations, and making all functions virtual
| should make this possible in theory, as long as you don't
| change data structures. I'm sure it is going to be extremely
| hard in practice, though.
|
| If you're interested in trying to make this work, we can try
| implementing it first in Python using a shim annotation on
| every function and making some changes to an existing debugger
| plugin, it will definitely be difficult to integrate but it
| should be doable.
|
| For C++, something similar can be done by hacking the compiler
| to make all functions virtual and then hooking up NativeJIT to
| recompile functions as-needed. Eventually using something like
| rr we can even replay execution after we change data
| structures.
|
| I really resonate with the idea of exploratory programming and
| find myself in a similar position to you - but I can't use Lisp
| for most of my work, so given the possibility, I really do
| think that making tooling that makes this kind of development
| environment possible is the best option, and I'm pretty sure
| it's possible to do it, so why not have the best of both
| worlds?
| lars-b2018 wrote:
| This comment is certainly true for me. The article really
| resonated for me.
| distcs wrote:
| This is a great perspective. I am not focus-challenged... at
| least I don't think I am, but your comment has been a
| revelation. I always had this nagging feeling about myself that
| I don't find myself fully immersed in the problem domain when
| working Go, Python, Rust like the way I feel while working with
| Lisp.
|
| When I am programming in Lisp, I enter a sort of zen like state
| where my mind becomes one with the problem. Now don't get me
| wrong. I can write a lot of Go, Python, Rust, what have you on
| some days when I am working on a good problem and there are no
| meetings to distract me. On some days, I can do this for 6-10
| hours straight with little breaks. So I don't think I have the
| ADHD problem that the parent or the OP is talking about.
|
| But I still have this nagging feeling with other mainstream
| languages that their tooling, their ecosystem, the breaking
| dependencies, the "making the compiler happy", the stupid
| language restrictions and such things distract me from my
| problem domain.
|
| But not so with Lisp. With Lisp, it's just me, the problem, the
| algorithms to solve it and the code. Nothing else. It is a
| feeling of hyperfocus (a word you so rightly chose). For some
| reason I cannot get into that state with other languages and I
| could never understand why.
|
| Your comment is on to something here and this might very well
| explain the zen-like hyperfocus feeling of immersing fully into
| the problem domain I get with Lisp.
| sph wrote:
| Sure, the ADHD thing might be a bit on the nose, but the
| thing is... you've just become really good at being
| productive with languages that constantly interrupt you for
| inane reasons. You're productive DESPITE the terrible tooling
| we have to deal with everyday.
|
| Sometimes it's nice to shed all that bullshit and just create
| something.
|
| Sometimes, only on languages with the least amount of syntax
| and semantics you're able to sculpt that fleeting idea you
| had. Inspiration is very delicate, and it doesn't take a lot
| for it to die down because you forgot to update npm and your
| Emacs config is borked.
| whartung wrote:
| > But I still have this nagging feeling with other mainstream
| languages that their tooling, their ecosystem, the breaking
| dependencies, the "making the compiler happy", the stupid
| language restrictions and such things distract me from my
| problem domain.
|
| I can relate to this in a different way.
|
| It seems the vast majority of work today is not "the
| problem", per se, it's the interface that exposes the problem
| (or solution) to others. Shoving stuff in and out of format
| (JSON, SQL, etc.), marshaling the data over interfaces, or
| building UIs to expose and work with it, etc. The problem
| domains themselves, for a lot of systems, can be pretty
| simple.
|
| But with CL, with the reader, and things like Emacs, a lot of
| that falls into the background -- with the caveat "as long as
| you're willing to work with native representations", i.e.
| S-expressions.
|
| I have an "application" in CL, and it's 1500 lines of code.
| Outside of a couple prints for debug, there is no I/O. No
| user interface. Nothing. It's all "just code". It's all "just
| problem".
|
| Meanwhile, I have a Java program I wrote. It wraps a 1000
| line Java utility into a GUI. There's 4000 lines of code to
| present that GUI. It's a not quite fair comparison, as the
| entire purpose of the application is to expose this utility
| into a "usable form".
|
| But, with Java and other languages, there's always going to
| be some level of that. With CL, again if it fits within the
| confines of the REPL and S-expressions, you get all of that
| "for free".
|
| Trivial case with a simple Java command is you need some way
| to parse the command line options. Extended lambda lists give
| you that "for free" in CL. Named parameters, optional
| parameters, default values, etc. Arguably the entire point of
| the extended lambda list descends from their use within
| environments like Lisp Machines, where the function arguments
| WERE the "command line", and that's why its so robust. Those
| are all nice features when writing code, but they're really
| nice when you have to type stuff in all the time.
|
| And this ability to not worry so much about external
| representation, and moving and converting data, instead just
| focusing on what's being done to the data, in native terms,
| it's very liberating.
|
| There is no "impedance mismatch". Just code, just data, and
| code is data.
| BoxOfRain wrote:
| I do wonder if I'd be diagnosed with ADHD if I didn't already
| have a fairly obscure neurological disorder. My visual cortex
| can't filter its own noise out properly which causes a bunch of
| mostly migraine-like neurological issues including apparently
| making my focus unreliable and forcing me to work in a very
| "burst-then-rest" kind of fashion, but I was already that way
| beforehand it just got much worse when I contracted the
| disorder.
|
| Either way this comment makes me want to try a LISP! I might
| give Clojure a go, I daily drive another alt-JVM language at
| the moment so it's a natural choice.
| AnthonBerg wrote:
| This is super interesting. Thank you. Feels similar to subtle
| patterns in my next of kin and their inner workings. So I can
| read more, would you mind sharing the name of the disorder?
| BoxOfRain wrote:
| The disorder's called visual snow syndrome, it's named
| after the main symptom that differentiates it from other
| disorders which is TV-static like visual distortion but it
| sometimes causes a lot of other things typically associated
| with migraine to the point before it was studied in its own
| right it was assumed to be an uncommon variation of
| migraine; unlike migraine though for many people it doesn't
| produce any pain at all, just other migraine aura like
| neurological symptoms. I'm not so fortunate, I get a
| permanent one-sided headache, brain fog, occasional
| derealisation episodes, photophobia (that one's fun but
| fortunately I live in usually grey Britain), and that
| general kind of thing. It was a migraine specialist
| researching the condition in the UK who eventually
| diagnosed which was good as at the time there was a fair
| bit of rubbish on the internet about the condition (though
| that's a lot better than it used to be, I was sixteen when
| I got it and all the doctors could tell me at the time was
| 'we have no idea what this is but it's not going to kill
| you').
|
| As for treatments there basically isn't one. Among other
| things I experimentally microdosed quetiapine against it
| (under the theory dopamine might be involved) under the
| supervision of a doctor which basically cured the visual
| distortion but not the pain, but I quickly built a
| tolerance and binned it off because the side effects aren't
| great. Some people benefit from anti-seizure medications
| but not everyone and the side effects can also be bleak.
| Fortunately medical cannabis is legal in the UK and it's
| very effective against the pain, the amount of unsuccessful
| things I've tried qualifies me for it and the pain's only a
| problem on very bad days now. Coding with the monofur font
| helps me too!
|
| Of course everyone has some noise in their visual system, a
| little bit of TV static isn't necessarily indicative of
| disease. For reference I struggle to read when it's bad,
| and my night vision is impaired quite a bit compared to
| what it was before so you'd definitely notice if it was
| problematic.
| polypodiopsi wrote:
| Just a intuitive thought, a bit unresponsible maybe, so
| consider on your own risk: you researched the effects of
| ketamine and its derivatives on your disorder? Din't know
| why I think of this; probably because they are know to
| also affect obscure pain stuff like phantom pains and
| generally interact with perception (I feel it reduces
| oversensitivities like not beeing able to bare some
| stimulus and such) currently researched as an fast acting
| and lasting over its acute effects treatments for
| depression.
| BoxOfRain wrote:
| If I'm ever eligible for a study into it I'd definitely
| at least consider the idea, though it's not something I'd
| want to do outside of medical supervision given the
| mechanism of my condition is not well characterised yet.
|
| One anecdotal thing from support groups etc that makes me
| cautious is that while some people are born with it and
| some people contract it spontaneously later in life (this
| was my case), other people can contract it after taking
| various types of drug. Typically these are serotonergic
| drugs like antidepressants, psychedelics, and that sort
| of thing which aren't in the same category so it'd
| probably be okay but it's definitely possible I can make
| things worse as well as better.
| jsight wrote:
| > The "unused variable is an error" is the most egregious of
| them that I hate with a passion.
|
| Same. That has tripped me so many times when trying out
| something simple in golang.
|
| I get why they are undesirable in the long run, but in the
| short run I'm often trying out a fragment and don't have the
| users of every variable written yet.
| sph wrote:
| My hype for Zig died the day Andrew decided to push for that
| nonsense.
| pjmlp wrote:
| For it was the use of @, Objective-C style, and not having
| an answer for use-after-free.
|
| If I need to use analysers to fix that, I already have
| those for C and C++ for the last 30 years.
| bloopernova wrote:
| Your comment and the grandparent comment have both really
| validated me. I know that's weird to say, but I really
| thought I was just Wrong about the linters/LSPs and
| unfinished lines or unused variables. Thank you :)
| sph wrote:
| Those that implemented the unused variable feature are
| completely unaware that there are two modalities of
| programming: exploring a problem space, and building a
| solid product.
|
| When you're exploring, you don't want your compiler to stop
| you in your tracks to warn you about pedantic nonsense.
| It's not a syntax error that prevents your compiler from
| understanding, it's just arbitrary restriction that the
| compiler decides to pester your about, a sort of a robotic
| grammar nazi.
|
| Computers are obtuse, the worst thing they can do is ignore
| your perfectly parseable and valid instructions for
| arbitrary reasons. Machine, if you know I'm not using a
| variable, kindly let me know and carry on doing your job.
| potta_coffee wrote:
| I'm certain they're aware of the second modality; I just
| think that Go is narrowly focused in design and it's not
| really for that other kind of user.
| kragen wrote:
| it is vanishingly unlikely that ken thompson and rob pike
| are unaware that people sometimes program to explore a
| problem space
| sph wrote:
| Ken's first language is pretty tolerant of programmer
| silliness, maybe too much.
| shrimp_emoji wrote:
| You are wrong, just like these other people.
|
| You guys want to have your cake and eat it too -- to be
| correct despite being lazy and sloppy.
|
| It makes no sense. Bite the bullet. Don't have unused
| variables. There's no such thing as "exploration". After
| you've "explored" enough (where "explored" means "coded
| sloppily"), you've quickly exhausted your mental buffer,
| and it's suddenly expensive to go back and polish what
| you've done, making yesterday's exploration today's
| (hopefully not too creaky) foundation.
| JonChesterfield wrote:
| It is _trivial_ to ignore unused variables, early returns
| leaving dead code and so forth while editing and then
| check &reject them before applying to production. Fix
| whitespace in the same git hook.
|
| This is one where faster local development (because you
| don't have to repeatedly, jarringly stop what you're
| doing and patch up something that doesn't matter) and
| clean source in a common repo are both possible and very
| easy to achieve.
|
| But whatever. Yay go.
| 39 wrote:
| Okay, you made me want to try Lisp.
| sph wrote:
| The sibling comment suggests Clojure, and last time I tried I
| lost all patience after having to deal with setting up Java,
| lein (it's been quite a while).
|
| If you want the least amount of friction possible, install
| Racket and run DrRacket. Here's a tutorial:
| https://docs.racket-lang.org/quick/index.html and one to make
| web apps: https://docs.racket-lang.org/more/index.html
|
| (I don't mean to disparage Clojure, I'm sure it's great, but
| a newbie needs something easy to get excited about, not
| having to mess with JDK and setting up Emacs)
| Qem wrote:
| I had the same experience. Spent over an hour trying to
| strap all the components into a working system just for it
| to trow error after error. So I gave up learning Clojure
| and instead went into Pharo. Self-contained environment
| trivial to set-up, same live environment typical of lisps,
| but approached from the Smalltalk side. I enjoy it.
| shrimp_emoji wrote:
| Clojure sucks.
|
| Go with Lisp instead. Or OCaml. Both are purer and leaner
| than the JVM-addled morass that is Clojure.
| stefcoetzee wrote:
| For a quick start, can recommend Clojure using VSCode as
| editor (with the Calva plugin).
| galfarragem wrote:
| Ruby could be a good compromise. Unfortunately it lost the
| battle long time ago.
| stefcoetzee wrote:
| Which battle is that?
| galfarragem wrote:
| The battle for relevance. A language that isn't growing is
| dying.
| corinroyal wrote:
| "Lost the battle?" Ruby is a far better ecosystem now
| than it was when it was getting popular. C is "dying"
| according to your definition. It's number 2 on the TIOBE
| index, while Ruby is in the top twenty. I'm using Common
| Lisp do build my product, and that one is long dead and
| buried according to popularity.
|
| Maybe there are business reasons to avoid less popular
| programming languages, but there aren't any programming
| reasons to avoid them. Maybe we should stop treating
| tools as if they were candidates for homecoming king and
| queen.
| sph wrote:
| ADDENDUM: I love Lisp but I want to clarify that its secret
| sauce is that it enables exploratory programming: programming
| from inside the system.
|
| While most languages are akin to preparing a detailed blueprint
| and executing it (then stop to update the blueprint and try
| again), exploratory programming is like sculpture. You have an
| unformed mass full of unrealised potential, and you slowly
| carve it to shape.
|
| The ADHD/Bipolar mind of the article isn't great at making
| plans, it's great at following its gut instinct, making shit up
| step by step.
|
| Lisp enables this flow, but also Forth, Smalltalk, Self, etc.,
| which I've been deeply obsessed with lately. Sadly, all we have
| today on the mainstream are basic REPLs which are a harmless,
| defanged version of these old environments promoting creativity
| and flow state.
| bloopernova wrote:
| "The ADHD/Bipolar mind of the article isn't great at making
| plans, it's great at following its gut instinct, making shit
| up step by step."
|
| Which is why I do best with the command line, piping outputs
| and rapidly iterating to get the output I want.
|
| And why I struggled so much writing Python in a larger, more
| complex script/app. I wanted to constantly run and rerun the
| smaller parts to get each one just right. Unfortunately that
| doesn't work great when you're interacting with a half dozen
| different APIs that take minutes to run each time. Until I
| realized what was slowing me down, I was just getting more
| and frustrated.
|
| Now I am at least aware of the issue. Part and parcel of
| growing from sysadmin to DevOps to coder, I guess? Now I know
| to look for shims or stubs that help me. Now I can write
| tests that isolate and verify, rather than run the whole damn
| thing end to end.
|
| It helps me to think of objects as those command line tools.
| Their method parameters are the stdin that get passed through
| pipes. I apologize that this isn't particularly profound, but
| sometimes epiphanies are made from smaller realizations.
|
| Maybe I should have tried writing part of my most recent
| script in Lisp? Just to see if it resonated like described in
| this thread?
| jimmaswell wrote:
| > I wanted to constantly run and rerun the smaller parts to
| get each one just right.
|
| One one hand, as you alluded too, I've found unit tests are
| a great solution to this. Kill two birds with one stone -
| rapidly iterate on a chunk of code and come out of it with
| solid test coverage.
|
| It's too bad that's not very feasible in gamedev most of
| the time with so much going on in the world, but over time
| I think that environment improved my skills to where it's
| less of a problem.
| sph wrote:
| > I wanted to constantly run and rerun the smaller parts to
| get each one just right.
|
| > Maybe I should have tried writing part of my most recent
| script in Lisp?
|
| 90% of Lisp programming is selecting an expression in your
| editor and pressing C-x C-e to execute it. And continue
| until you are satisfied it operates as you want, then
| integrate it in the larger system.
| kragen wrote:
| what about gnumeric, observablehq, jupyter, the unix shell,
| and the browser console (firebug and its clones)
|
| admittedly it's hard to save the state of the page after you
| hack on it in the browser console, but jupyter doesn't really
| have that problem
| troupe wrote:
| > programming from inside the system.
|
| Can you elaborate on that? I think you are saying that REPLs
| in other languages don't do what you can do in Lisp, but I
| don't think I know enough to fully understand why.
| unixr wrote:
| Imagine this:
|
| You start a fresh REPL session with a vague idea of
| something you want to build. You have good tooling that
| enables you to write code in your favourite editor and pipe
| it to the REPL through a socket. You write a couple of
| functions and send them to the REPL. You call them a few
| times with some test arguments, maybe define a couple
| global variables while testing, and realize one of the
| functions doesn't quite behave the way you want. You tweak
| the code and send it again to the REPL. The function is
| redefined and works properly now.
|
| You're happy with what you have for now, so you save the
| entire current environment of the REPL, functions and
| global variables and all, into a file (called an image) on
| your disk. The next day, you come up with a great new
| feature so you load up the image and continue exactly where
| you left off yesterday, with all your functions and even
| global variables as they were defined previously. You add
| your new feature, all while testing and tweaking your
| functions interactively, and then you save the new
| environment into an updated image. Any other code that
| loads that image will be able to take advantage of your
| updated functions and variables now.
|
| The power of lisp is not just the fact that there's a REPL
| -- a lot of languages have that now. It's the ability to
| save and reload the entire current state of the REPL
| (interactively or programmatically), which enables the
| powerful interactive development that so many lispers,
| including myself, rave about.
| mark_l_watson wrote:
| About 15 or 20 years ago I had a work flow using SBCL
| Common Lisp where I saved images and always restarted a
| new work session where I left off. Easy to do.
|
| I was motivated to do this because I had a ton of
| linguistic and text data in my environment which back
| then took a little while to load. Now, I organize
| everything I do into small or sometimes tiny Quicklisp
| projects/libraries and that is much more convenient for
| me.
|
| If you want to really get into image based programming,
| the open source Pharo Smalltalk is very good.
| troupe wrote:
| That is very helpful. Thank you. Most of my exposure to
| Lisp has been Scheme and Racket and minimal at that. Are
| these images you describe something that is part of a
| particular distribution of Common Lisp?
| whartung wrote:
| Images are pretty routine amongst most of them (though
| not all).
|
| In the end what you have is a base image, and then a set
| of code and instructions to transform that image into
| your runtime image, then you distribute that image as
| your "application".
|
| I have never needed to do this, as all of my work has
| been utilitarian in nature, rather than some kind of
| monolith distributed to others. I simply load my code on
| to the stock image and go from there.
|
| But even then, for folks that do that, they may well load
| up the stock image with useful and common, personal,
| utilities, and snapshot that. Their "application" is
| their essential working environment.
|
| Smalltalk does, and Forth can work from this concept of
| an image.
|
| Schemes tend to not be this way. They are interactive,
| but the image concept is not as ingrained in the Scheme
| world. Instead, it's more like doing development in
| something like Bash -- an interactive environment to be
| sure, but one that always resets to the baseline state
| and must be reloaded when started. There are certainly
| Schemes that can do this, it's just not as routine.
| floren wrote:
| What happens when you want to share the thing you built
| with somebody else? If I type a defun into a REPL, is
| there a good way to get source code back out again?
|
| Because there's a problem I've run into several times
| when writing Lisp (I use SLIME): I decide to refactor
| some stuff, so I rewrite some stuff, maybe remove a
| function or two from the source as part of that. Things
| seem to be working fine. I save my .lisp files and then
| at some point end up restarting the Lisp process (often
| because McCLIM can be kind of flaky and lose its
| connection to the X server). When I go to load my code
| back in, I get errors, because oops I was actually still
| calling that deleted function somewhere -- it "worked"
| before because the old function was still hanging out in
| the image.
|
| When I develop in a compiled language, I just accept that
| I'm going to be re-building the entire thing from scratch
| (equivalent to restarting the lisp process & re-loading
| the source files) every time I want to try a change; if I
| broke something, I'll find out the next time I run
| make/go build/whatever. When I'm developing in Lisp, and
| I'll freely accept that my Lisp dev flow probably isn't
| ideal, it's so easy to screw up but be _unaware_ of it
| for hours if not days: I write some code, I 'm happy, I
| close Emacs, then a week later I come back and try to
| load my package and it's just broken.
|
| I could solve it for _myself_ by just using images: the
| "deleted" function would persist in the image, and every
| time I started working again it would be there. But if I
| ever want to let somebody look at the code, hack on it,
| make changes, what's that look like?
| kragen wrote:
| > _If I type a defun into a REPL, is there a good way to
| get source code back out again?_
|
| this used to be the normal way of programming in lisp
| repls (like in 01980) but maybe this is good enough
| * (defun tri (n) (loop for i from 1 to n summing n))
| TRI * (describe 'tri) COMMON-LISP-
| USER::TRI [symbol] TRI names a
| compiled function: Lambda-list: (N)
| Derived type: (FUNCTION (T) (VALUES NUMBER &OPTIONAL))
| Source form: (LAMBDA (N) (BLOCK
| TRI (LOOP FOR I FROM 1 TO N
| SUMMING N)))
|
| > _When I go to load my code back in, I get errors,
| because oops I was actually still calling that deleted
| function somewhere -- it "worked" before because the old
| function was still hanging out in the image._
|
| so a thing you can do in that case is to delete it from
| the image at the same time
|
| well, you can't really delete it from the image, but you
| can remove the function binding of the symbol, and since
| normally in common lisp implementations function calls
| indirect through the symbol (which is why you can replace
| the definition with a newer one) deleting the function
| binding is enough * (defun tri0 (n)
| (tri (1+ n))) TRI0 * (tri0 4) 25
| * (tri0 5) 36 * (fmakunbound 'tri)
| TRI * (tri0 5) debugger invoked on a
| UNDEFINED-FUNCTION @52A00674 in thread #<THREAD
| "main thread" RUNNING {1001348003}>: The
| function COMMON-LISP-USER::TRI is undefined.
| Type HELP for debugger help, or (SB-EXT:EXIT) to exit
| from SBCL. restarts (invokable by number or
| by possibly-abbreviated name): 0: [CONTINUE
| ] Retry calling TRI. 1: [USE-VALUE ] Call
| specified function. 2: [RETURN-VALUE ] Return
| specified values. 3: [RETURN-NOTHING] Return
| zero values. 4: [ABORT ] Exit debugger,
| returning to top level. ("undefined
| function" 6) 0]
|
| as rainer pointed out, slime has a command for this (i
| barely use cl myself, you know much more than i do)
| [deleted]
| lispm wrote:
| > When I develop in a compiled language
|
| "batch compiled from scratch"
|
| OTOH, most usage of Common Lisp is compiled, often by an
| incremental in-image compiler
|
| > because oops I was actually still calling that deleted
| function somewhere
|
| Typically Lisp IDEs have features like Edit Callers
| and/or List Callers. I would
|
| 1) "Edit Callers" -> this walks me through all functions
| which use this function, I change the functions and I can
| edit/compile them
|
| 2) When I'm done, I use "Undefine Function", which then
| undefines the function from the running Lisp.
| kagevf wrote:
| > "Undefine Function"
|
| That's the key; if you delete a function make sure to
| undefine it so it's not sticking around in the image.
|
| In slime you can use `C-c C-u` which is bound to
| FMAKUNBOUND.
| kaveh808 wrote:
| I work in a slightly different way by always saving my
| code in emacs and loading it fresh each session (though I
| have gone a couple of weeks with a live image/session on
| my laptop). I am fortunate that my 3D system [0] compiles
| and loads in a few seconds.
|
| I also use the REPL for quick tests, and evaluate new
| code by writing it in emacs and compiling it one function
| at a time (C-c C-c).
|
| Finally, I keep files of tutorial/demo/test cases which
| work a bit like a notebook, allowing me to quickly verify
| that existing 3D scenes still work.
|
| [0] https://github.com/kaveh808/kons-9
| bloopernova wrote:
| This is the kind of thing that should be included in
| language tutorials!
|
| It particularly resonates with me because I think so many
| project teams neglect the Developer Experience. In my
| opinion DevOps should be more about making coding,
| testing and deploying as frictionless as possible.
| convolvatron wrote:
| when this term first came out, it really seemed like that
| was the point
|
| now it just seems like a hundred children you have to
| pacify and get to bed before you can even start working
| ergonaught wrote:
| I was wondering whether this sounded more like ADHD or ASD than
| "bipolar", then decided that he wasn't using the word in that
| sense and let it go.
| lproven wrote:
| This is from 2007, and it should say so, as it did one of the
| previous times around:
|
| https://news.ycombinator.com/item?id=13467473
| Aerbil313 wrote:
| I'm exactly this type of student. 18 yo, just starting university
| next month. Any advices?
|
| Every single thing in the article fits my life so far, the
| boredom, the pointlessness of all things, the ease of brilliance,
| 1 to 1, sans the sadness because I'm still hopeful that the world
| can be fixed and am still an idealist. (I attribute this to my
| faith.)
|
| My classmates always envied how little or none I work for the
| same results but very few realized it's kind of a curse at the
| same time[1]. When you don't have a habit of working, you can't
| work hard when you need it. I think this can be a problem now as
| I'm entering university (it happened to be a mild problem in late
| HS too). I would not throw it all up with girls and beer (cos I'm
| muslim) but I don't know whether I will be bored, because I heard
| the curriculum isn't exactly full of shiny things.
|
| 1: Still I'm forever grateful to Allah for it, no complaints.
| Learned so much in my all free time not spent doing pointless
| homework.
| spazmoth wrote:
| Be as practical as possible; at the same time, compromise as
| little as possible on following your heart and your interests.
|
| If something isn't practical and it doesn't bring you joy then
| it isn't worth your time. Don't fool yourself into wasting
| time!
| convolvatron wrote:
| I think you're right to be concerned. I coasted through
| secondary school with a 4.0..and when I reached undergrad I
| didn't have the tools to apply myself. I wasn't a big fish in a
| small pond anymore, I was near the bottom of the heap. first
| year I did ok, but by the end of the second I was irrecoverably
| lost.
|
| my advice is to figure out what you want to get out of it.
| sure, maybe you need a degree, but that's a really big space.
| most of it seems like a pointless sysiphysian exercise. but
| there are some really great teachers and peers in there, and a
| lifelong passion if you can find it.
| dermesser wrote:
| One piece of advice: some things in university might be
| pointless and/or hard. Treat it like a game, the goal is
| usually quite clear (grades, passing, etc.) and work as much as
| you can to achieve the best results. Don't think too much about
| whether there's a point, and if it's boring, find ways to not
| make it boring (read more literature about it, solve trickier
| problems)...
| talldrinkofwhat wrote:
| Diversify, socialize, and start things before they're due*.
|
| Take classes / sit in on lectures from different fields (art
| history, painting, russian literature, architecture/furniture
| making... the list goes on, just make sure it's interesting to
| you). If you've got AP credits racked, your entire first year's
| worth of requirements just got freed. Use them piece-by-piece
| over your semesters to explore other avenues rather than
| graduating a year early. Don't be afraid of 300/400 level
| classes as a sophomore (assuming you're solid for the first 3
| semesters). It's a great way to better integrate with upper
| classmen while you're still a fledgling.
|
| Join clubs that do different forms of the work you're
| interested (applications of theory vs problem sets), or
| entirely different skillsets**. You should be able to meet
| people above and below you, enabling avenues to learn and
| teach.
|
| *I never did figure out how deadlines work.
|
| **E.g. sports. "The mind cannot exist without the body" -
| Morbeus
| JonChesterfield wrote:
| > *I never did figure out how deadlines work.
|
| The failure mode goes "this thing will take two days, I'll
| start two days before the deadline, oops". The fix is "this
| thing will take two days, I'll start it immediately". You can
| then still drop it after two days if you wish, but you have
| options if your estimate was poor.
| teddyh wrote:
| See also: _The Lisp Curse_ : <http://www.winestockwebdesign.com/E
| ssays/Lisp_Curse.html#mai...>, which is a followup and commentary
| to this article.
| slushh wrote:
| >The flip side of all that energy and intelligence - the sadness,
| melancholia and loss of self during a down phase.
|
| On that other side, the positive side, is there a self?
|
| >Another feature about this guy is his low threshold of boredom.
| He'll pick up on a task and work frantically at it, accomplishing
| wonders in a short time and then get bored and drop it before its
| properly finished.
|
| Working frantically at a task doesn't sound like self-
| realization.
| kdmccormick wrote:
| Well, sometimes working frantically _does_ get us bipolar folks
| somewhere, for example:
|
| * To a place where other people see the value and join into the
| project before we burn out.
|
| * To a place where a discovery or insight is made that is
| valuable without needing to be thoroughly polished. IMHO this
| is why so many brilliant mathemeticians are bipolar: once an
| insight is reached and communicated, value has been created. No
| debugging or security updates required :)
| tokai wrote:
| There is no such thing as "bipolar personality". People should
| seriously refrain from using the term bipolar when they clearly
| don't have any understanding of the disorder. At least he didn't
| get it mixed with borderline I guess.
| kayodelycaon wrote:
| The kind of personality he describes does exist but it has
| little relation to bipolar disorder.
|
| Given how he defined the term, I suspect he is using the word
| bipolar in its general meaning of having two states.
|
| Bipolar is a bit of a misnomer as is, multi-polar is a better
| descriptive what what the disorder actually is. There are not
| two states, there are several overlapping, non-exclusive
| "states". (For example: mania and depression are not
| exclusive.)
| kdmccormick wrote:
| Eh, maybe it's coincidence, but I am Bipolar (type I) and I
| deeply relate to the personality type described by the
| article, including how the author relates ambition/boredom to
| mania/melancholia.
|
| Interestingly enough, I also had a favorite professor in
| college who mentored and looked out for me to a certain
| extent, who was big into Lisp and Haskell, and who was quite
| acquainted with bipolar disorder himself due to other people
| in his life.
| BaculumMeumEst wrote:
| the mosaic background of this site is stunning, i need to figure
| out how to generate that
| zoom6628 wrote:
| I think the author would suggest painting your lentils before
| using the tweezers to place them :-p
| lproven wrote:
| It's a photo, isn't it?
|
| I took it to be the ceiling of the dome of Hagia Sofia but I
| could be wrong. It definitely looks Moorish, though. A grand
| mosque dome of some kind.
|
| Not saying programmatic decoration would be a bad thing -- it
| wouldn't! But beware: much Islamic decoration is text. It's
| writing. You can't just programmatically generate that.
|
| Okay, "AI" chat bots can, but the _text_ is simple. It's the
| calligraphy that matters. Generating that would be very hard.
| botanical wrote:
| It seems to come from here:
|
| https://en.wikipedia.org/wiki/Sheikh_Lotfollah_Mosque
|
| https://commons.wikimedia.org/wiki/Category:Sheikh_Lotfollah...
| wildermuthn wrote:
| This tracks with my own experience, and I don't believe he is
| literally saying people of this personality type are medically
| bipolar.
|
| I used Common Lisp for a few years and then switched to Clojure
| for another four years. At the time, it seemed that Clojure's
| ecosystem could overcome the lone-wolf problems that CL faced. In
| the end, Rich Hickey made it clear that Clojure was his toy that
| we were lucky to use, and so its ecosystem never took off like it
| could have. It's a real pity and a terrible lost opportunity.
|
| Since then I've gone all in on languages that I don't
| particularly like, but whose ecosystems provide such value that
| the language itself is somewhat immaterial: JavaScript and
| Python.
|
| But I do think about lone-wolfing sometimes, in the context of
| building new products for myself,
|
| If I ever went down that path again, I'd choose Common Lisp over
| Clojure. Clojure is easier to use, has more libraries, and has
| JVM interop, but these benefits are outweighed by Clojure's
| opinionated restrictions on the language itself. Ultimately, if I
| am going lone-wolf or nearly-lone-wolf, I might as well use the
| most powerful language that doesn't force its opinions on me.
| [deleted]
| thanatropism wrote:
| I used to be all in on the Blub Paradox discourse -- but I've
| been learning some C++ for the Arduino and the differences in
| power with, say, Python, are mainly related to how easy it is to
| think-as-you-code in a dynamic language.
|
| Of course, my life story is such that I've used Python
| professionally to the extent that I've started to forget all
| other languages -- so I naturally find the Blub Paradox Discourse
| favorable. But all the footguns that come with passing around
| pointers to memory addresses also come with a whole different way
| of expressing problems; whole different range of thoughts that
| are thinkable.
|
| (I valiantly await the Rust brigade in my replies...)
| dj_mc_merlin wrote:
| This very much describes me to a T and I've come to realize I
| just have ADHD and (excuse the narcissism) above average mental
| capacity in some subjects. Haven't gotten diagnosed yet, but both
| my SO and my best friend have it, and the parallels are
| staggering and explain a lot about my behaviour. I've developed a
| shit ton of personal techniques to gain some focus even when it
| seems impossible and engage in humility to counteract my
| cynicism. It's only going half well, but a hell of a lot better
| than in university.
|
| Other people in this position, what did you do?
| sph wrote:
| > Other people in this position, what did you do?
|
| Got medicated, and reduced the amount of billable hours to a
| minimum that lets me make rent, and gives me a ton of
| unstructured fun time to pursue today's source of dopamine.
| Today it's one library, tomorrow it's hacking on a project,
| next week, who knows?
|
| In other words, make it so programming is a way to express your
| creativity, rather than simply your day job.
| dj_mc_merlin wrote:
| Thanks for the comment. I've been trying to program
| creatively again like I used to, but it's hard with a stable
| job (even though I have quite a lot of freedom in work hours
| and output by employment standards).
|
| > Got medicated
|
| Used to be addicted to amphetamines so I think I'll pass on
| this one. It's effective, definitely, but I don't think I can
| have a sizeable amount of them at disposal or bad things
| happen.
| sph wrote:
| Amphetamines have saved my sanity if not my life, so I
| treat them with utmost respect. And I don't find any urge
| to take more than my daily dose anyway... I crave my single
| cup of coffee more than any ADHD medication.
|
| The alternative to get a ton of dopamine is plenty of
| exercise, clean diet, protein, good sleep and a generous
| amount of caffeine. I mean, that's good advice for pretty
| much everybody.
| mcluck wrote:
| I keep seeing people say "I have X but I haven't gotten
| diagnosed yet". Pet peeve: you _think_ you have ADHD but you
| can't state that you have ADHD without a diagnosis. If you have
| a piece of bone sticking out of your leg, it's fair to self-
| diagnose with a broken leg. Mental conditions are much harder
| to lock down definitively, especially because ADHD, autism, and
| bipolar all share similar symptoms. My own personal anecdata is
| that the people I've known who suspected they had ADHD more
| often than not did but they (myself included) still needed a
| diagnosis before stating it as a matter of fact
| dj_mc_merlin wrote:
| OK, I can say I don't have it if that helps. My point is that
| I share a lot of the problems that two important people in my
| life do, and seemingly the same way they think about stuff
| that other people find very weird, I also do. And it's been
| this way for a very long time. They are diagnosed
| professionally with ADHD. So, I think there's a high
| likelihood, but I don't know, obviously. I was asking for
| others experiences in handling said situations.
|
| edit: I'm also not interested in getting a diagnosis since I
| don't want it to be on any file in general. Call it paranoia,
| I don't want some medical file marking me as having a
| disorder or being mentally ill.
| the_sleaze9 wrote:
| > Call it paranoia, I don't want some medical file marking
| me as having a disorder or being mentally ill
|
| Not paranoia at all, I had a bored psychiatrist showing a
| wildly unprofessional amount of skin diagnose me with
| Bipolar type II after a single 15 minute interview, and now
| I have serious issues getting life insurance. Even with
| several other psychiatrists giving opposing diagnoses.
|
| Much better to suspect (and apparently trigger some
| people's disdain) than let someone write something down in
| permanent ink.
| dang wrote:
| Related:
|
| _The Bipolar Lisp Programmer_ -
| https://news.ycombinator.com/item?id=21999802 - Jan 2020 (2
| comments)
|
| _The Bipolar Lisp Programmer (2007)_ -
| https://news.ycombinator.com/item?id=13467473 - Jan 2017 (57
| comments)
|
| _The Bipolar Lisp Programmer (2007)_ -
| https://news.ycombinator.com/item?id=8904208 - Jan 2015 (11
| comments)
|
| _The Bipolar Lisp Programmer_ -
| https://news.ycombinator.com/item?id=8801608 - Dec 2014 (25
| comments)
|
| _The Bipolar Lisp Programmer (2007)_ -
| https://news.ycombinator.com/item?id=3374849 - Dec 2011 (38
| comments)
|
| _The Bipolar Lisp Programmer_ -
| https://news.ycombinator.com/item?id=2275657 - March 2011 (86
| comments)
|
| _The Bipolar Lisp Programmer (an oldie but a goodie)_ -
| https://news.ycombinator.com/item?id=859669 - Oct 2009 (22
| comments)
|
| _The Bipolar Lisp Programmer_ -
| https://news.ycombinator.com/item?id=187867 - May 2008 (15
| comments)
|
| _The Bipolar Lisp Programmer_ -
| https://news.ycombinator.com/item?id=78739 - Nov 2007 (32
| comments)
|
| _The Bipolar Lisp Programmer_ -
| https://news.ycombinator.com/item?id=20012 - May 2007 (8
| comments)
|
| (Reposts are fine after a year or so; links to past threads are
| just to satisfy extra-curious readers)
| netbioserror wrote:
| I've found, as a Lisper, that the secret to being effective and
| valuable to a company such that you're both irreplaceable and not
| too much of a drag on the rest of the organization is to pick
| secret weapons that have slightly more overlap with the normal
| world than Lisp.
|
| Clojure, Nim, Elixir, and more faintly flirt with the true
| unbridled power of a CL environment, but primarily provide useful
| abstractions and some familiarity, compatibility, and/or killer
| features that can't be turned down as easily as a true CL
| environment. It works out, when the company is small enough that
| you're driving your own project. Just be sure do document what
| you did.
| ianandrich wrote:
| I'm also curious about your experiences using nim as a secret
| weapon in corporate programming.
| potta_coffee wrote:
| What do you like about Nim? I've started playing with it and
| it's quite comfy but I don't know much about it's capabilities
| yet.
| mav88 wrote:
| I feel personally attacked :) Lots of symptoms of ADHD in here
| too as well as bipolar (I have both and enjoy Lisp too).
| bmitc wrote:
| Does anyone use Shen? I was looking into it recently and thus
| recognize the author of this post as the originator of Shen.
|
| https://shenlanguage.org/
|
| Why would one use Shen over Common Lisp, Racket, Chez Scheme, or
| Clojure, for example?
| bsima wrote:
| I love Shen and highly recommend the Book of Shen and Tarver's
| other book on Logic and Computation.
|
| The crazy thing about Shen is that its type system _is_ sequent
| calculus, which means when you define your types, you are
| literally writing the same language that mathematicians use
| when they prove things about type theories.
|
| Why would you use it? Because you can leverage a crazy amount
| of power by writing your own type theories in your programs.
|
| Is it practical in today's corporate world? Probably not, but
| there is at least one case study in the real world
| https://www.youtube.com/watch?v=lMcRBdSdO_U
| bmitc wrote:
| Thank you for the link to the talk! I'll watch it for sure.
|
| If I am interesting in using functional languages (currently
| F#, Elixir, and Racket) to explore GUI systems, graphics,
| symbolic math, numerical computing like machine learning and
| swarm algorithms and automatic differentiation, agent-based
| modeling, fractals and general chaos theory stuff, etc., is
| Shen a good match for that type of exploratory, almost from
| first principles but towards something that is actually
| usable work?
|
| Is Shen closer to Scheme or Lisp? I typically fall in the
| Scheme side of things a la Racket.
|
| Thanks for all the information and help!
| bsima wrote:
| Definitely usable for those cases. You might have to do
| some extra work to build the necessary libraries though.
|
| It's closer to scheme I think, being a lisp-1, even though
| it's originally implemented in Common Lisp.
| bmitc wrote:
| Thanks! And I watched some bits of that talk and got
| excited about the whole KLambda thing and the ability to
| use Shen hosted on top of another platform. That seems
| _very_ interesting to me, especially since Shen has
| Prolog inside it, and is something I 'm going to look
| into more.
| JonChesterfield wrote:
| Shen does something unusual in deployment. Their idea is to
| write a smallish number of intrinsics and data structures in
| your main language, and then import the shen interpreter on
| that. This gives you code written in shen, callable from the
| host language.
|
| This is interesting for sharing code across multi-language
| projects, e.g. as a JavaScript library and a Java one, where
| the shen interpreter gets written once per language and now all
| your library code is callable from any of them.
|
| I think it's a minor misfire that this is an interpreter, as
| opposed to a compiler from shen to whatever language, but that
| would be fixable. I'd rather compile the shared definitions to
| raw c++ code ahead of time than run an interpreter.
|
| Aside from that, the definition is mostly in shen (modulo said
| primitives) so it has an axiomatic angle to it, and the type
| checker is a prolog. Compiler and prolog engine both available
| to user code of course.
| reilly3000 wrote:
| The DSM and its disciples are so focused on aberrant behavior
| that they neglect to explore the experiences and mental models of
| those they treat. What is it about having a mood disorder leaves
| one prone to eschew strong typing in favor of improv at the REPL?
| Is it the mood that makes the object more clearly visible, or
| what it does to a person when they delve into the abstract?
| packetlost wrote:
| As someone with pretty bad ADD/ADHD, I sympathize with the other
| comments in this thread. I personally find languages such as
| FORTH to pretty "comfy", however I think it has more to do with
| the interactivity of the development cycle. There are other ways
| to get this interactivity without doing REPL-driven development.
| Test-driven development is can get you very, very close to the
| same thing with most languages.
| drones wrote:
| While there are definitely some tortured genius types out there,
| I think many of those who present as such described in the
| article really aren't. You know, it's pretty easy to appear like
| a genius when none of your peers have anything to show for it
| either. The only question I ask for genius is "What has this guy
| done?". Which is a pretty difficult question to answer when
| you're still at school and haven't lived a life yet.
|
| Our own self concept is based on the story we tell ourselves.
| This is an important emotional/intellectual regulatory tool we
| deal with in a daily basis. Evolution gave us self reflection
| because it's very useful to us. But it doesn't mean it's a
| reflection of reality.
| ablyveiled wrote:
| Geniuses are Generative
___________________________________________________________________
(page generated 2023-08-11 23:01 UTC)