Stories
Slash Boxes
Comments

SoylentNews is people

posted by hubie on Thursday July 07 2022, @09:53PM   Printer-friendly
from the agile-SNOBOL-FTW dept.

Over at ACM.org, Doug Meil posits that programming languages are often designed for certain tasks or workloads in mind, and in that sense most languages differ less in what they make possible, and more in terms of what they make easy:

I had the opportunity to visit the Computer History Museum in Mountain View, CA, a few years ago. It's a terrific museum, and among the many exhibits is a wall-size graph of the evolution of programming languages. This graph is so big that anyone who has ever written "Hello World" in anything has the urge to stick their nose against the wall and search section by section to try find their favorite languages. I certainly did. The next instinct is to trace the "influenced" edges of the graph with their index finger backwards in time. Or forwards, depending on how old the languages happen to be.

[...] There is so much that can be taken for granted in computing today. Back in the early days everything was expensive and limited: storage, memory, and processing power. People had to walk uphill and against the wind, both ways, just to get to the computer lab, and then stay up all night to get computer time. One thing that was easier during that time was that the programming language namespace was greenfield, and initial ones from the 1950's and 1960's had the luxury of being named precisely for the thing they did: FORTRAN (Formula Translator), COBOL (Common Business Oriented Language), BASIC (Beginner's All-purpose Symbolic Instruction Code), ALGOL (Algorithmic Language), LISP (List Processor). Most people probably haven't heard of SNOBOL (String Oriented and Symbolic Language, 1962), but one doesn't need many guesses to determine what it was trying to do. Had object-oriented programming concepts been more fully understood during that time, it's possible we would be coding in something like "OBJOL" —an unambiguously named object-oriented language, at least by naming patterns of the era.

It's worth noting and admiring the audacity of PL/I (1964), which was aiming to be that "one good programming language." The name says it all: Programming Language 1. There should be no need for 2, 3, or 4. Though PL/I's plans of becoming the Highlander of computer programming didn't play out like the designers intended, they were still pulling on a key thread in software: why so many languages? That question was already being asked as far back as the early 1960's.

The author goes on to reason that new languages are mostly created for control and fortune, citing Microsoft's C# as an example of their answer to Java for a middleware language they could control.

Related:
Non-Programmers are Building More of the World's Software
Twist: MIT's New Programming Language for Quantum Computing
10 Most(ly dead) Influential Programming Languages


Original Submission

 
This discussion was created by hubie (1068) for logged-in users only, but now has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 2) by RamiK on Tuesday July 12 2022, @09:24PM (9 children)

    by RamiK (1813) on Tuesday July 12 2022, @09:24PM (#1260298)

    However, there's a bit of a fallacy about Python devs being cheaper...

    If python was a new language I'd say you might have a point. But many big companies have been hiring python developers for a decade now and they aren't in any way looking to replace python with c++.

    Besides, don't be so naive to believe your cost analysis is even remotely close to what your boss has in mind when making those hiring decisions. Big companies have whole teams of statisticians and HR writing 40 page cost/risk-analysis reports for every project that weigh-in on everything in such resolutions you wouldn't believe. e.g. There's reports that look into different school districts bus ride times to measure potential performance implications cut against marital state, age and gender.

    So, when they look at the C++ hiring market and decide to diversify into python, they're not doing it by mistake.

    I walked into a shop that had about 6 junior devs...

    That's true for all entry positions, C++ included. The reason you're not seeing it is because there's so very few young people going into C++ these days.

    they put 4 levels of nested loop in a place where 3 will do the job, and your execution time is 100x what it should be

    But how many good developers does a team need to correct the mistakes of bad ones? Certainly they don't all need to be super stars. And we agree they can't all be terrible at their jobs... So, already, the premise is mixed skill levels. And from there it's pretty obvious you'd want to leverage the tools for the job by having the less skilled work with the training wheels on while having the more skilled work on their end. i.e. The Golang approach.

    really good analogies for Windowed GUI widgets, they're pretty good for containers like strings, lists of strings, hash tables

    Quick observation: Note how everything you've listing + parallelism readily falls into dataflow so if we only had a sane, domain specific dataflow language that didn't try to replace C, but to complement it in those very specific use cases, it would have yielded more agreeable results than C++'s OO.

    --
    compiling...
    Starting Score:    1  point
    Karma-Bonus Modifier   +1  

    Total Score:   2  
  • (Score: 2) by JoeMerchant on Tuesday July 12 2022, @09:46PM (8 children)

    by JoeMerchant (3937) on Tuesday July 12 2022, @09:46PM (#1260311)

    >when they look at the C++ hiring market and decide to diversify into python, they're not doing it by mistake.

    Of course that depends on the sophistication of the management group. Credit Suisse First Boston did all kinds of interesting due diligence when acquiring a new spin of a tech that we developed over the course of about 10 man-years, with about 6 man-years in the research and development of the analysis software component. On the hardware side, they flew us up to DEKA to have Mr. Kamen (Segway inventor, among other more significant less well known things) himself give them a read on the electronics side of things and whether or not it really did what we had been selling it for for the previous 20 years. For the software, they basically opened the newspaper and found 10x as many ads for the Microsoft API of the moment as they did for the (then quite superior) Borland environment. So, drop of a hat, they hired a team of 4 - which grew to 8 - to recode the application in the MS API with an initial projected completion of 3 months, growing to 12 before they got it done. They easily paid more for those programmers than they did for the rest of the acquisition, simply because the MS API had more ads in the paper. P.S. if you're involved with investment bankers at any time, you should know that CSFB incorporated the new entity in Delaware, then proceeded to issue debt from their own bank to the company which they had bought with 80% stock, then when they had issued enough debt to make the net value of the organization $0 they reissued the stock giving all the investors checks for $0.01 in exchange for their shares, some of which had invested over $1M of their own money to obtain about 5 years earlier. Me? I only had stock given as bonuses, nominally worth about $80K at one point, I also received a check from CSFB for $0.01. Debt takes precedence over equity, and in Delaware you can pull shit like that and screw the equity holders legally. End of the day: they put a lot more effort into controlling the legal framework the acquisition deal happened under than they did language / API selection.

    >OO

    Don't forget, OO as a concept comes from the 1980s. Think about the hardware that was available in 1985. OO has been widely abused since, and earned some of its bad reputation - just because you have a buggy whip on your electric sports car doesn't mean you have to pull it out and use it.

    --
    Україна досі не є частиною Росії Слава Україні🌻 https://news.stanford.edu/2023/02/17/will-russia-ukraine-war-end
    • (Score: 2) by RamiK on Wednesday July 13 2022, @07:40AM (7 children)

      by RamiK (1813) on Wednesday July 13 2022, @07:40AM (#1260421)

      So, drop of a hat, they hired a team of 4 - which grew to 8 - to recode the application in the MS API with an initial projected completion of 3 months, growing to 12 before they got it done. They easily paid more for those programmers than they did for the rest of the acquisition, simply because the MS API had more ads in the paper.

      I've heard a similar Microsoft vs. Borland account where the decision fell in favor of Microsoft since they were offering free on-site support where Borland weren't even willing to put down a rough quota on paper. Also note that while engineering consider having all your software come from the same vendor as putting all your eggs in one basket, for acquisitions it means having better leverage since the bigger you are as a client, the better are the deals and treatment in general. So, from management's of view, out-spending a single development effort is often worth deepening a service deal. And note how it's yet another side to that "c++ is often chosen to lock out competition" thing: A lot of what we think of as pure technical decisions goes down to job market, hiring options and third-party corporate connections.

      P.S. if you're involved with investment bankers at any time...

      Yeah that's pretty typical to the east coast. The legal and finance frameworks in New York and Texas are damn right hostile to startups.

      Anyhow, this ties well to my point: C++ isn't simply just a (bad) programming language. It's a specific supply chain of HR, tooling and compiler/OS providers that is not only unjustified on technical considerations, but also involves some dubious business practices. i.e. It's always support package deals here, vendor lock there type things... And to most businesses, especially the small-to-medium ones, it's not only a bad technical choice, it's that entering into that particular ecosystem is damn right hazardous. And when you think about it like that, the whole Nukia-Microsoft and Qt/Trolltech situation doesn't become one bad anecdote. It's simply the nature of heavy weight tools: If you depend on a big language and a big os, you're going to need to be able to deal with big companies. So, unless you are a big company, that's not a bed you want to get into.

      --
      compiling...
      • (Score: 3, Insightful) by JoeMerchant on Wednesday July 13 2022, @11:34AM (6 children)

        by JoeMerchant (3937) on Wednesday July 13 2022, @11:34AM (#1260453)

        Thank you for sharing your opinions. We agree on most of the facts, but from the perspective of small startups to medium sized dev teams in larger corporations, I arrive at different conclusions.

        --
        Україна досі не є частиною Росії Слава Україні🌻 https://news.stanford.edu/2023/02/17/will-russia-ukraine-war-end
        • (Score: 4, Insightful) by RamiK on Wednesday July 13 2022, @12:14PM (5 children)

          by RamiK (1813) on Wednesday July 13 2022, @12:14PM (#1260468)

          Yeah I can't argue with that.

          --
          compiling...
          • (Score: 2) by JoeMerchant on Friday July 15 2022, @02:06PM (4 children)

            by JoeMerchant (3937) on Friday July 15 2022, @02:06PM (#1261072)

            And if you really want to program in Lisp, it isn't all that far away: https://github.com/Robert-van-Engelen/tinylisp [github.com]

            --
            Україна досі не є частиною Росії Слава Україні🌻 https://news.stanford.edu/2023/02/17/will-russia-ukraine-war-end
            • (Score: 2) by RamiK on Friday July 15 2022, @07:06PM (3 children)

              by RamiK (1813) on Friday July 15 2022, @07:06PM (#1261119)

              Meanwhile in Texas: https://www.youtube.com/watch?v=DXvJ8duZqdA [youtube.com]

              --
              compiling...
              • (Score: 2) by JoeMerchant on Friday July 15 2022, @07:38PM (2 children)

                by JoeMerchant (3937) on Friday July 15 2022, @07:38PM (#1261122)

                Cool. When I was in school my programmable calculator had the one true language: BASIC. Graphing calculators weren't a thing yet.

                --
                Україна досі не є частиною Росії Слава Україні🌻 https://news.stanford.edu/2023/02/17/will-russia-ukraine-war-end
                • (Score: 2) by RamiK on Saturday July 16 2022, @08:37AM (1 child)

                  by RamiK (1813) on Saturday July 16 2022, @08:37AM (#1261255)

                  Did it have an alpha-numeric display or a dot matrix? If it's running BASIC, it has indirect addressing and conditional branching so you only need the high-res display to draw graphs...

                  --
                  compiling...
                  • (Score: 2) by JoeMerchant on Saturday July 16 2022, @01:27PM

                    by JoeMerchant (3937) on Saturday July 16 2022, @01:27PM (#1261282)

                    It was dot matrix but resolution was something like 128x8 and I believe it was only character addressable from the software layer.

                    --
                    Україна досі не є частиною Росії Слава Україні🌻 https://news.stanford.edu/2023/02/17/will-russia-ukraine-war-end