18 ms·
Lisping at JPL (2002)
- deleted 7y ago[deleted]
- proximitysauce 7y agoI really feel like they should teach LISP in elementary school. It has extremely simple rules to get started and helps people intuitively understand programming concepts. Maybe an updated The Little Schemer style curriculum: https://www.amazon.com/Little-Schemer-Daniel-P-Friedman/dp/0262560992 https://www.amazon.com/Little-Schemer-Daniel-P-Friedman/dp/0...
- haolez 7y agoI would prefer Forth. It's simple and yet manages to be close to the hardware.
- proximitysauce 7y agoForth would be great too. I think there's value in learning a stack based language. That being said I suspect LISP is more practical.
- jes5199 7y agothey’re practically two sides of the same coin. I keep thinking it should be possible to build a toy language that has both a forth-like mode and a lisp-like mode, that use the same standard library
- dfox 7y agoForth is more low level, ie. there is no object memory/GC at what one would describe as implementation level. On the other hand all the Lisp Machines essentially are hardware implementations of something vaguely Forth-like with some level of hardware support for lisp-style tagged pointers.
- zentiggr 7y agoA good way to jump over the low level implementation details is to look at Factor. Forth style but much better library and most of the low level constructs are baked in. I can't say the documentation / tutorials that I've found are the best but it's definitely something.
- abecedarius 7y agoThere was a language for calculators called Reverse Polish Lisp. (That's all I know about it.) If I were to design a language matching that name, I guess it'd be basically Logo written backwards. This might be interesting for a live programming environment, because in Lisp you type a whole expression and and nothing happens till you hit enter; but on e.g. an old HP RPN calculator you see the state of the data change after every keypress. You could design an "RPL" to work that way too, though after every word instead of every key.
- RodgerTheGreat 7y agoI think you'd have to hobble Forth pretty badly to make it stand on the same level as Lisp. Lisp has too much hidden machinery- a garbage collector, environment structures, etc. You couldn't even represent forth's "/mod" without resorting to packing results into tuples. Forth is good because every piece of the compiler/interpreter is exposed, usable, and extensible. Lisp wants to keep its innards sealed off and abstracted from the hardware.
- LargoLasskhyfv 7y agoHave you ever heard of [1] https://en.wikipedia.org/wiki/POP-11 https://en.wikipedia.org/wiki/POP-11 ?
- flavio81 7y agoHP's "RPL" language, Reverse Polish Lisp, was basically that.
- agumonkey 7y agothe first who makes his 7yo write a scheme in Forth gets my grid laptop
- kick 7y agoThis isn't at all implausible: one of you should take 'agumonkey up on this! I wrote my first Scheme interpreter at 11, and an older friend of mine taught me Forth a bit before that. I wrote my interpreter with a bootleg (and ancient) APL2 copy, though. With parental guidance, a 7 year old could totally do this. Figuring out how to handle the stack will be the trickiest part, and there are a few examples online of this, so if you nudge them in the direction of others' work, they should be able to get it pretty quickly. They'd finish it by the time they're 8, at least.
- jhbadger 7y agoIn a way they did. in the 1980s, Logo was popularly taught in elementary schools, and while lacking sexps, it was clearly inspired by Lisp in the way it was a functional language in the way the other popular teaching language BASIC clearly wasn't.
- bitwalker 7y agoYeah, I learned Logo in elementary school and it was something that stuck with me until I actually started programming later on in school. I particularly remember having to write a program to navigate a maze, it was a blast!
- qznc 7y agoThe point of Logo is not to teach programming but to teach geometry. At least that is what I took from the Paperts Mindstorms book. I never had Logo in school myself.
- kamaal 7y agoYup. Turtle Geometry is a great book on this. However if you dig deeper geometry is just the beginning eventual goal is to teach you to simulate movement of insects around light, predator-hunted scenarios etc.
- perl4ever 7y agoLogo may have more potential than it seemed at the time, but as it was presented in my school, there was not much to it, and I never investigated further after turning to BASIC and then compiled languages like Pascal and C. I certainly agree with the comment that what matters at an early age is what you can do with a language. I wanted to make GUI applications or games, and Java and Javascript hadn't been invented yet.
- SkyMarshal 7y agoOn the subject of education, pg links to a great story on Scheme (a Lisp 1) in education [1] from his essay "Beating the Averages" [2]. The story references a book, "A Schemer's Guide" that is a good Scheme/Lisp or programming learning reference [3]. If you know folks learning programming for the first time and maybe struggling with Java or whatever they're using, these references may help. Sometimes you just need to see things like recursion or currying in a different way for it to click. [1]:http://www.trollope.org/scheme.html http://www.trollope.org/scheme.html [2]:http://www.paulgraham.com/avg.html http://www.paulgraham.com/avg.html [3]:https://www.worldcat.org/title/schemers-guide/oclc/24430531 https://www.worldcat.org/title/schemers-guide/oclc/24430531 [4]:https://schemers.org/Documents/ https://schemers.org/Documents/ (more Scheme resources) [5]:https://en.wikipedia.org/wiki/Lisp-1 https://en.wikipedia.org/wiki/Lisp-1
- SomeHacker44 7y agoI did teach my son Racket at age 8, as his first programming language. He was able to make a number guessing game in it. I think we used "Realm of Racket," but I don't recall, as it was some years ago. He's now midway through high school and not a single course at his STEM middle school or high school has come close to teaching him as much as he learned at age 8.
- gowld 7y agoThat difference is more because classes are designed to be extremely slow and low paced so the worst student can pass. Learning anything with a personal tutor is much more efficient.
- cocktailpeanuts 7y agoYou don't understand why kids would want to learn programming. At least those who do, want to learn because they can build cool things they can show off to friends. It's not about whether a programming language is simple or not. (I actually think LISP is not as simple to understand as imperative languages, unlike most nerds think) It's about what you can build with it. For example, my first experience with programming was to build a game. If someone had tried to force-teach me LISP, it would have actually had opposite effect on me because then it would be no different from someone trying to force teach me some boring subject I have no interest in. The best way to teach something is to provide gratification. LISP is only gratifying to nerds who marvel at its "elegance", but it has no ecosystem which has tons of cool projects like fancy graphic engine or fancy game engine. It's just a "cool" language to nerds. DON'T teach your kids LISP if you want them to love programming. Teach them JavaScript or Python, or anything they can build something tangible with which they can show off to their friends.
- bgorman 7y agoWhy not Clojurescript? It has access to the whole JS ecosystem.
- Scarbutt 7y agoToo much friction and incidental complexity for a kid, they will have to be familiar with JS anyway.
- Oreb 7y agoWhy? Even as a professional developer, it’s extremely unusual that my cljs work requires any JS familiarity. I don’t see why a complete beginner would even need to know that JS exists.
- scythe 7y agoI've been teaching myself Clojurescript for the past three months, and while this might, in theory, be a good idea someday, the state of the Clojurescript tooling and learning materials I've used means that it is certainly not a good idea today.
- dnautics 7y agoI learned lisp (edscheme) in elementary school. Wrote a language interpreter in 4 weeks. Interestingly, 2 of my 3 my favorite languages are very lisp-inspired (but of course, without the parentheses)
- Impossible 7y agoWhich languages? JavaScript and Lua?
- dnautics 7y agoElixir and Julia. The third is Zig.
- gowld 7y agoScratch is a better introduction and wildly popular. Scheme is good middle school math classes -- it's smart but doesn't get things done easily. Python is great for getting cool stuff built once kids can handle syntax.
- kyle_grove 7y agoOne might not to want to teach LISP first, for the same reason I wouldn't teach explicit shot mechanics to a six year old playing basketball.
- astrobe_ 7y agoI think being interested in programming or not is pretty much like sexual preferences: there's nothing you can do about it, and it is not their fault ;-).
- shagie 7y agoThey did teach it in elementary school once upon a time. From https://en.wikipedia.org/wiki/Logo_(programming_language) https://en.wikipedia.org/wiki/Logo_(programming_language) > Logo is a multi-paradigm adaptation and dialect of Lisp, a functional programming language. A summary of the language: http://wla.berkeley.edu/~cs61a/fa11/61a-python/content/section_notes/week12/week12.pdf http://wla.berkeley.edu/~cs61a/fa11/61a-python/content/secti... Or the guide for grade schoolers http://www.educa.fmf.uni-lj.si/logo/doc/Apr.96/chpt8.pdf http://www.educa.fmf.uni-lj.si/logo/doc/Apr.96/chpt8.pdf And yes, I remember making the snowflake back in the early 80's on an Apple ][+ in the grade school computer lab.
- pyuser583 7y agoWith great simplicity comes great complexity.
- todd8 7y agoI've programmed for a very long time, and I've rather incidentally taught and tutored programmers at many levels of ability over the years including some friends that were trying to learn LISP. I see very little benefit in teaching elementary school kids to program in LISP. My daughter took her first programming course in college and used the excellent book (HTDP), see [1], intended for beginners that used Racket as the programming language. By the end of the semester she was able to make a simple graphical game. I thought the course was very good and she liked it and still has a fondness for Racket although I believe that she has only used Java, C++, and Python since that class (she is now a CS major). Learning Racket (which is Scheme and very closely related to LISP) worked out well for my daughter, so why would I say that LISP in elementary school isn't a good choice? Several reasons: • Lisp isn't a popular language, ranking 28th on the TIOBE list of programming languages so there is far less opportunities to make use of programming ability in LISP than in other languages. • Lisp isn't easy. The Common Lisp Standard is well over 1000 pages long. It lists over 1000 functions. Take a look at the basic iteration constructs, the most general is LOOP and has a whole chapter, see [2], in Peter Seibel's excellent Practical Common Lisp, but even the simpler DO construct is no cake walk[3]. • Recursion for elementary students... LOL • Smart people have tried introducing LISP based programming to youngsters already and it didn't seem to take off. See Papert's LOGO language from the 80's. I've actually written some programs in it, but I don't remember where I got to use the language. (Perhaps it ran on the PLATO system?). I agree with a number of his insights[4]. Elementary school children don't understand functions and they really don't even understand basic math. The problem with LISP is that while it has an abstract simplicity that I find appealing and really quite beautiful, it's abstract nature is going to make it difficult for children. Less abstract systems like ALICE or SCRATCH seem a better fit if we insist on teaching kids to code. I personally don't see the need to teach kids to code. Why not teach them math first. Why would programming come before understanding how to divide fractions or how polynomials work or what simple logical operations mean? [1] https://en.wikipedia.org/wiki/How_to_Design_Programs https://en.wikipedia.org/wiki/How_to_Design_Programs [2] http://www.gigamonkeys.com/book/loop-for-black-belts.html http://www.gigamonkeys.com/book/loop-for-black-belts.html [3] http://www.lispworks.com/documentation/HyperSpec/Body/m_do_do.htm http://www.lispworks.com/documentation/HyperSpec/Body/m_do_d... [4] https://docs.google.com/viewer?a=v&pid=sites&srcid=ZGVmYXVsdGRvbWFpbnxha2hsYWdoZWF8Z3g6NzgyOWYxNWNjMjE5ZjVh https://docs.google.com/viewer?a=v&pid=sites&srcid=ZGVmYXVsd...
- goatinaboat 7y agoI really feel like they should teach LISP in elementary school They used to... LOGO is a LISP.
- VLM 7y agoThe entire discussion has so far had no educational perspective. There are only five memes to make educational curriculum decisions. 1) Most arguments for programming are from programmers who had fun learning to program and if the purpose of K12 is fun, then all kids should have mandatory enforced fun time which means learning to program. Which will not work for maybe 99% of society, although they will be subject to the curriculum. I had fun playing kickball; the purpose of school is to create an entertaining daycare like environment; therefore all kids should be forced to spend lots of time playing kickball. What about learning, or kids that don't enjoy kickball (or lisp?) 2) We have to prep our 5 year olds by teaching solely vocational skills because nothing will change in programming for the next 12-16 years. I'm old enough to remember "vocational training" that amounted to memorizing ancient versions of already obsolete Excel menus and keystrokes. Utterly useless. We like to think "Clojure K12" would be teaching Clojure, we all know its going to degenerate to drill and kill multiple choice tests about emacs keystrokes. A giant scantron test of multiple guess questions asking what C-X C-C does in emacs or what does M-f do, isn't going to help kids in the real world 30 years later. Better off teaching them welding, industry trends seem to imply TIG is a forever skill? 3) We teach critical thinking skills and frankly kids that can't conceptually understand and solve X+1=2 for X are not going to get anything out of programming that they wouldn't get better out of algebra or geometry. And what do we drop from the curriculum to add Clojure? Sorry kids you're not going to learn Trig? 4) We'll do what the cool kids do. If the cool kids district buys ipads, we need ipads. We had millions invested involving no further reasoning. Is the cool kids district using LISP? No? Well at least a third of districts won't even consider it, then. 5) The school board makes all curriculum decisions and they got and keep their job based on religion and/or politics and LISP isn't hitting the election issue hot buttons quite like a nice argument about creation science in biology class or sex ed or the new stadium for the football team. Industry does not like LISP because is its very expressive and the programmer has the freedom to express any crazy problem solving idea they have in their head. The problem is the human condition of education for the last couple millennia shows its really kinda hard to take a hyper-customized brain dump of ... anything ... from one head into the other. So, it can do anything, any way you'd like, is too much anarchy for any shared work. How this applies to K-12 is if you think grading essays is a PITA imagine trying to grade large LISP projects.
- zerr 7y agoI'm glad that Lisp is not used in spacecraft control system.
- exdsq 7y agoWhy?
- deleted 7y ago[deleted]
- dboreham 7y agoLeave out one parenthesis and...you miss Venus?
- exdsq 7y agoI've read that they use Matlab which suffers from the same issues
- mhh__ 7y agoMentioning MATLAB in the same context as lisp is almost blasphemy
- ken 7y agoLeave out one parenthesis and your program doesn’t compile, i.e., exactly the same failure mode as almost any other language.
- coldtea 7y agoThis isn't even worthy of Reddit
- dehrmann 7y agoreddit was originally written in Lisp.
- cbanek 7y agoThis just reminds me of how many times I've been told things like "you can't use that java code that is open source and working and does exactly what we want - we're a python shop!" and other such nonsenses. I'm always amazed at how people have strong feelings for the tools/languages, rather than what they do and how they can help you. Even in this example, the Google person didn't even ask what they wanted to use Lisp for. People I guess just really like rewriting software in different languages?
- zxcmx 7y agoIt's situation dependent right? As an engineering manager, you could support every team or even every individual using whatever they like - but you then have other tradeoffs to make. It's now not possible to run security tooling over everything or use a common artifact repository or follow common coding guidelines or linter settings and you'll get islands of language culture and endless internal reinvention and rewriting.
- pritovido 7y agoFor me it makes lots of sense, it is not "nonsense". Java is a gigantic dependency. Any project that depends on it adds all this dependency with it. In many cases this dependency could be bad or toxic for the project. It depends of what you do for a living. Personally I will never let anyone include java as a dependency in my company's projects, because for what we do, java is slow and linked to Oracle. Lisp is a different story. You can create c ,Python, Lua,c++ or whatever code from Lisp easily.
- exdsq 7y agoDo you use Lisp at your workplace? I see it defended a lot but few people I meet actually use it (I've met one full-time Lisp developer in my life!)
- allover 7y agoYou will see it defended a lot on Hacker News, due to the disproportionate level of PL enthusiasts, and the Paul Graham thing. But yes, you're right that in reality, lisps have incredibly limited popularity. (You've met one more full-time Lisper than me and I've been in the industry for 10 years).
- AceJohnny2 7y ago(2002) Author is @lisper around here. They've mentioned this story a few times.
- Rochus 7y agoHere is another interesting article by Garret (i.e. Erann Gat): http://www.flownet.com/gat/papers/lisp-java.pdf http://www.flownet.com/gat/papers/lisp-java.pdf
- FpUser 7y agoI think it is not so much a testament to Lisp as to a talents of a people who wrote the software. I've met some of those. Give them anything and they'll still produce stunning results. Those were real doers. Can't even call them programmers, they had something better: brains size of f..ng Manhattan.
- yogthos 7y agoOn the other hand, these talented people chose Lisp over other options. Maybe their talent is also what let them recognize the value of Lisp, and that they would have a much harder time solving those problems with anything else.
- lisper 7y agoI'm the author of the OP so I can speak to this with some authority: I discovered Lisp very early in my career and I stuck with it mainly because I'm lazy. I can get things done in Lisp with 1/10th the effort it would take in any other language, and it just steams my clams to have to do extra work when I know there's a better way.
- westoncb 7y ago> I can get things done in Lisp with 1/10th the effort it would take in any other language Should that be read as 1/10th the effort it would take you in any other language (because of your long history with lisp), or do you suppose it would apply to arbitrary other competent people? Like let's say we could make a few clones of you and start them all out on identical lives except that their early choice of language is different: one gets Haskell, another gets Forth, another Python, Ruby, etc. In this scenario you're saying you'd bet on the clone who went with Lisp being most productive?
- lisper 7y agoThat's a good question. The honest answer is I don't know. It's hard to do controlled experiments on this sort of thing. I can say this though: the ability to meta-abstract the language is a HUGE lever that no other language has. And one can also observe subsets of Common Lisp being continually re-invented in other languages. So CL must have gotten something right.
- haecceity 7y agoMe: I'd like to talk to you about something... Him: Let me guess - you want to use Smalltalk. Me: Er, no... Him: Lisp? Me: Right. Him: No way. Let's meet halfway and settle for smalltalk.
- ken 7y agoErgo, Java: "We were not out to win over the Lisp programmers; we were after the C++ programmers. We managed to drag a lot of them about halfway to Lisp." -- Guy Steele
- AnimalMuppet 7y agoRunning a REPL on a spacecraft that is 100 million miles away? I've seen some slow response times, but that probably takes the cake. Very cool, but horrible latency.
- dreamcompiler 7y agoI saw no mention of a REPL in the story.
- drongoking 7y agoSure, just not the abbreviation. "Having a read-eval-print loop running on the spacecraft proved invaluable in finding and fixing the problem." I shared the reaction, "wow, must've been glacially slow"
- dreamcompiler 7y agoPoint taken. I missed that.
- lispm 7y agoActually the spacecraft being so far away was the reason to put some Lisp system on it. That was one goal of that mission. The software controlled the spacecraft and did not need detailed programs what to do. It would figure out what to do from higher-level task descriptions and what it sensed. Basically a spacecraft as a semi-autonomous robot. Since it was running on top of Lisp, actually LispWorks, it could also be debugged/reprogrammed at a lower level.
- maliker 7y agoI've read this story a couple times as it's popped up on the internet in different places. I've enjoyed it each time because it promises that lisp is an uber-powerful and easy (?) language. I'm always curious though: what's the other side of the story? Why is lisp always rejected? I started programming seriously (for money) in 2009, and when we needed a language we went with python because it had better math/science libraries than Java and much more libraries in general than clojure/lisp/ocaml. I confess I like the functional languages and like using some of their features in python. Was the no-libraries dealbreaker for the "pure" functional languages also true in 1999, which led google to java? Or maybe there are complex meta-programming bugs you can generate in the functional languages (and elsewhere) that are the dealbreaker? Or what?
- lisper 7y ago> Why is lisp always rejected? It isn't always. I have a consulting gig for a chip design company that uses Common Lisp internally. It's one of their principal competitive advantages. But mainly it's a vicious cycle: no one uses it because no one uses it. Employers don't use it because they think (mostly correctly) that they can't find CL coders, and no one learns CL because no one hires CL coders.
- maliker 7y agoAlways great to hear there are companies out there thriving with these more powerful languages. The tired example I always turn to is Ocaml being the language for all the code at janestreet (~900 employees). I've always been annoyed by the "there are no X coders" argument. Coding skills are broadly transferrable. My team's code base is all python, and we've had successful team members who'd previously worked only in javascript, Java, C#, etc. When we tell recruiters that any of these languages will do, they hate that. Oof.
- erikpukinskis 7y agoI think the key metric for programming language popularity is something like “when someone makes a thing work, how easy is it for someone else a) to find out about it b) understand what’s happening, and c) shoehorn the solution into their own janky application”.
- tzs 7y ago> Well, not quite -- I did write the billing system, including a pretty wizzy security system that keeps the credit card numbers secure even against dishonest employees. Are details of this publicly available? The topic of storing credit card numbers is one of those for which searching returns a lot less information than one might expect. If you need to do this yourself, as opposed to using some third party vault/tokenization system, there doesn't seem to be a lot out there.
- ses1984 7y agoImplement your own tokenizer, don't let app devs have root in the tokenizer system.
- lisper 7y ago> Are details of this publicly available? Yes and no. No, there was never anything published about the Google biller encryption system. But yes, there is now a lot of information available about encryption. The state of the art has advanced a lot in 20 years.
- zwieback 7y agoLISP is weird - I used it a lot in the late 80s and enjoyed it a lot but then moved on and, looking back, never missed it. I think it has a hypnotizing effect on programmers brains, feeding the endorphin feedback cycle, but ultimately there are just too many damn parens.
- svnpenn 7y agoI think it depends on the style. For example, I find this pretty readable: https://fodor.org/blog/webassembly-hello-world https://fodor.org/blog/webassembly-hello-world but for some reason the typical Lisp style looks like Python where someone vomited parentheses on it. Not sure why people choose to style it like that.
- earenndil 7y agoThat's not actually lisp. It's just s-expression notation for webassembly.
- porknubbins 7y agoI always got a rush from solving problems in LISP but then realized I could much more easily solve the problem in an imperative language without the baggage of thinking through multiple levels of recursion wrapped into a function. If that feeling of accomplishment is because you’re succeeding at doing something clever I question the utility of the language. Maybe just down to what I’m used to.
- leetrout 7y agoI don’t hear a lot of fans of FP and friends admit this very often. I think there are a lot of great uses of the patterns that come out of s-expressions, for example, but I would still choose Go, Python or JS / TypeScript as my daily driver.
- flavio81 7y ago>I think there are a lot of great uses of the patterns that come out of s-expressions, for example, but I would still choose Go, Python or JS / TypeScript as my daily driver. There's no God.
- ineedasername 7y agoLisp aside, I found something tragic, or at least a terribly tragic phase to their career: They stayed at JPL because it was a more meaningful place to work and abhorred the possibility of Java drudgery. Fine, good. Then they went to Google, as it appeared different from the corporate bureaucratic programmer = widget approach, only to be charged with implementing a massive Java project. So, irony. But the real tragedy was that it was all for Ad Tech. Presumably tired of the same JPL work, they not only end up using a hated tool, but also working on something that seems on the opposite end of the "meaningful work" spectrum. Adding to the tragedy, they could have taken any number of development jobs that happened to use Java and yet pushed the needle forward on meaningful work. I really regret the last 20 years of the best & brightest being drawn into the modern equivalent of Mad Men advertising firms. I do however take a fair bit of solace in the fact that these massive companies and massive systems have resulted, if only as a side effect, in excellent technology that allows corralling and orchestrating massive amounts computational power in a way I thought a bit too "utopian" when "utility computing" was being bandied about in the 90's. Just kind of wish some other monetization model had emerged. Freemium looked promising for a while, but it turned out there was still an infinity of user acquisition friction in between "free" and "extremely cheap". Oh well. I still have hope for the next decade or so.
- xixixao 7y agoI guess it’s a suicide to point this out on HN, but not everyone thinks Ad Tech is the opposite of meaningful work. I think it’s a very “limited imagination” point of view if you a) can’t think of anything less meaningful that people spend their time on, b) can’t think of any upside that Ad Tech brings. I’m happy to elaborate, having worked on ad tech for over 3 years, in case this comment doesn’t get downvoted into oblivion.
- GoOnThenDoTell 7y agoI honestly couldn’t think of a positive thing for adtech. Do share
- theaustinseven 7y ago
- rahuldottech 7y agoWriteup is from 2002, and the year should be included in the title as per the guidelines.
- ngcc_hk 7y agoJava is COBOL of our era. Soulless, business, a lot of typing and searching. You just keep on fixing it. It did advance a bit but ... sigh. Clojure invented too late I supposed. Sad it goes to such places.
- dreamcompiler 7y ago50 years from now, Java graybeards will be able to name their price.
- uncletaco 7y agoHopefully twenty-five. This is my endgame.
- fierarul 7y agoNot sure why Java gets so much hate. I think it's some PTSD from bad corporate jobs. It's quite good that we have a rather performant, cross-platform, GCed language. I also didn't feel any epiphany while learning Clojure. I think Haskell is a much nicer language for some tasks, but going full-Haskell seems near impossible without a PhD in some obscure academic niche. My perfect programming language would be a Jupyter Notebook-like thing where I can just add sections in whatever makes sense. Write some imperative Java, put a small Haskell block for a function that recurses nicely, put a Minizinc block to solve a constraint... Of course, nobody except the original author would feel comfortable with those exact choices... which explains why companies must standardise on something.
- rakoo 7y agoThis sounds like a UNIX where you could write snippets in different languages, have enough wrapper to let those snippets eat stdin and write on stdout, and plumb it all with pipes, organized in a shell script. That was the original dream anyway. Too bad the weak performance of "programs as functions" makes it all barely usable unless you programs are long-running
- 7y ago
- dleo 7y agoInteresting article. No knock on the author, but paste this in the console to make it a bit easier to read: document.body.style.maxWidth = '50%'; document.body.style.margin = '5% auto'; document.body.style.fontSize = '120%'; document.body.style.lineHeight = '150%';
- molteanu 7y ago> imperative languages with poorly defined semantics like C and C++ What does he mean by this? Is this related to the C "undefined behavior" or is the reference here to something which affects imperative languages in general?
- macleginn 7y agoI guess it's mostly about many things not having any clear meaning and depending too much on conventions. Error reporting is a celebrated example: a C function that encountered a problem may return null or may return -1 and write null to the pointer passed to it, or return 0, if even the basic conventions are not followed, etc. All these things do not have any in-built meaning. Compare this with the Go system of returning a value and an error together. Comparing err to nil makes some intuitive sense, comparing a returned value of a function with null is, by itself, a meaningless operation.
- imglorp 7y agoI'm fascinated by two questions that both seem to suffer from a lack of data. What's the best way to introduce programming is one. There should be tons of studies and data on this, to end the discussion, no? What to feed humans is the other.