[HN Gopher] Polyglot Programming and the Benefits of Mastering S...
___________________________________________________________________
Polyglot Programming and the Benefits of Mastering Several
Languages
Author : aga_stx
Score : 67 points
Date : 2021-10-21 11:58 UTC (11 hours ago)
(HTM) web link (www.stxnext.com)
(TXT) w3m dump (www.stxnext.com)
| urda wrote:
| I generally enjoy picking up new languages. It's always a chance
| to see how other language designers worked around common
| programming tasks. It's also great because you get exposed to an
| entire set of tools that may be unfamiliar to you.
|
| I'm a fan of polyglots.
| Gunax wrote:
| A few years ago I did a MOOC called 'programming languages' which
| teaches languages like racket and ML.
|
| In one of the intro lectures, the professor remarked that
| (paraphraaing here) 'now I am not naive--I know you will probably
| end up programming in Java or python when you reach the
| professional world, but the purpose of this course is not that
| you will actually go out and use racket in your life as a
| business programmer, but instead that your knowledge of racket
| will change the way you program in Java or Python'.
|
| So there's really two types of learning--learning a language to
| use it, and learning a language as a sort of intellectual feast
| to bring back to your own.
|
| This also has paralells in (human) language. The only languages
| I've studied are French and Hebrew _. French has 'que' which can
| combine two noun phrases in a way that doesn't quite exist in
| English, and Hebrew has construct state.
|
| [1] https://www.coursera.org/learn/programming-languages _ Sorry
| if I make a mistake here, Im not really very knowledgeable about
| either language, but I hope the general point stands.
| marai2 wrote:
| That was a great MOOC by Dan Grossman - discussed a number of
| times here on HN.
|
| The famous quote from Alan J Perlis:
|
| "A language that doesn't affect the way you think about
| programming, is not worth knowing."
|
| http://www.cs.yale.edu/homes/perlis-alan/quotes.html
| miltondts wrote:
| A couple of drawbacks I never see mentioned in these discussions:
|
| * When you know more languages and you are faced with problems
| whose solutions are trivial to express in one of them, but you
| are forced to use another it is extremely frustrating.
|
| * Trying to use a particular style/paradigm from a language in
| another one will raise a lot of eyebrows followed by "this is
| terrible code".
|
| So to me, learning more languages just leads to frustration. I
| can't use them at work. I can't even use their style.
| emeraldd wrote:
| I've found the opposite to be true. Knowing how I would solve a
| problem in more than one language has made a number of things
| easier over the years. Heck, if you look at Symfony's (a php
| framework) Validation API
| https://symfony.com/doc/current/validation.html they are
| implementing a Java JSR ( https://jcp.org/en/jsr/detail?id=303
| ) using PHP constructs.
|
| Ideas can cross pollinate between languages, but not everything
| translates well.
| pjmlp wrote:
| That is definitly much better than being siloed in just one
| language.
| hpoe wrote:
| So since my early days I've been doing multiple languages,
| started in Java at school then picked up JavaScript and Ruby
| pretty quickly, as well as being a bash Unix cli afficiando,
| since then my list of languages numbers in the double digits.
|
| One of the things I am always astounded by is developers that
| only know one language, having multiple languages has changed the
| way I understand programming in general. At that point when I
| approach a problem I start by reasoning what the appropriate
| paradiagm or approach is to solve the problem and then decide the
| language from that. At this point when I see requirements that
| list X years in specific language I am confused as to why people
| don't just want programmers since languages seem so easy to
| pickup.
|
| Their is a dark side to this I will admit though I do struggle a
| little bit more approaching a new language and then trying to
| find ways around concepts that I feel should be there, or I
| struggle sometimes to deal with language specific details.
| Scarbutt wrote:
| _since languages seem so easy to pickup._
|
| What takes time is being productive with the APIs and
| ecosystem, not learning the language.
| travisgriggs wrote:
| +1000
| fouric wrote:
| Or learning the underlying programming paradigm.
|
| Even if Haskell used a Python-like syntax, I bet people would
| still find it 90% as hard to learn as they do now, due to the
| killer combination of lazy evaluation and purely-functional
| design.
| JoelMcCracken wrote:
| Yep. People often point at syntax and say "yuk!" but the
| problem is really not groking semantics. Syntax is just
| easy to bikeshed.
| fouric wrote:
| Thank you for clarifying my point, and attaching precise
| terminology to it!
|
| Come to think of it, that's probably why people
| mistakenly think that Lisps are so hard. The syntax is
| scary, and easy to bikeshed - even though most of their
| semantics (for CL and Scheme, at least) are really easy,
| and very similar to Python.
| pharmakom wrote:
| I think I've now reached a state where I only need two languages:
|
| - Rust for when performance really matters - F#
| for everything else and React
|
| Do I miss out on features from other languages? Probably,
| although it's not worth the extra learning and switching at this
| point for me.
|
| I guess I'm fortunate enough that I can pick my work.
| blandflakes wrote:
| Agreed, I've found that "high level, mainstream ecosystem" is
| good for just about everything, and that I like a low-level
| Rust/C/Zig for tinkering.
|
| One thing I haven't remedied is scripting/glue... I really
| don't love bash, but I also feel dirty using some full-blown
| scripting language while Scala sulks in the corner.
| ChrisMarshallNY wrote:
| I've learned a number of languages, in my 35+ years of
| programming, but I generally only work with one or two at a time.
|
| The last few years, it has been Swift (frontend), and PHP
| (backend).
| artfulhippo wrote:
| You can't actually be a Master of only 1 language.
|
| This applies to human and computational languages. Consider that
| English derives from French, German, Latin, Greek, etc. Without
| knowledge of the root languages, you can't actually master
| English.
|
| And beyond polyglot is "polyparadigm". Knowing 7 languages in the
| same paradigm makes you an expert in a particular style of
| programming. But True Mastery means transcending style.
|
| With that said, most are better served by gaining proficiency
| communicating with (managing) people than mastering programming.
| malkia wrote:
| What I love about systems like bazel, buck, etc. is that they
| tend to be language-agnostic, or maybe more like language
| accepting, unlike the new trend where each new language, comes
| their own build system: rust, go, dart/flutter, zig, etc... so
| good luck trying to explain dependencies from one to another... I
| simply wish the build process was not so entangled in the
| language itself.
| grzff wrote:
| Fauci funded COVID-19: https://www.zerohedge.com/covid-19/nih-
| admits-funding-gain-f...
|
| Everyone involved should face the firing squad.
| sam0x17 wrote:
| > The younger generation is also familiar with the "memento Ruby"
| argument. "The decision to learn a new language is about career
| planning and risk diversification. Just look at Ruby," Michal
| says.
|
| It's funny, while community interest in Ruby peaked around 2012,
| industry adoption and usage of Ruby at startups and in enterprise
| is higher right now than it ever was, so this whole "remember
| Ruby" trope is such a farce.
| GoblinSlayer wrote:
| Ruby is in the post-hype phase.
| sam0x17 wrote:
| Right, but my point is adoption and hype don't always go
| hand-in-hand. JavaScript for example has always had heavy
| adoption but now is going through a hype phase. Ruby had a
| hype phase a decade ago but only now is seeing heavy
| adoption. Similarly PHP hype peaked in the early 00s, but
| adoption didn't peak until ~2017 and is now beginning to
| decline. Rust is seeing heavy hype that will probably be
| followed in 5-10 years with heavy adoption.
| pmontra wrote:
| I'm not sure that there are as many problems to solve for
| languages like Rust and Go as there are for languages like
| PHP and JS, Ruby or Python. Basically desktop/system vs web
| apps. Of course we can write web apps with Rust and Go and
| we do but why bother? There is evidence that the world is
| using PHP to write web apps, not the new (and better)
| languages of the last few years. It's so much easier.
|
| Java is somewhat in the middle: a compiled language heavily
| used for web apps. There was little else to use in the 90s,
| except Perl, so big Java shops got established, banks
| started using it and it will live at least as long as
| COBOL. But do I want to write web apps with Java? No thank
| you, I jumped ship to Ruby 15 years ago, then added Python
| and Node.
| iamcurious wrote:
| Anecdata, but PHP is still growing outside the valley. It
| has the shortest effort to MVP measure of all languages. So
| if you only have money for one part time engineer, you go
| with PHP.
| pmontra wrote:
| The languages I'm using now are Ruby, Python, Elixir, JavaScript.
| Languages I was proficient into and I kind of let go are Java, C,
| Visual Basic, Perl. Maybe I should count some BASIC from the 80s
| too. Then there are a number of other languages I used for some
| time (PHP, even COBOL) but never become really an expert.
|
| The pros:
|
| I reuse some approaches that work well in some languages, unless
| they are definitely not idiomatic.
|
| I keep my code idiomatic but simple because I don't have time to
| go into a language deep rabbit holes (eg: we usually don't need
| any metaprogramming.)
|
| I can instantly smell bad design in some features because they
| remember me of the pitfalls of those parts of the languages I'm
| familiar with. Hint: moving the separator to the opposite end of
| Python's join / split is a bad idea, I never remember if ","
| splits or joins. Pick a direction and stick to it, a-la Ruby.
| After all, if ",".join(["a", "b"]) why not ",".split("a,b") ? Of
| course as I'm not a language designer this doesn't give me any
| advantage. Actually, I lose time thinking about it.
|
| I can pick contracts for more projects because there are more
| chances that my potential customer has invested in one of the
| languages I know.
|
| The cons:
|
| I long for structural pattern matching a-la Elixir in every
| languages, not the glorified switch/case or the destructuring
| assignment that many languages are adding now.
|
| I spend time to look for basic things like how to convert a
| string to lowercase because every language does it differently
| and I can't remember it. Is it necessary to be smart with those
| little things? Apparently yes so they go with downcase(),
| lower(), toLowerCase(), tolower(), lc() in random historical
| order. At least some languages copied other (Elixir from Ruby,
| JavaScript from Java.)
| fredliu wrote:
| For me, the biggest benefit of being able to use significantly
| different languages, is being able to know "what's possible" so
| when approaching a new language due to whatever reason (work,
| interest, etc.) I know what to look for beyond just basic
| language features offered by pretty much all languages.
| jfoutz wrote:
| From time to time I've been good enough to think I'm a master of
| a language. But that skill fades so fast. For some reason the
| mountains of trivia just sort of fade away without pretty regular
| use.
|
| Once upon a time, I could tell you all the semantics of `static`
| in C, but now I couldn't even give an accurate count of all the
| ways it's overloaded. There's like the top level declaration that
| sets aside memory, there's the declaration in a function that has
| slightly different initialization rules and is good for
| coroutines. And like, 4? more meanings in different locations. I
| only hit that level because of a compilers class.
|
| I feel like I could ramp back up, but the subtle nuances just
| sort of flit away like butterflies.
|
| More than 2 seems really challenging. Even simple stuff there's
| not much to scheme, but try getting a chez runtime running on a
| raspberry pi, and really understand the impact of the flags you
| build with and run with. Not easy (for me) to stay really sharp
| with that.
|
| I mean, sure, I can bang out some code. I can pattern match well
| enough that code I contribute blends in with the style of a
| project. But mastery? That's a big lift.
| kstenerud wrote:
| As I master my 15th or so language, I can't help noticing how
| often I have to search online for the simplest of tasks whenever
| I switch languages now because it's all turned into a big jumble.
|
| Does it need parentheses or not?
|
| How are closure variables managed? Do I need to release things?
|
| Do lambdas require scoping braces or not? What's the damn syntax
| for them again???
|
| Do I need to use case(X), switch(X), when(X), something else?
|
| Do cases fall through or not?
|
| How do I concatenate strings in this language again?
|
| How do I get lengths in this language again?
|
| Is it -> or => or functions? Are functions even first class? Can
| they be anonymous?
|
| How did this language handle async operations again?
|
| Anyone watching me work would probably think I don't know a damn
| thing. And after 25 years in the industry, I sometimes wonder the
| same thing.
| Silhouette wrote:
| _Anyone watching me work would probably think I don 't know a
| damn thing. And after 25 years in the industry, I sometimes
| wonder the same thing._
|
| I suspect the people watching who thought you didn't know a
| thing would probably be the ones too inexperienced to recognise
| what you describe.
|
| I also suspect that every other programmer with 25 years of
| experience who can be productive using many different
| programming languages would immediately recognise and empathise
| with the feeling you describe, and they also have a search
| window permanently open while working.
| nanomonkey wrote:
| This.
|
| I'm somewhat envious of my friends who stuck with one language
| like C, and are super proficient with the one or two languages
| that they know.
| exdsq wrote:
| I ran between languages for a few years and have stuck with
| TypeScript for the last few months after deciding I wanted to
| be one of those people. Already so much more productive when
| I don't have to Google everything I do.
| [deleted]
| lastofus wrote:
| My brain is in the exact same state, which is frustrating when
| doing live coding interviews, as suddenly it's impossible to
| not come off looking like a complete beginner. Throw it some
| nervous jitters on top and it gets ugly fast.
| tyingq wrote:
| Also tricky because many things "work" but aren't stylistically
| acceptable.
|
| Like, python oo is perfectly happy with "this" instead of
| "self".
| choeger wrote:
| I don't agree that you look like you don't know a damn thing.
| You know quite a lot.
|
| In fact, I would happily hire any programmer for, say, a python
| or a C++ job, that knows nothing about the language in use but
| knows to ask precisely these questions. Bonus points for
| questions about function semantics and memory management.
|
| Everything else boils down to syntax and ecosystem/tooling. The
| former is essentially irrelevant and the latter changes so
| often and is used differently in different contexts that there
| is little point in asking about prior experience.
| philipswood wrote:
| It's nice, when doing actual work on a language you have zero
| experience with, to have a clear intuition about what to
| expect and what to search for and to feel confident that
| you'll be able to get things done based on having done it
| with so many other languages before.
|
| If it's not too unusual, it feels similar to other tools
| you've picked up before. If it isn't it's interesting.
|
| Something like:
|
| "Oh, OK, Swift has a switch right? Yeah. Does it require me
| to explicitly break? Yeah. Can I give ranges or patterns?
|
| That's cool, they use named parameters in Smalltalk style,
| probably comes from Objective C, right?
|
| Nil! charming, like Golang or Pascal.
|
| What do you call these ?. and !. 's? Reminds me a bit of ?.
| in JavaScript. It's nifty: you can enforce a value not being
| nil or specify a default..
|
| Hmm, these guards are interesting, how do they work... Etc "
|
| So obviously you need to get someone to check for footguns in
| your code, but after enough playing with toys you tend to get
| to a place you can write solid code in a new language very
| quickly, and where getting to a solid level of competence is
| relatively quick.
| worrycue wrote:
| I know people hate language wars and always reply with "Use the
| best language for the job." but wouldn't it be great if there
| was a language that could do it all optimally (or at least
| adequately).
|
| Then we can focus on just one language to master and don't have
| to keep in our heads a jumble of languages.
| hpoe wrote:
| We already have that language but people keeping getting
| whiny about parentheses, and refuse to use it.
| Nadya wrote:
| Basically any modern, turing-complete, and non-esoteric (eg.
| Brainfuck) language fulfills the "at least adequately" part.
| So it comes down largely to preference and style of the
| language itself. I can't stand C# code or that the language
| uses Allman style over K&R because I truly find Allman style
| more difficult to read. I shouldn't - the difference is very
| minor - and although I work with a C# codebase in my day-to-
| day work I always struggle parsing the code quickly compared
| to languages where K&R style won out.
|
| Now "optimally" is an entire can of worms because there are
| some aspects where you need to make mutually exclusive
| choices. You can optimize A or B but not A and B for multiple
| sets of A and B. So you'll end up with multiple languages or
| multiple flavors of a single language where decisions were
| made to optimize for varying sets of A and B. A and B can
| even be simple things like "How easy is it to footgun
| yourself?". Should you make code that is more
| boilerplate/difficult to write in order to prevent people
| from footgunning themselves or do you expect your developers
| to be more experienced and allow them to write more succinct
| code but having to be aware of and avoid potential footguns
| themselves? There are a lot of domain-specific languages for
| precisely the kinds of trade-offs are made that certain
| fields want/need. For example, mathematics domain languages
| tend to be 1-indexed instead of 0-indexed.
|
| By the way that language is LISP.
|
| [0] Just in case anyone is unfamiliar with Allman/K&R styles
| mentioned you can see examples on Wikipedia:
| https://en.wikipedia.org/wiki/Indentation_style
| jerf wrote:
| I've dealt with 5 different databases this week. Is it SHOW
| CREATE TABLE blah, DESC TABLE blah, DESC blah, sp_help blah, \d
| blah? Is this the database that supports CROSS JOIN? What
| _exactly_ can I do with aggregate functions and a GROUP BY in
| this database again?
| sweaty wrote:
| This is how I feel too. And not just with programming
| languages, but with cloud platforms like AWS and GCP. I've
| spent the last 3 years working just with GCP, but I have prior
| AWS experience and recently started working in an AWS heavy
| role. I don't remember anything. I know what I want to do, and
| what the things AWS provide do, but I can't remember how, so
| I'm asking questions and looking things up online because I
| don't know and I feel like an idiot.
| marai2 wrote:
| I think that's just the nature of the ... problem domain. There
| are too many little details that are too similar and our brains
| have gotten used to Googling. Early on I started creating text
| files for all these little details for all the languages I
| know. And now a quick search for these details is an extension
| of how my brain works. In other words I realized I needed to
| deposit these chunks of information where I know I'll need to
| reference them in the future. Is it "else if", "elif", "elsif"
| in Python, Perl, Ruby - grep or quick search my ruby.txt,
| ocaml.txt, etc. file. And since I live in emacs, this takes
| just a few characters to accomplish.
|
| Kinda similar to https://learnxinyminutes.com/
| chakkepolja wrote:
| Nice. I should assemble some shell scripts or python to do
| this now.
| varjag wrote:
| That's because they are mostly the same language. Brain can't
| be fooled by manifestos.
| wiremine wrote:
| I've mastered about a dozen and can read another dozen or so.
|
| I have the same problem you're describing, but it tends to be
| with languages I haven't used in a while.
|
| I've also resigned myself to be ok with googling a lot of
| things:
|
| "list comprehension python"
|
| "typescript generic constraint"
|
| "golang package visibility"
|
| Once I got ok with this approach, I became a much happier and
| productive developer. Rather than beating myself up that I
| couldn't remember the details, I just "outsourced" said details
| to Google/StackOverflow and focused on the big picture.
|
| As long as I grok the semantics, I haven't missed remembering
| all the syntax and idioms of each and every language.
| fouric wrote:
| Hypothesis: this is your brain doing normal garbage-collection
| on pieces of information that you haven't accessed frecently
| (frequently + recently) - you're at the tail end of the
| forgetting curve[1].
|
| Does your experience confirm or deny this? That is, do you have
| much more trouble with languages you learned 5/10/25 years ago
| than ones you were using last month? Or is the process random,
| and you'll forget features of a language that you were just
| using?
|
| Alternate hypothesis: you're getting old, and your memory is
| starting to go - nothing to do with programming languages in
| particular, the process is just more noticeable there because
| _we have to remember so darn many little things_.
|
| Less depressing hypothesis: your brain has gotten out of the
| habit of remembering those things. I used to be extremely bad
| at remembering names, until I started paying attention to them
| because I learned that people really like it when you remember
| your name. Now I'm great with names without even trying, and
| I'm convinced that you can also train yourself to be better at
| remembering other things (i.e. programming stuff) than your
| natural tendencies.
|
| [1] https://en.wikipedia.org/wiki/Forgetting_curve
| cylon13 wrote:
| I agree with the spirit of your point, but I'd be hesitant to
| say you're "mastering" your 15th language if they are all
| jumbled together. It sounds like you've learned 15 languages,
| but mastery implies an extreme depth of understanding beyond
| the point of confusing minor details. I would bet you have at
| least one or two languages that you work in often that you
| never get this stuff confused for, and those are the ones
| you've mastered. The additional languages are subject to a sort
| of Jack-of-all-trades syndrome.
| kstenerud wrote:
| You'd think so, but that's not the case. I've mastered go so
| deeply that I even wrote [1] to subvert the runtime. But even
| with go I have to look things up after working in Kotlin for
| a week.
|
| [1] https://github.com/kstenerud/go-subvert
| [deleted]
| varjag wrote:
| Some people here learned, mastered and thoroughly forgot more
| languages and technologies than other people have started
| with yet.
| chakkepolja wrote:
| > thoroughly forgot
|
| I am stealing this phrase
| sunjester wrote:
| If you can't see the benefits of learning (mastering, I guess
| people call it) then you are in the wrong profession/hobby, even
| in 1999. It was an okay book, this is not an okay article.
| avgcorrection wrote:
| > Fascinated by the concept of polyglot programming, I decided to
| make good use of the fact that I know several exceptionally
| experienced developers and take a closer look at the topic.
|
| The author selected only "polyglot" programmers so of course they
| would sing its praises. Or did the author expect them to say,
| "well I have experience with these 15 different frameworks, but
| I'd say 12 of them were a waste of time... meh." You might make
| an off-hand comment on that on HN, but you typically won't do
| that when you are being interviewed because of your seniority or
| whatever. That's like downplaying things on your resume.
|
| Not that I personally think that being a "polyglot" is _bad_. But
| we need to distinguish between two things:
|
| 1. Mastering a wide breadth of programming ideas expressed
| through different languages 2. Knowing or having experience with
| implementing a lot of stuff
|
| (2) might simply require being a polyglot because different
| domains and different fields use different languages. But (2)
| does not imply (1): you might have experience with eight
| different programming languages that are very much alike (only
| really differeing in third party libraries, perhaps), so you
| haven't really gotten the chance to be a "polyglot" in the
| multiple paradigms sense of the word.
| SAI_Peregrinus wrote:
| I'd say it's not just learning multiple languages that is
| valuable, but learning languages with different paradigms. If you
| learn 5 different object-oriented languages, you'll mostly get
| exposed to different OOP concepts. If you learn an OOP language,
| a Procedural language, a Functional language, a declarative Logic
| language (Prolog, SQL, etc), and maybe something else you'll have
| a much broader set of ways to think about solving problems.
| travisgriggs wrote:
| "Mastering" is a tricky term to use here.
|
| It could imply simply gaining a level of competency/proficiency
| that means you basically can use the language to accomplish
| things without feeling owned by the language. I think this is the
| kind the author is getting at.
|
| But mastering can also mean rising to a guru level of proficiency
| where you can do things with the language that the majority of
| your peers cannot.
|
| I find this second difficult to achieve in a polyglot sense. I
| used to be able to do guru level things with Smalltalk. For the
| last 10 years I've done no Smalltalk and embraced the way of the
| polyglot, becoming moderately proficient in Python, Kotlin,
| Swift, Linux cli, Elixir, C, but in no ways do I have the
| bandwidth to chase "guru level" with any of these. That kind of
| mastery usually comes from focus and experience, something that's
| difficult (impossible?) to achieve when your task switching
| cognitively. Even with Smalltalk, I would have to swim in the
| waters a while before I felt I was in a master position again.
|
| This kind of mastery also makes you a better programmer. "To
| boldly take this language to solutions no one has tried before"
| will definitely hone skills.
|
| At the end of the day, it really boils down to "keep pushing
| yourself to learn new and varied things" and you'll grow. If you
| decide to cache in and just leverage your acquired wisdom, you'll
| stagnate.
| kedean wrote:
| I like splitting it into competency and expertise. In my own
| personal experience, you can be competent with as many
| languages as you want, but most people can only hold expertise
| in a few at a time. Generally, your expertise is going to be
| the ones you actually use daily, because use is the only way to
| deepen your understanding.
|
| I, for example, and primarily a Java and Python developer
| during the day, so those are my expertise. Those are the ones I
| feel confident telling someone to come to me with any questions
| on, the ones that I know the internals of, the ones I can
| confidently solve most problems in without having to look much
| up.
|
| As a web developer in my younger days, I considered myself an
| expert in PHP and Javascript, but I know that I no longer hold
| that status with them. I could immediately understand if I were
| to read anything with them, but to start something from scratch
| I would need some lead-in time, so I'm only going to call
| myself competent.
|
| I use Ruby periodically today, but not on important enough
| things that I need to understand it deeply, so again I would
| only call myself competent. I'll sure put all of those on my
| resume though, along with other competencies and former
| expertise.
| lytefm wrote:
| Yes, I feel like aiming for a T or Pi shape is a good analogy:
| Try to truly master the 1 or 2 languages you work with most of
| the time. Have a good enough knowledge of other languages in
| order to learn and grow or to use them for specific needs.
|
| Edit: typo.
| jerf wrote:
| I am disenchanted with "guru level" work in a language. The old
| saying about "if I'm just barely smart enough to write the
| code, I'm not smart enough to debug it" is true immediately,
| and then even _more_ true if there 's a 3-6 month delay.
|
| I appreciate being back in a language long enough to not have
| to look things up all the time, but the dialect of all of them
| I write in gets simpler and simpler over time.
|
| Portable guru knowledge like "I know how to write an
| interpreter/compiler" and "I know that for this task there
| _must_ be a library in $LANGUAGE " and "I know that language
| construct/function call looks simple but it has to be an O(n^2)
| algorithm for it to be doing what it says its doing" is much
| more useful.
___________________________________________________________________
(page generated 2021-10-21 23:02 UTC)