Stories
Slash Boxes
Comments

SoylentNews is people

posted by martyb on Wednesday March 11 2020, @10:00PM   Printer-friendly
from the what-do-YOU-think dept.

Ilya Dudkin at Skywell Software has a story

Top 7 Dying Programming Languages to Avoid Studying in 2019 –2020.

Each language gets a paragraph's treatment as to why he thinks these languages are dead or dying. Those languages are:

  • Visual Basic
  • Objective-C
  • Perl
  • COBOL
  • CoffeeScript
  • Scala
  • Lisp

Do you agree with his assessment? Are there any other language(s) you would add to the list?


Original Submission

 
This discussion 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 DannyB on Thursday March 12 2020, @02:57AM (3 children)

    by DannyB (5839) Subscriber Badge on Thursday March 12 2020, @02:57AM (#970049) Journal

    The issue with Objective C was not about the language or who created it, but rather the rise of Swift in replacing it in Apple products. Thus the majority of Objective C use may disappear. Or not. Who knows.

    --
    To transfer files: right-click on file, pick Copy. Unplug mouse, plug mouse into other computer. Right-click, paste.
    Starting Score:    1  point
    Karma-Bonus Modifier   +1  

    Total Score:   2  
  • (Score: 2) by HiThere on Thursday March 12 2020, @04:27PM (2 children)

    by HiThere (866) Subscriber Badge on Thursday March 12 2020, @04:27PM (#970276) Journal

    If you think of languages as a popularity contest, then OK. If you think of them as a useful toolkit, then that's almost irrelevant. (Not quite, as libraries, etc., tend to get developed for popular languages.) I tend to think of them as toolkits, and I've been profoundly disgusted recently because the toolkit's aren't getting properly filled.

    It was actually easier to do development of GUI programs a couple of decades ago. The advantage of modern languages is that they have the opportunity to handle unicode well. Few do. There's no reason for 16-bit unicode except to communicate with system calls that demand it, everything else should be either utf-8 or utf-32 (which is actually 24 bits). Go, Vala, D, and Python handle it well. Perhaps Ruby. C and C++ are atrocious. Java is locked into a standard that was stupid when they developed it. No unsigned integers, No compile time constants, and 16-bit unicode. (OK, at the time they issued the first standard 16-bit unicode was an improvement. They didn't, however, change.)

    Then there's concurrent execution on multi-processors. Here LISP should have lead the pack, as it already had a purely functional subset. But they didn't. Even Racket Scheme, which had the best development of the Lisp derivatives prior to Clojure, never came up with a decent implementation. And Clojure decided to be "purely functional" and not allow any variables to be changed. Which makes it a bad choice in lots of situations. Even Erlang handled that better, having local hash tables that were changeable, and built in databases that were globally changeable. The right idea, but the correct answer would be that strictly local variables were changeable, and only arguments to function calls were immutable. Go's channels are a reasonable intermediate step, but it doesn't support desktop graphics in any reasonable sense of the term. It still currently looks like the best answer for a local gui program that also has to handle concurrency and unicode...which is an atrocious statement of the current state of affairs. (The gui has to be exported to C routines ... cairo, gtk, etc. on my system.) I did seriously consider C++/Qt, but garbage collection problems decided the issue in favor of Go. Qt has better graphics, but it's unicode system is based around 16-bit unicode, not at all what I want. And the garbage collection/allocation gets too complicated between threads.

    So OK, a couple of decades ago I wouldn't have worried about multi-processor systems, and 16-bit unicode didn't look so bad. But it looks bad today.

    --
    Javascript is what you use to allow unknown third parties to run software you have no idea about on your computer.
    • (Score: 2) by DannyB on Thursday March 12 2020, @05:39PM (1 child)

      by DannyB (5839) Subscriber Badge on Thursday March 12 2020, @05:39PM (#970308) Journal

      Languages are not a popularity contest. However popularity of languages is a factor in career planning.

      I would have loved for Lisp to have a much bigger prominence in languages. Being purely functional is not strictly a requirement to do parallel programming well. I would argue that immutability is at least as important. I enjoyed Clojure for hobby playing for a few years. The purely functional and immutability did take some getting used to. I still could fall back on an iterative non functional style with recur. Only recently have I started playing with Racket. (and also wxMaxima) I find I miss some things from Clojure. I haven't tried Erlang, yet. I might.

      Clojure does have mutable versions of, at least, arrays. In my playing, I wrote a prime sieve function that took two arguments describing a range of integers to sieve over. Say from 1 trillion to 1 trilliion + 1 million. That would find all the primes in a 1 million long space starting at 1 trillion. Return them as an immutable list. The local array was mutable to make the sieve easy to implement. That was when I realized that some local mutability can be useful as long as mutability never extends outside of a single threaded function.

      In the opposite style of Java with it's "final" modifier, I would prefer all local variables to be final (eg unchangeable) by default, with the programmer having to specify changeability for variables that should have it. My Java IDE automatically changes all possible variables to final automatically (a customizable setting) and I am astonished in the last decade just how few variables actually need to be variable.

      I haven't tried Go channels nor Clojure's core.async.

      I've built GUIs in a number of different ways over the decades. Back in the day, classic Mac OS was difficult compared to today. I find Java Swing to be remarkably good overall, but not without it's warts. It's just that that the positive experiences outweigh drawbacks. And being pure Java it's all GC. The UI has plugable look and feel. It's cross platform portable. There are extensions to use desktop specific features of various platforms. If I do another GUI project I think I'll try Java FX.

      If I ever were to try a portable GUI in any of Golang, Python, D or something else, should I use Qt or wxWidgets or Gtk? I think I lean towards either wxWidgets or Gtk. But in my day job, I build web apps.

      --
      To transfer files: right-click on file, pick Copy. Unplug mouse, plug mouse into other computer. Right-click, paste.
      • (Score: 2) by HiThere on Thursday March 12 2020, @05:51PM

        by HiThere (866) Subscriber Badge on Thursday March 12 2020, @05:51PM (#970316) Journal

        With C++ pick WxWidgets or Qt. Qt has better appearance in my opinion, but WxWidgets is easier to use. In C I'd grit my teeth and pick gtk. From Go gtk is the only reasonable choice.

        And note that it depends a LOT on what you're doing. Some things are easy in one toolkit and hard in another, like selecting a line of text from a displayed block of text (none of them make that easy, unless you identify a line as "something that ends with a carriage return" rather than "the stuff displayed on one line of this variably sized text control". Gtk uses markers to say when you're highlighting a word, WxWidgets allows you to use HTML markup, and Qt assumes you're going to be using HTML markup.

        --
        Javascript is what you use to allow unknown third parties to run software you have no idea about on your computer.