6 ms·
Using any language for twenty years straight is going to make you complacent - but goodness, how many languages would have given you that luxury?
by jbreckmckye 9y ago
Using any language for twenty years straight is going to make you complacent - but goodness, how many languages would have given you that luxury?
- vgy7ujm 9y agoPerl?
- kamaal 9y agoPerl is one of those languages, if you get used to the power of Perl it could be really hard to move to other C based languages. I can only imagine how it would be for anyone using Lisp. The power there is so much, going to something like Java from there would feel down right suffocating. Going from Perl to Python in my case largely felt like trying to a run a marathon in chains.
- vgy7ujm 9y agoI share your experience. Python took all the fun out of computing for me.
- bhaak 9y agoYour comment made me think of the quote by Guy Steele: "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." Even the designers of Java didn't expect programmers to go from Lisp to Java.
- bhaak 9y ago> Going from Perl to Python in my case largely felt like trying to a run a marathon in chains. I find that not surprising. Python is geared a specific type of programmers. If Perl fits your programming, you will feel constrained by Python. Me personally, I never liked Perl that much. IMO it's not a programming language but a write-only brain dump. But Ruby is to me what Perl is to others. It's combining the power and expressiveness of Perl with a consistent OO model like Smalltalk and with a sane syntax.
- vidarh 9y agoRuby syntax is really quite insane. It's just that the insanity is contained in dark corners that most of us thankfully rarely have to deal with. Consider for example that this is the literal string "x": '% x '. So is % + linefeed + x + linefeed, because for most characters the character after a prefix '%' will be the quote character of a quoted string. And that includes whitespace. There's all kinds of crazy little bits like that littered around Ruby. It's still my favorite language, but it is also totally infuriating sometimes.
- kamaal 9y agoIndentation in itself never helps readability that much. Unless of course you are hiring programmers so bad, who can't do things as basic a thing as indenting code. And I seriously doubt such programmers will automatically transform to geniuses just by using Python. Apart from that I haven't seen any thing in Python that makes code more readable.
- ptero 9y agoCOBOL?
- phoe-krk 9y agoCOBOL and luxury present in one English sentence is a syntax error.
- incompatible 9y agoIf you never knew anything but COBOL you'd probably love programming it. Knowledge of better techniques can be seriously damaging to your career. I suffered some damage from not wanting to touch Windows (3.1) after discovering Linux in the early 1990s. Today, most jobs advertisements still look toxic.
- phoe-krk 9y agoI can relate. At my workplace, I think I'm the only person on the whole site who uses Linux as their main OS in place of Windows. It has its obvious downsides, since company tools are designed to work on Windows and everything else is a bigger or smaller hack, but given my general comfort of working on top of Linux, I think I'm still better off feeling the pain of using a less supported but more comfortable OS.
- wglb 9y agoAs a Fortran and assembly language programmer, I developed a strong philosophical distaste of COBOL and the environment it thrived in. Then, my first consulting gig used RPG-III. Then, cobol was installed, and it was wonderful.
- nathell 9y agoPer your own sentence, you've just committed a syntax error.
- phoe-krk 9y agoThat's the problem with set of all sets, you never know when you commit hypocrisy. (;
- tome 9y ago> what other programming language would have given you that luxury? I'm not sure what you mean. C? C++? Java? Perl? Perhaps Python?
- bhaak 9y agoI think of those C and Perl fit the most. You can't write C++ or Java like you did 20 years ago (of course, you could but you shouldn't). Both languages and their whole ecosystems have evolved tremendously in 2 decades. The C and Perl style OTOH has changed less. A programmer of those language from 20 years ago that is transported to the present day will have much less problems fitting in than a programmer of C++ and Java would.
- kamaal 9y agoC++ and Java ecosystems were run over by people who read The GoF book and decided to generate every single permutation and combination of those patterns. Code largely comes out like AbstractFactoryServeletConfigurationSingletonDispatcher. Also a lot of applications were written as huge monoliths even a few years back. These days people write applications to do one task properly.
- arethuza 9y agoI was slightly surprised when I Googled AbstractFactoryServeletConfigurationSingletonDispatcher that your comment was the only match (at least at the time I looked).
- kamaal 9y agoThat's possible. Last time I checked not everyone working in every single company uploads their code to some public website. Also that word represents a culture which is what I was talking about.
- tcbawo 9y agoMy experience with C++ has been watching a trend towards standardization across platforms, and incorporation of functional programming concepts.
- pavlov 9y agoThe APL / J / K family of languages seems to be very strong with this effect. If it fits your problem domain, it's (apparently) so powerful that using anything else feels like a frustrating waste of time.
- tluyben2 9y agoYep, every time I have to program C# it is an annoyance; so much scrolling, so much text...
- beagle3 9y agoThere's more to it; The paradigm is so different and so effective at a large problem domain (which includes mostly mathy things and big data), and you can do similar things in many languages, although not quite as elegantly and succinctly. I faced two problems after K: 1. The whole software engineering world starts to look like a ridiculous house of cards; When you're used to seeing implementations of fast and efficient in memory databases in ~20 lines, or an npm-style package manger[1] in less than ~400 lines (comments included). Modern software engineering practices enable and encourage solutions that are inefficient in many respects. Maybe it cannot be better at a large enough scale, but it affects and infects the smaller scales as well. It is extremely frustrating. 2. Getting actual work done requires interfacing with the world, which isn't quite up to the k/q/apl standards of terseness and efficiency -- mostly "accidental complexity"[2]; So, e.g., if you have to have web presentation, or work on import/export, they dominate your effort due to accidental complexity that cannot be removed. Which is doubly frustrating. [0] http://nsl.com/k/t.k http://nsl.com/k/t.k [1] https://github.com/yang-guo/qp https://github.com/yang-guo/qp [2] https://www.quora.com/What-are-essential-and-accidental-complexity https://www.quora.com/What-are-essential-and-accidental-comp...
- segmondy 9y agoAPL/J/K are on their own league. I'm currently learning J, and the only language that has wowed me as much was Prolog and APL/J is even more profound. I won't say that I got ruined by Prolog, I got spoiled by it, but I carried over the good habits from it to other language. Sadly, I don't know that there's anything I can carry over from J. Perhaps it will improve and increase my ability to think of how to solve in parallel which is needed more and more with distributed computing/GPUs.
- dahauns 9y agonot a general purpose language (but a DSL for relational data), but: SQL. :)
- oblio 9y agoC++ was launched in 1985. Perl was launched in 1987. Python was launched in 1991. Java and Javascript were launched in 1995. C# was launched in 2000. So the newest out of the popular languages is already 18 years old. You don't need Fortran or Cobol or Lisp to have been able to do this... It's already almost 60 years since that time.
- jbreckmckye 9y ago*how many languages would have given you [the luxury of programming effectively] for twenty years? C++ doesn't qualify, to my mind, because the language has had many iterations and also because, as the post's author points out, writing C++ in the early 90s was not always a pleasant experience. Python and even Perl are good contenders, as they have both been relatively stable languages. I'm not sure Java counts - Java 10 is quite different to Java 1.0, not just in terms of language features but often paradigms too (think 5's generics and 8's lambdas). As for C# - I've never done .NET, so I'll have to take you on your word.
- oblio 9y agoI know that Lisp has been largely stable, but are you sure it hasn't changed much? Programming paradigms advance, we didn't even have unit tests or continuous integration 20 years ago (at least not widely adopted in the industry). I find it hard to believe that even a Lisp programmer would be completely "static" across 20 years, i.e. the code written 20 years ago would be truly similar to the code he writes now. So I'm not sure I buy this argument, unless someone has solid counter arguments.
- jbreckmckye 9y agoI suppose I was thinking in terms of the OP's timeline - 1980-2000. I imagine the practice of writing Scheme code has changed a lot. Not to mention the number of teams migrating to Clojure.
- vzcx 9y agoI was paging through some old symbolics lisp machine code the other day and while I found some subtle differences in style, it was not so different from modern CL code. I think the differences that are to be found are less about the way one writes lisp and more that these days people make use of "standard" things like quicklisp, alexandria, fiveam, and other utility/portability libraries that didn't exist back then. Edit: I suppose a major change was that back then, CLOS was not yet part of the standard. There was a competing system being used at the time called flavors that had a lot of the same features. No one uses that anymore to my knowledge.